# Wi-Fi Protected Access

Wi-Fi Protected Access (WPA), il Wi-Fi Protected Access II (WPA2) e il Wi-Fi Protected Access III (WPA3) sono tre protocolli di sicurezza e programmi di certificazione di sicurezza sviluppati dalla Wi-Fi Alliance per proteggere le reti di computer wireless. L'Alleanza ha definito questi protocolli in risposta a gravi debolezze che i ricercatori avevano trovato nel precedente sistema Wired Equivalent Privacy (WEP).
WPA (a volte definito come progetto di standard IEEE 802.11i) è stato reso disponibile nel 2003. L'Alliance Wi-Fi lo ha inteso come misura intermedia, in previsione della disponibilità di WPA2 più sicuro e complesso. WPA2 è diventato disponibile nel 2004 ed è uno standard abbreviato per lo standard IEEE 802.11i (o IEEE 802.11i) mentre WPA3 è diventato disponibile da giugno 2018.

## Descrizione

L'Alliance Wi-Fi ha inteso WPA come misura intermedia per sostituire WEP in attesa della disponibilità dello standard IEEE 802.11i. WPA potrebbe essere implementata tramite aggiornamenti firmware sulle schede di interfaccia di rete wireless progettate per il WEP, che ha iniziato la spedizione nel 1999. Tuttavia, poiché le modifiche richieste nei punti di accesso wireless (AP) erano più ampi di quelli necessari sulle schede di rete, la maggior parte gli AP precedenti al 2003 non possono essere aggiornati per supportare WPA.
Il protocollo WPA implementa gran parte dello standard IEEE 802.11i. In particolare, il protocollo Temporal Key Integrity Protocol (TKIP) è stato adottato per WPA. WEP ha utilizzato una chiave di crittografia a 64 bit o a 128 bit che deve essere immessa manualmente sui punti di accesso e dispositivi wireless e non cambia. TKIP utilizza un pacchetto per pacchetto, il che significa che genera in modo dinamico un nuovo codice a 128 bit per ogni pacchetto e quindi impedisce i tipi di attacchi che compromettono WEP.
WPA include anche un controllo di integrità dei messaggi, che è stato progettato per impedire a un utente malintenzionato di modificare e inviare nuovi pacchetti di dati. Questo sostituisce il controllo ciclico di ridondanza (CRC) utilizzato dallo standard WEP. Il principale problema di CRC è che non ha fornito una garanzia di integrità dei dati sufficientemente forti per i pacchetti gestiti. I codici di autenticazione dei messaggi ben testati esistevano per risolvere questi problemi, ma richiedevano l'utilizzo di un calcolo troppo complesso per le vecchie schede di rete. WPA utilizza un algoritmo di controllo dell'integrità dei messaggi chiamato TKIP per verificare l'integrità dei pacchetti. TKIP è molto più forte di un CRC, ma non forte quanto l'algoritmo utilizzato in WPA2. I ricercatori hanno da allora scoperto un difetto in WPA che si basava sulle vecchie debolezze in WEP e sulle limitazioni della funzione di hash di integrità del messaggio, denominata Michael, per recuperare il keystream da pacchetti corti da utilizzare per la reinvenzione e lo Spoofing.
WPA2 ha sostituito WPA. WPA2, che richiede test e certificazione da parte della Wi-Fi Alliance, implementa gli elementi obbligatori di IEEE 802.11i. In particolare, include il supporto obbligatorio per CCMP, una modalità di crittografia basata su AES con una forte sicurezza. La certificazione è iniziata nel settembre 2004; dal 13 marzo 2006, la certificazione WPA2 è obbligatoria per tutti i nuovi dispositivi a sostenere il marchio Wi-Fi.

## Supporto hardware

WPA è stato progettato appositamente per lavorare con hardware wireless prodotti prima dell'introduzione del protocollo WPA, che fornisce sicurezza inadeguata tramite WEP. Alcuni di questi dispositivi supportano WPA solo dopo l'applicazione di aggiornamenti firmware, che non sono disponibili per alcuni dispositivi precedenti.
I dispositivi Wi-Fi certificati dal 2006 supportano sia i protocolli di protezione WPA e WPA2. WPA2 potrebbe non funzionare con alcune vecchie schede di rete.

## Terminologia

Differenti versioni di WPA e meccanismi di protezione possono essere distinti in base all'utente finale di destinazione (secondo il metodo di distribuzione della chiave di autenticazione) e il protocollo di crittografia utilizzato.

### Utenti di destinazione (distribuzione della chiave di autenticazione)
#### WPA-Personal

    Viene anche definito come modalità WPA-PSK (pre-shared key), che è progettato per le reti domestiche e per le piccole aziende e non richiede un server di autenticazione.. Ogni dispositivo di rete wireless crittografa il traffico di rete derivando la chiave di crittografia a 128 bit da una chiave condivisa a 256 bit. Questa chiave può essere inserita come una stringa di 64 cifre esadecimali o come una passphrase di 8 a 63 caratteri ASCII stampabili..
Se si utilizzano i caratteri ASCII, viene calcolata la chiave a 256 bit applicando la funzione di derivazione della chiave PBKDF2 alla frase, utilizzando SSID come salt e 4096 iterazioni di HMAC-SHA1. La modalità WPA-Personal è disponibile sia con WPA che con WPA2.

#### WPA-Enterprise

    Definita anche modalità WPA-802.1X, e talvolta solo WPA (al contrario di WPA-PSK), è progettata per le reti aziendali e richiede un server di autenticazione RADIUS. Ciò richiede una configurazione più complicata, ma fornisce ulteriore sicurezza (ad esempio Protezione dagli attacchi di dizionario su password brevi). Per l'autenticazione vengono utilizzati vari tipi del protocollo EAP (Extensible Authentication Protocol). La modalità WPA-Enterprise è disponibile con WPA e WPA2.

#### Wi-Fi Protected Setup (WPS)

    Si tratta di un metodo di distribuzione delle chiavi di autenticazione alternativo inteso a semplificare e rafforzare il processo, ma che, come ampiamente implementato, crea un grosso buco di sicurezza tramite il recupero del PIN WPS.

### Protocollo di cifratura
#### TKIP (Temporal Key Integrity Protocol)

    Il codice di flusso RC4 viene utilizzato con una chiave per pacchetto da 128 bit, il che significa che genera dinamicamente una nuova chiave per ogni pacchetto. È usato da WPA.

#### CCMP (CTR mode con CBC-MAC Protocol)

Il protocollo utilizzato da WPA2, basato sul codice AES (Advanced Encryption Standard) unitamente all'autentica autenticità dei messaggi e al controllo dell'integrità, è significativamente più efficace nella protezione della privacy e dell'integrità rispetto al TKIP basato su RC4 utilizzato da WPA. Tra i nomi informali ci sono "AES" e "AES-CCMP". Secondo la specifica 802.11n, questo protocollo di crittografia deve essere utilizzato per ottenere veloci schemi di bitrate elevati 802.11n, sebbene non tutte le implementazioni (vaghe) lo facciano rispettare. Altrimenti, la velocità dei dati non supererà i 54 Mbit/s.

## Problemi di sicurezza
### Password debole

Le chiavi pre-condivise WPA e WPA2 restano vulnerabili agli attacchi di cracking della password se gli utenti si affidano a una password o passphrase deboli.
L'utilizzo del brute force di password semplici può essere tentata utilizzando la suite Aircrack a partire dall'operazione di handshake di autenticazione a quattro vie scambiata durante l'associazione o la nuova autenticazione periodica.
Per proteggere ulteriormente dalle intrusioni, l'SSID della rete non deve corrispondere a nessuna voce nei primi 1.000 SSID più comuni poiché sono state pre-generate tabelle arcobaleno scaricabili per loro e una moltitudine di password comuni.

### Spoofing e decrittografia dei pacchetti WPA

Mathy Vanhoef e Frank Piessens hanno migliorato significativamente gli attacchi WPA-TKIP di Erik Tews e Martin Beck.. Hanno dimostrato come iniettare una quantità arbitraria di pacchetti, con ogni pacchetto contenente al massimo 112 byte di payload. Ciò è stato dimostrato implementando un port scanner, che può essere eseguito su qualsiasi client che utilizza WPA-TKIP. Inoltre hanno mostrato come decodificare i pacchetti arbitrari inviati a un client. Hanno menzionato che questo può essere usato per dirottare una connessione TCP, consentendo a un utente malintenzionato di iniettare JavaScript dannoso quando la vittima visita un sito web. Al contrario, l'attacco di Beck-Tews poteva solo decrittografare pacchetti brevi con contenuti per lo più conosciuti, come i messaggi ARP, e consentiva solo l'iniezione da 3 a 7 pacchetti con un massimo di 28 byte. L'attacco Beck-Tews richiede anche che sia abilitata la Qualità del servizio (come definita in 802.11e), mentre l'attacco di Vanhoef-Piessens no. Né l'attacco porta al recupero della chiave di sessione condivisa tra il client e l'Access point. Gli autori affermano che l'uso di un breve intervallo di rekeying può prevenire alcuni attacchi ma non tutti, e consiglia vivamente di passare da TKIP a CCMP basato su AES.
Halvorsen e altri mostrano come modificare l'attacco di Beck-Tews per consentire l'iniezione da 3 a 7 pacchetti con una dimensione massima di 596 byte. Il rovescio della medaglia è che il loro attacco richiede molto più tempo per l'esecuzione: circa 18 minuti e 25 secondi. In altri lavori Vanhoef e Piessens hanno dimostrato che, quando viene utilizzato WPA per crittografare i pacchetti broadcast, è possibile eseguire anche l'attacco originale. Questa è un'estensione importante, poiché molte più reti usano WPA per proteggere i pacchetti broadcast, piuttosto che proteggere i pacchetti unicast. Il tempo di esecuzione di questo attacco è in media di circa 7 minuti, rispetto ai 14 minuti dell'attacco originale di Vanhoef-Piessens e Beck-Tews.
Le vulnerabilità di TKIP sono significative nel fatto che WPA-TKIP è stato ritenuto una combinazione estremamente sicura; infatti, WPA-TKIP è ancora un'opzione di configurazione su un'ampia varietà di dispositivi di routing wireless forniti da molti produttori di hardware. Un sondaggio del 2013 ha mostrato che il 71% continua a consentire l'utilizzo di TKIP e il 19% supporta esclusivamente TKIP.

### WPS PIN recovery

Un grave difetto di sicurezza è stato rivelato nel dicembre 2011 da Stefan Viehböck che riguarda i router wireless con la funzione Wi-Fi Protected Setup (WPS), indipendentemente dal metodo di crittografia utilizzato. I modelli più recenti hanno questa caratteristica e la abilitano di default. Molti produttori di dispositivi Wi-Fi consumer hanno adottato misure per eliminare il potenziale delle passphrase più deboli promuovendo metodi alternativi di generazione e distribuzione automatica di chiavi forti quando gli utenti aggiungono un nuovo adattatore o appliance wireless a una rete. Questi metodi includono la pressione dei pulsanti sui dispositivi o l'inserimento di un PIN a 8 cifre.
Wi-Fi Alliance ha standardizzato questi metodi come Wi-Fi Protected Setup; tuttavia, la funzionalità PIN implementata ha introdotto un nuovo grande difetto di sicurezza. Il difetto consente a un utente malintenzionato remoto di recuperare il PIN WPS e, con esso, la password WPA / WPA2 del router in poche ore. Gli utenti sono stati invitati a disattivare la funzione WPS, anche se questo potrebbe non essere possibile su alcuni modelli di router. Inoltre, il PIN è scritto su un'etichetta sulla maggior parte dei router Wi-Fi con WPS e non può essere modificato se compromesso.

### MS-CHAPv2

Sono stati riscontrati diversi punti deboli in MS-CHAPv2, alcuni dei quali riducono drasticamente la complessità degli attacchi di forza bruta rendendoli fattibili con l'hardware moderno. Nel 2012 la complessità della rottura di MS-CHAPv2 è stata ridotta a quella di rompere una singola chiave DES, opera di Moxie Marlinspike e Marsh Ray. Moxie ha consigliato: "Le aziende che dipendono dalle proprietà di autenticazione reciproca di MS-CHAPv2 per la connessione ai loro server WPA2 Radius dovrebbero immediatamente iniziare la migrazione a qualcos'altro."

### Hole196

Hole196 è una vulnerabilità nel protocollo WPA2 che abusa della chiave temporanea di gruppo (GTK) condivisa. Può essere usato per condurre attacchi man-in-the-middle e denial-of-service. Tuttavia, presuppone che l'autore dell'attacco sia già autenticato contro Access Point e quindi in possesso del GTK.

### Mancanza di segreto in avanti

WPA non fornisce il segreto in avanti, il che significa che una volta che una persona avversa scopre la chiave pre-condivisa, è in grado di decifrare tutti i pacchetti Wi-Fi crittografati trasmessi in futuro e anche in passato, che potrebbero essere passivamente e silenziosamente raccolti dall'attaccante. Ciò significa anche che un utente malintenzionato può silenziosamente catturare e decrittografare i pacchetti degli altri se un punto di accesso protetto da WPA viene fornito gratuitamente in un luogo pubblico, poiché la sua password viene generalmente condivisa con chiunque in quel luogo. In altre parole, WPA protegge solo dagli aggressori che non hanno accesso alla password. Per questo motivo, è più sicuro utilizzare Transport Layer Security (TLS) o simili per il trasferimento di dati sensibili.

### Predictable Group Temporal Key (GTK)

Nel 2016 un gruppo di ricercatori ha dimostrato che se i distributori implementano l'RNG proposto, un utente malintenzionato è in grado di prevedere la chiave di gruppo (GTK) che dovrebbe essere generata casualmente dall'access point (AP). Inoltre, hanno dimostrato che il possesso del GTK consente all'autore dell'attacco di immettere traffico nella rete e ha consentito all'autore dell'attacco di decrittografare tutto il traffico Internet trasmesso sulla rete wireless. Hanno dimostrato il loro attacco contro un router Asus RT-AC51U che utilizza i driver out-of-tree di MediaTek, che generano la stessa GTK e hanno dimostrato che la GTK può essere ripristinata entro due minuti o meno. Allo stesso modo, hanno dimostrato che le chiavi generate dai daemon di accesso Broadcom in esecuzione su VxWorks 5 e versioni successive possono essere ripristinate in quattro minuti o meno, il che influisce, ad esempio, su determinate versioni di Linksys WRT54G e su alcuni modelli di Apple AirPort Extreme. I venditori possono difendersi da questo attacco usando un RNG sicuro. Facendo così, Hostapd che gira su kernel Linux non è vulnerabile contro questo attacco e quindi i router che eseguono le tipiche installazioni OpenWrt o LEDE non presentano questo problema.

### KRACK attack

A ottobre 2017 sono stati pubblicati i dettagli dell'attacco KRACK (Key Reinstallation Attack) su WPA2, che si ritiene abbia effetto su tutte le varianti del protocollo WPA.