zurück zum Artikel

WLAN-Hacking en passant

Dominik Blunk, Dr. Andreas Steffen

Dass sich die WLAN-Verschlüsselung knacken lässt, wenn man den Verkehr stundenlang belauscht, ist längst bekannt. Kaum ein Funknetz-Betreiber rechnet jedoch damit, dass dazu oft schon ein einziges, im Vorbeigehen aufgeschnapptes Paket genügt.

Die Studenten Dominik Blunk und Alain Girardet haben im Rahmen ihrer Diplomarbeit [1] an der Züricher Hochschule Winterthur (ZHW) das Tool WepAttack entwickelt. Das Programm realisiert eine Wörterbuchattacke gegen WEP-Schlüssel, die Tim Newsham im Jahr 2001 theoretisch beschrieben hat [2]. WepAttack läuft unter Linux und kann im Quelltext von sourceforge.net runtergeladen werden [3].

Die Standardangriffe auf verschlüsselte Funknetze nutzen einen Fehler im Design der WLAN-Verschlüsselung WEP aus und sammeln sogenannte schwache Initialisierungsvektoren (siehe WEP-Verschlüsselung). Damit einen beliebigen 104 Bit langen WEP-Schlüssel zu knacken, dauert in der Praxis bei spärlichem Netzwerkverkehr Tage oder sogar Wochen.

WepAttack wählt einen völlig anderen Ansatz. Er beruht darauf, dass viele Benutzer schwache Passwörter benutzen. Schwach ist jedes Passwort, das in einem Wörterbuch zu finden ist oder sich aus einem Wörterbucheintrag ableiten lässt. Das Programm probiert systematisch Millionen von möglichen Passwörtern durch und versucht, damit das verschlüsselte WEP-Paket zu dechiffrieren. Liefert eines den Klartext, ist WepAttack am Ziel.

Zwei Eigenheiten im Aufbau der WLAN Pakete ermöglichen es, schnell und eindeutig festzustellen, ob man das richtige Passwort gefunden hat. Bei eingeschalteter WEP-Verschlüsselung enthält jedes Paket eine Prüfsumme über die Nutzdaten: den Integrity Check Value (ICV). Ist diese CRC-32-Checksumme nach der Entschlüsselung korrekt, hat man mit sehr hoher Wahrscheinlichkeit den richtigen Schlüssel gefunden.

Da WepAttack für diesen Test zunächst das gesamte Paket entschlüsseln muss, benötigt diese Attacke sehr viel Rechenzeit. Dank der zweiten Eigenheit kann man sich diesen Aufwand bei den meisten falschen Passwörtern sparen. Denn jedes WLAN-Paket enthält einen sogenannten SNAP-Header (Sub Network Access Protocol), dessen erste sechs Bytes für IP- oder ARP-Pakete immer denselben Wert haben: AA AA 03 00 00 00. Kommt beim Entschlüsseln des ersten SNAP-Bytes nicht AA heraus, war der Schlüssel falsch. So kann WepAttack einen Großteil der falschen Schlüssel mit wenigen Rechenoperationen verwerfen und muss nur selten das ganze Paket entschlüsseln. Diese Optimierung verkürzt die insgesamt benötigte Rechenzeit auf etwa die Hälfte.

Zum Aufzeichnen der verschlüsselten Pakete eignet sich im Prinzip jeder Netzwerk-Sniffer, der Daten im PCAP-Format abspeichern kann. Dazu gehören Kismet, tcpdump oder Ethereal. Unter Umständen ist jedoch ein Patch erforderlich, der verhindert, dass das Prüfsummen-Feld abgeschnitten wird. Das Linux-Tool Kismet zeigt sofort an, wenn es für ein Funknetz ein verschlüsseltes Paket aufgefangen hat und erleichtert damit das aktive Sammeln beträchtlich.

Man kann WepAttack mit beliebig umfangreichen Wörterbüchern füttern wie sie beispielsweise [7] bereitstellt. Des weiteren lässt es sich mit Passwort-Cracker-Tools wie John the Ripper koppeln, die über Regeln auch modifizierte Wörter testen. Dazu gehören Variationen der Groß- und Kleinschreibung und das Einfügen von Sonderzeichen. Allerdings wächst auch der Rechenaufwand proportional mit der Anzahl der Regeln.

Auf einem Pentium-4-System mit 1,8 GHz testet WepAttack circa 25000 Wörter pro Sekunde. Daraus lässt sich leicht die erforderliche Zeit für einen Brute-Force-Angriff auf sämtliche 40- respektive 104-Bit-Schlüssel hochrechnen:

WEP-Schlüssel   40 Bit(5 Zeichen)   104 Bit(13 Zeichen)

ASCII(8 Bit) 1.4 Jahre 2.5*10^19 Jahre
Base64(6 bit) 12 Stunden 3.8*10^11 Jahre

Eine Brute-Force-Attacke auf einen 104-Bit-Schlüssel ist nicht durchführbar und selbst für einen 40-Bit-Schlüssel müssten schon mehrere Rechner parallel arbeiten, um innerhalb eines vernünftigen Zeitrahmens einen Treffer zu erzielen. Eine Wörterbuchattacke mit 2 Millionen Wörtern und 50 John-the-Ripper-Regeln dauert dagegen lediglich eine Stunde und führt trotzdem erstaunlich oft zum Ziel. In unseren Versuchen konnten wir mit WepAttack etwa 20**Prozent der WEP-verschlüsselten Funknetze knacken. Darunter fanden sich: "choieraient" (40 Bit, Keygen, 8 Min), "beauty" (104 Bit, MD5-Hash, 6 Min) und "schuetzenstra" (104 Bit, ASCII, 26 Min).

Um Wörterbuchattacken zu erschweren, muss man möglichst zufällige WEP-Schlüssel einsetzen. Dies erreicht man am besten, indem man dafür zufällige (Hexadezimal-)Zahlen verwendet (siehe Vom Passwort zum WEP-Schlüssel [1]). Gestattet das Interface keine direkte Hex-Eingabe, kann man sich mit Passwörtern behelfen, die sich aus zufälligen Kombinationen von Gross- und Kleinbuchstaben, Zahlen und Satzzeichen zusammensetzen.

Es bleibt natürlich die grundsätzliche Anfälligkeit von WEP gegen AirSnort-Angriffe. Um sich dagegen abzusichern, kann man sein WLAN als Virtual Private Network (VPN) mit PPTP oder IPSec einrichten [8]. Zur Zeit sind auch Bestrebungen im Gange, WEP abzulösen. Ein Übergangsstandard nennt sich Wi-Fi Protected Access (WPA) und arbeitet mit kurzfristigen WEP-Schlüsseln, die zum Beispiel jede Stunde neu generiert werden. WPA erfordert jedoch einen speziellen Server für die Benutzer-Authentifizierung (zumeist ein Radius-Server), und kommt damit für kleine Firmen und Heimnetze kaum in Frage.

Wired Equivalent Privacy (WEP) definiert im Rahmen des Standards IEEE 802.11 eine Verschlüsselung für Funknetze, die eine ähnliche Abhörsicherheit wie bei kabelgebundenen Netzen sicherstellen soll.

Aufbau eines verschlüsselten WLAN Pakets.

Das Grundprinzip wie WEP Pakete chiffriert illustriert das obenstehende Bild. Die Verschlüsselung erfolgt standardmässig mit dem RC4-Algorithmus der Firma RSA Security. RC4 ist ein sogenannter Stromverschlüselungsalgorithmus (Stream-Cipher), der den Klartext über XOR (exklusives oder) mit einer Folge von Pseudo-Zufallszahlen verknüpft. Zur Entschlüsselung genügt es, den Chiffretext mit denselben Pseudo-Zufallszahlen erneut über XOR zu verknüpfen.

Den Zahlenstrom für die XOR-Verknüpfung liefert ein Pseudo-Zufallszahlengenerator, der mit dem RC4-Schlüssel initialisiert wird. Da der gleiche Schlüssel immer die gleiche Zahlenfolge liefert, kann der Empfänger damit die Pseudo-Zufallszahlen reproduzieren und das Paket entschlüsseln.

Der Generator liefert zwar einen beliebig langen Datenstrom, mit dem man auch beliebig viele Pakete verschlüsseln könnte. Über die unzuverlässige Funkstrecke können jedoch Pakete verloren gehen, was zur Folge hätte, dass Sender und Empfänger aus dem Rhythmus geraten -- sie also plötzlich unterschiedliche Sequenzen aus dem Zahlenstrom verwenden. Deshalb muss WEP den Generator für jedes Paket neu initialisieren. Da aber die Verschlüsselung nicht jedesmal mit denselben Pseudozufallszahlen erfolgen darf, genügt der WEP-Schlüssel für diese Initialisierung nicht.

Aus diesem Grund enthält jedes Paket einen eigenen, 24-Bit-langen Initialisierungsvektor (IV). Die Initialisierung des Generators erfolgt dann mit einer Kombination aus IV und WEP-Schlüssel. Damit der Empfänger seinen Generator gleich initialisieren kann, muss der IV in jedem Paket im Klartext enthalten sein.

Die AirSnort-Attacke beruht darauf, dass manche IVs Rückschlüsse auf den verwendeten WEP-Schlüssel erlauben [4]. Diese bezeichnet man als schwache IVs. Mit einer ausreichenden Zahl schwacher IVs lässt sich der WEP-Key ermitteln. Airsnort benötigt für einen 104-Bit-Schlüssel typischerweise 3000 bis 5000, die es auf voll ausgelasteten Netzen meist nach drei bis fünf Stunden gefunden hat. Den WEP-Schlüssel liefert es dann allerdings ohne weitere Rechnerei direkt frei Haus.

Der Standard IEEE 802.11 erlaubt es außerdem, in einem Netzwerk vier verschiedene WEP-Schlüssel zu verwenden. Das Key-ID-Feld teilt dann der Gegenstelle mit, mit welchem sie das WLAN-Paket entschlüsseln kann. In der Praxis kommt in einem Netzwerk meistens nur ein einziger WEP-Schlüssel zum Einsatz.

Es gibt verschiedene Eingabe-Möglichkeiten für WEP-Schlüssel, die zum Teil Passwörter auch unterschiedlich in die tatsächlich verwendeten Schlüssel umsetzen. Mittlerweile orientieren sich jedoch immer mehr an den Vorgaben von Windows XP.

Aus 5 beziehungsweise 13 ASCII-Zeichen wird direkt der 40- oder 104-Bit-Schlüssel gebildet. Dies ist die Standardeingabe von Windows XP, das die Konfiguration von WLAN-Karten herstellerübergreifend unterstützt. Diese Art der Schlüsselbildung schränkt jedoch den Schlüsselraum ein, da nur über die Tastatur erreichbare Zeichen vorkommen können.

WEP-Schlüsseleingabe bei Windows XP (Service Pack 1)

Manche Hersteller verwenden anstelle des direkten ASCII-Mappings einen festen Algorithmus, der aus dem Passwort einen binären WEP-Schlüssel generiert. Damit können im WEP-Key alle 256 Zeichen vorkommen. Der tatsächlich abzusuchende Schlüsselraum vergrößert sich dadurch jedoch nur scheinbar. Denn sobald die Abbildungsfunktion bekannt ist, kann sich ein Angriff wieder direkt gegen die Klartext-Passwörter mit eingeschränktem Zeichenvorrat richten.

So verwenden beispielsweise Siemens-Accesspoints zum Erzeugen der 40-Bit-Schlüssel eine sogenannte KEYGEN-Funktion, welche die Zufallsfunktion rand() unter Windows nachahmt. 104-Bit-Schlüssel werden hingegen durch Abschneiden des 128 Bit langen MD5-Hash-Werts des Klartext-Passwortes gebildet. WepAttack kennt beide Funktionen und kann auch damit erzeugte WEP-Schlüssel über die Wörterbuchattacke aufspüren.

Zudem bildet die Keygen-Funktion manche Passwörter auf denselben WEP-Schlüssel ab, was die Variationsmöglichkeiten weiter einschränkt. Das größte Handicap dieser Funktionen ist jedoch, dass sie die Zusammenarbeit von Produkten verschiedener Hersteller erschweren.

Oft ist auch die Möglichkeit vorhanden, den WEP-Schlüssel direkt im HEX-Format einzugeben. Diese allgemeine Eingabeform ist den leichter merkbaren Passwörtern schon deshalb vorzuziehen, weil man den gesamten Schlüsselraum nutzen kann. Wörterbuchattacken gegen Zahlenfolgen führen selten zum Erfolg, außer der Administrator verwendet solche mit besonderer Bedeutung wie "DEADBEEF", "AFFE" oder den eigenen Geburtstag.

[1] Dominik Blunk und Alain Girardet, WLAN War Driving [2], Diplomarbeit, Zürcher Hochschule Winterthur, Oktober 2002

[2] Tim Newsham, Cracking WEP Keys [3]

[3] WepAttack [4]

[4] Scott Fluhrer, Itsik Mantin, Adi Shamir, Weaknesses in the Key SchedulingAlgorithm of RC4 [5], August 2001

[5] AirSnort [6]

[6] Kismet [7]

[7] Wörterbücher: http://www.openwall.com/mirrors/ [8]

[8] John the Ripper [9]

[9] Andreas Steffen, Eigener Schlüsseldienst, VPNs und Zertifikate im Eigenbau, c't5/02, S. 220 [10]

[10] Jürgen Schmidt, Der Pförtner zum Netz, Ein IPSec-Gateway im Eigenbau, c't 10/03, S. 118 [11] (ju [12])


URL dieses Artikels:
https://www.heise.de/-270208

Links in diesem Artikel:
[1] #map-u3
[2] https://sites.zhaw.ch/~sna/DA/Sna6_2002.pdf
[3] http://www.lava.net/~newsham/wlan/WEP_password_cracker.ppt
[4] http://wepattack.sourceforge.net/
[5] http://www.drizzle.com/~aboba/IEEE/rc4_ksaproc.pdf
[6] http://airsnort.shmoo.com/
[7] http://www.kismetwireless.net/
[8] http://www.openwall.com/mirrors/
[9] http://www.openwall.com/john/
[10] https://www.heise.de/ratgeber/Eigener-Schluesseldienst-288142.html
[11] https://www.heise.de/hintergrund/Ein-IPSec-Gateway-im-Eigenbau-270188.html
[12] mailto:ju@ct.de