[Guida] Networking GNU/Linux: il Wi-Fi – Parte 1
Quando parliamo di sicurezza informatica la conoscenza è la miglior arma per difendersi dai malintenzionati. In questa mini-guida suddivisa in due parti, della serie networking GNU/Linux, vi parlerò del meccanismo di connessione tramite Wi-Fi. Sfrutteremo alcuni tool open source come Wireshark ed aircrack-ng, per visualizzare e comprendere, quello che succede “sotto al cofano”. Si può ovviamente utilizzare Kali Linux o una qualsiasi altra distribuzione GNU/Linux. I tool necessari, ad esempio, si possono installare facilmente tramite Katoolin3, come vi ho spiegato in questo articolo.
Wi-Fi: concetti utili
In questa prima sezione, vi introdurrò la terminologia di base per poter utilizzare i tool di analisi con cognizione di causa. Come per tutte le connessioni senza cavo, anche il Wi-Fi funziona sfruttando le onde radio, per mettere in comunicazione i dispositivi. Per quanto riguarda il range delle frequenze utilizzate, troviamo:
- 2.4 GHz suddivisa, in Europa, su 13 canali;
- 5 GHz suddivisa su 23 canali.
Una rete Wi-Fi è identificata attraverso il suo SSID (Service Set IDentifier), ovvero il nome con cui trovate la vostra WLAN quando effettuate una scansione. Per quanto riguarda il tipo di sicurezza utilizzabile, ecco una classifica in ordine di “robustezza”:
- WPA2 con AES
- WPA con AES
- WPA con TKIP/AES
- WPA con TKIP
4-Way Handshake – le chiavi
Ma che succede quando ci si connette ad una rete Wi-Fi ? Inizialmente il dispositivo che vuole connettersi, anche detto supplicant, viene autenticato e associato all’AP, detto authenticator, ovvero supera una sorta di controllo di compatibilità con lo standard 802.11. Successivamente inizia la fase che ci interessa, ovvero la 4 way handshake.
In sostanza il traffico tra il client e l’access point, viene crittografato tramite uno scambio di chiavi, suddiviso in 4 step. Le chiavi utilizzate sono:
- Pairwise Transit Key (PTK), utilizzata per crittografare tutto il traffico unicast tra supplicant ed authenticator. Per creare questo tipo di chiave, viene utilizzata una funzione che prende come argomenti, ad esempio, i MAC address e dei numeri random: PTK = f ( PMK , auth.nonce, suppl.nonce, auth.MAC, suppl.MAC );
- Pairwise Master Key (PMK), semplificando, nelle connessioni che sfruttano la sicurezza WPA2/PSK, la PSK (che a sua volta viene generata dalla passphrase che utilizziamo per connetterci) diventa la PMK;
- Group Temporal Key (GTK), usata per crittografare il traffico broadcast, è quindi condivisa tra tutti i client che si connettono allo stesso AP. Viene a sua volta generata in base ad una Group Master Key (GMK).
4-Way Handshake – la teoria
Ma come avviene, nel concreto, questo scambio di chiavi, necessario per connettersi ad una rete Wi-Fi ? Iniziamo con il precisare che, questa comunicazione, sfrutta il protocollo EAPoL, come mostrato nell’immagine precedente. Ecco i singoli passaggi:
- L’access point manda un messaggio al device, contenente l’auth.nonce. Questo valore randomico, come abbiamo visto poc’anzi nella funzione di esempio, è tutto ciò che serve al supplicant per connettersi, poiché è già a conoscenza degli altri valori necessari per generare la PTK;
- Il device, a questo punto, invia all’AP un nuovo messaggio contenente il supp.nonce e il MIC, acronimo di message integrity check (per il controllo dell’integrità della comunicazione). A questo punto l’access point genera a sua volta la PTK e abbiamo la connessione unicast crittografata;
- L’AP deve quindi generare la GTK, che dovrà poi condividere tra tutti i dispositivi gli sono connessi. Questa, quindi, insieme al MIC, viene mandata in questa fase al supplicant;
- Il device conferma l’installazione delle chiavi.
Ora la connessione è completa, tutto il traffico unicast è crittografato dalla chiave PTK, mentre quello multicast dalla GTK appena creata.
Wi-Fi injection: attrezzatura di base
Per continuare con la guida, e replicare alcuni esempi pratici, è necessario utilizzare una scheda di rete che ha la possibilità di avere attiva la monitor mode, tool tipico per operazioni di pentest, in ambito networking. Io, ad esempio, utilizzo questa:
ma in realtà ne esistono tantissimi modelli. In genere, è sufficiente controllare che sia presente uno tra questi chip:
- Atheros AR9271
- Ralink RT3070
- Ralink RT3572
- Realtek RTL8812AU
- Ralink RT5572
- Ralink RT5370N
Siamo giunti alla conclusione di questa prima parte della mini-guida della serie networking, dedicata alla connessione Wi-Fi. Nel prosieguo vi parlerò di come scegliere la giusta Wireless Card Chipset, entreremo nel dettaglio del 4-way handshake con un esempio pratico per capire dove entra in gioco la passphrase e vi introdurrò al funzionamento di aircrack-ng, sia per le WPE che per le WPA.
Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.