IEEE 802.11 - WEP: Sicherheit von WLAN, Funktion und Designschwächen stud. ing. Martin Karger martin@karger.ws Fakultät für Elektrotechnik und Informationstechnik Lehrstuhl für Kommunikationstechnik Prof. Dr.-Ing. Rüdiger Kays
Funktion Designschwächen Fazit Wofür braucht man eine Verschlüsselung? Was ist WEP? Wie funktioniert es? Ver- und Entschlüsselung mit WEP Designschwächen einige prinzipielle Schwächen Angriffsmöglichkeiten Keystream Reuse Message Modification FMS Attacke Wörterbuchattacke Fazit Vorschau
Funktion
Wofür Verschlüsselung im WLAN?
Wofür Verschlüsselung im WLAN?
Wofür Verschlüsselung im WLAN? Wired Equivalent Privacy Protocol Vertraulichkeit der Daten Zugangskontrolle Datenintegrität Wofür Verschlüsselung im WLAN?
40/104 Bit Static-Key (SK) + 24bit Initialisierungsvektor (IV) Was ist WEP? benutzt RC4-Cipher 40/104 Bit Static-Key (SK) + 24bit Initialisierungsvektor (IV) M: Message CRC XOR Keystream K = RC4(IV,SK) IV C: Ciphertext Transmitted Data Was ist WEP?
Ver- und Entschlüsselung mit WEP Sender K=IV.SK KSA(K) PRGA(K) Ciphertext XOR Message Ver- und Entschlüsselung mit WEP XOR Empfänger Message K=IV.SK KSA(K) PRGA(K) Ver- und Entschlüsselung mit WEP
Designschwächen
Grundlegende Designschwächen Prinzipille Designschwächen Im Standard 802.11b sind nur 40bit lange Schlüssel spezifiziert. Bei dieser Länge genügen bereits Bruteforce- Attacken Es wird nur ein Schlüssel pro Netz verwendet Kurzer IV, daraus folgt eine häufige Wiederholung des Schlüsselstroms. Weak IVs Grundlegende Designschwächen
Risiko des Keystream Reuse C1 = P1 xor RC4(IV,SK) C2 = P2 xor RC4(IV,SK) C1 xor C2 = (P1 xor RC4(IV,SK)) xor (P2 xor RC4(IV,SK)) = P1 xor P2. xor verknüpfte Plaintexte: Problem der Tiefe n. Für C1 bis Cn mit RC4(IV,SK) wird es einfacher das Problem zu lösen. P xor C = RC4(IV,SK) Risiko des Keystream Reuse
Rechenbeispiel zum Keystream Reuse Ein IV besteht aus 24bit. Damit können 224 bzw. 16 777 216 Werte dargestellt werden. Annahme: konstanter Datenstrom von 11Mbps; MTU 1500 Byte 11Mbps / (1500 Byte pro Paket x 8 bit pro Byte) = 916,67 Pakete / Sek. 16 777 216 IVs / 916,67 Pakete / Sek. = 18 302,42 Sek 18 302,42 Sek. / 60 Sek. / 60 Min. = 5.08 Stunden bis zur ersten IV-Kollision Keystream Reuse
Angriffsmöglichkeiten Angriffsmöglichkeiten Keystream Reuse Mit statistischen Methoden können die Plaintextnachrichten getrennet werden. Angriffsmöglichkeiten
C = RC4(IV,SK) xor <M,c(M)> Message Modification C = RC4(IV,SK) xor <M,c(M)> wir wollen aus C einen neuen Ciphertext C' erzeugen mit Plaintext M' = M xor ∆ C' = C xor <∆,c(∆)> = RC4(IV,SK) xor <M,c(M)> xor <∆, c(∆)> = RC4(IV,SK) xor <M xor ∆,c(M) xor c(∆)> = RC4(IV,SK) xor <M', c(M xor ∆)> = RC4(IV,SK) xor <M', c(M')> Message Modification
FMS Attacke / Weakness of RC4 Sourcecode nur unter Non-Disclosure Agreement verfügbar von RSA Data Security. Wurde jedoch 1995 anonym in die Cypherpunks-Mailingliste gepostet Analysen des Sourcecodes ergaben Schwächen im Key- Scheduling-Algoritmus (KSA), zuerst von David Wagner, Andrew Roos beschrieben Fluhrer, Mantin, and Shamir haben als erste eine Attacke auf WEP beschrieben, die auf Weak-Keys basiert Weakness of RC4
Key Scheduling Algorithm KSA(K) Initialization: 1 for i = 0 ... N - 1 2 S[i] = i 3 j=0 Scrambling: 4 for i = 0 ... N - 1 5 j = j + S[i] + K[i mod l] 6 Swap(S[i], S[j]) l ist die Anzahl der Wörter von K (also l = 128 oder 64bit) Key Scheduling Algorithm
Das heißt: Initialisation: ....... 2 1 255 Scrambling: 5 42 23 ....... 255 Scrambling: 5 42 23 ....... 6 Statetable
Key Scheduling Algorithm Scrambling: 4 for i = 0 ... N - 1 5 j = j + S[i] + K[i mod l] 6 Swap(S[i], S[j]) Die Wahrscheinlichkeit, dass ein Element von j indiziert wird ist: P = 1 – (255/256)255= 0.631 Bei einem Key von K Bytes, und E < K, existiert eine 37%ige Wahrscheinlichkeit, dass das Element E der Statetable nur von den Elementen 0 ... E abhängt. Key Scheduling Algorithm
Das heißt: Es gibt eine relativ große Anzahl von Schlüsseln, bei denen eine hohe Anzahl von Bits im Anfang des Keystreams von nur wenigen Bits des geheimen Schlüssels abhängen. Man kann also von dem Keystream auf den Schlüssel schließen. Der Keystream ist jedoch noch xor mit dem Plaintext verknüpft. Wenn Teile des Plaintextes bekannt sind kann man dieses Problem lösen.
Notwendige Teile des Datenpakets: IV Schlüsselindex (KeyID) Wörterbuchattacke Duration / ID Address 1 2 3 Sequence Control 4 Frame Body FCS Encrypted Data KeyID IV SNAP-Header: enthält für Pakete vom Typ IP und ARP den Wert: 0xAAAA03000000 Data SNAP ICV Notwendige Teile des Datenpakets: IV Schlüsselindex (KeyID) verschlüsselte Daten Wörterbuchattacke
Überprüfung des Passworts: Nur das erste Byte der Encrypted Data (der SNAP-Header) wird mit dem Schlüssel versucht zu decodieren. Das Ergebnis sollte 0xAA sein. Falls richtig entschlüsselt wurde wird ein zweiter Test mit dem Schlüssel auf das gesamte angewendet und anschließend mit dem CRC überprüft. Wörterbuchattacke
Kann verhältnismäßig lange dauern bis sich IVs wiederholen Keystreamreuse Kann verhältnismäßig lange dauern bis sich IVs wiederholen man braucht mehrere Pakete Berechnung startet erst, sobald genügend Daten vorhanden sind Message Modification: Aktive Attacke Realisierung relativ umständlich Nutzen eher gering keine Implementierung bekannt Gegenüberstellung
Berechnung startet erst, sobald genügend Daten vorhanden sind Weak IV / FMS 100 – 1000MB Daten Berechnung startet erst, sobald genügend Daten vorhanden sind Wörterbuchattacke: 1 Paket nötig Attacke kann sofort gestartet werden Dictionary ist nötig Gegenüberstellung
WEP ist offensichtlich unsicher. Fazit WEP ist offensichtlich unsicher. Wie bekomme ich es sicher? VPN auf Nachbesserungen (Verbesserungen?) des Standards warten (WPA, ...) ansonsten alles aus WEP/AP herausholen was drin ist: 104 Bit Verschlüsselung keine SSID broadcasten keine Passwortgenerierung nutzen oft WEP-Keys wechseln Mac Filter Fazit