Title: Sicurezza nelle Reti Wi-Fi
1Sicurezza nelle Reti Wi-Fi
- Davide Ceneda , Alessia Rebba
2Sommario
- Introduzione
- Cifrario a flusso ? RC4
- Implementazione nei differenti algoritmi per il
WI-Fi - Debolezze Wep
- 3 attacchi al wep ? FMS ,PTW e Chopchop
- Wpa e sue debolezze
- Attacco chop-chop modificato
- Una introduzione a Wpa2
- Dimostrazione pratica con aircrack
3Introduzione Sicurezza
- Con l'avvento delle connessione senza fili ci si
è cominciato a preoccupare della loro sicurezza - Connessioni attraverso l'etere sono meno sicure,
- Intercettabili da chiunque abbia un minimo di
conoscenze - Necessità di proteggere in una qualche maniera le
connessioni Wireless.
4Cifrari a Flusso
- Definizione
- Un cifrario a flusso sincrono una sestupla (P,
C, K, L, E, D), e una funzione g - Funzione g è importante in quanto da questa
dipende la sicurezza del sistema. - Nella forma più comune, si usano simboli binari
(bit), e la sequenza chiave è combinata con il
testo in chiaro usando l'operazione di or
esclusivo (XOR). Questo è definito cifrario a
flusso sincrono additivo.
5Rc4 Un po' di Storia
- Creato da Ron Rivest (RSA) nel 1987
- Inizialmente segreto, fu pubblicato anonimamente
nel 1994 - Rc4 è un marchio registrato quindi la sua
versione pubblica viene chiamata
diversamenteARCFOUR , ARC4 - Molto diffuso a causa della sua semplicità e
velocità, usato in SSL e Wep
6Rc4 - Algoritmo
- Rc4 genera un flusso pseudo-random (dipendono
dalla chiave) di bit che combinati con lo XOR con
il Plaintext genera il testo cifrato - La Decodifica avviene nello stesso modo, essendo
lo XOR una operazione simmetrica - Si compone di due parti
- 1)KSA (Key Scheduling Algorithm)
- 2) PRGA
- (Pseudo-Random generation algorithm)
7Rc4 Algoritmo \2
- Ksa (codifica in C)
- Ksa(char key, int key_length)
- for (i 0 i lt 256 i)
- Si i
-
- for (i j 0 i lt 256 i)
- j (j keyi key_length Si)
255 - swap(S, i, j)
-
8Rc4 - Ksa
- PASSO KSA-0
- Data la chiave K023 K142 K2232
- Il vettore S viene riempito da 0 a 255 con numeri
crescenti. I candidati allo scambio sono - i0
- j 1 j0 S0 K0 0 0 23 23
9Rc4 Ksa \1
- S0 e S23 vengono scambiati. I nuovi candidati
allo scambio sono - i1
- j 2 j1 S1 K1 23 1 42 66
10Rc4 Ksa \2
- S1 e S66 vengono scambiati. I nuovi candidati
allo scambio sono - i2
- j 3 j2 S2 K2 66 2 232 300 in
modulo 256 44
11Rc4 Ksa \3
- E cosi via per 255 passi!
- In questo modo termina lalgoritmo RC4-KSA quando
scambiamo anche lultimo elemento ottenendo il
256 elemento di S - Ora con questo vettore inizia la parte
dellalgoritmo relativa al RC4-PRGA.
12Rc4 - PRGA
- PRGA (ij0)
- Unsigned char rc4_prga()
- i (i 1) 255
- j (j Si) 255
- swap(S, i, j)
- return S(Si Sj) 255
-
-
13Rc4 - Prga\1
- i (i 1) 255 ? 1
- j (j Si) 255 ?12
- Ecco quindi il vettore creato dalla prima parte
del KSA con i candidati allo SWAP evidenziati in
rosso
14Rc4 - Prga\2
- swap(S, i, j)
- Gli elementi del vettore sono aggiornati ed ora
possiamo estrarre il primo valore X0 del
keystream - X0 S S1 S12 S260 S4 85
15Crittoanalisi Rc4
- Non vedremo una analisi approfondita di Rc4
- Ci limiteremo a far notare che Rc4 paga la sua
semplicità in termini di sicurezza questa è
molto debole e l'algoritmo è violabile con
relativa facilità e velocità tanto che il suo uso
non è piu consigliabile. - Un'altra debolezza è relativa alla forte
correlazione che c'è fra la chiave ed il
keystream tanto che nel 2005 è stato trovato un
modo per violare una connessione wep in meno di
un minuto - Inoltre le debolezze di Rc4 derivano dalla sua
errata implementazione nei protocolli di
sicurezza Wep e Wpa
16Wep - Introduzione
- -Algoritmo usato per la sicurezza di 802.11 Wi-Fi
- -Introdotto nel 1999 come standard di sicurezza
nelle reti wireless - - Usa Rc4 per Crittare i dati e Crc-32 per
verificarne l'integrità - - All'inizio chiave solo a 40 bit , poi estesa a
104 - -Nel 2003 è stato dichiarato deprecato e il suo
utilizzo è stato sconsigliato
17Wep Funzionamento
- Wep utilizza Rc4 con chiave statica per la
sicurezza dei dati. - Visto che la chiave è statica e che il CiphText è
ottenuto come semplice xor tra la chiave e il
PlainText, conoscendo un testo in chiaro e il
corrispettivo testo cifrato , sarebbe semplice
risalire alla chiave. - Per questo vengono utilizzati degli IV che
vengono uniti con la chiave statica per generare
un Keystream sempre diverso
18Wep - Funzionamento
19Wep - IV
- Gli IV (initialization Vector) sono vettori della
forma v (x1,....x24) di 24 bit usato per rendere
la chiave ogni volta diversa - - Wep64 ? 40 bit di chiave 24 bit di IV
- - Wep128 ? 104 bit di chiave 24 bit IV
20FMS - Introduzione
- - L'IV viene inviato sottoforma di plaintext
allegato al ciphertext. Quindi chi possiede un
software Ad-Hoc per la cattura di pacchetti
wireless può facilmente leggerlo ottenendo così i
primi tre byte del PRGA. - - Vi sono il 5 di possibilità che i valori che
risiedono da S0 a S3 non cambino dopo le
prime quattro iterazioni del KSA. Quindi un
qualsiasi cracker può indovinare cosa accadrà
durante il processo del KSA con il 5di
probabilità di successo ? attacchi probabilistici
21Inoltre...
- - Il quarto byte del pacchetto crittografato è
sempre un header SNAP che corrisponde ad 0xAA in
esadecimale ed a 170 in decimale. Ciò significa
che sniffando il primo byte del pacchetto
crittato e mettendolo in XOR con 170, qualsiasi
cracker può dedurre il rispettivo byte di output
del PRGA. - - È stato confermato che un determinato formato
di IV rilascia informazioni su un determinato
byte della chiave segreta. Questa tipologia di IV
prende il nome di weak IV o IV debole. Su
16.000.000 di IV circa, più o meno solo 9000
possono presentarsi come deboli. Il formato di un
IV debole è - IV(B 3,
N - 1, X,....) - dove B è il byte della chiave segreta che l'IV
pone a rischio, ovvero di cui rilascia
informazioni tali da poterlo crackare. X può
assumere qualsiasi valore
22FMS Attack
- Date queste premesse è possibile sviluppare un
algoritmo per risalire alla chiave wep - Nel 2001 Fuhler, Mantin e Shamir pubblicarono a
riguardo un articolo. - Con questo tipo di attacco ,dato un grande numero
di weak-IV e conoscendo il valore di un m byte,
si puo risalire al (m1)esimo byte del keystream - Il problema ora è trovare il valore del primo
byte del keystream in modo da poter risalire agli
altri ? come detto però il primo byte del
keystream è noto in quanto header SNAP
23FMS in pratica
- Facciamo un esempio pratico
- - N 8 quindi S conterrà 256 elementi
- - Si supponga di aver catturato un IV
(3,255,7) - (Che quindi ci da informazioni sul primo byte)
- - La chiave WEP utilizzata corrisponde a 22222
- - Tutte le operazioni vanno fatte in modulo 256
24Esempio Pratico \1
- Il seguente è la rappresentazione di K dopo la
cattura dell'IV. - K0 3 K1 255 K2 7 K3 ? K4 ? ..
- Ciclo n1 KSA
- i0 j0
- S0 0 S1 1 S2 2 S3 3
- j j Si Ki mod l 0 S0 K0 0
0 3 3 quindi j 3. - Swap (Si, Sj) quindi se S0 0 e S3 3
ne segue che Swap(S0, S3) è uguale a S0 3
e S3 0. - Come detto precedentemente vi sono il 5 di
possibilità che i valori compresi tra S0 e S3
non cambino dopo i primi 4 cicli KSA/PRGA.
25Esempio Pratico \2
- Ciclo n2 KSA
- I1 j3
- S0 3 S1 1 S2 2 S3 0
- j j Si Ki mod l 3 S1 K1 3
1 255 259 mod 256 3 quindi j 3. - i 1.
- j 3.
- Swap (Si, Sj) quindi se S1 1 e S3 0
ne segue che S1 0 e S3 1.
26Esempio Pratico \3
- Ciclo n3 KSA
- I2 j3 S0 3 S1 0 S2 2 S3 1
- j j Si Ki mod l 3 S2 K2 3
2 7 12 quindi j 12. - i 2.
- j 12.
- Swap (Si, Sj) quindi se S2 2 e S12 12
ne segue che S2 12 e S12 2. - Si noti che fino a questo punto sono stati usati
solo i valori dell'IV e quindi valori conosciuti.
Chiunque può riprodurre questo processo fino a
questo punto. - Nel prossimo ciclo però non si utilizzano più
parametri conosciuti e quindi siamo costretti
fermarci
27Esempio Pratico \3
- Ciclo n4 KSA
- I3 j 12
- S0 3 S1 0 S2 12 S3 1
S12 2 - j j Si Ki mod l 12 S3 K3 12
1 ? ?. - i 3.
- j ?.
- Swap (Si, Sj) quindi se S3 1 e S? ?
ne segue che S3 ? e S? 1. - Come si puo notare dopo il terzo ciclo non
sappiamo piu che valore assumerà j e di
conseguenza non sarà possibile determinare il
prossimo stato dell vettore S.
28Esempio Pratico \4
- Ma esiste una via per determinare il valore di j?
Si. Con una semplice operazione di XOR, un
malintenzionato può determinare il valore dalla
prima ripetizione del processo del PRGA. Ora
siccome lo XOR è invertibile, si può dedurre il
primo byte del PRGA xorando il primo byte del
ciphertext con il primo byte del plaintext. - Nel seguente esempio sarà fornito il valore
crittato del primo byte del pacchetto catturato
(165 in decimale) che ovviamente cambia da
pacchetto a pacchetto.La seguente equazione
illustra il processo di XOR - z 0xAA(SNAP) XOR Ciphertext byte 1 170
(decimale) XOR 165 (decimale) 15 - Z 15. (primo valore del Keystream)
- Dopo aver dedotto che il valore del PRGA è 15 in
base decimale, sir può utilizzare il processo di
reverse engineering (ingegneria inversa) del
processo del PRGA per ricavare il valore di j.
29Esempio Pratico \5
- PRGA passo 1
- I3 j 12
- 1) Inizializzazione. 2) i 0 3) j 0
- S0 3 S1 0 S2 12 S3 1 S12
2 - 4) Generazione. 5) i i 1 0 1 1.
- 6) j j Si 0 S1 0 0 0.
- 7) Swap (Si, Sj) quindi se S1 0 e S0
3 ne segue che S1 3 e S0 0. - 8) z SSi Sj SS1 S0 S3 0
S3 ?. - 9) ? 15 quindi S3 15 al 4 ciclo del KSA.
- Dal PRGA sappiamo che il primo byte del Keystream
è S3 15 (trovato in precedenza) - Ora quindi possiamo ricavarci il valore di j nel
4 passo del KSA e arrivare così a trovare il
primo byte della chiave
30Esempio Pratico \6
- Ciclo n4 KSA
- I3 j 12
- S0 3 S1 0 S2 12 S3 1 S12
2 S3 15, S15 1. - Si sa che l'ultimo passaggio del KSA consiste
nell'operazione di swap dei valori. - Dopo lo swap dovremmo avere S315 e S151
- Prima dello swap allora avevamo S31 e
S1515 - Tornando allora all'ultimo passo del KSA che era
stato lasciato in sospeso abbiamo - j j Si Ki mod l 12 S3 K3 12
K3 1 15. - Allora si puo scrivere
- K3 15 12 1 2. Il quarto valore del KS
ossia il primo della chiave statica è quindi 2
31FMS - Conclusioni
- A partire da un byte del Keystream siamo risaliti
al primo byte della Chiave - Tutto ciò è stato possibile grazie a un
particolare tipo di Vettore detto Weak-IV - Servono molti IV
- A seconda della grandezza e della lunghezza della
chiave bisogna catturare un quantitativo di IV
veramente alto. Per una chiave da 40 bit bisogna
catturare anche più di 300.000 IV mentre per una
chiave da 104 bit a volte non bastano 1.000.000
di IV. Non è certo che anche se si catturino
1.000.000 o più IV l'attacco abbia successo. Non
si assicura al 100 la riuscita dell'attacco
poiché è sempre un attacco probabilistico.
32Metodo per Acquisire IV
- ARP REQUEST INJECTION
- Effettuare quest'attacco è molto semplice.
- Il cracker sniffa pacchetti in etere e concentra
la sua attenzione in quelli inviati in broadcast.
- Un ARP request ha sempre una lunghezza fissa di
68 byte. - Quando un client vuole uscire dalla rete invia un
ARP request in broadcast per - conoscere l'indirizzo MAC del default gateway
settato. - Il gateway risponderà con un ARP reply, e quindi
con un nuovo pacchetto contenente un nuovo IV. - Se il cracker cattura la ARP request può
reiniettarla forzando così il gateway a generare
nuove ARP reply con nuovi IV ovviamente. - A questo punto il cracker si limita a sniffare
tutti i pacchetti per poi iniziare il processo di
cracking.
33Un secondo attacco PTW
- Un secondo attacco PTW
- Nel 2007, è stato pubblicato da Tews, Weinmann e
Pyshkin una nuova generazione di attacchi WEP. - Con questo tipo di attacco (attacco Klein)
- Un utente che ha accesso ad un oracolo Owep è
in grado di recuperare la chiave segreta di Owep
con un successo di probabilità del 50 con 43000
pacchetti, mentre con 70000 pacchetti la
probabilità sale al 95.
34Ptw Attack
- L'idea dietro l'attacco di Klein è abbastanza
semplice - Supponiamo che sappiamo K0...Kl-1 e si vuole
recuperare Kl. - Siamo in grado di simulare i primi l passi.
- Nella fase successiva, il valore k Sljl Sll
Kl e scambiato a Sl1l. - La conoscenza di k rivelerebbe Kl (come avviene
in FMS). - Mi limiterò a prendere il valore di l dopo
esattamente n-2 passi del restante RC4-KSA (n-l-1
passi eseguiti qui) e la RC4-PRGA (l-1 passi
sono stati eseguiti, prima che i assume ancora il
valore di l). - Così Sl1l sarà cambiato soltanto se viene
colpito j, ciò avviene con una probabilità di
(1/n)n-2, mentre con una probabilità di
1-(1/n)n-2, Sl1l sarà modificato e fissato ad
un valore differente rispetto a k.
35Jenkins
- Ora utilizzando la correlazione di Jenkins' si
distinguono due casi - 1) Snl-1l k
- accade con probabilità (1/n)n-2. Secondo la
correlazione la probabilità per l - Xl - 1
k in questo caso è - Prob (l - Xl - 1 k Snl-1l k) 2/n
- 2) Snl-1l? k
- accade con probabilità 1-(1/n)n-2. Secondo la
correlazione la probabilità per Xl - 1 k
in questo caso è - Prob(l-Xl-1k Snl-1l?k) (n-2)/(n(n-1))
36Jenskins
- In totale, questo ci dà la probabilità seguente
per Xl - 1 k Sljl Sll Kl
Risolvendo questo per Kl ci dà la seguente
formula
37Esempio Pratico
- Un esempio pratico
- Supponiamo che RC4 è usato con k 12, 111, 28,
107, 226, 211, 232, 247. - L'attaccante conosce il primo l3 byte di k ed è
interessato a Kl. - L'attaccante può simulare i primi 3 punti del
RC4-KSA. - Nel passo successivo
- j4 j3 S33 K3
- 154 3 107
- 8
- S33 3 e S38 8 sono ora invertite e S43
8. - S4 rimane invariato per il resto dell'RC4-KSA e
l'inizio dell'RC4-PRGA.
38Ptw Esempio Pratico
39Ptw Esempio Pratico
- Quando X2 è stato generato, jn3 182 e
- X2 Sn3Sn33Sn3182 251 è l'uscita
del RC4- PRGA. - FKlein(12, 11, 28, 251) S3 - X2 - (S33
j3) - S3 - 251 - (3 154)
- S8 - 157
- 8 - 157 107 K3
40Ptw Conclusioni e Differenze
- un attaccante che calcola avrebbe ottenuto il
giusto valore di K3107. - Differenze
- Se guardiamo l'attacco Klein rispetto all'attacco
FMS, dovremmo notare alcune differenze - 1)L'attacco Klein è in grado di far uso di ogni
singola sessione che riceviamo da Owep. Anche se
la possibilità che F fms non restituisce un
valore corretto è molto più alta della
probabilità della funzione F klein, l'attacco
Klein surclassa totalmente l'attacco FMS, perchè
è in grado di raccogliere informazioni da ogni
singola sessione.
41Differenze
- 2)La probabilità di successo di F klein non
dipende dalla chiave che viene attaccata. - La FMS ha una probabilità di successo inferiore
per i primi byte della chiave che per gli ultimi.
42Sistema di Votazione delle Chiavi
- Criterio di classificazione (Ranking delle
chiavi) - Fin'ora, tutti gli attacchi che abbiamo visto, in
qualche modo hanno cercato di indovinare un
ignoto valore di Kl, di una chiave RC4,
utilizzando un lotto di diverse sessioni con lo
stesso valore di K l, e con i valori da K0 a
Kl-1 noti all'attaccante. - Il metodo utilizzato per decidere in merito a
Kl è sempre un processo di voto, dove tutte le
sessioni disponibili all'attaccante o ad un
sottoinsieme di loro sono esaminate ed ogni
sessione può votare per Kl che ha determinati
valori. - Dopo che tutti i voti sono stati contabilizzati,
si prende una decisione per la Kl. Ora che la
Kl è nota, l'attaccante può continuare a
recuperare Kl1. Dal punto di vista astratto,
questo può essere visto come una sorta di albero
delle decisioni per la chiave segreta.
43Key Ranking
- La prima decisione deve essere fatta per Rko.
-
- Di solito si assume che il valore con il maggior
numero di voti sarà il valore corretto per Rk0
e così può continuare con la determinazione di
Rk1. - Questo si può fare se un numero elevato di
sessioni sono a disposizione per l'attaccante. - Purtroppo se il numero di sessioni è
relativamente basso, il valore corretto per Rk0
non è necessariamente il valore più votato, ma
tenderà ad essere uno dei miglior voti dati.
44Key Ranking
- Una semplice implementazione di un attacco,
presuppone sempre che la chiave sia corretta. - Naturalmente, un attaccante vorrebbe essere il
grado si calcolare la chiave con un numero
inferiore di sessioni disponibili. Invece di
calcolare una sola chiave, un attaccante può
calcolare un set di chiavi, seguendo alcuni
percorsi alternativi. - Ad esempio, un attaccante potrebbe supporre che
Rk0 sia il primo o il secondo valore votato e
seguire entrambi i percorsi di calcolo. - Un attaccante così può trovare la chiave giusta
in questo set. Questo tipo di approccio è
chiamato Key ranking. -
- Inoltre ci sono alcune strategie che possono
essere utilizzate indipendentemente dalla
strategia key ranking, per migliorare
l'efficacia dell'attacco
45Restrizioni per le chiavi
- RESTRIZIONE DELLO SPAZIO CHIAVi
- Partiamo dal presupposto che l'attaccante ha una
certa conoscenza della chiave che viene
utilizzato. - Ad esempio, alcuni venditori forniscono punti di
accesso con le chiavi di default che sono
composti da caratteri ASCII che rappresentano
numeri decimali. - Questo significa che ogni Rkl avrà un valore
compreso tra 48 e 57. Ad ogni punto di decisione
in cui non risulterebbe 48 Rk l 57, si
sceglie il prossimo valore, che si traduce in un
valore valido per Rk l.
46BruteForce Attack
- Attacco a forza bruta per recuperare gli ultimi
byte - Perchè si usa
- Perchè un processo di voto è molto più costoso in
tempo di CPU che verificare di volta in volta una
piccola quantità di chiavi - Infatti un attaccante può saltare tutti i
processi di voto per gli ultimi uno o due byte, e
provare tutti i possibili valori.
47Un Terzo Attacco ChopChop
- Chophop (2004) Sia f una funzione, che prende
un arbitrario pacchetto criptato e restituisce
true, se il checksum del pacchetto criptato è
corretto, altrimenti false. - Se un attaccante ha un singolo pacchetto cifrato
di lunghezza l e l'accesso a tale funzione, può
decifrare gli ultimi m byte del pacchetto e
recuperare gli ultimi m-byte del KeyStream
utilizzato per crittografare il pacchetto, con in
media m128 tentativi e trascurabile sforzo
computazionale.
48Korek Chop Chop
- Chop Chop (taglia taglia) 2004
- Si chiama cosi in quanto togliendo l'ultimo byte
ad un pacchetto questo risulta corrotto. - Esisterà un solo valore tra i 256 possibili che
- messo in xor con il pacchetto corrotto farà
tornare lo stesso pacchetto integro. - - Bisogna conoscere come funziona Crc32
- - Questa operazione puo essere ripetuta m volte e
trovare cosi il keystream utilizzato
49Dimostrazione Matematica
- Una sequenza arbitraria di byte può essere
interpretata come un elemento di Z2 X - prendendo i bit della sequenza come coefficienti
del polinomio. - Sia P questo polinomio.
- P ha un checksum corretto, se e solo se
l'equazione - P mod Rcrc Rone
- Con Rone x31x30....x1
- E Rcrc X32 X26 X23 X22 X16 X12
X11 X10 X8 X7 X5 X4 X2 X
1 -
50Chop Chop
- Si noti che RCRC è irriducibile su Z2 X e Z2
X / (RCRC) è un campo finito. - Vediamo adesso la versione di P troncata
dell'ultimo byte - P puo essere scritto come
- PX8 Q P7 (quozienteresto)
- Dove p7 è proprio l'ultimo byte del plaintext
- Q Naturalmente ha piu un Checksum corretto
- Vogliamo sapere come possiamo fare per trovare
una correzione che applicata a Q faccia tornare
il messaggio corretto
51Chop Chop
- Sappiamo che
- - P Q X8 P7
- - P mod Rcrc Rone
- Quindi da queste due equazioni deriva che
- Q X8 P7 Rone
- ? QX8 Rone P7
- Dobbiamo trovare l'inverso di (X8) nel campo
finito Z2 - In modo da poter isolare Q e fare in modo che
abbia CRC corretto - Tutto in modulo Crc
52Chop Chop
- Q (Rone P7 )Rinv mod Rcrc
- Ma sappiamo anche che Q per avere un corretto
checksum deve rispettare - Q Rone mod Rcrc
- Quindi il nostro
- Rcorr (Rone P7 )Rinv Rone
- Che sommato a Q fa in modo che il Crc sia
corretto - (Esempio Scilab)
53Conclusioni Chop-Chop
- - Abbiamo visto che dato un pacchetto troncato di
un byte , esiste un solo valore del plaintext che
- fa si che quel pacchetto torni valido
- - Trovato questo byte si puo ripetere
l'operazione varie volte e trovare tutto il
plaintext del pacchetto - - Una volta a conoscenza del Ptxt si risale al
keystream con un semplice Xor - - Il keystream essendo valido si puo usare per
creare - Altri pacchetti validi e quindi fare injection
oppure per attuare altri tipi di attcco come MITM
o DoS
54WPA
- Wep non garantisce una sicurezza adeguata sulle
reti senza fili - Necessita di sviluppare una nuova soluzione
mantenendo al contempo la compatibilità con
hardware datato - Introduzione nel 2002 di WPA (3 anni dopo Wep)
55WPA
- Wpa Wifi Protected Access
- Due versioni
- 1)WPA-TKIP (Temporal Key Integrity Protocol)
- 2)WPA2 (2004) completamente differente da wpa e
wep - Utilizza ccmp un protocollo di cifratura basato
su AES - Non puo essere utilizzato su schede datate
56Wpa - SCHEMA
Msdu Mac service data unit ? dati ricevuti dal
sotto-livello llc Mpdu Mac protocol data unit ?
dati scambiati tra livelli mac e che
effettivamente vengono passati al livello fisico
per il loro invio Msdu puo essere piu grande mpdu
? frammentazione Msdu puo essere piu piccolo mpdu
? aggregazione di pacchetti
57WPA vs Wep
- Differenze con Wep
- 1) Chiave Dinamica ogni 10.000 pacchetti circa
viene rinegoziata una nuova chiave. - 2)IV
- - Trasmesso crittografato e non piu in chiaro
- - Da 24 bit ? 48 bit di cui solo 16 trasmessi in
chiaro nell'header - (nell'header entrano solo 24 bit quindi IV
spezzato in 2)
58WPA vs Wep
- 3) Non si usa piu CRC
- 4) Introduzione di MIC Message Integrity Check
- - 12 bit contro i 4 bit del CRC
- Di cui 4 sono di ICV(Integrity Check Value)
-
- Gli 8 bit aggiuntivi sono generati da un
algoritmo chiamato MICHAEL che usa il
mac-mittente, destinatario e una chiave MIC-KEY -
59WPA vs Wep
- 5) Inroduzione TSC (Contatore di sequenza)
- - pacchetti fuori sequenza vengono scartati
- - Non si puo piu fare injection
60Attacchi su WPA
- Gli attacchi a forza bruta o a dizionario sono
sconsigliati in quanto impiegano tempi molto
grandi - Considerando password lunghe 8 caratteri e
considerando solo lettere maiuscole e minuscole e
processando 500.000 password/sec ci vogliono
circa 4 anni per la ricerca esaustiva - (528)/(500000606024365) 4 anni
61Chop-Chop Modificato
- - Ideato da Erick Tews (2008)
- Poiché Wpa tiene conto dell'ordine di sequenza
dei pacchetti (TSC) è difficile fare injection di
pacchetti - Si Sfrutta lo stesso attacco di Korek (Chop-Chop)
con qualche piccola modifica - QoS deve essere abilitato
- QoS serve a garantire una certa qualità del
servizio - Se il canale principale di comunicazione è
occupato è possibile trasmettere su altri canali
62Wpa Chop Chop
- Lattacker cattura i pacchetti in monitor mode
fino a quando non abbiamo ottenuto degli ARP
request. - Questi pacchetti sono facilmente riconoscibili
per la loro struttura intrinseca.(68 byte) - Lattacker quindi conoscerà la maggior parte del
plaintext eccetto lultimo byte dellindirizzo
IP del mittente e del destinatario, gli 8 byte
del MICHAEL-MIC e i 4 byte del checksum ICV.
63Wpa Chop Chop
- In totale quindi bisogna scoprire 12 byte
- Lattacker lancia un attacco chop-chop modificato
che operi su differenti canali diversi da quello
di trasmissione. - Possibilmente utilizza dei canali dove il TSC
counter resta basso . In questo chopchop
modificato si cerca di indovinare lultimo byte - Se è sbagliato lattacker deve aspettare il tempo
di rinegoziazione ma il TSC counter non viene
ulteriormente incrementato. - In un tempo di 12 minuti è possibile decriptare
ed ottenere gli ultimi 12 byte del plaintext che
mancavano (8 del MIC e 4 del ICV-checksum).
64Wpa Chop Chop
- Ora si puo reversare il MICHAEL e ottenere la
MIC-KEY usata per proteggere i pacchetti. Il
Michael è stato creato per essere veloce e non
per non essere reversato. - A questo punto lattacker ha ottenuto la MIC ed
il Keystream della comunicazione. Può ora mandare
dei paccketti custom in tutti i canali supportati
dove il TSC counter resta quasi fermo ( di solito
7 o più canali).In tal modo si possono recuperare
altri keystream (in 4-5 minuti )
65Wpa Chop Chop
- Infine conoscendo vari Keystream e potendo creare
pacchetti customizzati si possono lanciare
attacchi (sulla stessa linea del ChopChop per
Wep) sui differenti canali utilizzati da QoS - Ultimamente sono usciti vari attacchi basati su
questo attacco Chop Chop modificato - Maggior velocità
- Possibilità di funzionamento anche su reti senza
QoS
66Introduzione al Wpa2
- WPA2 sta sostituendo WPA.
- Come avvenne per il WPA, il WPA2 richiede una
fase di testing e la certificazione da parte
dell'alleanza Wi-Fi. - WPA2 implementa gli elementi opzionali dello
standard 802.11i. In particolare introduce un
nuovo algoritmo basato su AES, CCMP, che è
considerato completamente sicuro. - La certificazione è iniziata nel Settembre 2004.
Dal 13 marzo 2006 la certificazione WPA2 è
diventata opzionale per i nuovi dispositivi Wi-Fi.
67Aes e CCMP
- L'AES, l'Advanced Encryption Standard, è un
algoritmo di cifratura a blocchi utilizzato come
standard dal governo degli Stati Uniti d'America. - Data la sua sicurezza e le sue specifiche
pubbliche si presume che in un prossimo futuro
venga utilizzato in tutto il mondo come è
successo al suo predecessore, il Data Encryption
Standard (DES) che ha perso poi efficacia per
vulnerabilità intrinseche. - CCMP
- Il CCMP, Counter-Mode/CBC-Mac Protocol, è un
metodo di cifratura utilizzato per la gestione
delle chiavi e dell'integrità dei messaggi. - Il CCMP fa parte del programma di certificazione
WPA2, che sostituisce l'insicuro WEP e
rappresenta un'alternativa più sicura del metodo
crittografico TKIP implementato nella prima
versione WPA. - Il CCMP è basato sul cifrario a blocchi AES
68Funzionamento
- Funzionamento
- Nel CCMP l'AES viene utilizzato in una
particolare modalità operativa in cui l'algoritmo
crittografico, che opera in modalità Cipher
Block Chaining (CBC) viene accoppiato un codice
di autenticazione MAC
69Mac
- MAC
- In crittografia un Message Authentication Code
(MAC) è un piccolo blocco di dati utilizzato per
autenticare un messaggio digitale. - Un algoritmo MAC accetta in ingresso una chiave
segreta ed un messaggio da autenticare di
lunghezza arbitraria, e restituisce un MAC (alle
volte chiamato anche tag). - Il valore MAC protegge sia l'integrità dei dati
del messaggio sia la sua autenticità permettendo
al destinatario dello stesso (che deve anch'egli
possedere la chiave segreta) di rilevare
qualsiasi modifica al messaggio ecco perché
dovrebbe essere chiamato Message Authentication
and Integrity Code, MAIC.
70Mac\2
- Il mittente (sender) deve inviare un messaggio
(message) ad un destinatario (receiver). - Prima di effettuare l'operazione si accorda col
destinatario su una chiave segreta (key). - Stabilita la chiave, utilizza una funzione di MAC
(MAC Algorithm) per calcolare il MAC del
messaggio ed infine invia entrambi al
destinatario. - Questi calcola il MAC del messaggio ricevuto e
poi lo confronta con il MAC allegato al messaggio
stesso se coincidono, il messaggio è integro,
altrimenti qualcosa è andato storto.
71Autenticazione Wpa2
- Autenticazione
- Il primo passo è la generazione di un codice di
autenticazione per il pacchetto 802.11. Questo
codice, definito MIC (Message Integrity Code), è
creato nel modo seguente - 1) si cifra un primo blocco di 128 bit con l'AES
ed una chiave di autenticazione - 2) si esegue uno XOR fra il risultato della
precedente operazione ed i successivi 128 bit del
messaggio - 3) si cifra nuovamente il risultato con l'AES e
la stessa chiave di autenticazione - 4) si esegue uno XOR fra il risultato del passo
precedente ed i successivi 128 bit del messaggio
- 5) si continuano ad eseguire i punti 3 e 4 finché
non si è operato su tutti i bit del messaggio da
cifrare. - 6) alla fine si troncano i 128 bit finali
prendendone solo 64 questo è il MIC - Contrariamente al WEP ed al WPA, il calcolo per
l'integrità viene eseguito anche sui campi
dell'intestazione del pacchetto.
72Cifratura
- Cifratura
- L'intestazione del pacchetto CCMP contiene il
valore iniziale del contatore utilizzato nel
processo crittografico. La cifratura si esegue
blocco per blocco secondo il seguente schema - si cifra il valore iniziale del contatore con
l'AES e la chiave di cifratura - si esegue uno XOR tra il valore cifrato del
contatore ed i 128 bit del blocco, ottenendo il
primo blocco cifrato - si incrementa il contatore e si cifra con l'AES,
sempre utilizzando la stessa chiave di cifratura
- si esegue uno XOR fra il valore cifrato del
contatore ed i 128 bit del blocco successivo,
ottenendo un altro blocco cifrato - si continua dal punto 3 fino a che non sono stati
trattati tutti i blocchi - per l'ultimo blocco, si conserva il risultato di
un XOR fra il contatore e gli ultimi bit di dati.
73Bibliografia e Fonti
- Wikipedia.it
- Pcpedia.it
- Practical Attacks against Wpa and Wep di
- E. Tews - M. Beck
- Attacks on Wep di Fuhler Mantin Shamir
- Breaking 104 bit WEP in less than 60 seconds
- E. Tews