WiFi Protected Access

From
Revision as of 17:14, 20 July 2007 by Bg (talk | contribs) (AES-CCM)
Jump to navigation Jump to search

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.

  1. Supplicant (hier STA), der mobile Client, der sich beim Netzwerk anmelden möchte
  2. AP, der Access Point, der den Zugang zum Netzwerk in der Form von offenen und geschlossenen Ports regelt
  3. AS, Authentication Server der sich um die eigentliche Autorisierung kümmert

STA und AP kommunizieren drahtlos und vor erfolgreicher Authentifizierung 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.

  1. Der Supplicant kann die Authentication mit einer optionalen EAPOL Start Nachricht einleiten
  2. Der AP schickt eine EAPOL Request Nachricht
  3. Der Supplicant antwortet mit einer EAPOL Response Nachricht, die der AP als RADIUS Access Request an den AS weiterleitet
  4. Der AS schickt RADIUS Access Challenge, die vom AP als EAPOL Request weitergeleitet wird
  5. Der Supplicant antwortet mit einem EAP Response, das als RADIUS Access Request den AS erreicht
  6. Der AS schickt RADIUS Access Accept, die als EAP Success an die STA weitergeleitet wird
  7. 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.

  1. 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
  2. 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.
  3. 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.
  4. 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.

  1. Key Encryption Key
  2. Key Integrity Key
    1. Diese Keys werden beim 4-way-handshake bereits zum signieren und verifizieren der Nachrichten genutzt
  3. Data Encryption Key
  4. Data Integrity Key
    1. 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.

  1. Group Encryption Key
  2. 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 - Michael. 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 des Data Integrity Key werden message integrity codes, kurz MIC, erzeugt. Eingabe dafür sind die Nutzdaten, Quell- und Zieladresse, sowie priority bits. Der MIC wird an die verschlüsselten Nutzdaten angehängt und beide mittels RC4 nochmals verschlüsselt.
TKIP verwendet die IV als Sequenznummer, um Replay Attacken zu entdecken.
Bei falschen MICs sind in TKIP Gegenmaßnahmen vorgesehen: dieses Ereignis wird als security event geloggt. Treten zwei falsche MICs innerhalb von 60 Sekunden auf wird der TKIP Verkehr für 60 Sekunden gestoppt und alle PTKs müssen neu ausgehandelt werden.

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. Dadurch können Veränderung sowohl der Daten als auch des Headers erkannt werden..
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 RC4 seed zu erhalten. Der Keymix ist so eingerichtet, daß er die in der RC4-Chiffre als schwache Schlüssel wirkenden Werte vermeidet.
Das Ergebnis der ersten dieser beiden Phasen ändert sich nur selten, da es von relativ konstanten Eingangsgrößen abhängt. Daher kann das Ergebnis für viele Pakete verwendet werden, was einen Performancevorteil bringt. Die zweite Phase verwendet nur die niedrigen 16 bit des IV als dynamischen input und muß für jedes Paket neu berechnet werden.

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. Statt des Klartextes wird zunächst dieser Zustand mit dem Schlüssel verschlüsselt. Der daraus entstehende Block kann dann bitweise mit dem Klartext mit einer einfachen XOR-Funktion verbunden werden. Dieses Verfahren gilt als genauso sicher wie normale Anwendung von AES im Blockmodus.
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 - durch CCM wird nur ein Schlüssel für Integrity und Confidentiality benötigt - 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 Michael CCM

Security 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 (Michael 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

Refernences

  1. [Breaking 104 bit WEP in less than 60 seconds]
  2. [Security and Cooperation in Wireless Networks]
  3. [NIST Special Publication 800-97]
  4. [Wikipedia]