Samstag, 31. Juli 2010


Topthema

Donnerstag, 7. Juni 2007 | Topthema

About Security #108: Mobile Security — Wi-Fi Protected Access (WPA)

(Link zum Artikel: http://www.entwickler.de/php/kolumnen/036164)

Das von WPA genutzte Temporal Key Integrity Protocol (TKIP) nutzt verschiedene, aus einem Master Secret abgeleitete Schlüssel zur Verschlüsselung und Integritätssicherung. Die für die RC4-Verschlüsselung verwendeten Schlüssel werden für jedes zu sendende Paket neu berechnet, sodass die gegen WEP möglichen Angriffe fehlschlagen.

Die Initialisierungsvektoren (IV) von TKIP sind 56 Bit lang. Davon werden allerdings 8 Bit verworfen, um die in WEP zutage getretenen schwachen Schlüssel zu vermeiden. Der IV wird zur Optimierung der Rechenzeit in einen 16 Bit langen Lo-Teil und einem 32 Bit langen Hi-Teil aufgeteilt. Die Berechnung der für die RC4-Verschlüsselung verwendeten Schlüssel erfolgt in zwei Schritten. Der erste, rechenintensive Schritt berechnet aus dem Hi-Teil und dem Master Secret ein Zwischenergebnis. Der zweite Schritt berechnet daraus und aus den Lo-Teil des IV dann den RC4-Schlüssel. Der erste Schritt muss dadurch nur einmal für 65536 Pakete durchgeführt werden, erst danach ist eine Neuberechnung nötig.
Der Lo-Teil beginnt mit 0 und wird mit jedem gesendeten Datenpaket um 1 Bit erhöht. Der Empfänger verwirft alle Pakete mit einem bereits empfangenen IV, wodurch Replay-Angriffe effektiv verhindert werden.

N E U ! Security aktuell
Täglich aktuelle Security-Infos!

Integritätsprüfung

Anstelle (bzw. zusätzlich zu) der einfachen Prüfsumme des Integrity Check Value (ICV) von WEP wird ein 'Michael' genannter Message Integrity Check (MIC) verwendet. Dabei handelt es sich um einen 64 Bit langen Hashwert, in den außer den Daten auch die Quell- und Zieladresse einfließen. Er wird mit einem aus dem Master Secret abgeleiteten geheimen Schlüssel berechnet. Da die verwendete Hashfunktion relativ schwach ist, wurde eine Schutzfunktion in den Access Points implementiert: Beim Empfang von 2 Paketen mit falschem MIC-Wert innerhalb einer Sekunde werden alle Schlüssel für ungültig erklärt und die Verbindung für eine Minute gesperrt.

Authentifizierung

Für die Authentifizierung und die Verteilung des Master Secrets stehen zwei Verfahren zur Verfügung:

  • Enterprise Mode, WPA-Enterprise
    Ist ein Authentifizierungsserver, z.B. ein RADIUS-Server, vorhanden, wird der Client über das Extensible Authentication Protocol (EAP, RFC 3748) authentifiziert und anschließend ein individuelles, temporäres Secret verteilt.
  • Customer Mode, WPA-Personal, WPA-PSK
    Steht kein Authentifizierungsserver zur Verfügung, wird das Pre-Shared-Key-Verfahren (PSK, vorab getauschte Schlüssel) für die Authentifizierung verwendet. Der PSK ist 256 Bit lang und wird aus einer auf dem Access Point und allen Clients gespeicherten, zwischen 8 und 64 Zeichen langen Passphrase und dem SSID (Service Set Identifier) berechnet. Alternativ kann auch direkt ein 256-Bit-Wert als PSK eingegeben werden. Der PSK dient gleichzeitig als Master Secret.
    Die Sicherheit hängt entscheidend von Qualität und Geheimhaltung der Passphrase ab. Kann sie über einen Wörterbuchangriff ermittelt oder vom Angreifer auf andere Weise ausgespäht werden, hat dieser danach ungehinderten Zugriff auf das WLAN. Programme, die über einen Wörterbuchangriff auf die beim Schlüsselaustausch ausgetauschten Pakete offline das Master Secret ermitteln, existieren bereits. Zu kurze oder zu einfache Passphrasen können damit ermittelt werden.
Schlüsselaustausch

Nach erfolgreicher Authentifikation wird der Schlüsselaustausch zur Bildung der notwendigen Schlüssel gestartet.

About Security: Die komplette Serie

Sowohl Access Point als auch Client kennen bereits den so genannten 'Pairwise Master Key' (PMK) – entweder das individuelle temporäre Secret aus der EAP-Authentifizierung oder das aus dem PSK berechnete allgemeine Master Secret.

Beide erzeugen nun Zufallsdaten (Nonces). Der Access Point sendet seinen Nonce-Wert an den Client. Der berechnet aus dem PMK, seiner und der MAC-Adresse des Access Points sowie den beiden Nonces den 'Pairwise Transient Key' (PTK), aus dem die benötigten Schlüssel für RC4-Verschlüsselung und MIC-Berechnung abgeleitet werden. Der Client sendet dann seinen Nonce und dessen MIC-Wert an den Access Point.

Der Access Point berechnet nun analog zum Client ebenfalls den 'Pairwise Transient Key' (PTK). Dieser wurde daher niemals übertragen. Damit ist der 'Pairwise Key Handshake' abgeschlossen, es folgt der 'Group Key Handshake'.

Der Access Point überträgt nun den für die Verschlüsselung von Broadcast- und Multicast-Paketen verwendeten 'Group Transient Key' (GTK). Die Übertragung erfolgt durch den PTK geschützt, außerdem wird der MIC-Wert des GTK übertragen. Der Client antwortet mit dem mit dem PTK verschlüsselten empfangenen MIC. Stimmt der mit dem übertragenen Wert überein, wurde der GTK nicht manipuliert, und die verschlüsselte Kommunikation kann beginnen.

Client Access-Point

Kennt 'Pairwise Master Key' (PMK)
Erzeugt NonceC
Kennt 'Pairwise Master Key' (PMK)
Erzeugt NonceA
<------ NonceA -----------
Berechnet 'Pairwise Transient Key' (PTK)
-- NonceC, MIC(NonceC) -->
Berechnet 'Pairwise Transient Key' (PTK)
Stellt 'Group Transient Key' (GTK) bereit
Verwendet PTK
<-- PTK( GTK, MIC(GTK) ) --
Verwendet PTK und GTP
----- PTK( MIC(GTK) ) ---->
 
Sichere Kommunikation möglich

In der nächsten Folge geht es um den aktuellen Sicherheitsstandard 802.11i, auch WPA2 genannt.

Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!

Carsten Eilers

About Security – Übersicht zum aktuellen Thema "Mobile Security – WPA, WPA2 und IEEE 802.11i"

Kommentare

Folgende Links könnten Sie auch interessieren