Sicurezza nelle Reti Wi-Fi - PowerPoint PPT Presentation

About This Presentation
Title:

Sicurezza nelle Reti Wi-Fi

Description:

Davide Ceneda , Alessia Rebba Sicurezza nelle Reti Wi-Fi Introduzione al Wpa2 WPA2 sta sostituendo WPA. Come avvenne per il WPA, il WPA2 richiede una fase di testing ... – PowerPoint PPT presentation

Number of Views:84
Avg rating:3.0/5.0
Slides: 74
Provided by: ricercaMa
Category:
Tags: nelle | reti | scilab | sicurezza

less

Transcript and Presenter's Notes

Title: Sicurezza nelle Reti Wi-Fi


1
Sicurezza nelle Reti Wi-Fi
  • Davide Ceneda , Alessia Rebba

2
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

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

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

5
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
    diversamenteARCFOUR , ARC4
  • Molto diffuso a causa della sua semplicità e
    velocità, usato in SSL e Wep

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

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

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

9
Rc4 Ksa \1
  • S0 e S23 vengono scambiati. I nuovi candidati
    allo scambio sono
  • i1
  • j 2 j1 S1 K1 23 1 42 66

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

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

12
Rc4 - PRGA
  • PRGA (ij0)
  • Unsigned char rc4_prga()
  • i (i 1) 255
  • j (j Si) 255
  • swap(S, i, j)
  • return S(Si Sj) 255

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

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

15
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

16
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

17
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

18
Wep - Funzionamento
19
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

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

21
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

22
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 (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

23
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

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

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

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

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

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

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

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

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

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

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

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

35
Jenkins
  • 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))

36
Jenskins
  • In totale, questo ci dà la probabilità seguente
    per Xl - 1 k Sljl Sll Kl

Risolvendo questo per Kl ci dà la seguente
formula
37
Esempio 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.

38
Ptw Esempio Pratico
39
Ptw 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

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

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

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

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

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

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

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

47
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 m128 tentativi e trascurabile sforzo
    computazionale.

48
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

49
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 x31x30....x1
  • E Rcrc X32 X26 X23 X22 X16 X12
    X11 X10 X8 X7 X5 X4 X2 X
    1

50
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
  • 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

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

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

53
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

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

55
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

56
Wpa - 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
57
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)

58
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

59
WPA vs Wep
  • 5) Inroduzione TSC (Contatore di sequenza)
  • - pacchetti fuori sequenza vengono scartati
  • - Non si puo piu fare injection

60
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
  • (528)/(500000606024365) 4 anni

61
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

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

63
Wpa 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).

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

65
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

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

67
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

68
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

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

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

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

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

73
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
Write a Comment
User Comments (0)
About PowerShow.com