Wlan 4 Wege Handshake: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 27: | Zeile 27: | ||
==PTK== | ==PTK== | ||
*PTK = HASH( PMK + <span style="color:#008000;">NONCE-A</span> + <span style="color:#008000;">NONCE-S</span> + <span style="color:#008000;">MAC-AP</span> + <span style="color:#008000;">MAC-CLIENT</span> ) | *PTK = HASH( PMK + <span style="color:#008000;">NONCE-A</span> + <span style="color:#008000;">NONCE-S</span> + <span style="color:#008000;">MAC-AP</span> + <span style="color:#008000;">MAC-CLIENT</span> ) | ||
| + | |||
| + | ===PTK-Container=== | ||
| + | ;Der PTK ist 384 Bit lang (CCMP/AES) und teilt sich in drei Schlüssel auf: | ||
| + | {| class="wikitable" style="text-align:center;" | ||
| + | !colspan="3"|PTK (384 Bit) | ||
| + | |- | ||
| + | |<span style="color:#c07000;">'''KCK'''</span> | ||
| + | |KEK | ||
| + | |TK | ||
| + | |- | ||
| + | |128 Bit | ||
| + | |128 Bit | ||
| + | |128 Bit | ||
| + | |- | ||
| + | |<span style="color:#c07000;">bildet die MIC</span> | ||
| + | |verschlüsselt Schlüsseldaten (GTK) | ||
| + | |verschlüsselt Datenpakete | ||
| + | |} | ||
| + | ;Für den Angriff zählt nur der <span style="color:#c07000;">KCK</span> – er bildet die MIC. | ||
| + | |||
==KCK== | ==KCK== | ||
*KCK = die ersten 128 Bit des PTK | *KCK = die ersten 128 Bit des PTK | ||
Version vom 13. August 2026, 16:56 Uhr
Grundidee
- Beim 4-Wege-Handshake schickt der Client eine Nachricht mit einer Prüfsumme (MIC). Diese MIC kann nur bilden, wer das WLAN-Passwort (PSK) kennt.
- In der gesamten Berechnungskette ist alles bekannt oder mitschneidbar – bis auf eine einzige Unbekannte
- den PSK.
- Wir setzen nacheinander Passwörter aus einer Liste als PSK ein, rechnen die MIC nach und vergleichen sie mit der mitgeschnittenen MIC. Passt sie, ist das Passwort gefunden.
Was wir brauchen
Extern ablesbar (aus dem Beacon)
- SSID – Name des Netzes
- MAC ACCESSPOINT (BSSID)
- MAC CLIENT
- Kanal
Aus dem 4-Wege-Handshake mitschneiden
- Jede Handshake-Nachricht ist ein EAPOL-Frame (ein Paket). Für den Angriff schneiden wir Nachricht 2 (Client → AP) mit. Darin steckt
- NONCE-A – Zufallszahl des Access Points (aus Nachricht 1)
- NONCE-S – Zufallszahl des Clients (in Nachricht 2)
- EAPOL-Frame – der komplette Frame von Nachricht 2 (Bytes, über die die MIC gebildet wird)
- MIC – die Prüfsumme im MIC-Feld dieses Frames → unser Vergleichswert
Vier Wege Handshake
Wie die MIC entsteht
- Der Client leitet aus dem Passwort einen Sitzungsschlüssel (PTK) ab und bildet damit die MIC über den EAPOL-Frame.
PMK
- PMK = HASH( PSK | SSID )
PTK
- PTK = HASH( PMK + NONCE-A + NONCE-S + MAC-AP + MAC-CLIENT )
PTK-Container
- Der PTK ist 384 Bit lang (CCMP/AES) und teilt sich in drei Schlüssel auf
| PTK (384 Bit) | ||
|---|---|---|
| KCK | KEK | TK |
| 128 Bit | 128 Bit | 128 Bit |
| bildet die MIC | verschlüsselt Schlüsseldaten (GTK) | verschlüsselt Datenpakete |
- Für den Angriff zählt nur der KCK – er bildet die MIC.
KCK
- KCK = die ersten 128 Bit des PTK
MIC
- MIC = HMAC-SHA1( KCK , EAPOL-Frame )
- Hinweis
- Beim Bilden der MIC ist das MIC-Feld im Frame auf Null gesetzt. Zum Nachprüfen zieht man die mitgeschnittene MIC heraus, setzt das Feld wieder auf Null und rechnet neu.
Einsetzverfahren
- Wir setzen alle Schritte ineinander ein. Übrig bleibt eine Formel mit nur einer Unbekannten – dem PSK
- MIC = HMAC-SHA1( KCK( HASH( HASH( PSK | SSID ) + NONCE-A + NONCE-S + MAC-AP + MAC-CLIENT ) ) , EAPOL-Frame )
- Grün = bekannt / mitgeschnitten. Nur PSK ist unbekannt.
Angriff (Iteration)
- Wir gehen eine Passwortliste durch und setzen jedes Passwort als PSK-geraten ein
- PSK-geraten + SSID → PMK-geraten
- PMK-geraten + NONCE-A + NONCE-S + MAC-AP + MAC-CLIENT → PTK-geraten
- aus PTK-geraten → KCK-geraten (erste 128 Bit)
- HMAC-SHA1( KCK-geraten , EAPOL-Frame ) → MIC-geraten
- MIC-geraten = MIC-mitgeschnitten ? → ja: Passwort gefunden / nein: nächstes Passwort