240 likes | 402 Views
Fakultät für Elektrotechnik und Informationstechnik Lehrstuhl für Kommunikationstechnik Prof. Dr.-Ing. Rüdiger Kays. stud. ing. Martin Karger martin@karger.ws. IEEE 802.11 - WEP: Sicherheit von WLAN, Funktion und Designschwächen. Funktion Wofür braucht man eine Verschlüsselung?
E N D
Fakultät für Elektrotechnik und Informationstechnik Lehrstuhl für Kommunikationstechnik Prof. Dr.-Ing. Rüdiger Kays stud. ing. Martin Karger martin@karger.ws IEEE 802.11 - WEP: Sicherheit von WLAN, Funktion und Designschwächen
Funktion • 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
Wofür Verschlüsselung im WLAN? 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?
Transmitted Data 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 Was ist WEP?
KSA(K) PRGA(K) XOR Ciphertext Message XOR KSA(K) PRGA(K) Sender K=IV.SK Message Ver- und Entschlüsselung mit WEP Empfänger K=IV.SK Ver- und Entschlüsselung mit WEP
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 Prinzipille Designschwächen Grundlegende Designschwächen
Risiko des Keystream Reuse C1= P1xorRC4(IV,SK) C2 = P2xor RC4(IV,SK) C1xorC2 = (P1 xor RC4(IV,SK)) xor (P2xor RC4(IV,SK)) = P1xor 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 Keystream Reuse • Mit statistischen Methoden können die Plaintextnachrichten getrennet werden. Angriffsmöglichkeiten
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) xorc(∆)> = RC4(IV,SK) xor <M', c(M xor∆)> = RC4(IV,SK) xor <M', c(M')> Message Modification
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 alserste eine Attacke auf WEP beschrieben, die auf Weak-Keys basiert FMS Attacke / Weakness of RC4 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
0 1 2 ....... 255 Das heißt: Initialisation: Scrambling: 5 42 23 ....... 6 Statetable
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
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. Das heißt:
Duration / ID Address 1 Frame Control Address 2 Address 3 Sequence Control Address 4 Frame Body FCS IV KeyID Encrypted Data SNAP Data ICV Wörterbuchattacke SNAP-Header: enthält für Pakete vom Typ IP und ARP den Wert: 0xAAAA03000000 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
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
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
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