Hintergrund

Die Kommunikation zwischen zwei Geräten oder Personen über einen unsicheren Kanal ist immer problematisch, denn es können dritte mitlauschen und dadurch wichtige, private oder geheime Informationen erlangen. Bei einem Medium wir Funk ist das noch kritischer, als bei einem Medium wie dem Internet über Netzwerkkabel. Ein mögliches Szenario wäre bspw. der Besuch in einem Café, in dem es ein freies, unverschlüsseltes WLAN gibt. Man verbindet sich mit dem Access Point und surft unbedacht drauf los. Die Pakete dieser Kommunikation werden in alle Richtungen ausgestrahlt und andere Besucher des Cafés können diese ebenfalls empfangen. So kann jegliche unverschlüsselte Kommunikation mitgeschnitten oder abgelauscht werden. Als Gegenmaßnahme gegen ein solches Szenario, aber auch gegen andere, wie bspw. Fälschung von Nachrichten bzw. Paketen, ist es sinnvoll die Kommunikation zwischen einem Client und einem Access Point zu verschlüsseln. In dem nachfolgenden Kapitel werden solche Verfahren mit Hintergrundinformationen eingeführt.

Für drahtlose Netzwerke ist durch die IEEE der 802.11b der Wired Equivalent Privacy (WEP) Standard etabliert worden. Aufgrund von Sicherheitsproblemen mit WEP, musste eine kurzfristige, alternative Lösung her. Diese sollte der Wi-Fi Protected Access (WPA) Standard darstellen, der aber nicht vollständig fertig war. So entstand als Übergangslösung WPA, welches jedoch ohne die Implementirung des Verschlüsselungsverfahrens Advanced Encryption Standards (AES) auskommen musste. Die vollständige Implementierung des symmetrischen Verfahrens AES führte dann zu der Weiterentwicklung des WPA2 Standards. Dieser unterstützte weiterhin Temporal Key Integrity Procol (TKIP) aber auch das Counter Mode with Cipher Block Chaining Message Authentification Code Protocol, kurz CTR with CBC-MAC (CCMP). Später kam dann noch das Galios/Counter Mode Protocol (GCMP), welches bei den Angriffen im Kapitel Protokolle für Vertraulichkeit und Integrität ebenfalls beleuchtet wird.

WPA2 Ablauf allgemein

WLAN Verbindungsaufbau

Drahtlose Verbindungen sind komfortabel und werden von allen tragbaren Geräten in einer oder anderen Weise umgesetzt. Besonders nennenswert sind hier drahtlose Netzwerke (WirelessLAN, kurz WLAN), auf die in dieser Ausarbeitung eingegangen wird. Der generelle Ablauf des Verbindungsaufbaus kann abstrakt wie folgt beschrieben werden:

  1. Benutzer*in wählt am Client-Device das entsprechende WLAN aus und initiiert den Verbindungsaufbau. Dafür muss das Passwort zur Authentifizierung am Access Point eingegeben wird.
  2. Der Client starten den Verbindungsaufbau zum Access Point.
  3. Client wird bei erfolgreicher Authentifizierung im Netzwerk eingebucht (autorisiert).
  4. Danach kann der Client über den Access Point auf die Dienste im Netzwerk, wie bspw. Network Attached Storage (NAS), Printserver oder Fileserver zugreifen, oder auf das Internet zugreifen, wie in Schritt 5 gezeigt.

WPA2 mit zwei Modi

Der WPA2 Standard sieht die Verwendung in einem der beiden verfügbaren Modi vor. Beim ersten handelt es sich um den Personal Mode, der auf einem Pre-Shared Key (PSK) basiert und beim zweiten, um den Enterprise Mode, der wiederum einen Authentification Server voraussetzt.

WPA2 Personal Mode

Dieser Modus ist für den Einsatz in Kleinunternehmen und für private Haushalte vorgesehen. Dabei unterstützt der Modus nicht alle WPA2 Features. Speziell bei kurzen bzw. schwache Pre-Shared Keys besteht die Gefahr von Bruce-Force- und Dictionary-Angriffen. Im weiten Verlauf konzentriert sich diese Ausarbeitung nur auf den Personal Mode, auch wenn der Enterprise Mode kurz erklärt wird.

WPA2 Enterprise Mode

Mit dem Fokus auf Unternehmen, setzt der Enterprise Mode fast nahtlos den IEEE 802.11i Standard um. Es fehlt hier jedoch u.a. Fast Roaming. Die Authentifizierung läuft hier nicht über Pre-Shared Key allein auf dem Access Point ab, sondern über einen 802.1x/Radius-Server. Clients können zwischen Access Points wechseln, ohne Netzwerkverbindung zu unterbrechen.

Begrifflichkeiten

Um das WPA2-Verfahren besser verstehen zu können, ist es wichtig die dafür notwendigen Schlüssel zu erläutern. Bei WPA2 werden verschiedene Schlüssel verwendet, die auf synchroner Verschlüsselung aufbauen. Hierbei nutzten beide Seiten die gleichen Schlüssel für die symmetrische Verschlüsselung.

Pre-Shared Key

Bei diesem Key handelt es sich um einen von dem Administrator des Access Points oder Radius-Servers festgelegtes Passwort. Dieser Schlüssel wird als Shared Secret betrachtet und wird dem Benutzer über andere Wege mitgeteilt, damit er diesen für die Anmeldung am Client verwenden kann und so zu dem drahtlosen Netzwerk verbindet.

Pairwise Master Key

Der Pairwise Master Key, kurz PMK, wird über die Password Based Key Derivation 2 (PBKDF2) Funktion generiert. Die Abläufe unterscheiden sich in den beiden Operations-Modi:

  • Personal Mode: In diesem Modus wird der Handshake direkt zwischen Access Point und Client abgewickelt. Dabei kommt der Netzwerkname des Access Points (ESSID) und die Länge des ESSID für Erzeugung des PSK zum Einsatz.
  • Enterprise Mode: Der Authentifizierungsserver stellt den PMK dem Access Point bereit. Die verwendeten Paramter sind dann wie beim Personal Mode.

Dieser Key dient als Autorisierung zur Nutzung des 802.11 Mediums. Aus dem Pairwise Master Key wird anschließend der Pairwise Transient Key (PTK) abgeleitet.

Pairwise Transient Key

Der Pairwise Transient Key, kurz PTK, wird beim 4-Wege-Handshake über eine Pseudo Random Function berechnet und ist 512 bit lang. Dieser Key wird für die Unicast-Kommunikation verwendet, bei der nur zwei Clients mit einander kommunizieren. Bei Bedarf kann der PTK nach einer Stunde erneuert werden.

Aus dem PTK werden weitere Schlüssel abgeleitet, die zur Verschlüsselung der Nachrichten gebraucht werden. Dafür wird der Pairwise Transient Key aufgeteilt und die einzelnen Bitsegmente zu eigenen Schlüsseln abgeleitet.

Key Confirmation Key (KCK)

Der Key besteht aus 128 Bit, die aus den Bits 0 bis 128 des PTK stammen. Der KCK wird zur Berechnung des Message Integrity Codes (MIC) beim 4-Wege-Handshake verwendet.

Key Encryption Key (KEK)

Dieser Key wird aus den Bits 128 bis 256 abgeleitet. Er soll die Vertraulichkeit während des 4-Wege-Handshakes sicherstellen und wird zur Verteilung des Group Transient Keys benutzt.

Temporary Key (TK)

Der Key besteht aus den darauffolgenden 128 Bit und dient zur Verschlüsselung des Datenverkehrs zwischen dem Client und dem Access Point.

Im TKIP Modus wird der Temporal Key (TK) des PTK weiter unterteilt in einen 128-bit Encryption Key sowie

64-bit Message Integrity Check (MIC) key:

  • Temporary MIC Key AP (MIC Tx): 64 bit lang, dient der Generierung der MIC für AP-seitige Pakete
  • Temporary MIC Key Client (MIC Rx) 64 Bit lang und dient zur Generierung der MIC für die Client-seitigen Pakete

Groupwise Transient Key

Der GTK wird zwar wie der PTK im 4-Wege-Handshake berechnet, dient aber im Gegensatz dazu für Multicast-Kommunikation zwischen mehreren Clients. Die GNonce wird durch den Server zufällig gewählt und stellt so sicher, dass jeder Client einen eigenen GTK erhält.

Authentification und Association

Nachdem die Schlüssel und ihre Grundfunktionen erläutert sind, kann die eigentliche Verbindung zu einem WLAN beleuchtet werden. In einem ersten Schritt startet der Client den Open Authentication Prozess, indem er einen Unicast Frame mit Authentication Request an den AP sendet. Der AP schickt ein Unicast Frame als Authentification Response als Antwort.

Danach sendet der Client eine Association Request mit weiteren Informationen übDatenraten und weiteren Informationen. Wenn der AP diese Session annimmt, dann reagiert er mit einem Assiciation Response. Die Unicast Pakete müssen jeweils von Gegenseite acknowledge werden, wie alle vorherigen auch. Bei einem freien Netzwerk ohne Verschlüsselung würde man bereits erfolgreich angemeldet sein. An diesem Punkt ist der Client authentifiziert und assoziiert.

WPA2 Association

Abbildung 2: Der Aublauf der Authentification und Association (Key Reinstallation Attacks: Forcing Nonce Reuse in WPA2 Paper, Abbildung 2)

Ablauf der Handshakes

Da WPA2 auf Verschlüsselung setzt, muss der 4-Wege-Handshake verwendet, den wir nachfolgend erläutern. Dieser spielt eine essenzielle Rolle bei dem KRACK-Angriff und muss entsprechend beleuchtet werden. Seine Hauptfunktion liegt darin, dem Access Point und Client beim Erstellen des Pairwise Transient Keys und Groupwise Transient Keys zu helfen. Die Vorgaben sind in IEEE 802.11I/r ratifiziert. Erst wenn der 4-Wege-Handshake erfolgreich vollzogen ist, kann eine verschlüsselte Kommunikation stattfinden und der Client in dem Netzwerk an einem Port eingebucht werden. Der 4-Wege-Handshake nutzt das Extensible Authentication Protocol over Lan (EAPOL) und Schlüssel werden dynamisch erstellt.

WPA2 4-Way-Handshake

Abbildung 3: Der Aublauf des Verbindungsaufbaus (Key Reinstallation Attacks: Forcing Nonce Reuse in WPA2 Paper, Abbildung 2)

Der 4-Wege-Handshake

  1. Der Client bekommt vom Access Point eine zufällig generierte ANonce mit einem Replay Counter r in Msg1(r,ANonce).
  2. Danach generiert der Client auch eine Zufallszahl, die SNonce und berechnet dann den Pairwise Transient Key (PTK). Danach schickt der Client die SNonce als Msg2(r,SNonce) an den AP. Diese Nachricht enthält erstmals einen Message Integrity Code (MIC).
  3. Nach Erhalt der Nachricht kann der Access Point ebenfalls den PTK berechnen und danach die vom Client geschickte MIC validieren.
  4. Anschließend schickt der AP den Group Transient key (GTK) mit einer GTK-Sequenznummer und dem passenden MIC in Msg3(r+1,GTK) an den Client. Der GTK ist dabei mit dem KEK verschlüsselt.
  5. Nach Erhalt der Nachricht kann der Client den Erhalt des GTK bestätigen, indem er die GTK-Sequenznummer mit der passenden MIC an den AP mit Msg4(r+1) sendet. Der AP validiert die MIC und kann bei Erfolg des Vorgangs den GTK sichern.

Protokolle für Vertraulichkeit und Integrität

Für die Wahrung der Vertraulichkeit der Daten sieht IEEE 802.11i zwei Protokolle vor. Das erste ist das Temporal Key Integrity Protokol (TKIP), welches zum Zeitpunkt der Veröffentlichung des Papers als unsicher galt. Beim zweiten handelte es sich um das (AES-)CCMP, das durch das Galois/Counter Mode Protocol (GCMP) ergänzt wurde.

CCMP basiert dabei auf AES Cipher Operating in CCM mode (Counter Mode with CBC-MAC). Dieser ist ein Authenticated Encryption with Associated Data (AEAD) Algorithmus und solange sicher, bis die Nonce und damit der Keystream sich wiederholt.

GCMP nutzt AES-GCM im Counter Mode zur Verschlüsselung, der ebenfalls ein AEAD-Algorithmus ist. Das setzt voraus, dass eine Nonce und damit der Keystream zum Verschlüsseln nicht wiederverwendet wird.

Group Key Handshake

Der Authenticator (Access Point) aktualisiert den Group Key periodisch und muss diesen dann an die Clients verteilen. Dies passiert über den Group Key Handshake. Dabei schickt der Authenticator eine Nachricht mit dem neuen durch KEK verschlüsselten GTK, wobei die Vertraulichkeit der Daten über das entsprechende Protokoll (CCMP, TKIP) gewahrt wird.

Anmerkung: Multicast-Nachrichten werden vom Client an den AP also Unicast-Nachricht geliefert und der AP verteilt sie als Broadcast oder Multicast Frame an die umliegenden Clients.

WPA2  Group Key Handshake

Abbildung 4: Der Aublauf des Verbindungsaufbaus (Key Reinstallation Attacks: Forcing Nonce Reuse in WPA2 Paper, Abbildung 2)

Zustandsautomat beim Client

Die Ratifizierung in 802.11i beschreibt nicht, wie man einen Zustandsautomaten, wie in Abbildung 5 dargestellt, implementiert.

Es ist aber vorgesehen, dass der AP die Nachricht 1 oder 3 erneut sendet, falls die Nachricht 2 oder 4 nicht durch Client zugestellt wird. Es kann durchaus sein, dass die Nachricht 1 oder 3 beim Client aufgrund von Noise/Interference nicht ankommt. Für diesen Fall ist dieser Vorgang vorgesehen.

Beim Neuversand der Nachricht wird der Replay Counter durch den AP zwangsläufig hochgesetzt. Der Replay Counter wird als Sequenznummer für die Kommunikation genutzt und jeweils inkrementiert. Pakete, die einen unpassenden Replay Counter aufweisen, werden verworfen.

Die Forscher haben dabei zwei Schwachstellen entdeckt und ausgenutzt:

  1. Der AP sendet Nachricht 1 oder 3, falls keine Antwort erhalten und der Client muss auf dieses erneute Senden entsprechend der 802.11r Norm reagieren.

  2. Der Client installiert den PTK nach Verarbeitung und versendet die Nachricht 3 an den AP. (wie in 802.11r Norm gewollt)

WPA2 GTK Handshake

Abbildung 5: Zustandsautomaten beim Client nach IEEE 802.11i (Key Reinstallation Attacks: Forcing Nonce Reuse in WPA2 Paper, Abbildung 3)

Teil 2: KRACK Angriff auf WPA2

In Teil zwei werden die im Key Reinstallation Attacks: Forcing Nonce Reuse in WPA2 Paper offengelegten Angriffsvektoren beleuchtet und der Angriff im Detail erklärt.

Dieser Artikel ist Teil einer schriftliche Ausabreitung, die im Rahmen der IT-Security-Vertiefung "Spezielle Verfahren der IT-Sicherheit" bei Prof. Felke an der Hochschule Emden-Leer entstanden.