Crittografare dei dati significa, fondamentalmente, creare un algoritmo che sia in grado si accogliere una serie di informazioni in ingresso, modificare l’aspetto "visivo" di tali dati in modo da renderne "incomprensibile" il contenuto e in fase di ricezione interpretare, ossia "tradurre" questi dati così da renderli nuovamente fruibili.
Vista la moltitudine di problematiche legate alla trasmissione di dati attraverso una rete wireless il comitato noto come Wi-Fi Alliance decise di stilare un protocollo che definisse uno standard per la crittografia delle informazioni da scambiare attraverso le reti così realizzate.
Wep: il primo passo della crittografia
Il primo standard di crittografia realizzato fu il WEP, Wired Equivalent Privacy. In realtà questo è quella parte dello standard IEEE 802.11 che si occupa della sicurezza delle trasmissioni via radio nelle reti wireless.
Il WEP fu realizzato con lo scopo di fornire alla reti wireless una sicurezza comparabile con quella delle normali reti LAN (wired) basate su collegamenti via cavo.
Con il trascorrere degli anni seri difetti sono stati riscontrati nell’applicazione di tale protocollo, ed in particolare nell’implementazione dell’algoritmo crittografico utilizzato per rendere sicure le comunicazioni. Tanto che allo stato attuale il WEP viene considerato il minimo indispensabile per impedire ad un utente casuale di accedere alla rete locale.
Infatti, con il tempo sono stati sviluppati molti attacchi specifici per il WEP; tanto che fu dimostrato che con una semplice analisi del traffico di rete era possibile, nel giro di poche ore, risalire alla chiave di protezione utilizzata; questo a causa della particolare implementazione dell’algoritmo di cifratura stream RC4 utilizzata nel WEP. A seguire, come era logico immaginarsi vista la continua evoluzione in questo campo, sono comparsi i primi software in grado di consentire anche all’utente meno esperto di forzare una rete protetta con WEP, sempre nel lasso di tempo di qualche ora.
Ciò premesso, appare evidente come il WEP abbia nettamente fallito il suo modesto obiettivo, infatti la sicurezza ottenibile mediante questo protocollo di sicurezza non è minimamente paragonabile alla garanzia fornita da una rete lan wired.
Il Wpa come evoluzione del Wep
Visti i problemi riscontrati, e appena descritti, per lo standard di crittografia WEP, si rese ben presto necessario lo studio di uno step successivo che consentisse una maggiore sicurezza delle comunicazioni wireless.
A questo risultato si giunse con la definizione del WPA (Wi-Fi Protected Access); questo implementa una parte del protocollo IEEE 802.11i, e rappresenta un passaggio intermedio verso la "totale" sicurezza garantita sulla carta dall’applicazione in toto dello standard IEEE 802.11i. Come più volte detto, il concetto di "totale sicurezza" è molto relativo, nel senso che ogni soluzione rappresenta uno step in più verso un’ottima sicurezza ma lo è fino a quando non vengono scoperte le carte che consentono di bucare anche questa protezione.
Il WPA è progettato per gestire l’autenticazione dei client e dei server e la distribuzione di differenti chiavi per ogni utente, nonostante per questioni imprescindibili di compatibilità supporti anche la precedente versione a chiave condivisa (PSK).
Una delle modifiche che conferiscono maggiore robustezza all’algoritmo è l’introduzione della TKIP (Temporal Key Integrity Protocol). Questo protocollo ha il compito di variare dinamicamente la chiave la chiave in uso, e questo combinato con l’introduzione del vettore di inizializzazione di dimensione doppia rispetto al WEP, rende inefficaci le tecniche di attacco messe a punto per lo stesso WEP.
In aggiunta all’autenticazione e alla cifratura il WPA introduce notevoli miglioramenti nella gestione dell’integrità dei dati trasmessi. Infatti mentre con il criterio utilizzato dal WEP era possibile frapporsi nelle comunicazioni e modificarle pur non conoscendo la chiave, con il WPA questo non è possibile grazie all’utilizzo di un nuovo metodo per verificare l’integrità dei messaggi chiamato "Michael"; questo include un contatore associato al messaggio per impedire all’attaccante di ritrasmettere un messaggio che sia già stato trasmesso dalla rete.
In sostanza, quindi, il WPA aumenta la dimensione della chiave, il numero delle chiavi in uso, include un sistema per verificare l’integrità dei messaggi migliore e quindi incrementa la sicurezza della WLAN, rendendola effettivamente questa volta analoga a quella di una rete wired.
Come evitare le più comuni tecniche d’attacco
L’hacking di una chiave WEP è reso semplice dalle falle in parte e descritte e comunque abbondantemente note per questo tipo di crittografia, ma comunque legato a due condizioni necessarie: ci deve essere almeno un client collegato all’access point e deve esserci un minimo di traffico da poter catturare; nel caso in cui la seconda condizione non si attui, questa è facilmente inducibile tramite la prima sfruttando le altre falle del WEP.
Per quanto riguarda, invece, la tecnica di attacco possibile per il protocollo WPA, l’unica possibile consiste nell’intercettare la fase di autenticazione del client all’access point. Per poter raggiungere questo obiettivo sono possibili due strade: la prima consiste semplicemente nel mettersi in attesa/ascolto della connessione tramite autenticazione, oppure molto più sbrigativamente è possibile indurre nell’access point una deautenticazione, innescando automaticamente nel client che stava dialogando con l’access point una nuova fase di autenticazione, che a questo punto l’attaccante sarà pronto ad intercettare.
La fase successiva, nella tecnica di attacco alla WPA, all’acquisizione del pacchetto di autenticazione alla rete consiste nel condurre un "brute force attack" al pacchetto di dati di cui l’attaccante è entrato in possesso.
Da quanto appena descritto è facilmente intuibile come la sicurezza nella WPA possa essere alla fine dei conti ricondotta alla scelta migliore possibile di una password adeguata. In quanto più la password sarà fuori da canoni noti o intuibili, tanto più sarà difficoltoso, se non impossibile, per ogni software dedicato ricostruirne la composizione.