WPA

Il protocollo Wi-Fi Protected Access (WPA) é uno sforzo dei produttori nel tentativo di colmare le lacune derivate da WEP. WPA é un sottoinsieme dello standard IEEE 802.11i; quest’ultimo chiamato anche WPA2 verrà rilasciato nel corso dell’anno 2004 e sarà pienamente compatibile con WPA. I produttori hanno disegnato questo protocollo per minimizzare l’impatto sulle performance e per permettere la sua distribuzione attraverso un aggiornamento software dei prodotti basati su IEEE 802.11b, come ad esempio Access Points e schede di rete. Alcuni produttori di hardware hanno ideato dei sistemi che permettono il “mixed mode”, ovvero la possibilità di supportare contemporaneamente WPA e WEP per facilitare la migrazione a questo nuovo protocollo.

Il WPA richiede che un client si autentichi per accedere alla rete, sia esso attraverso un Pre-Shared Key (utenti SOHO) che attraverso IEEE 802.1x/EAP, e introduce un framework di crittografia per la confidenzialità dei dati che si appoggia ad algoritmi quali WEP, TKIP e AES. Il WEP usato in WPA ha un impatto minore rispetto al WEP tradizionale, in quanto le chiavi verranno cambiate in modo differente. Anche se WEP é supportato, WPA usa di default il Temporary Key Integrity Protocol (TKIP) per crittografare i dati, aumentando la chiave dai 104-bit di WEP, fino a 128-bit. Contrariamente a WEP, dove le chiavi venivano impostate staticamente, in TKIP vengono generate dinamicamente e distribuite attraverso il protocollo 802.1x/EAP. Inoltre TKIP include un Message Integrity Check (MIC) che permette di evitare le alterazioni dei pacchetti trasmessi attraverso la rete wireless. Il MIC viene calcolato separatamente dal client e dall’Access Point e se risultasse differente il pacchetto verrebbe scartato.

Il TKIP aumenta la difficoltà di decriptare i dati su una rete wireless: specialisti crittografi infatti hanno analizzato il Wi-Fi Protected Access e hanno affermato che i problemi legati al WEP sono stati risolti facendo di WPA un ottimo deterrente contro attacchi conosciuti.

La tabella successiva paragona le differenze tra WPA e WEP:

Protocollo WEP WPA
Crittografia
  • Crittografia debole
  • Chiave a 40-bit o 104-bit
  • Chiavi statiche: tutti i client sulla rete hanno la stessa chiave
  • Distribuzione manuale della chiave
  • Rimuove i problemi di WEP
  • Chiave a 128-bit
  • Chiavi dinamiche: ogni utente, ogni sessione e ogni pacchetto ha chiave differfente
  • Distribuzione automatica delle chiavi
Autenticazione Debole: la chiave WEP viene usata come autenticazione Attraverso IEEE 802.1x e EAP
WPA in dettaglio

Nel paragrafo precedente si é sottolineato quanto la vera forza di WPA stà nella sua forte integrazione con IEEE 802.1x/EAP e in una crittografia migliore. In dettaglio le caratteristiche di WPA si possono dividere in cinque categorie: Network Capability Determination, Authentication, Key Management, Data Privacy e Data Integrity.

  • Network Capability Determination. Agisce a livello 802.11 e comunica informazioni su WPA nei Beacon Packets, Probe Response e (Re) Association Requests. Queste informazioni includono il metodo di autenticazione (IEEE 802.1x o Pre-Shared Key) e il tipo di cifratura (WEP, TKIP o AES).
  • Authentication. Le due tipologie di autenticazione sono 802.1x/EAP e Pre-Shared Key, nel caso non si disponga di un RADIUS server (tipico ambiente SOHO). É da notare che la prima metodologia é quella preferita da WPA in quanto é in grado di distribuire chiavi differenti per sessione attraverso i messaggi EAPOL-Key.
  • Key Management. WPA ha un robusto sistema di generazione/manutenzione di chiavi che integra funzioni di autenticazione e privacy. Le chiavi sono generate dopo che il client si é autenticato alla rete e dopo un 4-way handshake tra il client e l’Access Point.
  • Data Privacy (o critografia). Come agente crittografico WPA usa il Temporary Key Integrity Protocol (TKIP) per incapsulare WEP. Attraverso sofisticate tecniche di crittografia é possibile evitare i problemi di WEP.
  • Data Integrity. TKIP include un Message Integrity Code (MIC) alla fine di ogni messaggio non criptato per evitare che i pacchetti vengano modificati da un potenziale aggressore.
Network Capability Determination

[[File:WPA_Key_Hierarchy.png|frame|Uso del PMK per generare le chiavi TKIP] Come accennato nel paragrafo precedente, la funzionalità di Network Capability Determination si basa su una modifica del formato delle frames di Beacon, Probe Response e (Re) Association Request di IEEE 802.11. Queste frames vengono ridefinite nel protocollo WPA per includere le caratteristiche della rete, ovvero per specificare la tipologia di autenticazione e di cifratura disponibile. I possibili metodi di autenticazione sono 802.1x e il Pre-Shared Key (PSK). Quest’ultimo metodo usa una chiave statica impostata manualmente, sia sui client che sugli Access Point, ed é l’ideale per coloro i quali non hanno un RADIUS server, ad esempio per utenze domestiche o per piccoli ambienti di lavoro. I possibili sistemi di cifratura sono WEP, TKIP e Advanced Encryption Standard (AES). Il client equipaggiato dell’apposito software (chiamato supplicant) usa le informazioni date dalla rete WPA per decidere quale metodo di autenticazione e cifratura scegliere. Per esempio, se l’Access Point usa il metodo PSK, allora il supplicant non userà 802.1x, ma sarà sufficiente provare all’AP di essere in possesso del PSK comune. Se il supplicant si accorge che non é in grado di supportare le metodologie offerte deve usare l’autenticazione 802.1x senza WPA per accedere alla rete: questo processo é detto pre-WPA authentication.

IEEE 802.1x é la metodologia di autenticazione preferita di WPA, in quanto é proprio grazie a questo protocollo che si ha la migliore resa di autenticazione e cifratura. WPA però necessita che il metodo EAP selezionato dall’amministratore supporti la mutual authentication, ad esempio TLS, TTLS, LEAP e PEAP. Durante il processo di autenticazione un Pairwise Master Key (PMK) viene generato sia sulla stazione che sul RADIUS server. Quest’ultimo manderà il PMK all’Access Point in maniera sicura. Questo processo é simile a quello della pre-WPA authentication, ma la differenza stà nel fatto che il PMK non é mai usato direttamente nelle funzioni di cifratura o di hash, ma viene usato per generare chiavi temporanee che verranno usate in queste funzioni. L’uso di chiavi temporanee é utile al fine di evitare attacchi alla chiave, come succede con WEP dove la chiave viene derivata dall’osservazione dei pacchetti in transito.

Le modifiche a 802.1x

Le maggiori modifiche apportate a IEEE 802.1x da parte del WPA sono relative al formato di EAPOL-key. Questo non significa che il processo di autenticazione 802.1x venga stravolto, ma vengono apportate modifiche alla distribuzione delle chiavi WPA che avvengono solamente dopo che un client si sia autenticato correttamente alla rete. Il processo dello scambio delle chiavi viene chiamato 4-way and Group Key Handshake. Il 4-way handshake determina il PMK usato per il traffico unicast, mentre il Group Key handshake determina e distribuisce il PMK usato per il traffico di broadcast. Il processo di creazione delle chiavi é stato struttruato per evitare attacchi di tipo man in the middle, in dettaglio:

  1. Gli indirizzi dell’Access Point e del client vengono usate in ogni calcolo del MIC durante il 4-way handshake. Questo restringe il processo di scambio di chiavi ad un determinato authenticator e supplicant.
  2. Vengono usati gli nonces (valori usati una volta sola) durante il calcolo del MIC. Nuovi nonces vengono usati durante ogni 4-way handshake per generare le chiavi temporanee, congiuntamente al PMK.
  3. Gli nonces assicurano che né il client né l’Access Point siano nella posizione di essere sotto attacchi di tipo replay. Ovvero, quando i nonces sono usati durante il processo di key authentication, il supplicant e l’authenticator devono essere in possesso del nuovo PMK dopo l’autenticazione, in modo da calcolare il valore corretto del MIC.

Un altro cambiamento é l’aggiunta del parametro PortSecure: quando questo valore é impostato, sia l’authenticator che il supplicant sanno che le chiavi per unicast e broadcast sono valide e pertanto possono essere programmate nel firmware della scheda di rete wireless, in modo da non sovraccaricare il processore principale per la cirttografia. Dopo la programmazione della scheda di rete, le successive autenticazioni IEEE 802.1x avvengono in maniera cifrata. Prima dell’avvento di WPA, ogni autenticazione 802.1x avveniva in chiaro con l’effetto di essere soggetti ad attacchi di tipo EAPOL Logoff messages, con il risultato che il client veniva disconnesso dall’Access Point. Una volta che la scheda wireless ha le chiavi di crittografia inserite, tale tipologia di attacco non é più possibile.

Inoltre WPA definisce anche una frame di tipo EAPOL MIC error. Questo pacchetto permette al client di informare l’Access Point quando é soggetto ad un attacco. Questo pacchetto é inviato all’AP quando il client ha un errore durante a comparazione del MIC nei dati in transito. Quando il client riceve frequentemente pacchetti con errori, allora desume di essere sotto attacco e apposite contromisure vengono prese dall’Access Point, ad esempio attraverso la notifica ad un amministratore.

Crittografia

Nei paragrafi precedenti si é accennato che il metodo di cifratura preferito da WPA é TKIP. Il Temporary Key Integrity Protocol usa l’algoritmo RC4, lo stesso usato da WEP, ma ne aggiunge tecniche di protezione per evitare i problemi derivati da WEP. Ad esempio, viene aggiunto una funzione di cambio di chiavi ad ogni pacchetto un vettore di inizializzazione (IV) più lungo e un Message Integrity Code (MIC). La funzione di cambio di chiavi per ogni pacchetto (detta originariamente key mixing) viene usata nel TKIP per evitare gli attacchi su chiavi deboli. Durante la generazione del testo cifrato, la chiave di crittografia non é mai usata direttamente nella funzione RC4, ma viene usata una chiave temporanea per ogni pacchetto spedito. Per ovviare invece all’osservazione dei pacchetti con IV identico, TKIP aumenta la grandezza di IV da 24 a 48 bit. La funzione di hash usata per verificare l’integrità dei dati é detta Message Integrity Code (MIC o per gli addetti Michael), e la sua funzione é quella di verificare che i pacchetti non siano stati modificati da un client non autorizzato che finge di essere il legittimo client.

Oltre al TKIP, WPA supporta anche l’AES come metodo di cifratura, anche se inizialmente non é obbligatorio per la certificazione del consorzio Wi-Fi Alliance. Anche se AES é nettamente migliore rispetto a TKIP, esso necessita di nuovo hardware che lo supporti. TKIP invece é un buon compromesso che permette di avere una maggiore sicurezza rispetto a WEP, mentre i prodotti che supportano AES verranno immessi sul mercato e adottati dagli utenti.

I problemi di WPA

Anche il WPA non é senza problemi. Nel dettaglio, é soggetto ad attacchi di tipo Denial of Service (DoS); se l’Access Point riceve due pacchetti dati che falliscano la verifica del MIC entro 60 secondi, questo desume di essere sotto attacco e impiega contromisure come la disconnessione di tutti i client dall’Access Point. Questo fa sì che un intruso non possa risalire alle chiavi di crittografia, ma causa anche una perdita di connettività per 60 secondi.

Anche se WPA non é completamente invulnerabile, esso rappresenta la volontà dei produttori a risolvere i problemi delle tecnologie del Wireless. WPA con le opportune regole di base é un netto miglioramento della sicurezza rispetto al suo predecessore WEP.