Vortrag über Wireless LAN Security
Transcription
Vortrag über Wireless LAN Security
Übersicht • • • • • Pre 802.11i Security (WEP, MAC) etc. Verwendung und Implementierung von 802.1x Ablauf einer Verbindung unter 802.1x Was ist TKIP (WPA)? Was ist AES-CCMP (WPA2)? Danksagung an Fred Haisch von der Firma Proxim für die meisten Grafiken zum Thema WPA/WPA2 und Eicke Schomann von Juniper für die Radius Geschichten. hacko@ccc.de - www.hacko.org 1 Authentisierung & Verschlüsselung vom Standpunkt der Sicherheit Authentisierung Verschlüsselung MAC-Adressen statisch WEP PSK Preshared-Key (WPA / WPA2) TKIP (WPA) EAP-Methoden: Sicherheit Sicherheit dynamisch WEP PEAP EAP-TTLS AES-CCMP (WPA2) EAP-TLS hacko@ccc.de - www.hacko.org 2 Sicherheit nach IEEE 802.11 • Standard sind: – Authentisierung anhand der MAC-Adressen – Verschlüsselung nach WEP • Properitäre Erweiterungen dazu sind: – Closed Wired Network – WEPPlus hacko@ccc.de - www.hacko.org 3 MAC-Adressen Authentifikation • Die vom Hersteller in die Wirelesskarte „eingebrannte“ Adresse wird vom Netzwerk bei der Anmeldung überprüft. – Lokale Zuganglisten im AP (für SOHO User) – AP fragt zentralen (RADIUS) Server (für Firmenkunden) • Nachteil: Hält leider niemanden vom Einbruch ab! – Ein Hacker kann mit einem Wireless Sniffing Programm ihren Netzwerk datenaustauch überwachen und danach eine der MAC-Adressen benutzen die Sie authorisiert haben. – Um die MAC Adresse zu ändern braucht man: • Windows: http://www.klcconsulting.net/smac (15 USD) • Linux: ifconfig eth0 hw ether 00:02:2d:ff:00:ff (0 USD) hacko@ccc.de - www.hacko.org 4 MAC Adressen „in der Luft“ IEEE 802.11 Type/Subtype: Data (32) Frame Control: 0x4108 (Normal) Version: 0 Type: Data frame (2) Subtype: 0 Flags: 0x41 DS status: Frame is entering DS (To DS: 1 From DS: 0) (0x01) .... .0.. = More Fragments: This is the last fragment .... 0... = Retry: Frame is not being retransmitted ...0 .... = PWR MGT: STA will stay up ..0. .... = More Data: No data buffered .1.. .... = WEP flag: WEP is enabled 0... .... = Order flag: Not strictly ordered Duration: 2585 BSS Id: 00:02:2d:1b:3e:58 (Agere_1b:3e:58) Source address: 00:02:2d:40:64:86 (Agere_40:64:86) Destination address: 00:06:25:ff:95:8e (LinksysG_ff:95:8e) Fragment number: 0 Sequence number: 67 WEP parameters Initialization Vector: 0x0b0931 Key: 0 WEP ICV: 0x975415b1 (not verified) Data (72 bytes) 0000 0010 0020 0030 0040 0050 0060 08 00 67 bc d9 e4 26 41 06 fb cf ef e1 36 02 25 bd 65 f6 86 ac 01 ff aa 40 92 84 02 00 95 88 2d 11 41 97 02 8e cf e7 28 5f 54 2d 30 bf 41 f4 69 15 1b 04 de f1 57 0b b1 3e 0b 92 77 d6 0f 58 09 ec b6 ee 9f 00 31 d7 7d 8f 4e 02 00 3a a7 99 e4 2d a3 3f 0f 5e 81 40 a4 74 7e bf b4 64 fd 26 01 a2 2a 86 36 83 1e ab 3e .A....-.>X..-@d. ..%...0...1....6 g..........:?t&. ..e@-.A.w.}..~.. .....(.W....^... ....A_i...N...*> &6...T.. hacko@ccc.de - www.hacko.org 5 Verschlüsselung nach WEP • Gruppenschlüssel mit 40 oder 104 Bit geheimer Verschlüsselungsanteil • Öffentlich übertragener 24 Bit Initialisierungsvektor der dafür sorgt, dass Pakete gleichen Inhalts unterschiedlich verschlüsselt werden (daher Gesamtanteil von 64/128 Bit an der Verschlüsselung) • Jeder Teilnehmer hat den gleichen Schlüssel und kann daher auch die Pakete von anderen Teilnehmern entschlüsseln • Schlüssel muß „geheim“ ausgetauscht werden hacko@ccc.de - www.hacko.org 6 WEP interna • • • • • Gruppenschlüssel und Initialisierungsvektor bilden gemeinsam Startwert für einen Zufallszahlen Generator. IV (24Bit Zahl) wird „normalerweise“ nach jedem Packet um 1 erhöht. Zufallszahlengenerator basiert auf RC4 Algorithmus um eine Kette vom mathematischen Zufall zu erzeugen. Der Klartext wird mit dem erzeugten Zufall mittels einem Exklusiv oder verknüpft um den Schlüsseltext zu erzeugen Der verwendete IV wird unverschlüsselt mit dem Schlüsseltext mitgesendet. hacko@ccc.de - www.hacko.org 7 Geschlossenes Netz • Im Beacon des AP wird Netzname/SSID auf NULL gesetzt. • Hacker sieht den Netznamen nicht und kann sich nicht anmelden. • Es kommen nur Clients rein die bei der Anmeldung den richtigen Netznamen melden. • Properitäre Methode die aber inzwischen von den meisten Herstellern übernommen wurde. • Macht manchmal Ärger mit Windows-XP Zeroconfiguration-Tool. • Hacker muß nur warten bis ein Client sich am Netz anmeldet um den übertragenen Netznamen abzufangen. hacko@ccc.de - www.hacko.org 8 Kritik und Fehler in IEEE 802.11 • Fehlende Hinzuziehung von Kryptographieexperten. Die daraus resultierenden offensichtlichen Designschwächen machen uns heute das Leben schwer. – Fehlende mit Einbeziehung der 802.11 Managementebene in das Sicherheitsprotokoll (Deauth-Attacken u.s.w.) – Authentisierung nur nach MAC-Adressen war schon 1999 bekannt schwach. – Um eventuell ein paar Bytes am ende des Paketes zu sparen wurde aus dem (gar nicht so schlechten) Block Verschlüsselungsalgorithmus RC4 ein Zufallszahlengenerator gebaut der leider inzwischen Probleme bereitet. – Keine klare Vorschrift wie mit dem IV umzugehen ist z.B. • Was ist sein Startwert? • Er muß leider nicht nach jedem Packet um eins erhöht werden. (ermöglicht Replay-Attacken). – Die Paketprüfsumme (CRC) kann unabhängig vom verschlüsselten Packet errechnet werden (nicht keyed wie HMAC bei IPSec). hacko@ccc.de - www.hacko.org 9 Probleme mit WEP Teil1 • August 2001 die Kryptografen Fluhrer, Mantin, Shamir veröffentliche Papier das eine theoretische Schwäche aufzeigt. Der WEP Zufallszahlengenerator ist am Anfang nicht zufällig genug und „bestimmte“ IV‘s lassen leider Rückschlüsse auf den Gruppenschlüssel zu. – Zwei Wochen später: Erste Implementation der Attacke durch das Linux-Tool „Airsnort“. Eine erfolgreiche Attacke benötigt: – Ermittelte Pakete (die Länge ist dabei egal) in denen IV‘s einer bestimmten Sorte vorkommen. Da der IV normalerweise immer um einen pro Packet erhöht wird und nicht alle IV‘s zum erfolg führen wird für eine erfolgreiche Attacke die Anzahl von 4.000.000 Paketen benötigt. – Kann durch Wordbuch-Attacke beschleunigt werden wenn WEP Schlüssel nicht zufällig genug gewählt wurde. • Einige Hersteller entwickeln Methoden á la WEP-Plus um die Kompromitierenden IV‘s zu vermeiden und WEP wieder „sicher“ zu machen. hacko@ccc.de - www.hacko.org 10 Probleme mit WEP Teil2 • September 2004: Ein Hacker namens KoreK publiziert neue statistische Ansätze um WEP-Schlüssel zu brechen. Sofort werden neue Tools entwickelt von denen „aircrack“ das bekannteste ist. Ab jetzt gilt: – Ein 64Bit Schlüssel benötigt ~150.000 Pakete – Ein 128Bit Schlüssel benötigt ~500.000 – 1.000.000 Pakete – Auch Verfahren wie WEP-Plus sind nicht mehr sicher. Beispiel: Bei nur 11mbit/s Übertragungsrate werden bei einem simplen FTP-Download ca. 106MB übertragen (das ist einmal SP2 für Win-XP) was nur 5Minuten dauert! Danach könnte schon ein 64Bit Schlüssel gebrochen werden. hacko@ccc.de - www.hacko.org 11 Passive Attacke auf WEP • Feststellen wo es sich lohnt einzubrechen. Netstumbler / Kismet um zu sehen wo AP‘s / Netze sind. Eventuelle Verbindung mit GPS-Empfänger zur Katalogisierung. • Mit einem Sniffer (ethereal) feststellen was für Informationen das Netz von sich aus preisgibt (z.B. MAC-Adressen von Clients die das Netz benutzen dürfen). • Sammeln einer großen Menge an Paketen. (airodump) Braucht eventuell Zeit (je nach Netzauslastung). Kann nicht festgestellt werden da der Hacker nur lauscht. • Auswerten mit „aircrack“ • Anwenden der gesammelten Informationen. hacko@ccc.de - www.hacko.org 12 Aktive Attacke auf WEP Teil1 • Ziel: Schneller an die benötigte Anzahl von Paketen zu kommen wenn die Netzlast zu gering ist. Basiert meist auf Replay-Attacken. Beispiel: – Ein Client bucht sich in ein Netz ein (wenn er schon drin ist kann der Hacker auch eine gespoofte Deauthentisierung zum Client schicken. Dieser denkt der AP hätte ihn von Netz getrennt und loggt sich neu ein.) – Der Hacker zeichnet das auf und sucht nach Paketen. Am besten der ARP-Anfrage des Clients nach dem Gateway (sonst sind auch DHCP, Ping und Netbios anfragen gut geeignet). – Das aufgezeichnete Packet wird vom Hacker wieder und wieder abgespielt. (Es ist zwar immer der gleiche IV aber das ist leider Standartkonform!) – Die (eventuelle) Antwort aus dem Netz wird aber mit dem IV des AP‘s gesendet und dieser erhöht brav den IV mit jedem gesendeten Paket. Folge: Zwar nur „halbe Kraft“ aber unabhängig von der normalen Netzlast denn die „erzeugt“ der Hacker selber. hacko@ccc.de - www.hacko.org 13 Aktive Attacke auf WEP Teil2 • Die Forscher Bittau, Handley und Lackey haben ein Papier http://www.cs.ucl.ac.uk/staff/M.Handley/papers/fragmentation.pdf veröffentlicht das eine Attacke aufzeigt die nicht auf kryptografischer Weise basiert. • Es nutzt den Umstand das man Fragmente eines Gesammtpackets schicken kann die aber alle denselben WEP Schlüssel verwenden. Da der Anfang der Packete meist immer gleich aussieht kann man mit etwas geschick einen validen XOR Stream ermitteln den man nutzen kann um das WLAN zu nutzen und valide Packte einzuschleusen. z.B. für ARP-Replay • Benötigt die zuhilfename eines PC im Internet der als “Reflektor” dient. (Angriffsdaten müssen extern gesammelt werden) • Der Proof of Concept „wesside“ braucht ca 2 Sekunden dafür. http://www.toorcon.org/2005/slides/abittau/ abittaufragattackinpractice.tgz hacko@ccc.de - www.hacko.org 14 Aktive Attacke auf WEP Teil3 • April 2007 Die Forscher Erik Tews, Andrei Pychkine und RalfPhilipp Weinmann veröffendlichen ein Papier das eine weiterentwicklung (und Anwendung) einer von Andreas Klein entwickelten Theorie darstellt. • Das Tool aircrack-ptw implementiert diese Attacke. • Aus einem Datenstrom werden Felder die warscheinlich immer denselben Wert haben (z.B. bestimmte Felder im TCP-Header) genommen und „summiert“. Dadurch entstehen statistische Warscheinlichkeiten die den Key erraten lassen. • Erneute drastische Senkung der benötigten Packete: • – 40.000 für eine 50% Erfolgswarscheinlichkeit – 85.000 für eine 90% Erfolgswarscheinlichkeit Version 1 von aircrack-ptw implementiert dieses mittels ARPReplay -> kann schon nach einer Minute zum Erfolg führen! hacko@ccc.de - www.hacko.org Extensible Authentication Protocol (EAP) • EAP – Rahmen für unterstützte Authentisierungsmethoden • Entwickelt um die Verhandlung der Authentisierung und dem Informationsaustausch zwischen dem Client und dem Authenticator durchzuführen – Ermöglicht dem RADIUS Server die Sicherheit durch Auswahl der Authentisierungsmethoden zu gewährleisten • Die Verhandlung geschieht zwischen dem AAA Server und dem Client – Der RADIUS Server muss Entscheidungen treffen, und nicht auf sie reagieren – Access Point agiert als Übermittler zwischen dem Client und dem Authenticator hacko@ccc.de - www.hacko.org 16 Wie arbeitet 802.1x? • 802.1x (Port basierende Netzwerkszugangskontrolle) – Bietet ein Gerüst für unterschiedliche Authentisierungmethoden (EAP-XXX) – Bietet ein System zur Verteilung von Schlüsseln die zur Datenverschlüsselung benutzt werden (wenn WLAN genutzt wird) – Kann für LAN und WLAN benutzt werden • 802.1x definiert 3 Komponenten: – Supplicant • Ein Endnutzer der Zugang zum Netzwerk wünscht (STA, WLAN Client, PC mit Netzwerkanschluss) – Authenticator • Kontrolleinheit die den Zugriff auf das LAN verwaltet (Access Point, Layer-2 Switch) • Etabliert eine Datenverschlüsselung zwischen Client und ihm, wenn angefordert – Authentication Server (RADIUS Server) • Authentisiert den Endnutzer • Verhandelt Schlüsselmaterial mit dem Supplicant • Leitet das Schlüsselmaterial an den Authenticator weiter damit dieser es nutzen kann • Port Authentication Entities (PAEs) – Definiert im 802.1x Standard auf Seiten des Supplicanten und Authenticator mit folgenden zwei Zuständen • Authorisiert (Enabled): Jemand hat vollen Zugriff auf das Netzwerk • Unauthorized (Disabled): Nur 802.1x die zur Anmeldung dienen werden durchgelassen hacko@ccc.de - www.hacko.org 17 Das Netzsetup Steel-Belted Radius oder Odyssey Server WLAN Windows SQL/LDAP Tokens WLAN WLAN WLAN hacko@ccc.de - www.hacko.org 18 Was ist RADIUS? • Steht für Remote Authentication Dial In User Service • Client/Server Protokoll das Remote Access Servers in die Lage versetzt mit einem zentralen Server zu kommunizieren, und Benutzer die auf das Netzwerk zugreifen möchten Authentifizieren und Autorisieren kann • Standardisierte Methode Informationen zwischen RADIUS Client und Server auszutauschen RADIUS Server RADIUS Client User PPP or SLIP Negotiation RADIUS Request/Response (RAS, Firewall, VPN Gateway, Switch, Access Point, etc....) hacko@ccc.de - www.hacko.org 19 RADIUS AAA Services • Authentifizierung – ‘Wer bist Du und hast du die Erlaubnis das zu tun was du anforderst?’ – Passen Benutzername/Passwort zum Profil? • Autorisation – – – – ‘Stehen genügend Informationen für die Verbindung zur Verfügung?’ ‘Was darf der User online tun?’ User/Session-spezifische Konfiguration Beispiele: • Welche IP-Adresse wird zugewiesen? • Wie lang darf die Verbindung zum Internet bestehen? • Accounting – Protokolliert die Benutzung während der Verbindung – Sortiert, filtert, organisiert Attribute – Versendet Attribute überall hin (Logfiles, Proxy, SQL) hacko@ccc.de - www.hacko.org 20 Übersicht über die gebräuchlichsten EAP-Methoden NutzerSchlüsselname geneIm KlarAuthenticator rierung Text Authentisierungszertifikate EAP Typ Offen/ Properitär Beiderseitige Auth MD5 Offen Nein Username/Pwd Keines Nein Ja 1321 TLS* Offen Ja Zertifikat Zertifikat Ja Ja 2716 TTLS* Offen Ja Username/Pwd Zertifikat Ja Nein IETF Draft PEAP* Offen Ja Username/Pwd Zertifikat Ja Nein IETF Draft SIM* Offen/GSM Ja SIM Ja IETF Draft AKA Offen/UMTS Ja USIM Ja IETF Draft SKE Offen/CDMA Ja Ja IETF Draft LEAP Properitär Ja Supplicant Username/Pwd Ja RFC Ja * Benutzt die Wi-Fi für die WPA/WPA2 Zertifizierungstests hacko@ccc.de - www.hacko.org 21 Die Beziehungen zwischen EAP Methoden, EAP, 802.1X, und 802.11 und dem Netzwerk Supplicant EAP-TLS EAP-TTLS Method EAP-PEAP Layer EAP APIs EAP EAP Layer EAPOL (802.1X) NDIS APIs PPP 802.3 802.5 hacko@ccc.de - www.hacko.org 802.11 MAC/PHY Layer 22 Grober Ablauf einer 801.1x Authentisierung STA AP Supplicant Authenticator 802.11i Info Elements with security capabilities in Beacon 802.11 Open Auth & Assoc Authentication Server Security Capabilities Discovery Security Negotiation 802.1X Authentication 802.1X Key Management 4 Way Handshake RADIUS-based Key Distribution TKIP or CCMP replaces WEP hacko@ccc.de - www.hacko.org 23 Komplette 802.1x Authentisierung STA AP Supplicant RADIUS Authenticator Authentication Server 1. EAPOL Start 2. Request/Identity Session Key 3. Response/Identity 3. Radius-Access Request 4. EAP Request 4. Radius-Access Challenge 5. EAP Response 5. Radius-Access Chall-Resp 6. EAP Success 7. Key Management 6. Radius-Access Accept Session Key with Session Key Port Enabled 8. EAP Logoff Port Disabled hacko@ccc.de - www.hacko.org 24 Traditionelle Anmeldung eines Clients an einen Access Point STA State 1 (Unauthenticated Unassociated) AP Beacon Probe Request Probe Response • Authentication • Open • Shared Key State 2 (Authenticated Unassociated) Authentication Request Authentication Response Association Request Association Response State 3 (Authenticated Associated hacko@ccc.de - www.hacko.org • Confidentiality & Data Integrity • None • WEP* (Optional) 25 Ziele des IEEE 802.11i Standards • Beseitigen aller Probleme des alten Sicherheitsstandards • Bietet eine state-of-the-art Sicherheitslösung für WLAN • Skalierbare Lösung – Zentralisierte Authentisierung – Automatische Schlüsselverteilung • BEIDSEITIGE Authentisierung • Integrierung von neuen Authentisierungsalgorithmen • Integrierung von neuen Verschlüsselungs- und Prüfsummenalgorithmen • Benutzung von anerkannten Sicherheitsmethoden wann immer es möglich ist. (Beratung durch anerkannte Kryptologen) • Unterstützung von Firmen und Heimnetzen hacko@ccc.de - www.hacko.org 26 Vorgehensweise der Änderungen • Erster Schritt – Bessere Authentisierung – Benutzung von 802.1x (erstellt by 802.1aa) oder Pre-Shared Key – Erfordert beidseitige Authentisierung – Unterstützung von vielen EAP Authentisierungsmethoden (EAPXXX) • Zweiter Schritt – Sicherstellung der Schlüsselverteilung • Dritter Schritt – Erstellung von sicheren Verschlüsselungsmethoden – Ablösung von WEP durch TKIP als “Workaround” – Neue state-of-the-art Methode basierend auf AES (CCMP) • Vierter Schritt – Dinge die das Leben leichter machen – Schnelles Roaming zwischen APs (Schlüsselverteilung schon vor dem Roaming) – Sicherheit auch für Peer-to-Peer Netzwerke hacko@ccc.de - www.hacko.org 27 Die Konzepte von 802.11i • • • • • • • • • • • AES-CCMP – Ein neues Verschlüsselungsprotokoll basierend auf AES-128 im CCM Modus TKIP – Stärkeres, neues Verschlüsselungsprotokoll basiernd auf WEP aber so konzipiert, das es per Softwareupdate in basierenden Netzwerken integriert werden kann. WEP – Das ursprüngliche 802.11 Verschlüsselungsprotokoll RSNA State Machine – Übt die Kontrolle über 802.11i aus PRF – Pseudo-Random Function, für Generierung von Sitzungsschlüsseln KCK – Key Confirmation Key = Sitzungsschlüssel der für die Authentisierung von EAP-packeten benutzt wird PMK – Pairwise Master Key = Einmaliger, generierter Sitzungsschlüssel der aus der Authentisierung abgeleitet ist. KEK – Key Encryption Key = Sitzungsschlüssel für die Verschlüsselung von neuen Schlüsseln TK – Temporal Key = Aktuell benutzter Verschlüsselungsschlüssel 4-Way Handshake – Teil des 802.11i Schlüsselverteilungsprotokoll RSN IE -- Datenstruktur für das publizieren und aushandeln von Sicherheitseigenschaften hacko@ccc.de - www.hacko.org 28 Format einer EAP-Meldung innerhalb des EAPOL-Frames 802.2 LLC • • • • • • • SNAP EAPOL Header (802.1X) EAP Header EAP Data 802.11 MPDU Header D S S C OUI S T P P C I PBL Len T V T O D 30 -34 1 1 1 2 1 1 3 2 1 1 2 Type-Data Up to 2295 octets 1 802.11 MPDU Trailer (FCS) 4 DS & SS = 0xAA => ein IEEE 802.2 Sub-Network Access Protocol (SNAP) Kopf folgt dem LLC-kopf. C = 0x03 => Info Packet ohne Sequenznummer SNAP OUI = 0x000000 => Ein standart Ethernet Typ wird benutzt. SNAP Type = 0x888E => Als nächstes folgt ein 802.1X Packetkopf PV = 802.1X Protokoll versionsnummer, zur Zeit 0001 PT = 802.1X Packet Typ, 00 => EAP Packet, 01 => Start, 03 => Schlüssel PBL = Packet Body Length hacko@ccc.de - www.hacko.org 29 Die Architektur von 802.11i Data 802.1X Controlled Port Data Link 802.1X Authenticator/Supplicant 802.1X Uncontrol led Port MAC_SAP WEP/TKIP/ CCMP MAC Physical PHY PMD PMK/ Install TK KCK/ KEK 802.11i State Machines PTK ← PRF(PMK) (PTK = KCK | KEK | TK) Station Management Entity hacko@ccc.de - www.hacko.org 30 Durchlauf von Meldungen durch den 802.11/802.1x Protokollstapel STA Layer 3 AP IP Bridge w Authentication Layer 2 Layer 1 802.1X Ports 802.1X Ports 802.11 MAC 802.11 MAC 802.3 MAC 802.11 PHY 802.11 PHY 802.3 PHY Station Network 802.3 Traffic Access Point hacko@ccc.de - www.hacko.org 31 Aufbau des 802.1x Protokollstapels STA Supplicant EAP-Method AP RADIUS Authentication Server Authenticator EAP-Method Authenticator EAP EAPOL RADIUS RADIUS UDP/IP UDP/IP EAPOL Bridge w Authentication Layer 2 Layer 1 EAP 802.11 MAC 802.11 MAC 802.3 MAC 802.11 PHY 802.11 PHY 802.3 PHY Station Network 802.3 Traffic 802.3 MAC 802.3 PHY Access Point 802.1X Controlled Port Disabled hacko@ccc.de - www.hacko.org 32 Phase 1 – Finden des richtigen Access Points und verbinden mit ihm. AP STA Probe Response + RSN IE (AP supports: Group Suites: TKIP, Pairwise Suites: TKIP, CCMP and Auth: 802.1X) 802.11 Open Authentication 802.11 Open Auth (success) 802.11 Association Req + RSN IE (Client requests Group Suite: TKIP, Pairwise Suite: CCMP with 802.1X Auth) Negotiation 802. 11 Probe Request Discovery PAE PAE Association ID assigned (AID) 802.11 Association Response (success) 802.1X Controlled Port blocked for STA AID hacko@ccc.de - www.hacko.org 33 Was steht in den RSN-informations Packeten Element RSN Group Pairwise Pairwise Authentication Authentication Element RSN PMK PMK ID Version Cipher Suite Cipher Suite Suite Suite Length Capabilities Count List 0x30 1 Suite Count List Count - n List 1 octet • • • • • 1 octet 2 octet 4 octet 2 octet 4m octet 2 octet 4n octet 2 octet 2 octet 16n octet Wird ein RSN-Packet gesendet müssen die ersten drei Felder enthalten sein. Angebotene Systeme für Gruppenschlüssel, Punkt-zu-Punkt Schlüsselsysteme, Unterstützung von den angebotenen Authentisierungssysteme und RSN-elemente sind optional. Die “Element ID” bestimmt die Art des Packets - 0x30 (48) steht für RSN ein RSN-Packet - 0xDD (221) steht für WPA “Length” steht für die Menge aller Elemente nach dem Längenelement. Bei WPA werden vor dem RSN Versionsfeld die vier Bytes 00:50:F2:01 eingebaut. Die PMK-Felder werden dann nicht benutzt. hacko@ccc.de - www.hacko.org 34 Phase 2 – Der 802.1x Austausch AP STA PAE PAE 802.1X/EAP- Start RADIUS 802.1X/EAP - Request Identity 802.1X/EAP - Response Identity (EAP type specific) RADIUS Access Request/Identity EAP type specific Mutual Authentication Derive Pairwise Master Key (PMK) 802.1X/EAP - SUCCESS Derive Pairwise Master Key (PMK) RADIUS ACCEPT (with PMK via MS-MPPE) 802.1X Controlled Port still blocked for STA AID hacko@ccc.de - www.hacko.org 35 Phase 3 – Der 4-Wege Austausch STA AP PAE PAE PMK PMK Derive SNonce Derive ANonce EAPoL-Key (Reply Required, Unicast, ANonce) Derive PTK EAPoL-Key (Unicast, SNonce, MIC, STA RSN IE) Derive PTK EAPoL-Key (Reply Required, Install PTK, Unicast, ANonce, MIC, AP RSN IE, GTK) Install Keys Encrypt GTK Install Keys EAPoL-Key (Unicast, MIC) 802.1X Controlled Port unblocked for STA AID hacko@ccc.de - www.hacko.org * Fields not noted are null 36 Die Schlüsselhirarchie 256 bits Pairwise Master Key (PMK) PRF-X(PMK, “Pairwise key expansion”, Min(AA,SA) || Max(AA,SA) || Min(ANonce,SNonce) || Max(ANonce,SNonce)) Pairwise Transient Key (PTK) EAPoL-Key Conf Key (KCK) EAPoL-Key Encryption Key (KEK) 128 bits 128 bits TKIP Temporal Key CCMP Temporal Key 128 bits 128 bits 384 bits for CCMP 512 bits for TKIP PMKID = HMAC-SHA1-128(PMK, "PMK Name" || Authenticator-MAC-Addr || Supplicant-MAC-Addr) hacko@ccc.de - www.hacko.org 37 Wofür dient der 4-Wege Austausch • Die PTK Erzeugung garantiert einen frischen Sitzungsschlüssel (speziell wenn Sie Pre-Shared-Key benutzen) – Da ANonce und SNonce zufällige 256bit Zeichen sind gibt es wenig statistische Wahrscheinlichkeiten, dass jemals derselbe PTK erzeugt wird. • Die zweite Meldung demonstriert dem AP das der Client "lebt"; Meldung 3 sagt dem Client das der AP "lebt" • Die PTK Erzeugung erzeugt eine einmalige Verbindung zwischen Client und AP aus der weiteres Schlüsselmaterial generiert werden kann. • Meldungen 3 und 4 synchronisieren den erzeugten Temporären Schlüssel (TK) • Meldung 3 lädt den Gruppenschlüssel (wird für Broadcastmeldungen benutzt) auf den Client • Bei Meldung 2 wird durch Einbau des ausgehandelten RSN's ereicht das der Client dem AP gegenüber seine gewählten Sicherheitseinstellungen wiederholt. (Um Attacken mit schwachen Einstellungen zu vermeiden) • Bei Meldung 3 signalisiert der AP noch mal dem Client gegenüber seine Sicherheitseinstellungen. (Angriffsvermeidung) hacko@ccc.de - www.hacko.org 38 Erstellen eines Gruppenschlüssels STA AP PAE PAE Pick Random GTK Encrypt GTK with KEK EAPoL-Key(Install, Reply Required, Group Rx, Key ID, Group, RSC, MIC, GTK) Decrypt GTK & Install EAPoL-Key(Group, MIC) * Fields not noted are null hacko@ccc.de - www.hacko.org 39 Unterschiede WPA, WPA2 und IEEE 802.11i • Der alles umfassende Standard ist IEEE 802.11i. – In ihm sind die Verschlüsselungsprotokolle TKIP und AES-CCMP definiert. – Er definiert PSK (Pre-shared-Key) und EAP für die Authentisierung – Er definiert Zusatzprotokolle für schnelles Roaming und IBSS-Modus (Peer-to-Peer) • WPA – Wurde von der Herstellerorganisation Wi-Fi.org vor der Fertigstellung von 802.11i veröffentlicht da man nicht mehr warten wollte. – Definiert TKIP, PSK und EAP • WPA2 – Definiert die noch fehlende Schnittmenge zum 802.11i Standard also: • AES-CCMP • Fast-Roaming • IBSS-Modus • Achtung! Die Wi-Fi.org zertifiziert in ihren Standards meist nur kleinste gemeinsame Nenner die alle Hersteller erfüllen. hacko@ccc.de - www.hacko.org 40 Wie funktioniert die Pre-Shared-Key Methode • Funktionsweise: – Client und AP kennen einen geheimen Gruppenschlüssel (der out of Band ausgetauscht werden muß). – Der geheime Guppenschlüssel wird mit öffendlich übertragenen Anteilen wie SSID, Länge der SSID verknüpft und per HASH-Funktion wird daraus der PMK gebildet (4096* Durchlauf durch Hash oder direkeingabe). • Vorteile: – Es wird kein Authentisierungsserver benötigt – Gute Sicherheit/Authentisierung für kleine Netzwerke – Sehr schnell wenn Roaming kritisch ist (z.B. VoWLAN) • Nachteile: – Durch den öffendlichen Anteil und das HASH verfahren sind pro Byte Gruppenschlüssel nur ca. 2 Bit aktiv an der security beteiligt. Daher erst “sicher” wenn Gruppenschlüssel mehr als 20 Zeichen lang. – Wortbuchattacken auf nachlässig gewählte Passphrase möglich – PMK ist kompromitiert wenn jemand die Gruppe verlässt. – Keine Authorisierung der Teilnehmer. Wer den PSK kennt kann das Netz nutzen. – Traffic kann entschlüsselt werden wenn PSK kompromitiert und 4Wayhandshake bekannt ist. hacko@ccc.de - www.hacko.org 41 Temporal Key Integrity Protocol (TKIP) • Schlüsselerzeugung unter Ableitung aus dem PMK (siehe Schlüsselhirarchie) • Längerer initialisierungs Vector (IV) als bei WEP (48bit) • Feste Vorschrift zur Inkrementierung der IV's (verhindert Replay Attacken) • WEP wird noch für die Verschlüsselung der Packete benutzt aber dafür für jedes Packet ein neuer Schlüssel (verhindert die Attacken auf statische WEP Schlüssel) • Michael MIC (Message Integrity Check) statt einfacher CRC • Wurde so definiert das er als Software update in bestehende Clients / AP‘s integriert werden kann ohne die Hardware zusätzlich zu überlasten. (Dabei mussten natürlich auch Kompromisse geschlossen werden.) hacko@ccc.de - www.hacko.org 42 TKIP Verschlüsselungsdiagramm Temporal Key TA WEP seed (represented as WEP IV || RC4 Key) TK1 TTAK Phase 1 Key Mixing Phase 2 Key Mixing TSC MIC Key MIC Plaintext MSDU || MIC WEP Encapsulation Plaintext MPDU Fragmentation SA || DA || Priority Plaintext MSDU Data MSDU MPDU Cipher Text Encrypted MIC 8 Octets IV Ext IV Frame Body’ 4 Octets 4 Octets L Octets MIC’ ICV’ 8 Octets 4 Octets Encapsulation Block Diagram hacko@ccc.de - www.hacko.org 43 TKIP Entschlüsselungsdiagramm 1st or 2nd half of TK2 MIC Key Temporal Key TA TSC TK1 WEP Seed Phase 1 Key Mixing TSC MPDU Cipher Text Unmix TSC from IVs SA || DA || Priority Plaintext Plaintext MSDU MSDU Data Michael Phase 2 Key Mixing TTAK In-sequence Plaintext MPDU WEP Decapsulation Reassembly MIC” Y MIC N Out-ofsequence MPDU MPDU with failed WEP ICV MIC = MIC”? Counter Measures Encrypted IV Ext IV 4 Octets 4 Octets Frame Body’ L Octets MIC’ ICV’ Decapsulation Block Diagram 8 Octets 4 Octets hacko@ccc.de - www.hacko.org 44 Aufbau des Michael MIC Schützt gegen Manipulation der Prüfsumme. (Richtige Prüfsumme kann nur errechnet werden wenn man auch in der Lage ist das Packet zu entschlüsseln) DA SA MSDU Payload Wird gebildet unter Einbeziehung der beiden MAC-Adressen (Client/AP) und der Payload. Nutzt pro Richtung eigene (64bit) Schlüssel MIC Key* MIC Calculation Nutzt kaum die CPU ca. 5 Zyklen/Byte 3 - 4 Zyklen/Byte auf ARM7 (2.7 – 3.6 MHz) 5 - 6 Zyklen/Byte auf i486 (4.5 – 5.4 MHz) 8 byte MIC Vergleichsweise schwach ~30bits an Sicherheit * Der MIC Schüssel wird aus dem Pairwise Transient Key (PTK) abgeleitet. Der PTX wird aus dem 4Wege Handshake von dem benutzten PMK generiert. Der PMK wiederum entscheht aus der 802.1x Authentisierung. hacko@ccc.de - www.hacko.org 45 Gegenmaßnahmen bei Attacken auf Michael • Sobald eine aktive Attacke erkannt wird (wenn innerhalb von 60 Sekunden zwei oder mehr Prüfsummenfehler erkannt werden): – Neue Schlüssel generieren und die alten löschen. – Limitierung der neuen Schlüsselerzeugung auf einen pro Minute. (Dadurch das der Access Point für 60 Sekunden ausgeschaltet wird.) • Überprüfung von FCS, ICV und TSC bevor die Prüfsumme des MIC getestet wird. – Macht es unwahrscheinlich das zufällig eine aktive Attacke auf Micheal erkannt wird obwohl einfach nur Bits bei der Übertragung gekippt sind. hacko@ccc.de - www.hacko.org 46 Packetformat eines TKIP-Packets TKIP Encrypted 802.11 Frame Encrypted Authenticated Authenticated 802.11 Header RC[0] TSC1 RC[1] IV/KeyID 4 octets RC[2] TSC0 Extended IV 4 octets New Reserved b0 b4 Data >= 1 octets Ext IV New Key ID b5 b6 b7 TSC2 MIC ICV 8 octets 4 octets New TSC3 TSC4 TSC5 Initialisiere den 48 bit IV mit 1 wenn der Temporäre Schlüssel (TK) erzeugt wurde. Erhöhe den IV bei jedem Packet um eines (Sequenzregel) Ignoriere alle Packte die einen IV haben der kleiner ist als der zuletzt emfangene. hacko@ccc.de - www.hacko.org 47 AES Verschlüsselung mit CCMP • Der Rijndael genannte Algoritmus wurde als Ablösung des bisherigen DES Standart vom National Institute of Standards and Technology, NIST, 2001 gewählt. • Rijndael (nach seinen Erfindern Vincent Rijmen & Joan Daemen), ist ein relativ simpler Blockziffer Algorithmus mit unterschiedlichen grössen (128/192/256 Bits). • Operationen auf Byte-basis wie Tabellensuche, XORs, Multiplikationen, Byteweisen verschiebungen machen ihn einfach zu implementieren. • Wiederholungen dieser Operationsvorschriften mehrfach hintereinander (10 Runden bei 128Bit) machen ihn zu einem sehr starken Verschlüsselungsalgorithmus. • Rijndael wurde von Cryptoanalysten, der freien Welt, sehr genau unter die Lupe genommen und von diesen "erwählt". • AES wird von WPA2 nicht in Reinform verwendet. Er wird mit Verfahren wie CBC und Counter Mode verbunden um gleichzeitig auch die Bildung von starken Prüfsummen zu ermöglichen. Dieses führt zu AES-CCMP hacko@ccc.de - www.hacko.org 48 Counter Mode/CBC MAC Protokoll (CCMP) • CCMP bietet: – Benutzt AES (Advanced Encryption Standard) • – – – – • Dieser erfordert allerdings auch „stärkere“, neue Hardware eventuell mit spezial Chips.) Schlüsselerzeugung wird vom PMK abgeleitet (Schlüsselhirarchie) 48bit grosse Packet Nummer (PN) Regel für die Erhöhung der Packet Nummer (um eins pro Packet) Counter Mode und CBC (Chiper Block Chaining) MAC müssen zusammen benutzt werden. Was kann (braucht CCMP) nicht: – Schlüsselerzeugung für jedes Packet • • AES ist stark genug Durch CBC muss man auch die Vorgeschichte kennen/entschlüsselt haben – Gegenmassnahmen auf Prüfsummen-Attacken • Das Design (durch den CBC) ist resistent dagegen hacko@ccc.de - www.hacko.org 49 AES, alleine und mit Counter Mode AES Block Cipher/Decipher P C AES(K) C P AES-1(K) AES in Counter Mode Cipher/Decipher P CTR + AES(K) C C CTR + P AES(K) IV_ccm = PKT_CTR || TA_MAC_ADDR CTR = IV_CCM++ for each 16 byte block hacko@ccc.de - www.hacko.org 50 Hintereinanderschaltung des AES CM 16 Octets Plaintext Counter 1 2 3 4 5 AES(K) AES AES AES AES AES XOR + + + + + Ciphertext 16 Octets hacko@ccc.de - www.hacko.org 51 CBC Modus (Cipher Block Chaining) & Bildung von Prüfsummen (Message Integrity Code) MPDU Plaintext plus AAD 1st Block AES(K) 1st Block AAD MAC Hdr + Priority Octet FC with some bits =0 AES(K) + A2 Addr A1 A2 + AES(K) PN A3 SC Bits 4-15 = 0 hacko@ccc.de - www.hacko.org CBC-MIC (use lower 8 octets) Other A4 QC 52 Packetformat eines AES-CCMP-Packets CCMP Encrypted 802.11 Frame Encrypted Authenticated 802.11 Header PN0 PN1 Authenticated CCMP Header 8 octets Rsvd Data >= 1 octets Reserved Ext IV Key ID b0 b5 b6 b7 b4 PN2 PN3 MIC 8 octets PN4 PN5 Erhöung des PN um einen (Sequenzregel) Verwerfe alle Packete deren PN kleiner ist als der vorherige hacko@ccc.de - www.hacko.org 53 Gegenüberstellung WEP, TKIP und AES-CCMP WEP TKIP CCMP Cipher RC4 RC4 AES Key Size 40 or 104 bits 128 bits encryption, 128 bits 64 bit auth Key Life 24-bit IV, wrap 48-bit IV 48-bit PN Packet Key Concat. Mixing Function Not Needed Integrity Data Header CRC-32 None Michael Michael CCM CCM Replay None Use IV Use PN Key Mgmt Way None 802.11i 4-Way Handshake 802.11i 4Handshake hacko@ccc.de - www.hacko.org 54 Verweise • IEEE Standarts für 802.11* http://standards.ieee.org/getieee802/802.11.html • Wi-Fi Hersteller Organisation http://www.wi-fi.org http://certifications.wi-fi.org/wbcs_certified_products.php?TID=2 • Grundlagen der Kryptografie Buch: Applied Cryptography von Bruce Schneier • Godzilla Crypto Tutorial http://www.cs.auckland.ac.nz/~pgut001/tutorial/index.html • Linksammlung zu Test-Tools http://www.corecom.com/html/wlan_tools.html • Backtrack Security Live CD http://www.remote-exploit.org/backtrack.html • Sicherheitsfibel für Wireless LAN http://www.mms-ag.de/ftp/pdf/systems/WLAN_Sicherheitsbroschuere.pdf hacko@ccc.de - www.hacko.org 55