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