Wireshark est un outil Open Source qui peut décoder les protocoles réseau de la pile Thread, tels que IEEE 802.15.4, 6LoWPAN, IPv6, MLE (Mesh Link Establishment), UDP et CoAP.
L'outil de détection de paquets Pyspinel se connecte à un appareil NCP ou RCP Thread et le convertit en outil de détection de paquets promiscuité, générant un flux pcap (capture de paquets) à enregistrer ou à transmettre directement dans Wireshark.
Pour utiliser Wireshark avec Pyspinel, consultez les recommandations d'installation à l'étape suivante. Vous devez également configurer Wireshark pour afficher correctement les paquets Thread et recevoir des mesures RSSI.
Installer Wireshark
Linux
Ouvrez un terminal et exécutez les commandes suivantes pour télécharger et installer Wireshark:
sudo add-apt-repository ppa:wireshark-dev/stable
sudo apt-get update
sudo apt-get install wireshark
Nous vous recommandons d'exécuter Wireshark en tant qu'utilisateur autre que root
. Pour ce faire, reconfigurez le package:
sudo dpkg-reconfigure wireshark-common
Lorsque la boîte de dialogue vous demande "Les utilisateurs non super-utilisateurs doivent-ils pouvoir capturer des paquets ?", sélectionnez Oui, puis ajoutez l'utilisateur wireshark
et mettez à jour les autorisations de fichiers:
sudo adduser $USER wireshark
sudo chmod +x /usr/bin/dumpcap
macOS et Windows
Téléchargez et installez Wireshark. Pour optimiser la sécurité de votre système d'exploitation, consultez Wireshark : informations spécifiques à la plate-forme sur les droits d'accès à la capture.
Configurer les protocoles Wireshark
Pour configurer les protocoles, sélectionnez Preferences (Préférences) dans Wireshark, puis développez la section Protocols (Protocoles).
6LoWPAN
Sélectionnez 6LoWPAN dans la liste des protocoles, puis vérifiez ou modifiez les paramètres suivants:
- Décochez Déduire l'ID conformément à la norme RFC 4944.
- Mettez à jour Context 0 avec le préfixe local de maillage pour le réseau Thread cible.
Wireshark utilise des configurations de contexte pour analyser l'adresse IPv6 compressée et afficher correctement les adresses source et de destination IPv6.
Pour afficher les adresses des autres préfixes sur le maillage configurés sur la passerelle, mettez à jour les autres ID de contexte avec ces préfixes.
Pour obtenir l'ID de contexte d'un préfixe sur le réseau spécifique, affichez le TLV de données réseau Thread dans n'importe quel message de réponse de données MLE. Exemple :
Context 1: fd00:7d03:7d03:7d03::/64
CoAP
Sélectionnez CoAP dans la liste des protocoles et définissez Port UDP CoAP sur 61631. Cela garantit l'affichage des messages TMF (comme la demande d'adresse).
IEEE 802.15.4
Sélectionnez IEEE 802.15.4 dans la liste des protocoles, puis vérifiez ou modifiez les paramètres suivants:
- Définissez 802.15.4 Ethertype (en hexadécimal) sur "0x809a".
- Définissez la suite de sécurité sur "Chiffrement AES-128, protection de l'intégrité 32 bits".
Cliquez sur le bouton Modifier à côté de Clés de déchiffrement, où vous ajouterez la clé maître du réseau Thread pour le déchiffrement des paquets.
- Cliquez sur + pour ajouter une clé de déchiffrement.
- Saisissez la clé maître du réseau Thread dans la colonne Clé de déchiffrement.
- Saisissez "1" comme indice de clé de déchiffrement.
Sélectionnez Hachage de thread dans la liste déroulante de la colonne Hachage de clé.
Cliquez sur OK pour enregistrer la clé de déchiffrement.
Thread
Sélectionnez Thread dans la liste des protocoles, puis vérifiez ou modifiez les paramètres suivants:
- Saisissez "00000000" pour le compteur de séquence de threads.
- Décochez la case Utiliser l'ID de carte PAN comme deux premiers octets de la clé principale.
- Cochez la case Automatically acquire Thread sequence counter (Acquérir automatiquement le compteur de séquence de thread).
Cliquez sur le bouton OK pour enregistrer les modifications apportées au protocole.
Certains trafics Thread peuvent être analysés comme du trafic ZigBee. Pour afficher correctement ces deux protocoles, modifiez les protocoles activés dans Wireshark:
- Dans Wireshark, accédez à Analyze (Analyser), puis cliquez sur Enabled Protocols (Protocoles activés).
Décochez les protocoles suivants:
- LwMesh
- ZigBee
- ZigBee Green Power
Configurer le RSSI de Wireshark
Pour afficher le RSSI dans Wireshark:
- Sélectionnez Préférences, puis développez la section Protocoles, puis cliquez sur IEEE 802.15.4.
Définissez le format FCS:
- Si le TAP IEEE 802.15.4 est désactivé: Métadonnées TI CC24xx.
- Si le TAP IEEE 802.15.4 est activé: ITU-T CRC-16. Si vous suivez le guide de renifleur de paquets pour le nRF52840 DK de Nordic Semiconductor, consultez le indicateur
--tap
pour en savoir plus.
Cliquez sur OK pour enregistrer et revenir au menu Préférences.
Dans Préférences, sélectionnez Apparence, puis Colonnes.
Ajoutez une entrée:
- Title: RSSI
- Type: personnalisé
- Champs: wpan.rssi