WLAN-Sicherheit

Transcription

WLAN-Sicherheit
WLAN-Sicherheit
Markus Oeste∗
RWTH Aachen
Kurzdarstellung
In der hier vorliegenden Ausarbeitung werden die aktuellen Mechanismen zur Absicherung und sicheren Nutzung von Funk-Netzwerken (WLANs) behandelt. Ein WLAN
ist sicher, wenn nur ein ausgewählter Personenkreis Zugriff
zu diesem Netzwerk hat und der Funkdatenverkehr kryptographisch sicher ist; also wenn kein Angreifer irgendeine nützliche Information aus dem abgehörten Funkdatenverkehr ziehen kann. Der Zugriff zum WLAN wird hier
durch die Authentifizierung mittels gemeinsame Sitzungsschlüssel (PSK) behandelt. Es werden die gängigen WLANVerschlüsselungverfahren WEP, WPA und WPA2 in ihrer
Funktionsweise beschrieben und auf Tauglichkeit zur Absicherung eines WLANs untersucht. Dabei wird gezeigt, dass
nur WPA und WPA2 bei vernünftiger Wahl eines Sitzungsschlüssels ausreichende Sicherheit bieten. WEP dagegen
kann durch die hier vorgestellten Angriffe völlig ausgehebelt werden.
1. Einleitung
In einer Zeit der stetig steigenden Nachfrage nach mobilen Kommunikationsdiensten ist das WLAN (Wireless Local Area Network) nicht mehr wegzudenken. Problematisch
dabei ist, dass die Kommunikation zwischen zwei Kommunikationspartnern von einem passiven Lauscher mitgeschnitten oder von einem aktiven Lauscher beeinflusst werden kann. Ein passiver Lauscher schneidet demnach nur
Netzwerkverkehr mit, und ein aktiver Lauscher sendet zudem modifizierte Datenpakete, um die belauschte Kommunikation zu beeinflussen. Daher müssen Sicherheitsvorkehrungen getroffen werden, um das Abhören und Verändern
von Informationen zu unterbinden.
∗ Dieser Beitrag entstand im Rahmen des Konferenzseminars Verläss”
liche Verteilte Systeme“, das im Wintersemester 2005/2006 vom Lehr- und
Forschungsgebiet Informatik 4 der RWTH Aachen durchgeführt wurde.
1.1. Sicherheitsanforderungen
Bevor die aktuellen Sicherheitsmechanismen für
WLANs auf Ihre Sicherheit hin untersucht werden können,
muss erst einmal geklärt werden, welche Sicherheitsanforderungen ein WLAN erfüllen sollte. Ein WLAN sollte in
Anlehnung an die kryptographischen Schutzziele folgende
Sicherheitsanforderungen erfüllen:
• Vertraulichkeit: Die übertragenen Daten dürfen nur
vom Sender und Empfänger gelesen werden können.
• Integrität: Es darf nicht möglich sein, den Inhalt einer
gesendeten Nachricht zu verändern.
• Authentisierung: Der Absender einer Nachricht muss
seine Identität gegenüber dem Empfänger nachweisen.
1.2. Geschichtlicher Überblick
Der 1997 verabschiedete Standard 802.11 des IEEE (Institute of Electrical and Electronics Engineers) legt unter anderem die Sendeleistung, das Frequenzspektrum und
die Sicherheitsmechanismen der Funkübertragung im Funknetzwerk fest. Die Sicherheitsmechanismen sind durch das
darin definierte WEP-Protokoll festgelegt. Nach dem Bekanntwerden der Schwachstellen von WEP im Jahr 2001
(vgl. [12]), hat das IEEE zur Erfüllung der Sicherheitsanforderungen, die Erweiterung 802.11i erarbeitet, welche am
24. Juni 2004 verabschiedet wurde.
Im Jahre 1999 entstand die Wi-Fi-Alliance, eine Organisation bestehend aus über 200 Unternehmen, die Produkte
auf dem 802.11 basierenden Standard zertifiziert. Um die
bekannten Sicherheitslücken zu beseitigen, definierte die
Wi-Fi-Alliance im Oktober 2002 den Quasi-Standard WPA
(Wi-Fi Protected Access, [6]), der eine Teilmenge der (damals in einer Vorabversion erhältlichen) 802.11i Erweiterung des IEEE darstellt und auf bestehender Hardware eingesetzt werden konnte.
Da WPA von Anfang an nur als eine sichere Übergangslösung für bestehende WLAN-Hardware gedacht war,
hat die Wi-Fi-Alliance 2004 den Nachfolgestandard WPA2
definiert. WPA2 implementiert die grundlegenden Sicherheitsstandards der 802.11i Erweiterung und setzt damit zur
Ein WEP-Datenpaket besteht dann aus dem IV konkateniert
mit dem Chiffretext: IV k C.
effizienten Verschlüsselung auch neue WLAN-Hardware
voraus.
Der 802.11 Standard bietet zur Kommunikation zwischen zwei Teilnehmern den Ad-hoc Modus und den Infrastrukturmodus. Bei dem Ad-hoc Modus kommunizieren
zwei oder mehr sich in Reichweite befindende Teilnehmer
miteinander, ohne dass eine Basisstation (Access Point) erforderlich ist. Im Infrastrukturmodus kommunizieren die
Teilnehmer über eine Access Point miteinander. Im weitern
Verlauf wird von der Kommunikation im Infrastrukturmodus ausgegangen.
2.1.3
Der Empfänger teilt das empfangene WEP-Datenpaket in
den Initialisierungsvektor IV (bestehend aus den ersten 24
Bit) und den Chiffretext C. Nun kann er, wenn er den SK
kennt, die Pseudozufallszahl RC4(IV k SK) = Z berechnen. Mit Z kann er nun C ⊕ Z = P ⊕ Z ⊕ Z = P
bestimmen. Jetzt wird P in die Nachricht M und den übermittelten CRC-Wert CRC(M ) aufgeteilt. Wenn übermittelter und selbst berechneter CRC-Wert der Nachricht übereinstimmen, wird das WEP-Datenpaket akzeptiert.
2. Sicherheitsprotokolle
Im folgenden werden WEP, WPA und WPA2 beschrieben und im Bezug auf ihre Sicherheit untersucht.
2.1.4
Authentifizierung
Als Authentifizierung bietet WEP die Open System Authentication und die Shared Key Authentication. Bei der Open
System Authentication wird jedem anfragenden Client Zugriff auf das WLAN gewährt. Somit findet hierbei keine
wirkliche Authentisierung statt und damit ist diese Art der
Authentifizierung unbrauchbar. Die Shared Key Authentication erfolgt über ein Challange-Response Protokoll, bei
dem der Client dem Access Point beweist, dass er den
WLAN-Schlüssel, den sog. Shared Key (SK), kennt.
Die Shared Key Authentication setzt voraus, dass der SK
vorher bei allen Clients und bei dem Access Point hinterlegt
wurde.
2.1.2
Schwächen von WEP
Die größte Schwäche von WEP ist, dass das Generieren der
Pseudozufallszahl RC4(IV k SK) = Z mit einem teilweise bekannten Funktionswert durchgeführt wird: Der IV
besteht bei jedem WEP-Datenpaket aus den ersten 24-Bit
(im Klartext). Der SK besteht wahlweise aus den restlichen
40, 104 oder 232 Bit. Somit hat ein WEP-Datenpaket in
der Summe eine größe von 64, 128 oder 256 Bit. RC4 verwendet den sog. Key Scheduling Algorithmus (KSA) um
eine Pseudozufallszahl zu erzeugen und damit Permutationen und XOR-Berechnungen auf 8-Bit Blöcke der Eingabe
durchzuführen. Die Eingabe besteht hier aus IV k SK.
Da die ersten drei 8-Bit-Blöcke der Eingabe bekannt
sind (IV), können die ersten Schritte des KSA darauf simuliert werden und mit einer Wahrscheinlichkeit von 5% kann
ein unbekannter 8-Bit Block aus dem SK voraus gesagt
(statistisch analysiert) werden, wenn der IV eine bestimmte Form hat (vgl. [15]). Durch Wahrscheinlichkeitsamplifikation kann mit hinreichend vielen gesammelten WEPDatenpaketen der SK schrittweise rekonstruiert werden, unabhängig davon, welche SK-Länge verwendet wird (RC4
erlaubt eine variable Eingabenlänge von bis zu 2048 Bit).
Dazu reichen meist 500.000 - 5.000.000 WEP-Datenpakete
aus, die bei mittlerer Netzlast schon nach wenigen Minuten mitgeschnitten werden können (vgl. [15]). Zudem gibt
es auch noch die Möglichkeit, künstlich WEP-Datenpakete
zu erzeugen, indem ein mitgeschnittenes WEP-Datenpaket
immer wieder an den Access Point gesendet wird. Der Access Point antwortet dann üblicherweise mit einem WEPDatenpaket, welches einen neuen IV beinhaltet. Folglich
muss ein Angreifer in diesem Fall nicht darauf warten, dass
ein Client mit einem Access Point kommunizert, da er die
künstlich erzeugten WEP-Datenpakete mitschneiden kann,
um damit den SK zu berechnen.
Somit ist es einem passiven Lauscher möglich, nur
durch das Mitschneiden des Netzwerkverkehrs zwischen einem Access Point und einem Clent über einen bestimmten Zeitraum den SK zu bestimmen. Ein aktiver Lauscher
2.1. WEP
2.1.1
Entschlüsselung
Verschlüsselung
Für die zu verschlüsselnde Nachricht M wird der CRCWert (Cyclic Redundance Check) berechnet. Der CRCWert ist eine Prüfsumme, die mittels Polynomdivision und
einem Generatorpolynom auf M berechnet wird und die Integrität von M sicher stellen soll. Dieser CRC-Wert wird an
M angehängt (Symbol k), wodurch der Klartext P entsteht:
P := M k CRC(M ).
Nun wird eine Pseudozufallszahl Z verwendet, um diese
mittels XOR mit P zu verschlüsseln. Die Generierung von
Z und anschließende XOR-Berechnung wird von dem symmetrischen RC4-Algorithmus durchgeführt (vgl. [3]):
Z := RC4(IV k SK).
Der Chiffretext C ergibt sich nun aus
C := P ⊕ Z.
C-2
Zusammen mit dem IV1 ergibt sich ein gültiges, verschlüsseltes WEP-Datenpaket IV1 k C3.
kann durch das künstliche Erzeugen von WEP-Datenpakete
diesen Zeitraum verringern. Damit ist WEP komplett gebrochen und keine Sicherheitsanforderung wird von WEP
erfüllt.
Da die Identität im WLAN bei WEP durch die MACAdresse der verwendeten WLAN-Netzwerkkarte bestimmt
wird und diese per Treiber oder entsprechenden Tools
konfiguriert werden kann, ist es für einen Angreifer ein
Leichtes die Identität eines anderen Clients im WLAN
einzunehmen. Es gibt Programme, die das Mitschneiden
des Netzwerkverkehrs und die statistische Analyse zur
SK-Berechnung durchführung (z.B. Aircrack).
Als weitere Schwäche sei noch erwähnt, dass im WEPProtokoll keine Schlüsselverwaltung vorgesehen ist. Das
Ändern des SK ist lediglich durch das Änderen des SK
bei allen Clients und dem Access Point in den WLANEinstellungen möglich, was zur Folge hat, dass der SK
meist nur selten oder garnicht mehr geändert wird, wenn
das WLAN erst einmal konfiguriert ist.
Aufgrund dieser bekannt gewordenen gravierenden
Schwächen von WEP hat das IEEE die Erweiterung 802.11i
erarbeitet. Vor der endgültigen Verabschiedung ist allerdings der WPA-Quasistandard der Wi-Fi-Alliance herausgegeben worden, der eine Teilmenge der 802.11i Erweiterung darstellt und im folgenden genauer untersucht wird.
Weiterhin hat WEP noch eine Reihe weiterer Sicherheitslücken: Falls zu einem Chiffertext der zugehörige Klartext bekannt ist, können beliebige gültige Nachrichten ins
WLAN eingeschleust werden, ohne dass der SK bekannt
sein muss. Dies ist möglich, da für zwei WEP-Datenpakete
mit gleichen IVen IV1 = IV2 , aber unterschiedlichen Chiffretexten C1 6= C2 gilt:
C1 ⊕ C2
2.2. WPA
WLANs waren nicht mehr sicher und die Verabschiedung der Erweiterung 802.11i ließ noch auf sich warten.
Deswegen hatte die Wi-Fi-Alliance einige Vorschläge aus
der 802.11i Erweiterung für WPA entnommen, die eine Reihe von Anforderungen erfüllen mussten. Dazu zählten u. a.
= P1 ⊕ RC4(IV1 k SK)
⊕P2 ⊕ RC4(IV2 k SK)
= P1 ⊕ RC4(IV1 k SK)
⊕RC4(IV2 k SK) ⊕ P2
= P1 ⊕ P2
• Neue Verfahren sollten auch auf existierende
WEP/RC4-Hardware mit vertretbarem Mehraufwand
implementierbar sein, d.h. vorhandene Hardware
sollte in der Lage sein, WPA umzusetzen. Dazu sollte
lediglich eine Firmeware-Aktualisierung des Access
Points oder der jeweiligen WLAN-Netzwerkkarte
notwendig sein.
Da der IV nur 24 Bit lang ist, gibt es auch nur 224
Kominationen für einen IV. Somit ist die Wahrscheinlichkeit, zwei WEP-Datenpakete mit dem gleichen IV mitzuschneiden, schon nach 4823 WEP-Datenpaketen größer als
50%, wenn die IVen uniform zufällig gewählt werden (bekannt als das Geburtstagsparadoxon). Es gibt unterschiedliche Implementierung von WEP zur Wahl des IVs, meist
wird das inkrementelle Aufzählen ab einem bestimmten
Startwert verwendet.
Da P1 ⊕ P2 und somit auch M1 ⊕ M2 (durch Abschneiden der CRC-Bit) bekannt sind, kann mittels eines
w ∈ W , wobei W ein Wörterbuch ist, durch ausprobieren
ein M1 ⊕ M2 ⊕ w = M1 bestimmt werden, falls w = M2
gewählt wurde (falls w = M1 analog). Es muss also nur
überprüft werden, ob das berechnete M1 ∈ W ist. Wenn
dies der Fall ist, ist ein möglicher Kandidat für den Klartext
gefunden.
Ist zu einem Chiffretext C1 der zugehörige Klartext
M1 k CRC(M1 ) = P1 , so ist es möglich ein beliebiges
WEP-Datenpaket, ohne die Kenntnis des SK zu erzeugen.
Sei M3 k CRC(M3 ) = P3 der Klartext, für den der Chiffretext berechnet werden soll. Dann lässt sich C3 berechnen
als
• Das Schlüsselverwaltungsprotokoll TKIP (Temporal
Key Integrity Protocol) sollte zur Generierung von
temporäre Schlüsseln verwendet werden.
• Der MIC-Algorithmus (Message Integrity Check)
Michael sollte die Integrität zusätzlich zum CRCAlgorithmus gewährleisten.
• Die Möglichkeit sich per Pre-Shared Key (PSK) oder
Extensible Authentication Protokoll (EAP) zu authentifizieren sollte gegeben sein (vgl. [10]).
2.2.1
Funktionsweise von WPA
Der vorherige SK ist jetzt ein 8-63 stelliges ASCII-Passwort
(PSK), woraus intern der Pairwise Master Key (PMK) mittels einer Hash-Funktion (Password Key Derivation Function) berechnet wird. Diese Hash-Funktion bekommt als Eingabe den PSK, den WLAN-Netzwerkname (SSID) und die
Länge der SSID (vgl. [8]). Der PMK wird als das Geheimnis bezeichnet, das Client und Access Point kennen.
C3 := P1 ⊕ P3 ⊕ C1 .
C-3
ist.
Pairwise Master Key (PMK)
Da die Berechnung der Phase 1 aufwendig ist, wird sie
nur alle 216 = 65536 WPA-Datenpakete durchgeführt oder
wenn ein neuer PTK von einem der Kommunikationspartner angefordert wird (Rekeying). Während der Lo-Teil ab
einem bestimmten Startwert mit jedem WPA-Datenpaket
inkrementiert wird, wird der einmal berechnete Hi-Teil aus
Phase 1 immer wiederverwendet, solange der PTK gültig
ist. Wenn der Lo-Teil einmal durchlaufen wurde, muss zur
Berechnung der Phase 1 ein neuer PTK ausgetauscht werden, da sonst WPA-Datenpakete mit dem gleichen IV entstehen würden.
Das TKIP-Protokoll wird jetzt anstelle von WEP zur
Verschlüsselung verwendet.
Pairwise Transient Key (PTK)
EAPOL Key
EAPOL MIC Key
Session Key
Michael Key
Abbildung 1. TKIP Schlüsselerzeugung.
Der PMK kann nun auch per höherwertigem Protokoll
(EAP, vgl. [10]) vom Access Point an authorisierte Clients verteilt werden. Dies eignet sich besonders in größeren
WLANs, da dann nicht bei jedem Client der PSK eingegeben werden muss.
Der PMK wird nur zur Authentifizierung und zur Generierung des Pairwise Transient Keys (PTK) verwendet, einem temporären Schlüssel, der nur eine zeitlich beschränkte Gültigkeit hat. Der PTK wird mit Hilfe einer
Pseudozufallszahlen-Funktion berechnet. Diese bekommt
als Eingabe den PMK, zwei Zufallszahlen und die MACAdressen der beiden Kommunkationspartner. Insbesondere
verwendet der Access Point mit jedem Client einen anderen PTK. Der Austausch des PTK erfolgt mittels des 4-Way
Handshakes. Dieser PTK wird in vier Teilschlüssel eingeteilt, die zur Integritätssicherung und zur Absicherung der
Datenübertragung verwendet werden (siehe Abbildung 1).
Zwei der Teilschlüssel zur Absicherung der Datenübertragung, sind der Session Key und der Michael Key. Der
Vollständigkeit halber sei hier noch erwähnt, dass die anderen beiden Teilschlüssel der EAP over LAN Key (EAPOL
Key) und der EAP over LAN Message Integration Key (EAPOL MIC Key) sind (vgl. [8]). Außerdem kann der Access
Point nun auch einen sog. Group Key erzeugen und verteilen, womit er dann Broadcast- und Multicast-Datenpakete
verschlüsselt, die dann von allen Clients, die den Group Key
kennen, entschlüsselt werden können.
Der IV wurde auf 48 Bit erweitert und wird wieder zur
Erzeugung einer Pseudozufallszahl mittels RC4 verwendet.
Durch den größeren IV sind jetzt rund 280 Billionen statt
knapp 17 Millionen IVen möglich. Da der IV nun bei jedem
WPA-Datenpaket inkrementiert wird, ist sichergestellt, dass
keine zwei gleichen IVen mit einem PTK verwendet werden
(vgl. [5]). Der IV ist zusammengesetzt aus einem 16-Bit LoTeil und einen 32-Bit Hi-Teil. Der Hi-Teil des IVs berechnet sich aus der MAC-Adresse und dem PTK mittels einer Hash-Funktion (Phase 1). Der Lo-Teil ist ein Zähler der
sich von WPA-Datenpaket zu WPA-Datenpaket um ein Bit
erhöht (Phase 2). Der Empfänger eines WPA-Datenpaketes
überprüft nun, ob dieses WPA-Datenpaket in die bestehende
IV-Folge passt. Wenn nicht, wird das WPA-Datenpaket verworfen. Somit ist sichergestellt, das ein Angriff durch wiederholtes Senden eines WPA-Datenpaketes nicht möglich
2.2.2
4-Way Handshake
Mit Hilfe des 4-Way Handshakes tauschen Client und Access Point jeweils eine Zufallszahl aus, woraus dann der
temporäre PTK berechnet wird.
1. Access Point → Client: Der Access Point erzeugt eine Zufallszahl und sendet diese unverschlüsselt an den
Client.
2. Client → Access Point: Der Client erzeugt ebenfalls
eine Zufallszahl und berechnet aus beiden Zufallszahlen zusammen (und weiteren Eingaben) den PMK und
daraus den PTK (vgl. 2.2.1). Da der PTK den Michael
Key beinhaltet, verwendet der Client diesen, um mittels des Michael-Algorithmus einen MIC-Wert seiner
Zufallszahl zu erzeugen. Anschließend sendet er Zufallszahl und berechneten MIC-Wert an den Access
Point.
3. Access Point → Client: Der Access Point errechnet
mit beiden Zufallszahlen den PTK und damit auch
den Michael Key. Mit dem Michael Key überprüft er
den übertragenen MIC-Wert der Zufallszahl des Clients. Ist dieser gültig sendet der Access Pointdie Nachricht (und zughörigen MIC-Wert), dass der PTK aktiviert wurde. Außerdem überträgt er noch den Group
Temporal Key (zur Verschlüsselung für Mulit- und
Broadcast-Datenpakete), den er mit dem PTK verschlüsselt.
4. Client → Access Point: Der Client bestätigt die Aktivierung der Verschlüsselung und fügt auch wieder
einen entsprechenden MIC-Wert seiner Nachricht hinzu.
Aktiviert wird der PTK nur, wenn alle MIC-Werte gültig
sind.
Während einer bestehenden Sitzung können sowohl Client, als auch Access Point ein Rekeying nach dem 4-Way
C-4
der MIC-Wert von M ist. Ist der MIC-Wert ungültig, wird
das WPA-Datenpaket verworfen. Ebenso wird auch der
CRC-Wert überprüft und das WPA-Datenpaket verworfen,
wenn dieser nicht zu M k M ichael(M ) passt. Wenn kein
Test fehlgeschlagen ist, wird das WPA-Datenpaket vom
Empfänger akzeptiert und die entschlüsselte Nachricht ist
M.
Handshake anstoßen und somit jederzeit einen neuen PTK
aushandeln.
2.2.3
Michael Algorithmus
Der Michael Algorithmus ist ein Hash-Alogrithmus, der eine Nachricht und den Michael Key als Eingabe erhält. Das
Ergebnis des Algorithmus ist der 32-Bit MIC-Wert. Michael wird verwendet um die Datenintegrität zu gewährleisten. Der MIC-Wert wird an die zu übermittelnde Nachricht angehängt, die dann mit dem MIC-Wert zusammen
verschlüsselt wird. Nur wenn der berechnete MIC-Wert der
Nachricht gleich dem übertragenen MIC-Wert ist, wird das
WPA-Datenpaket akzeptiert.
Da der Michael Key nur 64-Bit lang ist (effektive Stärke
nur 40-Bit) ist ein Burte-Force-Angriff auf die Berechnung des Michael Keys möglich. Allerdings muss dafür erst
einmal TKIP gebrochen werden, bevor gefälschte WPADatenpakete erzeugt werden können.
2.2.4
2.2.6
Durch die Vergrößerung des IVs wurde zwar sichergestellt,
dass keine IVen doppelt verwendet werden, aber dafür wird
die RC4-Schwäche noch stärker. Nun kennt ein Angreifer nicht nur die ersten 24 Bit der Eingabe von RC4, sondern die ersten 48 Bit. Damit liegt die erwartete Anzahl der
WPA-Datenpakete bei nur 366.000, um 8 Bit des Session
Keys zu berechnen. Zur Erinnerung: Bei WEP mit dem 24
Bit IV liegt die erwartete Anzahl von WEP-Datenpaketen
bei 1.310.000, um 8 Bit des Schlüssels (SK) zu berechnen
(vgl. [15]). Dies stellt aber kein Sicherheitsproblem dar, da
spätestens, wenn der IVLo 65536 mal inkrementiert wurde (also nach höchstens 65536 WPA-Datenpaketen) ein Rekeying durchgeführt und somit ein neuer PTK ausgehandelt
wird. Zudem bieten Access Points meist die Möglichkeit
die Session-Dauer zu konfigurieren, sodass nach Ablauf der
Session-Dauer sowieso ein Rekeying durchgeführt wird.
Damit dieser Angriff Erfolg hätte, müßten sich Client
und Access Point wieder (besser noch immer wieder) auf
den gleichen PTK einigen. Dies würde nur passieren, wenn
sich beide bei jedem 4-Way Handshake die gleichen Zufallszahlen generieren. Dies kann aber ausgeschlossen werden, weil dazu meist gute Zufallszahlengeneratoren verwendet werden, die Funktionswerte uniform zufällig über
den gesamten Wertebereich streuen.
Ein Angreifer könnte eine schon mitgeschnittene Authentifizierung dazu verwenden, den Client oder den Access Point zu simulieren, um so eine Wiederverwendung
einer Zufallszahl zu erzwingen, nicht aber die Wiederverwendung beider Zufallszahlen gleichzeitig.
Ang. ein Angreifer manipuliert Client und Access Pointso, dass diese die gleichen Zufallszahlen erzeugen und dadurch wieder den gleichen PTK berechnen. Dann hätte der
Angreifer durch die RC4-Schwäche höchstens die Möglichkeit den Session Key zu bestimmen (der ja neben dem IV
als Eingabe für RC4 verwendet wird). Durch diese Maniupulation könnte der Angreifer im besten Fall nur den Session Key des PTKs berechnen und damit die Nachrichten der
PTK-Session entschlüsseln.
Wenn zwei Mal der gleiche IV während einer PTKSession verwendet wird, könnte der Angreifer, wie schon
beim WEP gesehen, diese WPA-Datenpakete gegeneinander verknüpfen, um so möglicherweise eine bisherige Nachricht zu berechnen (beim WEP wurde für diesen Angriff der
Verschlüsselung
Um ein WPA-Datenpaket aus der Nachricht M zu erzeugen,
wird im ersten Schritt der MIC-Wert der Nachricht berechnet und an die Nachricht angehängt: M k M ichael(M ).
Anschließend wird der CRC-Wert davon berechnet. Dieser
wird ebenfalls an den bisherigen Wert angehangen. Somit
ergibt sich der zu verschlüsselnden Klartext P durch
P := M k M ichael(M ) k CRC(M k M ichael(M )).
Analog zu WEP wird jetzt eine Pseudozufallszahl Z mit
Hilfe von RC4, dem 48-Bit Initialisierungsvektor IV :=
IVLo k IVHi und dem Session Key Ksession erzeugt:
Z := RC4(IV k Ksession ).
Der Chiffretext besteht dann aus:
C := P ⊕ Z.
Und ein WPA-Datenpaket besteht nun aus:
IV k C.
2.2.5
Sicherheitsanalyse
Entschlüsselung
Vor der eigentlichen Entschlüsselung wird überprüft, ob das
WPA-Datenpaket angenommen werden kann. Dazu wird
die oben schon erwähnte Sequenz des IVs dahingehend
überprüft, ob der IV um eins inkrementiert ist, in Bezug zu
dem letzten empfangenen IV. Falls dies der Fall ist, wird
die Pseudozufallszahl durch RC4(IV k Ksession ) = Z
bestimmt. Mit Z kann nun der Klartext P durch C ⊕ Z =
P ⊕ Z ⊕ Z = P bestimmt werden. Anschließend wird P in
M , M ichael(M ) und CRC(M k M ichael(M )) zerlegt
und getestet, ob der übergebene MIC-Wert auch tatsächlich
C-5
Vorschlag mit dem Wörterbuch W vorgestellt). Dafür war
die Kenntnis des Session Keys nicht erforderlich.
Allerdings ist es dem Angreifer nicht möglich, neue
Nachrichten durch die Kenntnis von Chiffretext-/ Klartextpaaren zu erzeugen. Dafür müßte er einen gültigen MICWert für seine Nachricht mit Hilfe des Michael Keys erzeugen, welchen er aber nicht kennt. Das einfache XORverknüpfen zweier MIC-Werte liefert im allgemeinen keinen gültigen MIC-Wert für ein neue Nachricht, wie es noch
beim CRC-Wert bei WEP der Fall war. Zudem könnte ein
Angreifer auf diese Weise nur die WPA-Datenpakete lesen,
die mit dem ihm bekannten SK erstellt wurden.
Somit gilt die Authentifizierung als sicher, solange ein
guter PMK gewählt wurde, der nicht durch einen BruteForce-Angriff bestimmt werden kann (vgl. [4]). Programme
für einen Brute-Force-Angriff auf eine mitgeschnittene
Authentifizierung sind im Internet verfügbar (z.B. TinyPEAK). Zum Mitschneiden des Netzwerkverkehrs sind
ebenso Programme im Internet verfügbar (z.B. Ethereal).
Die Vertraulichkeit ist ebenso wie die Integrität über
die Verschlüsselung des Verfahrens gesichert. Somit sind
netzinterne Angreifer mit geringem Aufwand in der Lage
Daten mitzulesen wohingegen netzexterne Angreifer keine
Daten mitlesen können.
Bei der Authentifizierung über einen Authentifizierungsserver (mit Verwendung des EAP über 802.1x) anstelle des
PSKs, basiert die Erzeugung des PTK auf der Identität des
Benutzers des Clients. Da sich so jeder Benutzer anstelle des Clients identifiziert, ist es einem netzinternen Client
nicht möglich, Daten zu lesen oder zu verändern.
Es soll hier noch erwähnt werden, dass ein DoS-Angriff
jederzeit möglich ist, indem ein Störsender (Jammer)
auf den entsprechenden WLAN-Frequenzen den FunkNetzwerkverkehr stört oder blockiert. Der 802.11 Standard
und die 802.11i Erweiterung bieten gegen solch einen Angriff keine Schutzfunktion.
Festzuhalten ist, dass WPA im PSK-Modus ausreichende Sicherheit bietet, wenn netzinterne Clients vertrauenswürdig sind und ein guter PSK verwendet wird. Bei der
Verwendung eines Authentifizierungsservers über EAP bietet WPA sowohl netzintern, wie auch netzextern ausreichende Sicherheit.
Um die Sicherheit der Datenintegrität zu untersuchen ist
zu unterscheiden, ob es sich um einen netzinternen oder
einen netzexternen Angreifer handelt. Der netzinterne Angreifer kennt den PSK und hat Zugang zum WLAN, und der
netzexterne Angreifer kennt den PSK nicht und hat keinen
Zugang zum WLAN.
Da jeder netzinterne Client den PMK kennt, ist dieser
auch mit wenig Aufwand in der Lage ein WPA-Datenpaket
zu verändern. Dafür muss er nur die Authentifizierung zwischen den zu beeinflussenden Client und dem Access Point
mitschneiden. Damit kann er sich den verwendeten PTK der
beiden Teilnehmer berechnen. Mit dem PTK ist er sofort in
der Lage eine Nachricht zu verschlüsseln und einen gültigen MIC-Wert für die Nachricht zu erstellen. Wenn er jetzt
noch seine MAC-Adresse in die des zu beeinflussenden Clients (oder auch in die des Access Points) geändert hat, kann
der Access Point (oder der Client) nicht mehr zwischen dem
internen Angreifer und dem ursprünglichen Kommunikationspartner unterscheiden; somit ist es netzintern möglich
WPA-Datenpakete zu verändern.
Anders sieht es netzextern aus: Der Angreifer muss,
damit ein WPA-Datenpaket vom Empfänger akzeptiert
wird, dieses mit einem gültigen MIC-Wert versehen. Die
Berechnung eines MIC-Wertes zu einer Nachricht ohne
Kenntnis des Michael Keys wäre theoretisch durch einen
Brute-Force-Angriff möglich, da die effektive Michael
Key-Länge nur 40 Bit beträgt. Allerdings ist die Nachricht
inklusive des MIC-Wertes RC4-verschlüsselt. Also muss
der Angreifer zuerst den PTK bestimmen, um eine Nachricht zu verändern, was sich aber als sicher herausgestellt
hat. Also ist es einem netzexternen Angreifer nicht möglich
ein WPA-Datenpaket zu verändern.
2.3. WPA2 und die 802.11i Erweiterung
WPA2 ist eine Implementierung der 802.11i Erweiterung der Wi-Fi-Alliance. Genau wie WPA, bietet auch
WPA2 die Möglichkeit den PMK per Pre-Shared Key oder
per Authentisierungsprotokoll (EAP) auszutauschen. Zur
Verschlüsselung wird ebenfalls der PTK verwendet, der
nur während einer Session gültigt ist. Neu ist, dass das
TKIP-Protokoll nur noch optional unterstützt wird. Das
TKIP-Protokoll wurde durch das CTR/CBC-MAC Protokoll (CCMP) ersetzt, das auf den AES (Advanced Encryption Standard) basiert. Bei dem 1997 startenden Wettbewerb
des National Institute of Standards and Technologies (NIS)
wurde der eingereichte Rijndeal-Algorithmus im Oktober
2000 zum DES-Nachfolger AES benannt. Bisherige Sicherheitsanalysen haben gezeigt, dass AES zurecht vom NIS
ausgewählt wurde (vgl. [2]). Deshalb wird die Integritätssicherung und die Verschlüsselung einzig und alleine durch
AES gegeben. Dies vereinfacht die Schlüsselverwaltung, da
nun nur noch ein Session Key anstelle von einem Session
und einem Michael Key notwendig ist.
Da bei WPA2 der AES effizient berechnet werden muss,
was für WEP/RC4 basierte Access Points meist nicht
möglich ist, muss dafür neue Hardware eingesetzt werden.
WLAN-Netzwerkkarten im Computer werden üblicherweise durch ein Treiber-Update oder durch ein BetriebssystemUpdate WPA2-fähig gemacht. In Windows XP SP2 lässt
sich WPA2 mit dem Update KB893357 (vgl. [11]) einC-6
Datenpaketes übertragen und dient u. a. zur Ver- und Entschlüsselung des Klartextes.
Pairwise Master Key (PMK)
Pairwise Transient Key (PTK)
EAPOL Key
EAPOL MIC Key
2.3.2
Session / MIC Key
An die zu verschlüsselnde Nachricht M werden die ersten
64 Bit des MIC-Wertes der Nachricht angehängt. Diese beiden Teile ergeben zusammen den zu verschlüsselnden Klartext P . P wird in Blöcke P1 , ..., Pm eingeteilt, die dann
einzeln verschlüsselt werden. Die Verschlüsselung erfolgt
nun mittels des sog. Counter-Mode (CTR-Mode). An dieser Stelle wird die Verschlüsselung des ersten Blockes P1
betrachtet.
Zuerst wird mit Hilfe des Nonce-Wertes ein Zähler
Z1 mit einem Startwert initialisiert. Dann wird dieser Zähler mit dem Session Key verschlüsselt: Z10 :=
AES(Z1 , Ksession ). Dieser verschlüsselte Wert Z10 des
Zählers wird nun mit dem Block P1 zu den Chiffretext C1
errechnet: C1 := Z10 ⊕ P1 . Für den zweiten Block wird Z1
um eins zu Z2 inkrementiert, womit dann der verschlüsselte Wert Z20 bestimmt wird, mit dem dann der zweite Block
P2 verschlüsselt wird: C2 := Z20 ⊕ P2 . Auf gleiche Art und
Weise lassen sich die restlichen P -Blöcke verschlüsseln. Da
Zi für den i-ten Block von Anfang an feststeht, kann die
Verschlüsselung der P -Blöcke auch parallelisiert werden.
Ein WPA2-Datenpaket besteht aus dem Nonce-Wert und
den aneinandergehängten Chiffretext-Blöcken C1 , ..., Cm .
Abbildung 2. CCMP Schlüsselerzeugung.
richten und unter Linux kann dazu z.B. der Wrapper
wpa supplicant (vgl. [1]) verwendet werden. Es wäre theoretisch möglich, dass es WLAN-Geräte gibt, die WPA2 unterstützen, nicht aber WPA. Allerdings sind die WLANHardware Hersteller bestrebt ihre Hardware abwärtskompatibel anzubieten, so dass zu erwarten ist, dass WPA2zertifizierte Hardware auch immer WPA-fähig sein wird.
Nach Erzeugung des PTK wird dieser nun in drei Teilschlüssel, anstelle von vier Teilschlüssel bei WPA, eingeteilt: in den EAPOL Key, EAPOL MIC Key und den Session / MIC Key (siehe Abbildung 2). Der EAPOL- und
der EAPOL MIC Key werden zur Übermittlung von EAPNachrichten verwendet. Details dazu können in [8] nachgelesen werden. Somit wird hier der Session / MIC Key betrachtet, der zur Verschlüsselung und zur Integritätssicherung von WPA2 verwendet wird.
Die Authentifizierung erfolgt bei WPA2 analog zu der
Authentifizierung bei WPA.
2.3.3
2.3.1
Verschlüsselung
Entschlüsselung
Die Entschlüsselung eines WPA2-Datenpaketes erfolgt
durch eine erneute Verschlüsselung der Chiffretext-Blöcke
C1 , ..., Cm . Mit Hilfe des Nonce-Wertes wird der Zähler
Z1 initialisiert und die Blöcke C1 , ..., Cm werden verschlüsselt. Dies kann ebenfalls wieder parallelisiert werden, da für jedes WPA2-Datenpaket der Zähler, mit Hilfe von Z1 feststeht. Die Gültigkeit soll hier am i-ten
Chiffretext-Block Ci , für 1 ≤ i ≤ m gezeigt werden: Zi0 ⊕
C1 = AES(Zi , Ksession ) ⊕ Ci = AES(Zi , Ksession ) ⊕
AES(Zi , Ksession ) ⊕ Pi = Pi . Nachdem also P extrahiert
wurde, wird der MIC-Wert für die Nachricht M berechnet
und mit dem übertragenen MIC-Wert verglichen. Sind diese beiden Werte nicht gleich, wird das WPA2-Datenpaket
verworfen.
MIC-Wert Berechnung
Für die zu verschlüsselnde Nachricht M wird zuerst der
MIC-Wert mittels des Chiper-Block-Chaining - Message Authentication Code (CBC-MAC) berechnet. Dies geschieht durch eine Einteilung der Nachricht in 128-Bit
Blöcke M = M1 k ... k Mn . Der letzte Block wird, falls
nötig, mit Nulllen aufgefüllt. Nun werden für alle Teilnachrichten Mi , 1 ≤ i ≤ n die zugehörigen Chiffretexte Ri
bestimmt. Ri := AES(Mi , KSession ). Der Session Key
KSession und das Ergebnis Ri sind ebenfalls 128 Bit lang.
Diese Ri werden nun der Reihe nach miteinander XORverknüpft: M ICvorläuf ig := R1 ⊕ ... ⊕ Rn .
Da es aber passieren kann, dass zwei Mal die gleiche
Nachricht gesendet wird und somit zwei Mal der gleiche MIC-Wert berechnet würde, wird zusätzlich noch der
sog. Nonce-Wert N mit dem M ICvorläuf ig verknüpft:
M IC := M ICvorläuf ig ⊕ N . Der Nonce-Wert beeinhaltet die MAC-Adresse des Absenders und eine fortlaufende WPA2-Datenpaketnummer. Damit ist der Nonce-Wert
pro Client und pro Session eindeutig bestimmt und ausgeschlossen, dass zwei Nachrichten den gleichen Nonce-Wert
besitzen. Der Nonce-Wert wird analog zu dem IV bei WPA
verwendet: Er wird im Klartext am Anfang jedes WPA2-
2.3.4
Sicherheitsanalyse
Bei der Verwendung des Pre-Shared Key Modus kann der
Empfänger einer Nachricht sicher sein, dass der Sender den
PMK kennt. Allerdings kann sich ein netzinterner Teilnehmer den PMK durch eine mitgeschnittene Authentifizierung
zweier Kommunikationspartner berechnen und so die Nachrichten lesen oder verändern. Bei der Verwendung von EAP
ist diese Art des netzinternen Angriffs nicht möglich, da
C-7
Literatur
sich der Benutzer eines Clients selbst authentifiziert und
nicht der Client durch seine gegebene MAC-Adresse im
Netzwerk.
Die Integrität ist trotz der zweifachen Verwendung des
Session Keys zur Verschlüsselung und MIC-Wert Berechnung sicher, da ein modifiziertes WPA2-Datenpaket mit
ziemlicher Sicherheit keinen gültigen MIC-Wert besitzt.
Sollte dies der Fall sein, wird dieses WPA2-Datenpaket sofort verworfen.
Um ein gültiges, modifiziertes WPA2-Datenpaket zu erzeugen, müsste ein Angreifer einen gültigen MIC-Wert zu
seiner Nachricht erstellen. Dies ist ihm aber nur möglich,
wenn er den Session Key kennt. Wenn er den Session Key
kennen würde, dann könnte er auch die modifzierte Nachricht mit einem gültigen MIC-Wert verschlüsseln, sodass
das WPA2-Datenpaket gültig wäre. Dass ein Angreifer aber
den Session Key bestimmt, ist nach bisherigem Kenntnisstand nur möglich, wenn er den PMK kennt. Diesen kann er,
wie auch bei WPA, nur mittels eines Brute-Force-Angriffs
bestimmen.
Also bleibt festzuhalten, dass WPA2 vor netzexternen
Angreifern sicher ist, wenn ein sicherer Pre-Shared Key
gewählt wird, der einem Brute-Force-Angriff standhält. Ist
auch netzinterne Sicherheit gewünscht sollte die Authentifizierung mittels EAP verwendet werden.
[1]
Linux WPA/WPA2/IEEE 802.1X Supplicant.
http://hostap.epitest.fi/wpa supplicant/
[2]
Website vom Rijndael-Autor Vincent Rijmen. –
http://www.esat.kuleuven.ac.be/ rijmen/rijndael/
[3]
Wikipedia. – http://en.wikipedia.org/wiki/Rc4
[4]
A HLERS, Ernst:
Angriffe auf WPA.
In: heise security (2004), November. –
http://www.heise.de/security/artikel/53014
[5]
A HLERS, Ernst: Jenseits von WEP. In: c’t Heft 21
(2004), Oktober, S. 214–219
[6]
A LLIANCE, Wi-Fi: Wi-Fi Protected Access: Strong,
standards-based, interoperable security for today’s
Wi-Fi networks, April 2003. –
http://www.wifi.com/OpenSection/pdf/Whitepaper WiFi Security4-29-03.pdf
[7]
B URNS, J. und J. H.: Evolution of WLAN Security / Meetinghouse Data Communications. 2003.
– Forschungsbericht. http://www.mtghouse.com/
MDC Evolving Standards.pdf
[8]
H AGEDORN, Axel: IEEE 802.11i Sicherheit im drahtlosen lokalen Netzen, TU Darmstadt, Diplomarbeit,
November 2003
[9]
H EDRICH, Jörg: Sicherheit im WLAN / Universität
Koblenz-Landau. 2004. – Forschungsbericht
3. Zusammenfassung
In dieser Ausarbeitung wurde die Funktionsweise der
gängigen WLAN-Verschlüsselungsverfahren WEP, WPA
und WPA2 beschrieben und in Bezug auf ihre Sicherheit
untersucht. Dabei wurde besonders auf den Pre-Shared Key
Modus eingegangen.
Bei der Sicherheitsanalyse hat sich herausgestellt, dass
durch ungünstige Verwendung des RC4-Algorithmus in
WEP ein Angriff möglich ist, bei dem in Minuten der PreShared Key des WLANs bestimmen werden kann. Damit
hat sich gezeigt, dass WEP die Sicherheitsanfroderungen
nicht erfüllt.
Bei dem auf alten Access Points mit WEP/RC4Hardware implementierbaren WPA hat sich gezeigt, dass
eine sichere Kommunikation zwischen Client und Access
Point möglich ist, wenn der Pre-Shared Key vernünftig
gewählt wird. Ebenso bei dem meist neue Hardware für Access Points fordernden WPA2 hat sich gezeigt, dass die Sicherheitsanforderungen bei einem vernünftigen Pre-Shared
Key erfüllt werden.
Um sich vor netzinternen Angrefeifern zu schützen, sollte EAP verwendet werden. Da WPA und WPA2 vor ihrer Veröffentlichung und bis heute gründlich auf krypthografische Schwächen hin untersucht und keine festgestellt
wurden, kann davon ausgegangen werden, dass WPA und
WPA2 auch in den nächsten Jahre noch sicher sein werden.
–
[10] IEEE:
802.1X
Port
Based
Network Access Control, Oktober 2001. –
http://standards.ieee.org/reading/ieee/std/
lanman/restricted/802.1X-2001.pdf
[11] M ICROSOFT: WPA2-Update für Windows XP SP2. –
http://support.microsoft.com/kb/893357
[12] N IKITA B ORISOV, David W.:
Intercepting Mobile Communications: The Insecurity of 802.11 / Universität Berkeley, Kalifornien, USA.
2001. –
Forschungsbericht.
http://www.isaac.cs.berkeley.edu/isaac/mobicom.pdf
[13] R ADMACHER, Mike: Sicherheits- und Schwachstellenanalyse entlang des Wireless-LAN-Protokollstacks,
Universität Duisburg-Essen, Diplomarbeit, 2004
[14] R IES, Uli: WLAN? Aber sicher! In: PC Professionell
Heft 5 (2004), April, S. 164–166
[15] S COTT F LUHRER, Itsik M. ; S HAMIR, Adi: Weaknesses in the Key Scheduling Algorithm of RC4 / The
Weizmann Institute. Rehovot 76100, Israel, 2001. –
Forschungsbericht
C-8