La crescita delle comunicazioni wireless ed il rapido sviluppo delle tecnologie di comunicazione ad alta velocità hanno designato la nascita di una nuova era nelle telecomunicazioni. Recentemente, vi è un altissimo interesse nei confronti dei wireless access systems (WAS) a banda larga. La maggior parte delle attività di ricerca e di standardizzazione mirano a produrre proposte per le tecnologie di trasmissione ad onde radio e ad anticipare proposte di sistemi per WAS.

Correntemente, le infrastrutture wireless basate sullo standard Wi-Fi stanno invadendo molti mercati verticali. Viste le caratteristiche specifiche dei link wireless, ci sono nuovi elementi critici che risiedono all’interno di una WLAN. Infatti, i dati trasmessi attraverso i link wireless possono essere intercettati molto semplicemente, poiché le onde su cui si trasmette possono irradiare un area che eccede i limiti di una specifica locazione (in particolare quando sono utilizzate antenne direzionali). Quanto più queste reti sono utilizzate da un gran numero di organizzazioni e individui, tanto più la sicurezza di rete diviene un elemento importante. Proteggere tali reti da tutti i possibili attacchi e avere una rete completamente sicura, è in pratica poco reale. Quello che è necessario è una soluzione di sicurezza che sia flessibile, adattabile e realizzabile, che fornisca autonomia e possa individuare le violazioni di sicurezza (privacy, autenticazione, denial of service) quando avvengono.

Le reti Wi-Fi forniscono meccanismi specifici per assicurare autenticazione e cifratura basandosi sull’uso del Wired Equivalent Privacy (WEP). Nonostante gli sforzi, non sono riusciti con il WEP a raggiungere buoni livelli di sicurezza. Molti gruppi di lavoro dell’IEEE (802.11e/i, 802.1X) stanno lavorando nella definizione di un framework di sicurezza per le reti Wi-Fi e per permettere ai vendors di differenziare i loro prodotti basandosi su specifici algoritmi e su tecniche di gestione delle chiavi differenti.

 

Autenticazione con il WEP

Come si è già visto una rete Wi-Fi può operare in due modi distinti: infrastruttura (Basic Service Set, BSS) oppure ad-hoc (Indipendent BSS mode). Nella prima modalità la comunicazione tra i client all’interno delle BSS deve passare per una stazione centrale (chiamata access point, AP). L’AP agisce come un bridge Ethernet. Nei sistemi ad-hoc la rete è completamente senza struttura. Il concetto di comunicazioni ad-hoc permette agli utenti di comunicare con ogni altro in una maniera temporanea senza alcuna amministrazione centralizzata e in una topologia dinamica che cambia frequentemente. Ogni nodo partecipante in questa rete agisce sia come host che come router e deve quindi essere capace di reinstradare i pacchetti che gli giungono che sono diretti ad altri nodi. Particolare interesse rivestono i meccanismi di autenticazione utilizzati in una BSS. Attualmente, i client wireless devono stabilire un’associazione con gli AP prima che qualunque dato sia scambiato. La gestione dei frames chiamata “beacon management frames”, permette di stabilire tale associazione. Un identificatore, chiamato SSID, è dato ad una rete controllata da un AP, ed ogni AP può gestire uno o più SSID.

Lo standard 802.11 definisce due tipologie di autenticazione:

  • l’ Open System Authentication (OSA) che essendo un sistema zero-authentication non richiede l’implementazione di nessuna primitiva crittografica;
  • Shared key Authentication (SKA) che richiede che si implementi il WEP.

L’Open System Authentication è l’opzione di default. In essa un qualunque client wireless può entrare a far parte di una BSS stabilendo un associazione con uno degli AP che la gestisce, ed a quel punto può intercettare tutti i frame di dati inviati in chiaro che transitano in quella BSS. E’ usualmente implementata in ambienti in cui la semplicità di utilizzo è l’obiettivo principale, e l’amministratore di rete non vuole imporre agli utenti la sicurezza delle comunicazioni.

La Shared Key Authentication è uno schema di autenticazione challenge/response che usa una chiave segreta condivisa da tutte le stazioni. La grave carenza di tale metodologia è che non è stato definito un meccanismo specifico per la distribuzione delle chiavi e per la loro gestione.

 

Figura 1: Comunicazione che avviene tra AP e stazione nell'autenticazione con shared key

 

Il processo di autenticazione avviene nel seguente modo:

  • la stazione che richiede di autenticarsi invia un frame iniziale di autenticazione all’access point;
  • quando l’AP riceve tale frame genera un frame di autenticazione contente 128 byte casuali generati tramite il WEP standard;
  • la stazione, ricevuto il frame di autenticazione, lo cifra con la chiave condivisa e lo invia di nuovo all’AP;
  • l’AP decifra il frame ricevuto usando la stessa chiave condivisa usata dalla stazione per cifrare e confronta il valore ottenuto con il testo casuale precedentemente inviato. Se vi è corrispondenza tra i due valori alla stazione sarà inviato un messaggio di authentication succesfully, in caso contrario sarà inviato un messaggio di authentication denied.

Inizialmente l’obiettivo del WEP era di portare il livello di sicurezza delle WLAN il più vicino possibile a quello delle reti con fili, cercando quindi di perseguire la confidenzialità dei dati e di evitare l’eavesdropping a livello link (sniffing). Un attaccante può con troppa semplicità ascoltare il traffico, e un tale attacco passivo è difficile da riconoscere. La chiave condivisa (in realtà lo standard definisce l’uso di 4 chiavi, ma ai fini della sicurezza non cambia nulla) è memorizzata in ogni Management Infomation Base station (MIB) ed è disponibile solo al coordinatore del Medium Access Control (MAC).

 

WEP

Poiché i dispositivi wireless sono dispositivi che si basano su un canale condiviso (nello specifico l’etere) qualunque cosa sia trasmessa su una tale rete può essere intercettata con una semplicità di gran lunga superiore a quella delle trasmissioni su filo. Per rendersi conto di quanto sia semplice si può pensare che tale sniffing è paragonabile ad origliare una discussione che avviene in una camera attigua a quella in cui ci troviamo ed in cui gli interlocutori sono stati così garbati da lasciare la porta divisoria aperta.

Il Wired Equivalent Privacy (WEP) è l’algoritmo che nasce con il tentativo di proteggere le comunicazioni wireless dallo sniffing. Il WEP lavora su una secret key che viene condivisa tra le varie stazioni (e.g. un laptop con una scheda Ethernet wireless) e un access point (i.e.: una stazione base). La chiave segreta è usata per cifrare i pacchetti prima di trasmetterli e un controllo di integrità è usato per assicurare che i pacchetti non abbiano subito modifiche durante la trasmissione.

Lo standard non definisce nessuna regola per la generazione della chiave condivisa, ma in pratica, molte istallazioni usano una singola chiave che viene condivisa tra tutte le stazioni mobili e gli access point (AP). La sicurezza del WEP, però, è fortemente impregnata sulla presenza di un access point all’interno della rete e, quindi, non è disponibile nelle reti 802.11 ad-hoc (o peer-to-peer) che non usano AP.

 

Figura 2: Tool di configurazione WEP per Microsoft Windows. Si può notare come nonostante lo standard definisca che la lunghezza della chiave sia di soli 64 bit i vendors permettano di utilizzare anche lunghezze differenti e come permettano o la generazione automatica della chiave tramite un qualche sistema proprietario o la definizione del suo valore da parte dell'utente (necessaria nell'infrastructure mode in cui la chiave segreta è condivisa con l'AP e quindi è da esso che ci viene comunicata). Si può notare, inoltre, come si possano definire 4 secret key proprio come precedentemente accennato

 

Il WEP impiega l’algoritmo di cifratura delle chiavi denominato Ron’s Code 4 Pseudo Random Number Generator (RC4 PRNG). La stessa chiave è usata sia per cifrare che per decifrare i dati. L’algoritmo di cifratura RC4 è uno stream chipher, esso estende una piccola chiave in un infinito stream di chiavi pseudo-casuali. L’inviante esegue lo XOR tra lo stream di chiavi ed il testo in chiaro per produrre il testo cifrato.

Diversi benefici derivano dall’uso dell’RC4:

  • lo stream di chiavi è indipendente dal testo in chiaro;
  • la cifratura e la decifratura sono veloci, circa 10 volte più veloci del DES;
  • l’RC4 è semplicemente implementabile anche da un programmatore di medio livello;
  • è dimostrabile che l’RC4 è immune all’analisi differenziale e lineare.

Il WEP esegue due processi sul testo in chiaro, uno lo cifra mentre l’altro lo protegge da modifiche non autorizzate. Se uno sniffer intercetta due testi cifrati, codificati usando lo stesso stream di chiavi, è possibile ottenere lo XOR dei due testi in chiaro, poichè la chiave scompare nell’operazione di XOR tra i due testi cifrati. La conoscenza di questo XOR ci abilita agli attacchi statistici per recuperare i testi in chiaro. Gli attacchi statistici divengono praticamente crescenti, quanti più testi cifrati, che usano lo stesso stream di chiavi, sono conosciuti. Quando un testo in chiaro diviene conosciuto, è banale recuperare tutti gli altri, e si nota che questo è già un possibile attacco.

Ma il WEP è si un protocollo che non consegue i suoi obiettivi ma non fino a tal punto. Per evitare di cifrare due testi con lo stesso stream di chiavi viene usato un Vettore di Inizializzazione (IV) al fine di aumentare la dimensione della chiave segreta condivisa e produrre una chiave RC4 differente per ogni pacchetto che dev’essere inviato. Il vettore IV viene incluso all’interno del frame trasmesso rendendo possibile la decodifica del messaggio.

 

Figura 3: Banale schematizzazione delle operazioni atte al passaggio dal testo in chiaro a quello cifrato

 

Così la chiave segreta (40 bit) è concatenata ad un vettore di inizializzazione (24 bit) producendo una chiave della dimensione totale di 64 bit. Per garantire che un pacchetto non sia stato modificato durante la trasmissione si computa un valore di Controllo di Integrità (ICV), che viene inviato all’interno del pacchetto cifrato. Il controllo di integrità è implementato tramite un checksum CRC-32. In questo modo la chiave di pacchetto è usata sia per proteggere il valore di controllo di integrità che i dati. Quindi, il numero di byte cifrati è dato dal numero di byte di dati che devono essere trasmessi più 4 byte del CRC.

 

Figura 4: Schema di funzionamento del WEP nell'interazione tra client (posto a sinistra) e access point (posto a destra)

 

La fase di cifratura di un messaggio può quindi riassumersi:

  • si calcola il valore dell'ICV usando lo CRC-32 sul testo in chiaro;
  • il valore dell'ICV viene concatenato al testo in chiaro;
  • viene scelto un vettore di inizializzazione casuale (IV) e lo si concatena alla chiave segreta;
  • la chiave segreta viene concatenata al vettore IV, e tale chiave di sessione viene data in input all’algoritmo RC4 per produrre una sequenza di chiavi pseudocasuali;
  • il testo in chiaro + CRC viene cifrato tramite uno XOR bit a bit con la sequenza di chiavi pseudocasuali prodotte dall’RC4;
  • il vettore IV viene comunicato al destinatario del messaggio ponendolo in testa al testo cifrato.

Il vettore IV, il testo in chiaro ed il CRC formano i dati da inviare nel frame di dati. Il ricevente ha una copia della stessa chiave segreta e in decifratura il vettore IV, ricavato dal messaggio ricevuto, viene utilizzato per generare uno stream di chiavi identico a quello generato dall'inviante. Lo XOR tra lo stream di chiavi ed il testo cifrato riproduce il testo in chiaro originale concatenato al relativo CRC.

La correttezza della decifratura (integrità dei dati) viene verificata attraverso l’esecuzione dell’algoritmo di controllo dell’integrità (nello specifico il CRC-32) sul testo in chiaro recuperato e, confrontando l’ICV di output con l’ICV trasmesso all’interno del messaggio. Se i due valori non sono identici il messaggio ricevuto è scartato ed un errore è inviato alla stazione inviante.

 

Figura 5: Shematizzazione dell'algoritmo di verifica dell'integrità definito per le reti wireless

 

La chiave segreta usata per cifrare/decifrare i frame di dati è anche usata per l’autenticazione delle stazioni mobili. Palesemente, è un rischio di sicurezza che le chiavi di cifratura e di autenticazione siano la stessa, recentemente infatti, si vanno diffondendo metodologie negli AP e nelle stazioni mobili, che utilizzano il WEP e la relativa chiave segreta solo per la cifratura/decifratura dei messaggi e non per l’autenticazione.