Key Reinstallation Attacks come funziona

Mathy Vanhoef ha scoperto gravi vulnerabilità in WPA2, un protocollo che protegge tutte le moderne reti Wi-Fi. Un utente malintenzionato presente nelle vicinanze di una vittima può sfruttare queste debolezze utilizzando k ey r einstallation un tta ck s (KRACKs). In concreto, gli attaccanti possono utilizzare questa nuova tecnica di intrusione per leggere le informazioni precedentemente registrate per essere crittografate in modo sicuro. Ciò può essere usato per rubare informazioni sensibili come i numeri di carta di credito, le password, i messaggi di chat, le email, le foto e così via. L’attacco funziona contro tutte le moderne reti Wi-Fi protette. A seconda della configurazione di rete, è anche possibile iniettare e manipolare i dati. Ad esempio, un aggressore potrebbe essere in grado di iniettare ransomware o altri malware nei siti web.

Le debolezze sono nello standard Wi-Fi stesso e non nei singoli prodotti o nelle implementazioni. Pertanto, è possibile che venga compromessa una corretta implementazione di WPA2. Per prevenire l’attacco, gli utenti devono aggiornare i prodotti interessati non appena gli aggiornamenti di protezione diventano disponibili. Tieni presente che se il tuo dispositivo supporta Wi-Fi, è probabilmente vulnerabile . Durante la ricerca iniziale, è stato scoperto che Android, Linux, Apple, Windows, OpenBSD, MediaTek, Linksys e altri sono tutti colpiti da una variante degli attacchi. Per ulteriori informazioni su prodotti specifici, consultare il database di CERT / CC o contattare il proprio fornitore.

La ricerca sarà presentata alla conferenza Computer and Communications Security (CCS) e alla conferenza di Black Hat Europe. Il nostro documento dettagliato sulla ricerca può essere già scaricato.

Come funziona l’attacco

Come proof of concept i ricercatori hanno eseguito un attacco Kracks su uno smartphone Android. In questa dimostrazione, l’attaccante è in grado di decrittografare tutti i dati che la vittima trasmette. Per un attaccante questo è facile da realizzare, perché il nostro attacco è estremamente devastante contro Linux e Android 6.0 o superiore. Questo perché Android e Linux possono essere ingannati nell’installazione di una chiave di crittografia. Quando attacca altri dispositivi, è più difficile decrittografare tutti i pacchetti, anche se un grande numero di pacchetti può comunque essere decifrato. In ogni caso, la seguente dimostrazione mette in evidenza il tipo di informazioni che un aggressore può ottenere quando esegue attacchi Kracks su reti Wi-Fi protette:

L’attacco non è limitato al recupero delle credenziali di accesso (ad esempio indirizzi e-mail e password). In generale, tutti i dati o le informazioni che la vittima trasmette possono essere de-crittografati. Inoltre, a seconda del dispositivo utilizzato e della configurazione della rete, è  possibile de-crittografare i dati inviati verso la vittima (ad es. Il contenuto di un sito web). Anche se i siti web o le applicazioni utilizzano HTTPS come un ulteriore livello di protezione, segnaliamo che questa protezione aggiuntiva può (ancora) essere ignorata in un numero preoccupante di situazioni. Ad esempio, HTTPS è stato precedentemente ignorato nel software non browser , in iOS e OS X di Apple , nelle applicazioni Android , nelle applicazioni Android ancora una volta nelle applicazioni bancarie, e anche nelle applicazioni VPN.

Dettagli sull’attacco Kracks

L’attacco principale è contro l’inizio della comunicazione (4-way handshake) del protocollo WPA2. Questo viene eseguito quando un client desidera entrare in una rete Wi-Fi protetta e viene utilizzato per confermare che sia il client sia il punto di accesso possiedono le credenziali corrette (ad esempio la password predefinita della rete). Allo stesso tempo, la comunicazione invia anche una nuova chiave di crittografia che verrà utilizzata per proteggere tutto il traffico successivo. Attualmente, tutte le moderne reti Wi-Fi  usano 4-way handshake. Ciò implica che tutte queste reti sono influenzate dallo stesso tipo di attacco (con qualche variante). Ad esempio, l’attacco funziona contro le reti Wi-Fi personali e aziendali, contro i precedenti WPA e gli ultimi standard WPA2, e anche contro le reti che utilizzano solo AES. Tutti i nostri attacchi contro WPA2 usano una nuova tecnica chiamata key reinstallation attacks (KRACK).

Key reinstallation attacks: descrizione di livello elevato

In un attacco key reinstallation attacks, l’avversario si oppone a una vittima nella reinstallazione di una chiave già in uso. Ciò è ottenuto manipolando e ripetendo messaggi di handshake crittografici . Quando la vittima reinstalla la chiave, i parametri associati, come il numero di pacchetti di trasmissione incrementale e il numero del pacchetto di ricezione vengono reimpostati al loro valore iniziale. Essenzialmente, per garantire la sicurezza, una chiave deve essere installata e utilizzata una sola volta. Purtroppo abbiamo visto che questo non è garantito dal protocollo WPA2. Manipolando l’handshake crittografico, possiamo forzare questa debolezza.

Key reinstallation attacks: esempio concreto contro la 4-way handshake

Come descritto nell’introduzione del documento di ricerca, lo sviluppo di un attacco di questo tipo può essere riassunto come segue:
quando un client entra in una rete, esegue un 4-way handshake (IEEE 802.11i) per negoziare una nuova chiave di crittografia. Installerà questa chiave dopo aver ricevuto il messaggio 4-way handshake. Una volta installata la chiave, questa verrà utilizzata per crittografare i frame di dati utilizzando un protocollo di crittografia. Tuttavia, poiché i messaggi possono essere persi o scartati, il punto di accesso (AP) ritrasmetterà il messaggio 3 se non ha ricevuto una risposta appropriata come conferma. Di conseguenza, il client può ricevere il messaggio 3 più volte. Ogni volta che riceve questo messaggio, reinstalla la stessa chiave di crittografia e quindi ripristina il numero di pacchetti di trasmissione incrementale. E’ dimostrato che un aggressore può forzare questi reset raccogliendo e ripetendo le ritrasmissioni del messaggio 3 del 4-way handshake. Forzando il riutilizzo della chiave inviata il protocollo di crittografia può essere attaccato, i pacchetti possono essere riprodotti, decrittografati e/o ricreati. La stessa tecnica può essere utilizzata anche per attaccare la chiave PeerKey, TDLS e la BSS transition handshake.

Impatto pratico sulle reti wifi

L’attacco più diffuso e più efficace è l’attacco Kracks contro il 4-way handshake. Questo giudizio è basato su due osservazioni. In primo luogo, durante la ricerca i tecnici hanno scoperto che la maggior parte dei client sono stati colpiti da questa vulnerabilità. In secondo luogo, si può utilizzare questo attacco per decodificare i pacchetti inviati dai client, consentendo quindi di intercettare informazioni sensibili quali password o cookie. La decrittazione dei pacchetti è possibile perché un attacco Kracks provoca l’azzeramento dei nodi di trasmissione (talvolta chiamati anche numeri dei pacchetti o vettori di inizializzazione). Di conseguenza, la stessa chiave di crittografia viene utilizzata con i valori già utilizzati in passato. Nel caso in cui un messaggio che riutilizzi il keystream abbia riconosciuto il contenuto, diventa banale derivare il keystream utilizzato. Questo keystream può quindi essere utilizzato per decriptare i messaggi con lo stesso nonce. Quando non esiste un contenuto noto, è più difficile decifrare i pacchetti, anche se teoricamente possibile in molti casi. In pratica, la ricerca dei pacchetti con contenuto noto non è un problema, quindi si deve supporre che qualsiasi pacchetto possa essere decriptato.

La capacità di decifrare i pacchetti può essere usata per leggere i pacchetti TCP SYN. Ciò consente ad un intruso di ottenere i numeri di sequenza TCP di una connessione e di convertire le connessioni TCP . Di conseguenza, anche se viene utilizzato WPA2, l’avversario può ora eseguire uno degli attacchi più comuni contro le reti Wi-Fi aperte: iniettando dati dannosi in connessioni HTTP non crittografate. Ad esempio, un aggressore può iniettare un ransomware o malware nei siti web che la vittima sta visitando.

Se la vittima utilizza il protocollo di crittografia WPA-TKIP o GCMP, invece di AES-CCMP, l’impatto è particolarmente catastrofico. Contro questi protocolli di crittografia, il riutilizzo di nonce consente ad un avversario  non solo di de-crittografare, ma anche di creare e iniettare i pacchetti. Inoltre, poiché GCMP utilizza la stessa chiave di autenticazione in entrambe le direzioni di comunicazione e questa chiave può essere recuperata, la vulnerabilità è particolarmente facile da utilizzare. Si noti che il supporto per GCMP è attualmente in fase di roll-out sotto il nome di Wireless Gigabit (WiGig) e dovrebbe essere adottato da un tasso elevato di sistemi nei prossimi anni.

La direzione in cui i pacchetti possono essere decifrati dipende dalla handshake che viene attaccata. Ovvero, quando si attacca la 4 way handshake, possiamo decriptare (e creare) i pacchetti inviati dal client. Quando si attacca la handshake della transizione veloce BSS (FT), possiamo decriptare (e creare) i pacchetti inviati verso il client. Infine, la maggior parte degli attacchi consente anche la riproduzione di frame unicast, broadcast e multicast. Per ulteriori dettagli, vedere la sezione 6 del documento di ricerca .

Bisogna notare che gli attacchi non recuperano la password della rete Wi-Fi.

Kracks su Android e Linux

Il nostro attacco è particolarmente invadente contro la versione 2.4 e superiore di wpa_supplicant, un client Wi-Fi comunemente utilizzato su Linux. Qui, il client installerà una chiave di crittografia totalmente nulla, invece di reinstallare la chiave reale. Questa vulnerabilità sembra essere causata da una opzione nello standard Wi-Fi che suggerisce di cancellare la chiave di crittografia dalla memoria una volta installata per la prima volta. Quando il client riceve un messaggio di ritrasmissione del messaggio 3 della 4-way handshake reinstalla il codice di crittografia prima eliminato, installando in modo efficace un codice a zero. Poiché Android utilizza wpa_supplicant, Android 6.0 e superiori contengono anche questa vulnerabilità. Ciò rende banale intercettare e manipolare il traffico inviato da questi dispositivi Linux e Android . Si noti che attualmente Il 50% dei dispositivi Android è vulnerabile a questa variante eccezionalmente devastante del nostro attacco.

Common Vulnerabilities and Exposures (CVE)

  • CVE-2017-13077: Reinstallation of the pairwise encryption key (PTK-TK) in the 4-way handshake.
  • CVE-2017-13078: Reinstallation of the group key (GTK) in the 4-way handshake.
  • CVE-2017-13079: Reinstallation of the integrity group key (IGTK) in the 4-way handshake.
  • CVE-2017-13080: Reinstallation of the group key (GTK) in the group key handshake.
  • CVE-2017-13081: Reinstallation of the integrity group key (IGTK) in the group key handshake.
  • CVE-2017-13082: Accepting a retransmitted Fast BSS Transition (FT) Reassociation Request and reinstalling the pairwise encryption key (PTK-TK) while processing it.
  • CVE-2017-13084: Reinstallation of the STK key in the PeerKey handshake.
  • CVE-2017-13086: reinstallation of the Tunneled Direct-Link Setup (TDLS) PeerKey (TPK) key in the TDLS handshake.
  • CVE-2017-13087: reinstallation of the group key (GTK) when processing a Wireless Network Management (WNM) Sleep Mode Response frame.
  • CVE-2017-13088: reinstallation of the integrity group key (IGTK) when processing a Wireless Network Management (WNM) Sleep Mode Response frame.

Il Paper

Il documento di ricerca  è intitolato Attacchi chiave di reinstallazione: Forcing Nonce Reuse in WPA2 e sarà presentato alla conferenza Computer and Communications Security (CCS) mercoledì 1 novembre 2017 .Anche se questo documento è reso pubblico, è stato già presentato per la revisione il 19 maggio 2017. Dopo di che sono stati apportati solo piccoli cambiamenti. Di conseguenza, i risultati del documento sono noti già da diversi mesi. Nel frattempo, abbiamo trovato tecniche più facili per eseguire il nostro attacco Kracks. Con la nostra tecnica di attacco, ora, è banale sfruttare le vulnerabilità. In particolare ciò significa che attaccare MacOS e OpenBSD è significativamente più facile di quanto discusso nel documento.

Ora abbiamo bisogno di WPA3?

No, per fortuna i dispositivi possono essere patchati in modo compatibile con le versioni precedenti. Ciò significa che un client patchato può ancora comunicare con un punto di accesso non patchato (AP) e viceversa. In altre parole, un client patchato o un punto di accesso invia esattamente gli stessi messaggi di handshake come prima e nello stesso momento. Tuttavia, gli aggiornamenti della protezione assicurano che una chiave viene installata una sola volta, impedendo il nostro attacco. Quindi, bisogna aggiornare tutti i dispositivi una volta disponibili gli aggiornamenti di protezione. Infine, sebbene un client non patchato possa ancora connettersi a un AP patchato, e viceversa, sia il client che l’AP devono essere messi a punto per difendersi da tutti gli attacchi!

Devo cambiare la mia password Wi-Fi?

La modifica della password della rete Wi-Fi non impedisce (o attenua) l’attacco. Non è quindi necessario aggiornare la password della rete Wi-Fi. Al contrario, è necessario assicurarsi che tutti i dispositivi siano aggiornati o aggiornare anche il firmware del router. Tuttavia, dopo l’aggiornamento sia dei dispositivi client che del router, non è mai una brutta idea cambiare la password Wi-Fi.

 

Questo articolo è la traduzione di una parte del sito https://www.krackattacks.com/. Altre parti più tecniche come il Paper e i software saranno resi noti a breve.