Bibliografia:
Computer Networking. Autori: James F. Kurose (University of Massachusetts, Amherst) Keith W. Ross (Polytechnic Institute of NYU).
Nelle reti senza fili, la riservatezza dei dati, e la sicurezza in generale, è un problema particolarmente importante, perchè i frame trasportati dalle onde radio possono propagarsi anche all'esterno dell'edificio in cui si trovano le altre stazioni.
I difetti delle misure di sicurezza presenti nello standard originale 802.11 sono risultati evidenti solo col tempo. Oggi esistono alcuni programmi di pubblico dominio, facilmente scaricabili, che possono essere usati per attaccare le reti senza fili, conformi allo standard originale 802.11, nelle quali i meccanismi di sicurezza sono così vulnerabili che le rendono uguali alle reti prive di protezione.
Nella sezione seguente vengono esaminati i meccanismi di protezione originariamente standardizzati con le specifiche 802.11, e noti come Wired Equivalent Privacy (WEP). Come suggerisce il nome, WEP è stato pensato per fornire un livello di sicurezza simile a quello presente nelle reti cablate (wired). Lo scopo di esaminare le vulnerabilità del WEP è quello di introdurre lo standard 802.11i, una versione più sicura dello standard 802.11.
Il protocollo WEP, incluso nelle specifiche dello standard IEEE 802.11 fu progettato nel 1999 per fornire i servizi di autenticazione e di criptografia dei dati tra un host e un access point (cioè, la stazione base di una rete senza fili), usando un algoritmo a chiave simmetrica condivisa. Il WEP non specifica un algoritmo di gestione delle chiavi, quindi si assume che l'host e l'access point abbiano preliminarmente concordato, in qualche modo, la chiave da usare. L'autenticazione avviene come segue:
un host wireless richiede di autenticarsi a un access point.
l'access point risponde alla richiesta di autenticazione con un nonce di 128 byte.
l'host wireless cripta il nonce usando la chiave simmetrica, che condivide con l'access point.
l'access point decripta il nonce che l'host ha criptato.
Se il nonce decriptato corrisponde al nonce originariamente inviato all'host, allora l'host è autenticato dall'access point.
Nell'algoritmo di criptografia WEP, una chiave segreta di 40 bit, KS è nota all'host e all'access point. Inoltre, un vettore di inizializzazione (IV) di 24 bit viene concatenato con la chiave di 40 bit, per ottenere una chiave di 64 bit che verrà usata per criptare un singolo frame. Il valore di IV cambia ad ogni frame, quindi ciascun frame sarà criptato con una chiave di 64 bit diversa. La criptografia avviene come segue. Prima viene calcolato un CRC di 4 Byte dai dati del payload. Poi, il payload e il CRC vengono criptati con il cifrario RC4. Non interessa sapere come funziona l'algoritmo RC4, basta sapere che fornendo all'algoritmo RC4 la chiave formata da KS e IV, questo produce un insieme di chiavi, k1IV, k2IV, k3IV, …, che sono usate per criptare i dati e il CRC di un frame. Si può pensare che questa operazione avviene su un byte alla volta. La criptografia consiste nell'eseguire l'or esclusivo del byte i-mo dei dati con la chiave i-ma (kiIV) dell'insieme delle chiavi ottenute dalla chiave di 64 bit. Si ottiene in questo modo un blocco criptato ci:
ci = di ⊕ kiIV
Il valore IV cambia da un frame al successivo, ed è trasmesso in chiaro nell'header di ogni frame 802.11 WEP criptato. Il ricevitore, alla sua chiave segreta di 40 bit che condivide, concatena l'IV, ed usa la chiave di 64 bit che ottiene (che è identica alla chiave usata dal mittente per criptare) e decripta il frame:
di = ci ⊕ kiIV
L'uso corretto dell'algoritmo RC4 richiede che la stessa chiave di 64 bit venga usata solo una volta. Non ci dovrebbero essere due frame criptati con la stessa chiave. La chiave WEP cambia frame dopo frame. Per una data chiave KS (che non cambia mai, o al massimo viene cambiata raramente), significa che ci sono solo 224 chiavi possibili. Se queste chiavi vengono scelte a caso, si può calcolare che la probabilità di scegliere lo stesso valore IV (e quindi la stessa chiave di 64 bit) è maggiore del 99 per cento dopo appena 12000 frame. Assumendo che un frame sia lungo 1 Kbyte e la velocità di trasmissione sia 11 Mbps, dopo pochi secondi sono stati trasmessi 12000 frame. Inoltre, poichè il valore IV è trasmesso in chiaro nel frame, un intruso che intercetta i frame sarà in grado di vedere quando viene usato un valore duplicato di IV.
Per vedere uno dei possibili problemi che nasce quando si usa una chiave duplicata, si consideri il seguente attacco di scelta del testo in chiaro, che un intruso compie verso il sito di Alice. Si supponga che l'intruso (usando la tecnica dell'IP spoofing) invia una richiesta (ad esempio, HTTP o FTP) ad Alice per ricevere un file del quale conosce il contenuto: d1, d2, d3, d4, …. L'intruso osserva i dati criptati c1, c2, c3, c4, …. Poichè di = ci ⊕ kiIV, se si applica l'OR-esclusivo ad entrambi i membri di questa uguaglianza, si ha:
di ⊕ ci = kiIV
In base a questa relazione, l'intruso può usare i valori noti di e ci per calcolare kiIV. La volta successiva che l'intruso vede che vengono usati gli stessi valori di IV, sarà in grado di conoscere la sequenza delle chiavi k1IV, k2IV, k3IV, … e quindi riuscirà a decriptare tutti i messaggi criptati.
Ci sono molti altri problemi di sicurezza con la criptografia WEP. Sul Web si possono trovare descrizioni di attacchi che sfruttano un difetto dell'algoritmo RC4, quando si usano chiavi semplici. Oppure, se manca il controllo di integrità, l'attaccante può modificare il contenuto del payload del frame, calcolare il nuovo CRC del frame e far accettare il frame.
Subito dopo il rilascio dello standard IEEE 802.11, si cominciò a sviluppare una versione dello standard contenente dei meccanismi di protezione molto più forti. La criptografia WEP ha un elevato grado di vulnerabilità, un unico metodo di autenticazione e non prevede nessun meccanismo di scambio delle chiavi. La versione IEEE 802.11i dello standard fornisce una criptografia più robusta, vari meccanismi di autenticazione e una tecnica di distribuzione delle chiavi.
La figura riepiloga le fasi dello standard 802.11i. Oltre alla stazione wireless e all'access point, lo standard 802.11i definisce un authentication server con cui l'AP può comunicare. La Separazione dell'authentication server dall'AP permette ad un authentication server di rispondere a molti AP, di centralizzare in un solo server le decisioni relative all'autenticazione e all'autorizzazione ad accedere, e riducendo i costi e la complessità dell'AP. Lo standard 802.11i opera in quattro fasi:
Scoperta. Nella fase di scoperta, l'AP segnala la sua presenza e le forme di autenticazione e criptografia che fornisce ai client wireless. Il client, quindi, richiede quelle specifiche forme di autenticazione e criptografia. Sebbene il client e l'AP stiano già scambiando messaggi, il client non è stato ancora autenticato né possiede la chiave di criptografia, quindi sono necessari ancora altri passi prima che il client possa comunicare sul canale wireless con un qualsiasi host remoto.
Autenticazione reciproca e generazione della Master Key (MK). Il processo di autenticazione avviene tra il client wireless e il server di autenticazione. In questa fase, l'access point funziona come intermediario, si limita a consegnare al client i messaggi generati dall'authentication server e viceversa. L'Extensible Authentication Protocol (EAP) definisce i formati dei messaggi usati nel modo request/response durante l'interazione tra il client e l'authentication server. La figura mostra che i messaggi EAP sono incapsulati usando EAPoL (EAP over LAN, [IEEE 802.1X]) ed inviati sul canale wireless 802.11. Questi messaggi EAP vengono estratti all'access point, e quindi nuovamente incapsulati usando il protocollo RADIUS per la trasmissione su UDP/IP all'authentication server. Il server RADIUS e il protocollo non sono imposti dal protocollo 802.11i, essi sono componenti standard de facto per 802.11i. Il protocollo DIAMETER, recentemente standardizzato, dovrebbe sostituire presto il RADIUS.
Con EAP, l'authentication server può scegliere tra vari modi di autenticazione. Lo standard 802.11i non impone un particolare metodo di autenticazione,
si usa, comunque, lo schema di autenticazione EAP-TLS.
EAP-TLS usa la criptografia a chiave pubblica (incluso il nonce criptato e il message digest)
per consentire al client e all'authentication server di autenticarsi reciprocamente, e derivare una Master Key (MK) che sarà nota a entrambe le parti.
Generazione della Pairwise Master Key (PMK). La MK è una chiave segreta condivisa nota solo al client e all'authentication server, che questi possono usare per generare una seconda chiave, la Pairwise Master Key (PMK). L'authentication server allora invia la PMK all'AP. Il client e l'AP adesso posseggono una chiave condivisa (nel WEP manca la tecnica per la distribuzione delle chiavi) e si sono autenticati l'uno con l'altro. Sono pronti per iniziare una comunicazione protetta.
Generazione della Temporal Key (TK). Con la PMK, il client wireless e l'AP, adesso, possono generare ulteriori chiavi che saranno usate per la comunicazione. Di particolare interesse è la Temporal Key (TK), che sarà usata per eseguire, a livello collegamento, la criptografia dei dati inviati sul canale wireless verso un qualsiasi host.
Il protocollo 802.11i fornisce varie forme di criptografia, ad esempio prevede uno schema basato su AES e una versione più robusta della criptografia WEP.