web-dev-qa-db-fra.com

Comment fonctionne exactement le cracking 4-handshake?

D'après ma compréhension, voici comment WPA2 fonctionne pour les réseaux domestiques:

  • PSK (Pre-Shared Key) est utilisé pour générer PMK (Pairwise Master Key), qui est utilisé avec ANonce (AP Nonce) pour créer PTK (Pairwise Transient Key).
  • PTK est divisé en KCK (clé de confirmation de clé, 128 bits), KEK (clé de cryptage de clé, 128 bits) et TEK (clé de cryptage temporel, 128 bits).
  • KCK est utilisé pour construire MAC dans les paquets EAPOL 2,3 et 4.
  • KEK est utilisé pour crypter certaines données envoyées au client (par exemple GTK).
  • TEK est utilisé pour crypter le trafic entre le client et AP, plus tard pendant la session.

Maintenant, la WPA poignée de main à 4 voies:

  1. AP envoie ANonse (AP Nonce) au client, qui est essentiellement un entier aléatoire de 256 bits.
  2. Le client utilise ANonce et PMK pour générer PTK (Pairwise Transient Key) et envoyer CNonce (Client Nonce) et MAC.
  3. AP envoie MAC et GTK (Group Temporal Key) au client.
  4. Le client envoie un ACK avec MAC.

Maintenant, comment fonctionne le craquage de poignée de main (par exemple, l'attaque par dictionnaire) si l'ensemble du PTK n'est pas utilisé (KCK et KEK sont utilisés pendant la poignée de main, mais TEK ne l'est pas)? Je comprends que les mots du dictionnaire sont utilisés comme PSK pour générer PMK et Anonce (qui est également capturé dans la poignée de main) pour générer PTK, mais comment puis-je savoir quand PTK est correct lorsque 1/3 de la clé n'est jamais utilisée?

20
user3362334

La réponse courte est que le "cracking" du mot de passe à 4 voies fonctionne en vérifiant MIC dans la 4ème trame. Autrement dit, il vérifie uniquement que la partie KCK du PTK est correcte. La prise de contact à 4 voies ne contient pas de données qui permettraient de vérifier d'autres parties du PTK, mais ce n'est en fait pas nécessaire, pour deux raisons:

  1. La vérification MIC est la façon dont AP vérifie la validité de PTK (et, par conséquent, le mot de passe);
  2. Les chances qu'un PTK produisant un mot de passe possède un KCK valide mais d'autres parties invalides sont vraiment faibles: KCK est de 128 bits, donc la probabilité qu'un mot de passe incorrect produise un KCK correct est de 2.-128.

Dans l'ensemble, le "craquage" de mots de passe à 4 voies fonctionne comme ceci:

  1. La négociation à 4 voies est analysée pour obtenir SP et STA, nonces AP et STA, charge utile EAPOL et MIC à partir de la 4ème trame;
  2. Le mot de passe du candidat est utilisé pour calculer PMK;
  3. PTK est calculé à partir des adresses et nonces PMK, AP et STA;
  4. KCK de PTK calculé est utilisé pour calculer MIC de la charge utile EAPOL obtenue à l'étape 1;
  5. La MIC calculée est comparée à la MIC obtenue à l'étape 1. S'ils correspondent, le mot de passe candidat est signalé comme correct.

Si vous souhaitez voir la mise en œuvre réelle de l'attaque, un point de départ est coWPAtty sources: elles sont relativement petites, autonomes et faciles à lire.

16
Andrey