14 votes

Wireshark WPA poignée de main à 4 voies

De cette page wiki :

WPA et WPA2 utilisent des clés dérivées d'une poignée de main EAPOL pour chiffrer le trafic. À moins que les quatre sont présents pour la session que vous essayez de décrypter, Wireshark ne sera pas en mesure de décrypter le trafic. Vous pouvez utiliser le filtre d'affichage eapol pour localiser les paquets EAPOL dans votre capture.

J'ai remarqué que le décryptage fonctionne aussi avec (1, 2, 4), mais pas avec (1, 2, 4). avec (1, 2, 3). D'après ce que je sais, les deux premiers paquets sont suffisants, du du moins pour ce qui concerne le trafic unicast. Quelqu'un peut-il m'expliquer exactement comment Wireshark gère cela, en d'autres termes pourquoi seule la première séquence la première séquence fonctionne, étant donné que le quatrième paquet n'est qu'un acquittement ? d'accusé de réception ? De plus, est-il garanti que la séquence (1, 2, 4) fonctionnera toujours lorsque la séquence (1, 2, 3) fonctionnera ? fonctionnera toujours lorsque (1, 2, 3, 4) fonctionne ?

Cas de test

Il s'agit de la poignée de main gzippée (1, 2, 4) et d'une clé cryptée ARP paquet (SSID : SSID , mot de passe : password ) en base64 l'encodage :

H4sICEarjU8AA2hhbmRzaGFrZS5jYXAAu3J400ImBhYGGPj/n4GhHkhfXNHr37KQgWEqAwQzMAgx
6HkAKbFWzgUMhxgZGDiYrjIwKGUqcW5g4Ldd3rcFQn5IXbWKGaiso4+RmSH+H0MngwLUZMarj4Rn
S8vInf5yfO7mgrMyr9g/Jpa9XVbRdaxH58v1fO3vDCQDkCNv7mFgWMsAwXBHMoEceQ3kSMZbDFDn
ITk1gBnJkeX/GDkRjmyccfus4BKl75HC2cnW1eXrjExNf66uYz+VGLl+snrF7j2EnHQy3JjDKPb9
3fOd9zT0TmofYZC4K8YQ8IkR6JaAT0zIJMjxtWaMmCEMdvwNnI5PYEYJYSTHM5EegqhggYbFhgsJ
9gJXy42PMx9JzYKEcFkcG0MJULYE2ZEGrZwHIMnASwc1GSw4mmH1JCCNQYEF7C7tjasVT+0/J3LP
gie59HFL+5RDIdmZ8rGMEldN5s668eb/tp8vQ+7OrT9jPj/B7425QIGJI3Pft72dLxav8BefvcGU
7+kfABxJX+SjAgAA

Décoder avec :

$ base64 -d | gunzip > handshake.cap

Ejecutar tshark pour voir s'il décrypte correctement le ARP paquet :

$ tshark -r handshake.cap -o wlan.enable_decryption:TRUE -o wlan.wep_key1:wpa-pwd:password:SSID

Il devrait être imprimé :

  1   0.000000 D-Link\_a7:8e:b4 -> HonHaiPr\_22:09:b0 EAPOL Key
  2   0.006997 HonHaiPr\_22:09:b0 -> D-Link\_a7:8e:b4 EAPOL Key
  3   0.038137 HonHaiPr\_22:09:b0 -> D-Link\_a7:8e:b4 EAPOL Key
  4   0.376050 ZyxelCom\_68:3a:e4 -> HonHaiPr\_22:09:b0 ARP 192.168.1.1 is at 00:a0:c5:68:3a:e4

1voto

BatchyX Points 2186

Les échanges EAPOL sont également utilisés pour renouveler les clés temporelles. Les nouvelles clés sont installées sur le Supplicant après qu'il ait envoyé 4/4, et sont installées sur l'Authentificateur lorsqu'il reçoit 4/4 [1]. Si Wireshark doit gérer correctement le renouvellement des clés, il ne doit utiliser les clés qu'après avoir lu le paquet 4/4 dans la trame, car les paquets peuvent continuer à circuler pendant le renouvellement des clés (même dans les cas où ils ne devraient pas, à cause de la mise en mémoire tampon).

Pour le premier 4WHS, ne pas attendre le 4/4 est possible, mais il est parfaitement compréhensible qu'ils aient été simplement paresseux pour l'implémenter. Le 3/4 est toujours nécessaire car il contient les clés de groupe (même si elles ne vous intéressent pas, mais sachez que vous ne verrez pas les requêtes ARP de l'AP ou d'un client pour lequel vous n'avez aucune partie de son 4WHS) et les clés de gestion. Vous pouvez également sauter les 3/4, mais vous n'avez alors aucune confirmation que l'échange a réussi, car les 3/4 sont utilisés pour vérifier que l'Authentificateur connaît la PMK.

[1] Notez qu'avec le schéma actuel, si le message 4/4 est perdu, alors le suppliant a commencé à utiliser la nouvelle clé, et l'authentificateur utilise toujours l'ancienne clé, et renvoyer 3/4 chiffré avec l'ancienne clé ne sera pas utile. Ce problème, parmi de nombreux autres avec WPA2, est résolu dans la dernière norme 802.11 2012 en conservant deux clés en parallèle.

1voto

Matt Dressel Points 101

Toutes les informations nécessaires à la construction du PTK sont échangées aux étapes 1 et 2. Cela devrait suffire pour décrypter le trafic unicast.

Sans l'étape 3, vous n'aurez pas le GTK, donc le décryptage du multicast/broadcast ne sera pas possible.

L'étape 4 n'est pas vraiment nécessaire pour décrypter le trafic de capture, mais s'il n'y a pas d'étape 4, le client/AP ne commencera pas à utiliser le cryptage. Wireshark peut s'en servir comme clé avant d'essayer de décrypter les données.

0voto

Old Pro Points 2099

Eh bien, il est évident que la documentation de WireShark est erronée :-)

Sortir de la documentation aquí :

  • Après EAPOL 1 et 2, les deux parties connaissent la clé temporelle qui sera utilisée pour décrypter le trafic.
  • Le troisième message est la preuve que les deux parties connaissent la clé temporelle et indique que la Authentificateur (la station de base) est prêt à démarrer en utilisant la touche temporelle.
  • Le quatrième message déclenche le passage de la PMK établie avant l'EAPOL à la clé temporelle dérivée dans l'EAPOL.

Donc avec ça, ça a du sens. WireShark n'a pas besoin du message 3 pour quoi que ce soit. Il connaît les clés après les messages 1 et 2, mais il attend de commencer à les utiliser pour décrypter le trafic après avoir reçu le message 4.

Il n'y a aucune garantie dans la vie, en particulier le comportement du logiciel libre, mais il est raisonnable de parier qu'il n'y aura pas besoin que le message 3 soit présent pour que WireShark puisse décrypter la session.

0voto

sybind Points 181

Cela n'explique pas pourquoi, mais en citant l'airdecap-ng documentation de toute façon,

WPA/WPA2 Requirements

The capture file must contain a valid four-way handshake. For this purpose having (packets 2 and 3) or (packets 3 and 4) will work correctly. In fact, you don't truly need all four handshake packets.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X