Installer et configurer Wireshark

Afficher le code source sur GitHub

Wireshark est un outil Open Source capable de décoder les protocoles réseau dans la pile Thread, comme IEEE 802.15.4, 6LoWPAN, IPv6, MLE (Mesh Link Establishment), UDP et CoAP.

L'outil de détection de Pyspinel se connecte à un périphérique Thread NCP ou RCP et le convertit en outil de détection de paquets promiscuité, en générant un flux pcap (capture de paquets) à enregistrer ou acheminer directement vers Wireshark.

Pour utiliser Wireshark avec Pyspinel, reportez-vous aux 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 non-root. Pour ce faire, reconfigurez le package:

sudo dpkg-reconfigure wireshark-common

Lorsque la boîte de dialogue vous demandant "Dois-je empêcher les super-utilisateurs de capturer des paquets ?" s'affiche, sélectionnez Oui, puis ajoutez l'utilisateur wireshark et mettez à jour les autorisations du fichier:

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, des informations spécifiques à la plate-forme concernant les droits de capture.

Configurer les protocoles Wireshark

Pour configurer des protocoles, sélectionnez Préférences... dans Wireshark et développez la section Protocoles.

6LoWPAN

Sélectionnez 6LoWPAN dans la liste des protocoles et vérifiez ou modifiez les paramètres suivants:

  1. Décochez Déduire l'ID conformément à la norme RFC 4944.
  2. Mettez à jour le contexte 0 avec le préfixe local maillé pour le réseau Thread cible.

OT Sniffer Wireshark 6LoWPAN

Wireshark utilise des configurations de contexte pour analyser l'adresse IPv6 compressée et afficher correctement les adresses IPv6 source et de destination.

Pour afficher les adresses des autres préfixes de 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 spécifique de maillage, consultez le fichier TLV de données du réseau Thread dans n'importe quel message de réponse MLE Data. Exemple :

Context 1: fd00:7d03:7d03:7d03::/64

PAC

Sélectionnez CoAP dans la liste des protocoles et définissez CoAP UDP Port sur 61631. Cela permet de garantir 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 et vérifiez ou modifiez les paramètres suivants:

  1. Définissez Ethertype 802.15.4 (en hexadécimal) sur "0x809a".
  2. Définissez la suite de sécurité sur "Chiffrement AES-128, protection de l'intégrité 32 bits".
  3. Cliquez sur le bouton Modifier à côté de l'option Clés de déchiffrement, à laquelle vous ajoutez la clé principale du réseau de thread pour le déchiffrement des paquets.

    1. Cliquez sur + pour ajouter une clé de déchiffrement.
    2. Saisissez la clé principale du réseau Thread dans la colonne Clé de déchiffrement.
    3. Saisissez "1" dans le champ Index de clé de déchiffrement.
    4. Sélectionnez Hachage de fil de discussion dans la zone de liste Hachage de colonne.

      OT Sniffer Wireshark IEEE 802.15.4

    5. 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" dans le champ Compteur de séquence de thread.
  • Décochez la case Utiliser l'ID PAN comme les deux premiers octets de la clé principale.
  • Cochez Générer automatiquement le compteur de séquence de fil de discussion.

Cliquez sur le bouton OK pour enregistrer les modifications de protocole.

Une partie du trafic Thread peut être analysée en tant que protocole ZigBee. Pour afficher correctement ces deux protocoles, modifiez les protocoles activés dans Wireshark:

  1. Dans Wireshark, accédez à Analyze (Analyser), puis cliquez sur Enabled Protocols (Protocoles activés).
  2. Décochez les protocoles suivants:

    1. LwMesh
    2. ZigBee
    3. ZigBee Green Power

Configurer Wireshark RSSI

Pour afficher RSSI dans Wireshark:

  1. Sélectionnez Préférences..., développez la section Protocoles, puis cliquez sur IEEE 802.15.4.
  2. Définissez le format FCS:

    • Si IEEE 802.15.4 TAP est désactivé : métadonnées TI CC24xx
    • Si IEEE 802.15.4 TAP est activé : ITU-T CRC-16 Si vous suivez le guide Packet Sniffing du Nordic Semiconductor nRF52840 DK, reportez-vous à l'indicateur --tap pour en savoir plus.
  3. Cliquez sur OK pour enregistrer et revenir au menu Preferences (Préférences).

  4. Dans Préférences, sélectionnez Apparence, puis Colonnes.

  5. Ajouter une entrée:

    • Titre: RSSI
    • Type: Personnalisé
    • Champs: wpan.rssi

OT Sniffer Wireshark RSSI