Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

73
Sicurezza nelle Reti Wi-Fi Davide Ceneda , Alessia Rebba

Transcript of Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Page 1: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Sicurezza nelle Reti Wi-Fi

Davide Ceneda , Alessia Rebba

Page 2: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Sommario

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

Page 3: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

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

Page 4: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

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

Page 5: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Rc4 – 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 diversamente:ARCFOUR , ARC4

Molto diffuso a causa della sua semplicità e velocità, usato in SSL e Wep

Page 6: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Rc4 - 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)

Page 7: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Rc4 – Algoritmo \2

Ksa (codifica in C): Ksa(char *key, int key_length) { for (i = 0; i < 256; i++) S[i] = i; for (i = j = 0; i < 256; i++) { j = (j + key[i % key_length] + S[i]) % 255; swap(S, i, j); }

Page 8: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Rc4 - Ksa

PASSO KSA-0 Data la chiave :K[0]=23 K[1]=42 K[2]=232 Il vettore S viene riempito da 0 a 255 con

numeri crescenti. I candidati allo scambio sono: i=0 j 1= j0 + S[0]+ K[0] = 0 + 0 + 23 = 23

Page 9: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Rc4 – Ksa \1

S[0] e S[23] vengono scambiati. I nuovi candidati allo scambio sono:

i=1 j 2= j1 + S[1]+ K[1] = 23 + 1 + 42 = 66

Page 10: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Rc4 – Ksa \2

S[1] e S[66] vengono scambiati. I nuovi candidati allo scambio sono:

i=2 j 3= j2 + S[2]+ K[2] = 66 + 2 + 232 = 300 = in

modulo 256= 44

Page 11: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Rc4 – Ksa \3

E cosi’ via per 255 passi!

In questo modo termina l’algoritmo RC4-KSA quando scambiamo anche l’ultimo elemento ottenendo il 256° elemento di S …

Ora con questo vettore inizia la parte dell’algoritmo relativa al RC4-PRGA.

Page 12: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Rc4 - PRGA

PRGA (i=j=0) Unsigned char rc4_prga() { i = (i + 1) & 255; j = (j + S[i]) &255; swap(S, i, j); return S[(S[i] + S[j]) & 255]; }

Page 13: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Rc4 - Prga\1

i = (i + 1) % 255; → 1 j = (j + S[i]) %255; →12 Ecco quindi il vettore creato dalla prima parte

del KSA con i candidati allo SWAP evidenziati in rosso:

Page 14: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Rc4 - Prga\2

swap(S, i, j); Gli elementi del vettore sono aggiornati ed ora

possiamo estrarre il primo valore X[0] del keystream:

X[0]= S[ S[1] + S[12] ] = S[260] = S[4] = 85

Page 15: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Crittoanalisi 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

Page 16: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

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

Page 17: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Wep – 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

Page 18: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Wep - Funzionamento

Page 19: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

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

Page 20: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

FMS - Introduzione

- L'IV viene inviato sottoforma di plaintextL'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 S[0] a S[3] non cambino dopo le prime quattro iterazioni del KSA. Quindi un qualsiasi cracker può indovinare cosa accadrà durante il processo del KSA con il 5%di probabilità di successo → attacchi probabilistici

Page 21: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Inoltre...

- 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

Page 22: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

FMS 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 (m+1)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

Page 23: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

FMS 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

Page 24: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Esempio Pratico \1

Il seguente è la rappresentazione di K dopo la cattura dell'IV.

K[0] = 3 K[1] = 255 K[2] = 7 K[3] = ? K[4] = ? ..

Ciclo n°1 KSA

i=0 j=0

S[0] = 0 S[1] = 1 S[2] = 2 S[3] = 3

j = j + S[i] + K[i mod l] = 0 + S[0] + K[0] = 0 + 0 + 3 = 3 quindi j = 3.

Swap (S[i], S[j]) quindi se S[0] = 0 e S[3] = 3 ne segue che Swap(S[0], S[3]) è uguale a S[0] = 3 e S[3] = 0.

Come detto precedentemente vi sono il 5% di possibilità che i valori compresi tra S[0] e S[3] non cambino dopo i primi 4 cicli KSA/PRGA.

Page 25: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Esempio Pratico \2

Ciclo n°2 KSA

I=1 j=3

S[0] = 3 S[1] = 1 S[2] = 2 S[3] = 0

j = j+ S[i] + K[i mod l] = 3 + S[1] + K[1] = 3 + 1 + 255 = 259 mod 256 = 3 quindi j = 3.

i = 1.

j = 3.

Swap (S[i], S[j]) quindi se S[1] = 1 e S[3] = 0 ne segue che S[1] = 0 e S[3] = 1.

Page 26: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Esempio Pratico \3

Ciclo n°3 KSA

I=2 j=3 S[0] = 3 S[1] = 0 S[2] = 2 S[3] = 1

j = j + S[i] + K[i mod l] = 3 + S[2] + K[2] = 3 + 2 + 7 = 12 quindi j = 12.

i = 2.

j = 12.

Swap (S[i], S[j]) quindi se S[2] = 2 e S[12] = 12 ne segue che S[2] = 12 e S[12] = 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

Page 27: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Esempio Pratico \3

Ciclo n°4 KSA

I=3 j = 12

S[0] = 3 S[1] = 0 S[2] = 12 S[3] = 1 S[12] = 2

j = j + S[i] + K[i mod l] = 12 + S[3] + K[3] = 12 + 1 + ? = ?.

i = 3.

j = ?.

Swap (S[i], S[j]) quindi se S[3] = 1 e S[?] = ? ne segue che S[3] = ? 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.

Page 28: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

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

Page 29: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Esempio Pratico \5PRGA passo 1

I=3 j = 12

1) Inizializzazione. 2) i = 0 3) j = 0

S[0] = 3 S[1] = 0 S[2] = 12 S[3] = 1 S[12] = 2

4) Generazione. 5) i = i + 1 = 0 + 1 = 1.

6) j = j + S[i] = 0 + S[1] = 0 + 0 = 0.

7) Swap (S[i], S[j]) quindi se S[1] = 0 e S[0] = 3 ne segue che S[1] = 3 e S[0] = 0.

8) z = S[S[i] + S[j]] = S[S[1] + S[0]] = S[3 + 0] = S[3] = ?.

9) ? = 15 quindi S[3] = 15 al 4 ciclo del KSA.

Dal PRGA sappiamo che il primo byte del Keystream è S[3] = 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

Page 30: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Esempio Pratico \6

Ciclo n°4 KSA

I=3 j = 12

S[0] = 3 S[1] = 0 S[2] = 12 S[3] = 1 S[12] = 2 S[3] = 15, S[15] = 1.

Si sa che l'ultimo passaggio del KSA consiste nell'operazione di swap dei valori.

Dopo lo swap dovremmo avere S[3]=15 e S[15]=1

Prima dello swap allora avevamo S[3]=1 e S[15]=15

Tornando allora all'ultimo passo del KSA che era stato lasciato in sospeso abbiamo

j = j + S[i] + K[i mod l] = 12 + S[3] + K[3] = 12 + K[3] + 1 = 15.

Allora si puo scrivere

K[3] = 15 – 12 – 1 = 2. Il quarto valore del KS ossia il primo della chiave statica è quindi 2

Page 31: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

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

Page 32: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

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

Page 33: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

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

Page 34: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Ptw Attack

L'idea dietro l'attacco di Klein è abbastanza semplice:

Supponiamo che sappiamo K[0]...K[l-1] e si vuole recuperare K[l].

Siamo in grado di simulare i primi l passi.

Nella fase successiva, il valore k= Sl[jl + Sl[l] + K[l]] e scambiato a Sl+1[l].

La conoscenza di k rivelerebbe K[l] (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ì Sl+1[l] 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, Sl+1[l] sarà modificato e fissato ad un valore differente rispetto a k.

Page 35: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Jenkins

Ora utilizzando la correlazione di Jenkins' si distinguono due casi:

1) Sn+l-1[l] = k

accade con probabilità (1/n)^n-2. Secondo la correlazione la probabilità per l - X[l -1] = k in questo caso è:

Prob (l - X[l - 1] = k | Sn+l-1[l] = k) = 2/n

2) Sn+l-1[l]= k

accade con probabilità 1-(1/n)^n-2. Secondo la correlazione la probabilità per X[l -1] = k in questo caso è:

Prob(l-X[l-1]=k | Sn+l-1[l]=k) = (n-2)/(n(n-1))

Page 36: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Jenskins

In totale, questo ci dà la probabilità seguente per X[l - 1] = k = Sl[jl + Sl[l] + K[l]]:

Risolvendo questo per K[l] ci dà la seguente formula:

Page 37: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Esempio Pratico

Un esempio pratico:

Supponiamo che RC4 è usato con k = 12, 111, 28, 107, 226, 211, 232, 247.

L'attaccante conosce il primo l=3 byte di k ed è interessato a K[l].

L'attaccante può simulare i primi 3 punti del RC4-KSA.

Nel passo successivo:

j4 = j3 + S3[3] + K[3]

=154 + 3 + 107

=8

S3[3] = 3 e S3[8] = 8 sono ora invertite e S4[3] = 8.

S[4] rimane invariato per il resto dell'RC4-KSA e l'inizio dell'RC4-PRGA.

Page 38: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Ptw – Esempio Pratico

Page 39: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Ptw – Esempio Pratico

Quando X[2] è stato generato, jn+3 = 182 e

X[2] = Sn+3[Sn+3[3]+Sn+3[182]] = 251 è l'uscita del RC4- PRGA.

FKlein(12, 11, 28, 251) = S[3 - X[2]] - (S3[3] + j3)

= S[3 - 251] - (3 + 154)

= S[8] - 157

= 8 - 157 = 107 = K[3]

Page 40: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Ptw – Conclusioni e Differenze

un attaccante che calcola avrebbe ottenuto il giusto valore di K[3]=107.

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.

Page 41: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Differenze

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.

Page 42: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Sistema 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 K[l], di una chiave RC4, utilizzando un lotto di diverse sessioni con lo stesso valore di K [l], e con i valori da K[0] a K[l-1] noti all'attaccante.

Il metodo utilizzato per decidere in merito a K[l] è 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 K[l] che ha determinati valori.

Dopo che tutti i voti sono stati contabilizzati, si prende una decisione per la K[l]. Ora che la K[l] è nota, l'attaccante può continuare a recuperare K[l+1]. Dal punto di vista astratto, questo può essere visto come una sorta di albero delle decisioni per la chiave segreta.

Page 43: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Key Ranking

La prima decisione deve essere fatta per Rk[o].

Di solito si assume che il valore con il maggior numero di voti sarà il valore corretto per Rk[0] e così può continuare con la determinazione di Rk[1].

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 Rk[0] non è necessariamente il valore più votato, ma tenderà ad essere uno dei miglior voti dati.

Page 44: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Key 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 Rk[0] 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:

Page 45: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Restrizioni 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 Rk[l] 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].

Page 46: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

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

Page 47: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Un 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 m*128 tentativi e trascurabile sforzo computazionale.

Page 48: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Korek – 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

Page 49: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Dimostrazione 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 = x^31+x^30+....+x+1

E Rcrc = X^32 + X^26 + X^23 + X^22 + X^16 + X^12 +X^11 + X^10 + X^8 + X^7 + X^5 + X^4 + +X^2 + X + 1

Page 50: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Chop 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 :

P=X^8 *Q+ P7 (quoziente+resto)

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

Page 51: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Chop Chop

Sappiamo che

- P = Q · X^8 + P7

- P mod Rcrc= Rone

Quindi da queste due equazioni deriva che

Q * X^8 + P7 =Rone

→ Q*X^8= Rone +P7

Dobbiamo trovare l'inverso di (X^8) nel campo finito Z2

In modo da poter “isolare” Q e fare in modo che abbia CRC corretto

Tutto in modulo Crc

Page 52: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Chop 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)

Page 53: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Conclusioni 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

Page 54: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

WPA

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)

Page 55: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

WPA

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

Page 56: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Wpa - SCHEMA

Msdu : Mac service data unit → dati ricevuti dal sotto-livello llcMpdu : Mac protocol data unit → dati scambiati tra livelli mac e che effettivamente vengono passati al livello fisico per il loro invioMsdu puo essere piu grande mpdu → frammentazioneMsdu puo essere piu piccolo mpdu → aggregazione di pacchetti

Page 57: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

WPA 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)

Page 58: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

WPA 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

Page 59: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

WPA vs Wep

5) Inroduzione TSC (Contatore di sequenza)

- pacchetti fuori sequenza vengono scartati

- Non si puo piu fare injection

Page 60: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Attacchi 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

(52^8)/(500000*60*60*24*365) = 4 anni

Page 61: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

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

Page 62: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Wpa Chop Chop

L’attacker 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)

L’attacker quindi conoscerà la maggior parte del plaintext eccetto: l’ultimo byte dell’indirizzo IP del mittente e del destinatario, gli 8 byte del MICHAEL-MIC e i 4 byte del checksum ICV.

Page 63: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Wpa Chop Chop

In totale quindi bisogna scoprire 12 byte

L’attacker 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 l’ultimo byte

Se è sbagliato l’attacker 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).

Page 64: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Wpa 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 l’attacker 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 )

Page 65: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Wpa 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

Page 66: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

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

Page 67: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Aes 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

Page 68: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Funzionamento

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

Page 69: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Mac

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.

Page 70: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

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

Page 71: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

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

Page 72: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Cifratura

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.

Page 73: Sicurezza nelle Reti Wi-Fi Davide Ceneda, Alessia Rebba.

Bibliografia 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