News Ticker

KRACK per scardinare il WiFi protetto con WPA2

La sicurezza di una rete informatica è sempre importante, tanto più di una rete senza fili, accessibile a chiunque sia in ascolto. E infatti, parte del protocollo WiFi, è la criptazione: la sicurezza che nessuno possa intercettare e vedere le informazioni scambiate.

Ai tempi della prima diffusione di Access Point e schede WiFi il protocollo usato era il WEP, ma presto si scoprirono dei problemi di progettazione che lo rendevano intrinsecamente non sicuro. Venne presto soppiantato da WPA e WPA2, dove il primo era stato studiato per essere compatibile con l’hardware WEP e tecnologia di passaggio al definitivo WPA2. Oggi qualunque dispositivo che voglia il bollino “WiFi” deve supportare WPA2, il protocollo sicuro.

Ma forse non così sicuro!

Infatti, è notizia di ieri come sia possibile violare questo protocollo sfruttando insieme una serie di lacune ed aree grigie conosciute per creare un’unica vera e propria minaccia.
I ricercatori responsabili dell’annuncio hanno approntato un sito in cui il problema viene spiegato e le conseguenze delineate, battezzando la tecnica di attacco KRACK (Key Reinstallation Attacks – attacchi a reinstallazione di chiave)

Vediamo di sintetizzare (e semplificare) il problema. La base dei meccanismi di criptazione WiFi prevedono l’uso di una chiave con cui codificare i messaggi, concordata tra chi fornisce la rete e l’utilizzatore, ed impostata a mano. Di fatto: la password WiFi.
Il grande difetto di WEP era che parte di questa chiave era  trasmessa in ogni comunicazione. Il grande passo avanti di WPA è stato innanzitutto eliminare quella parte di chiave trasmessa, ma anche creare un meccanismo per cui la chiave effettivamente usata viene cambiata ad ogni trasmissione, usando una combinazione
La fase debole è quella dell’associazione di un client con l’Access Point, ovvero la fase in cui si entra nella rete WiFi: in questa fase si verifica che la password impostata sia la stessa e si inizializzano i parametri per il meccanismo di crittazione dei singoli pacchetti.

L’attacco consiste nel forzare la reinizializzazione dei parametri, così che il pacchetto successivo sia mandato sempre con la stessa chiave. Se poi si riesce ad intercettare anche un pacchetto di cui si conosce il contenuto, diventa facile scoprire la chiave generata. Ed usarla, sia per decifrare le comunicazioni che per alterarle (creando delle trasmissioni che sembrano legittime). Il tutto, si nota, senza scoprire la password della rete, ma solo la chiave usata e generata da essa.

La situazione sembra particolarmente grave per Linux ed Android:

Our attack is especially catastrophic against version 2.4 and above of wpa_supplicant, a Wi-Fi client commonly used on Linux. Here, the client will install an all-zero encryption key instead of reinstalling the real key. This vulnerability appears to be caused by a remark in the Wi-Fi standard that suggests to clear the encryption key from memory once it has been installed for the first time. When the client now receives a retransmitted message 3 of the 4-way handshake, it will reinstall the now-cleared encryption key, effectively installing an all-zero key. Because Android uses wpa_supplicant, Android 6.0 and above also contains this vulnerability. This makes it trivial to intercept and manipulate traffic sent by these Linux and Android devices.

Il nostro attacco è specialmente catastrofico contro la versione 2.4 o superiore di wpa_supplicant, un client WiFi comunemente usato su Linux. Qui, il client userà una chiave di criptazione fatta tutta di zero, invece di riusare la vera chiave. Questa vulnerabilità sembra essere causata da un appunto nello standard WiFi che suggerisce di cancellare la chiave dalla memoria una volta che è stata usata la prima volta. Quando il client riceve il messaggio ritrasmesso [della fase] 3 del’handshake a 4-fasi, riuserà la chiave ormai cancellata, usando in realtà quindi una chiave fatta di zero. Siccome Android usa wpa_supplicant, Android 6.0 e superiori sono esposti a questa vulnerabilità. Questo rende banale intercettare e modificare il traffico spedito da questi dispositivi Linux ed Android.

Il problema è proprio a livello di protocollo, quindi di difficile (se non impossibile) soluzione. Ma , come al solito, la community si sta già muovendo per risolvere i problemi di implementazione (come quello di wpa_supplicant) e mitigare i buchi del protocollo. Sembra che Debian e Red Hat siano già pronti con delle patch.
E se non potremmo aggiornare i nostri router di casa, aggiorneremo il nostro amato pinguino. Come sempre, del resto, no?

Ho coltivato la mia passione per l’informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.