WiFi Protected Access
Introduction
Mängel im Design von WEP führten zur Entwicklung von 802.11i, Robust Security Network - RSN. Da einige der Änderungen neue Netzwerkhardware erfordern, wurde auch eine Übergangslösung entworfen, die als Softwareupgrade auf alter Hardware installiert werden kann, das Tempory Key Integrity Protocol - TKIP.
WPA vs WPA2
WPA basiert auf TKIP, WPA 2 vollständig auf RSN. Gemeinsamkeiten gibt es bei der Authentication und beim Key Management, Unterschiede beim verwendeten Cipher und in Folge bei der Integrity Protection und Confidentiality. An den entsprechenden Stellen sind die Unterschiede ausgewiesen.
Authentication
Grundsätzlich sollen nur autorisierte Stations Zugang zum Netzwerk und dessen Ressourcen erhalten und Access Points sollen sich gegenüber den Stations ausweisen, damit diese sich nicht bei sogenannten Rogue AP anmelden. Es wird keine spezielle Methode für die Autorisierung im Standard vorgegeben. Mögliche Varianten könnten Passwörter, Signaturen, Smart Cards und ähnliches oder Kombinationen davon sein. Um die Verbindung für die Dauer einer Sitzung zu schützen, wird im Zuge der Authentifizierung ein Session Key zwischen STA und AP ausgehandelt. Dieser soll auch verhindern, dass dritte die Identität eines der beiden Teilnehmer vortäuschen können. Das allgemeine Verfahren wurde aus dem Standard 802.1X abgeleitet.
Participating Entities
Es werden 3 Entitäten definiert, die am Authentifizierungsprozess beteiligt sind.
- Supplicant (hier STA), der mobile Client, der sich beim Netzwerk anmelden möchte
- AP, der Access Point, der den Zugang zum Netzwerk in der Form von offenen und geschlossenen Ports regelt
- AS, Authentication Server der sich um die eigentliche Autorisierung kümmert
STA und AP kommunizieren drahtlos und vor erfolgreicher Authentifierung nur über den uncontrolled Port des AP. Dabei leitet der Access Point die Nachrichten des Supplicants nur an den Authentication Server weiter und verpackt sie eventuell noch mit dem entsprechenden Protokoll, ohne sie zu lesen. Der Kommunikationsweg zwischen AP und AS ist im Standard nicht definiert, aber die Sicherheit dieses Übertragungsweges ist wichtig.
EAP / EAPOL & RADIUS
Das vom Standard vorgesehen Protokoll für den Nachrichtenaustausch bei der Authentifizierung ist EAP. Darin sind 4 Typen von Nachrichten vorgesehen. EAP Start, EAP Request, EAP Response und EAP Success. EAP kann die speziellen Nachrichten einer Vielzahl von Authentifizierungsmethoden übertragen. Die aktuelle Methode wird festgelegt, während sich ein Client mit einem Netzwerk assoziiert. Zwischen STA und AP wird EAP over LAN - EAPOL verwendet und zwischen AP und AS EAP over RADIUS. Die Verwendung von RADIUS ist bei WPA2 nicht vorgeschrieben, aber weit verbreitet.
- Der Supplicant kann die Authentication mit einer optionalen EAPOL Start Nachricht einleiten
- Der AP schickt eine EAPOL Request Nachricht
- Der Supplicant antwortet mit einer EAPOL Response Nachricht, die der AP als RADIUS Access Request an den AS weiterleitet
- Der AS schickt RADIUS Access Challenge, die vom AP als EAPOL Request weitergeleitet wird
- Der Supplicant antwortet mit einem EAP Response, das als RADIUS Access Request den AS erreicht
- Der AS schickt RADIUS Access Accept, die als EAP Success an die STA weitergeleitet wird
- Die STA kann sich mit einer optionalen EAPOL Logoff Nachricht abmelden
Die Schritte 4. und 5. können beliebig oft wiederholt werden, denn hier findet der eigentliche Nachrichtenaustausch statt. Die Errichtung eines TLS Tunnels könnte zum Beispiel 10 bis 20 Nachrichten erfordern. In einem solchen Fall würde sich der AS mit einem Zertifikat gegenüber der STA ausweisen und über den TLS Tunnel könnte dann mittels einer Passwortabfrage die Identität des Clients überprüft werden.
4-Way-Handshake
Nach der EAP Success Nachricht wird der 4 Way Handshake initialisiert, bei dem die aktuellen Session Keys ausgehandelt und installiert werden. An diesem Punkt hat der Authentication Server sowohl der STA als auch dem AP unabhängig voneinander einen Pairwise Master Key - PMK - zugestellt. Details zu den verschiedenen Schlüsseln im nächsten Abschnitt.
- Mittels einer EAPOL Key Nachricht schickt der AP eine Zufahlszahl an den Client. Aus der erhaltenen und der eigenen Zufallszahl und dem PMK erzeugt der Client seinen Pairwise Transient Key - PTK
- Der Client schickt seine Zufallszahl an den AP und signiert die Nachricht mit dem eben erstellten PTK. Der AP erzeugt nun ebenfalls aus beiden Zufallszahlen den PTK und überprüft damit die Signatur der letzten Nachricht, danach glaubt er, dass der Client im Besitz des PTK ist.
- AP schickt eine Sequenznummer an den Client, mit der nachfolgende Pakete der eigentlichen Verbindung nummeriert werden und signiert diese Nachricht ebenfalls, der Client überprüft die Signatur und glaubt danach, dass der AP im Besitz des PTK ist.
- Der Client schickt eine Acknowledge Nachricht an den AP, woraufhin ein kontrollierter Port für die nachfolgende Session freigegeben wird.
(Alle hierbei verwendeten Nachrichten sind vom Typ EAPOL Key)
Key Management
Nach der Authentication Phase sind sowohl AP als auch STA im Besitz ein und desselben Session Key. Dabei handelt es sich um einen Master Key, aus dem die Schlüssel generiert werden, die im Endeffekt eingesetzt werden. Diese Schlüsselgenerierung findet durch den 4-Way-Handshake statt.
Pairwise Master Key
Ein symmetrischer, daher pairwise, Schlüssel, der zur Erzeugung eines Keysets genutzt wird. Kommt selbst bei der Verschlüsselung nicht zum Einsatz, daher Master Key. Sowohl AP als auch STA erhalten den PMK unabhängig voneinander vom Authentication Server bei erfolgreichem Abschluss der Authentication. Die STA zum Beispiel über einen TLS Tunnel mit dem AS.
Pairwise Transient Key
Dabei handelt es sich genau genommen um ein Key Set aus 4 Schlüsseln. Wichtig ist, dass sowohl für die Vertraulichkeit und die Integrität von Daten, als auch die von übertragenen Schlüsselbezogenen Informationen, jeweils verschiedene Keys eingesetzt werden. Dies soll den Aufwand für Angreifer erhöhen.
- Key Encryption Key
- Key Integrity Key
- Diese Keys werden beim 4-way-handshake bereits zum signieren und verifizieren der Nachrichten genutzt
- Data Encryption Key
- Data Integrity Key
- Keys 3 & 4 sind bei AES-CCMP identisch
Group Key
Dabei handelt es sich um ein Set aus 2 Schlüsseln, die für Broadcast Nachrichten eingesetzt werden. Der Handshake kann jederzeit vom AP initiiert werden. Wird z.B. dann nötig, wenn eine abgemeldete STA keine folgenden Broadcast Nachrichten verstehen soll. Dafür gibt es 2 Schritte. Der Group Key wird vom AP übertragen und der Erhalt wird von der STA bestätigt. Diese Nachrichten werden mit Key Encryption und Integrity Key der jeweiligen Session gesichert.
- Group Encryption Key
- Group Integrity Key
Integrity Protection
Daten sollen auf dem Weg vom Sender zum Empfänger nicht unbemerkt verändert werden können. WEP nutzt dazu eine mit dem Paket zusammen verschlüsselte CRC32 Checksum. Da dieses Verfahren keinen ausreichenden Schutz bietet, wurde für TKIP ein neues Verfahren entwickelt - Micheal. RSN bedient sich eines speziellen Betriebsmodus für den AES.
TKIP with Michael
Der Michael message digest algorithm kann als Software Upgrade auf alter WEP fähiger Hardware eingeführt werden und stellt eine Übergangslösung für die Umstellungszeit auf WPA2 fähige Hardware dar. Mit Hilfe zweier 64 bit Schlüssel werden message integrity codes, kurz MIC, erzeugt. Eingabe dafür sind die Nutzdaten, Quell- und Zieladresse, sowie priority bits. Davon werden die Nutzdaten und der MIC mittels RC4 verschlüsselt.
TKIP verwendet die IV als Sequenznummer verwendet, um Replay Attacken zu entdecken.
AES-CCMP
Integrity Protection wird bei AES durch cipher block chaining - CBC - erreicht. Dabei wird jeder Klartextblock vor der Verschlüsslung mittels XOR mit dem vorhergehenden schiffrierten Textblock verknüpft. Diese Abhängigkeiten sollen unbemerktes Verändern der Daten verhindern. Zusätzlich werden Daten aus dem frame header als Nonce input für die Verschlüsselung genutzt und dadurch geschützt.
Eine 48 bit packet number wird als Schutz gegen Replay Attacken verwendet.
Confidentiality
Eines der Hauptprobleme bei WEP ist die Verwendung des RC4 Verschlüsselungsalgorithmus. TKIP verändert den Umgang mit der WEP Verschlüsselung und RSN bedient sich von Anfang an eines anderen Verschlüsselungsverfahrens, des Advanced Encryption Standard - AES - worin auch die Notwendigkeit für neue Hardware begründet liegt.
TKIP with RC4
Die zwei wichtigsten Veränderungen bei WPA gegenüber WEP sind die Verwendung von 48 bit statt 24 bit IVs und die Erzeugung eines neuen Schlüssels für jedes Packet. Ausgangsbasis dafür sind die MAC Adressen von Sender und Empfänger, sowie der 128 bit Data Encryption Key aus dem PTK und der 48 bit IV. Aus diesem input wird in einem zweistufigen Keymix die Eingabe für die WEP Verschlüsselung generiert. Ziel ist es, einen 24 bit IV + 104 bit WEP Key zu erhalten.
Das Ergebnis der ersten dieser beiden Phasen ändert sich nur selten, da es von relativ konstanten Eingangsgrößen abhängt, was einen Performancevorteil bringt. Die zweite Phase verwendet nur die niedrigen 16 bit des IV als dynamischen input.
AES-CCMP
Bei AES handelt es sich um einen Block Cipher, der aber im Counter Mode betrieben und auf diese Weise als Stream Cipher verwendet wird. Bei diesem Modus wird eine Nonce zusammen mit einem Counter benutzt, um den internen Zustand des AES Schrittweise zu verändern und bei jedem Schritt einen neuen Schiffrierblock zu erhalten, der mittels XOR zum verschlüsseln eines analog nummerierten Klartextblocks verwendet wird.
Input für die CCM Verschlüsselung sind eine Nonce, die auf der packet number basiert, Daten aus dem frame header, der 128 bit Data Encryption & Integrity Key aus dem PTK - hier nur 1 Schlüssel für beide Zwecke - und die Klartextdaten.
Summary
Comparison of WEP, WPA & WPA2
WEP | RSN(TKIP) | RSN(AES-CCMP) | |
---|---|---|---|
used as | WEP | WPA | WPA2 |
Cipher | RC4 | RC4 | AES-CCMP |
per packet key | same WEP key + changing 24 bit IV | TKIP mix incl. 48 bit IV | none needed in CCM |
key length | 40 or 104 bit encryption | 128 bit (encryption) 64 bit (integrity protection) | 128 bit (encryption & integrity protection) |
key management and distribution | pre shared | IEEE 802.1X or pre shared, EAP with RADIUS mandatory | IEEE 802.1X or pre shared, EAP with RADIUS optional |
integrity protection, header protection | enciphered CRC32 | Micheal | CCM |
Securtiy and Vulnerabilities
WEP | RSN(TKIP) | RSN(AES-CCMP) | |
---|---|---|---|
AP Authentication | none | EAP | EAP |
STA Authentication | fakeable | EAP | EAP |
impersonation protection | none | PMK/PTK(Session Key, created with Nonce incl. MAC Address) | PMK/PTK(Session Key, created with Nonce incl. MAC Address) |
replay protection | none | enforced IV sequencing | packet numbering |
flipping of bits integrity protected | no (combinated use of CRC and RC4) | yes (Micheal MIC) | yes (CBC-MAC) |
small IV space | yes (24 bit IV) | bigger IV (48 bit IV) | bigger packet number (48 bit) |
weak keys (RC4) | yes | avoided with TKIP key mix and per packet keys | no problem in AES |
Glossary
- AES - Advanced Encryption Standard, Block Cipher used by WPA2
- AES-CCMP / CCM - AES in Counter Mode with Cipher Block Chaining Protocol, Mode used by WPA2
- AP - Access Point
- AS - Authentication Server, process or machine responsible for user identifaction
- IV - Initialization Vector, used as variable input for encryption algorithms and as packet number in WPA
- MAC - Medium Access Control, MAC Address of network device is used to add nonce in WPA
- MAC - Message Authentication Code, used to sign messages, for clarification we use MIC instead
- MIC - Message Integrity Code
- PMK - Pairwise Master Key
- PN - Packet Number
- PTK - Pairwise Transient Key
- RC4 - Stream Cipher, used by WEP and WPA
- RSN - Robust Security Network, defined in 802.11i
- STA - mobile Station (Client)
- TKIP - Tempory Key Integrity Protocol, used by WPA
- WPA - WiFi Protected Access
- WPA2 - WPA based on RSN