Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Elaborato finale in Protocolli per Reti Mobili Wi-Fi Protected Setup (WPS) Anno Accademico 2013/2014 Candidato: Fabrizio Anniballo matr. N46/869 Ai miei Genitori ed al mio Amore, che mi hanno sempre sostenuto ed aiutato in questi anni. Indice Introduzione 5 Capitolo 1. Le reti wireless 6 1.1 1.2 Cenni storici .................................................................................................................. 6 Lo standard IEEE 802.11 .............................................................................................. 7 1.2.1 Architettura .................................................................................................... 7 1.2.2 Sicurezza in 802.11 ....................................................................................... 8 1.2.2.1 WEP ......................................................................................... 9 1.2.2.2 TKIP ....................................................................................... 10 1.2.2.3 CCMP ..................................................................................... 12 Capitolo 2. Wi-Fi Protected Setup (WPS) 2.1 2.2 2.3 13 Architettura e componenti ........................................................................................... 14 2.1.1 Interfaccia E ................................................................................................ 15 2.1.2 Interfaccia M................................................................................................ 16 2.1.3 Interfaccia A ................................................................................................ 16 Struttura delle frame di gestione .................................................................................. 17 2.2.1 Attributi IE nelle Beacon Frame ................................................................... 18 2.2.2 Attributi IE nelle Association Request .......................................................... 19 2.2.3 Attributi IE nelle Association Response ....................................................... 19 2.2.4 Attributi IE nelle Probe Request................................................................... 20 2.2.5 Attributi IE nelle Probe Response ................................................................ 21 Protocollo di Registrazione .......................................................................................... 22 2.3.1 Definizione dei messaggi............................................................................. 23 2.3.1.1 Messaggio M1 ........................................................................ 24 2.3.1.2 Messaggio M2 ........................................................................ 25 2.3.1.3 Messaggio M2D ...................................................................... 26 2.3.1.4 Messaggio M3 ........................................................................ 27 2.3.1.5 Messaggio M4 ........................................................................ 27 2.3.1.6 Messaggio M5 ........................................................................ 28 2.3.1.7 Messaggio M6 ........................................................................ 28 2.3.1.8 Messaggio M7 ........................................................................ 29 2.3.1.9 Messaggio M8 ........................................................................ 29 2.3.1.10 Messaggio WPS_ACK ............................................................ 30 2.3.1.11 Messaggio WPS_NACK ......................................................... 30 III 2.4 2.5 2.6 2.7 2.3.1.12 Messaggio WPS_Done ........................................................... 31 Sicurezza .................................................................................................................... 31 2.4.1 Configurazione in-band ............................................................................. 32 2.4.2 Configurazione out-of-band ....................................................................... 33 Setup iniziale della rete ............................................................................................... 33 2.5.1 AP indipendente........................................................................................ 34 2.5.2 AP con un Registrar esterno ..................................................................... 35 2.5.2.1 EAP-based setup .................................................................... 36 2.5.2.2 Ethernet-based setup.............................................................. 37 Aggiungere dispositivi membri alla rete ....................................................................... 38 2.6.1 Setup in-band usando un Registrar/AP indipendente ................................ 39 2.6.2 Setup in-band usando un Registrar esterno .............................................. 39 2.6.2.1 Setup, con metodo PIN, avviato da un Registrar esterno ........ 40 2.6.2.2 Setup, con metodo PBC, avviato da un Registrar esterno ...... 41 2.6.2.3 Setup, con metodo PIN, avviato dall’Enrollee.......................... 42 2.6.2.4 Setup, con metodo PBC, avviato dall’Enrollee ........................ 43 2.6.3 Setup in-band usando Registrar esterni multipli ........................................ 44 Vulnerabilità ................................................................................................................ 45 2.7.1 Visual Device Pairing Security (ViDPSec) ................................................. 48 Conclusioni Bibliografia 49 50 IV Wi-Fi Protected Setup (WPS) Introduzione La tecnologia wireless permette ai dispositivi elettronici che la supportano di comunicare senza l’utilizzo di cavi, ed il suo impiego presenta numerosi vantaggi, come: economicità: riduzione dei costi relativi all’installazione ed al cablaggio; facilità d’accesso: l’utente può usufruire dei servizi della rete da qualsiasi posizione all’interno dell’area di copertura; supporto alla mobilità: l’utente può muoversi liberamente all’interno dell’area di copertura, continuando ad utilizzare i servizi offerti dalla rete. Quanto detto giustifica il grande successo avuto da questa tecnologia; infatti, il giro d’affari dei dispositivi, di 300 milioni di dollari nel 1999, ha raggiunto la cifra di 1,6 miliardi nel 2005. Tuttavia, le maggiori problematiche delle reti wireless sono legate alla sicurezza; per questo gran parte dell’attività di progettazione degli enti di standardizzazione è mirata alla loro risoluzione. Lo scopo di questa tesi è fornire una panoramica delle principali caratteristiche del protocollo di sicurezza Wi-Fi Protected Setup (WPS). Nel primo capitolo di questo elaborato verranno illustrati i componenti e l’architettura di una rete wireless 802.11; quindi, seguirà una descrizione dei principali protocolli di sicurezza. Il secondo capitolo, invece, sarà interamente dedicato all’analisi dello standard WPS. 5 Wi-Fi Protected Setup (WPS) Capitolo 1 Le reti wireless 1.1 Cenni storici Nel 1963 venne fondata l’IEEE (Institute of Electrical and Electronics Engineers) [3], uno dei più importanti enti internazionali di standardizzazione [1]. Nel 1980 fu tenuto il primo incontro dell’IEEE 802 LAN/MAN Standards Committee: una commissione dell’Istituto nata allo scopo di sviluppare standard per le reti locali (LAN) e metropolitane (MAN). Negli anni, tale commissione ha prodotto numerosi standard, come 802.3 (Ethernet) e 802.5 (Token Ring); inoltre, nel 1990 venne costituito il working group 802.11 [1], preposto alla definizione di standard del livello fisico e di quello data link per le reti locali wireless (WLAN), che pubblicò il suo primo lavoro nel 1997 [2]. Nel 1999 sette aziende fondarono un’organizzazione no-profit, la Wi-Fi (Wireless Fidelity) Alliance [6], preposta alla certificazione dell’interoperabilità dei dispositivi il cui funzionamento si basa sugli standard 802.11 [1]. Ad oggi, le aziende che hanno aderito a tale organizzazione sono più di cinquecento, tra le quali Apple, Samsung, Sony, Microsoft, Cisco ed Intel. Nel corso degli anni, lo standard del 1997 è stato oggetto di numerose revisioni e correzioni, rese ufficiali attraverso emendamenti. Questi ultimi sono identificati da lettere, che accompagnano il nome dello standard: ad esempio 802.11b o 802.11s. Nel 2007 è stato pubblicato un nuovo standard, noto come 802.11-2007 [4], che raccoglie tutti i precedenti emendamenti (802.11a/b/g/h/i/j/e). Ancora, nel 2012 è stato presentato 802.11-2012 [5], che raccoglie gli emendamenti approvati dal 2007 in poi (802.11k/r/y/w/n/p/z/v/u/s). 6 Wi-Fi Protected Setup (WPS) 1.2 Lo standard IEEE 802.11 La famiglia degli standard 802.11 è una raccolta di tecniche di modulazione che utilizzano lo spettro di frequenze nell’intorno dei 2.4 GHz, 3.6 GHz e 5 GHz. Gli emendamenti dedicati a tali tecniche sono 802.11b, 802.11a, 802.11g ed 802.11n; tutti gli altri emendamenti, invece, riguardano estensioni dei servizi di base (uno dei più noti in tal senso è 802.11e). Fa eccezione 802.11i [7], del 2004, interamente dedicato alla sicurezza. Nei prossimi paragrafi analizziamo l’architettura di una rete wireless che utilizza lo standard 802.11x ed i principali protocolli relativi alla sicurezza della rete stessa. 1.2.1 Architettura All’interno di una rete wireless 802.11 il componente principale è il Basic Service Set (BSS), cioè un insieme di dispositivi (o stazioni, STA) che sono in grado di comunicare tra loro. L’area entro la quale avviene tale comunicazione è detta Basic Service Area (BSA). Tra le varie stazioni può essere presente un Access Point (AP), che svolge numerose importanti funzioni, come fungere da ponte verso reti esterne e gestire i dispositivi membri della rete. Se all’interno di una rete è presente un AP, questa si dice “dotata di infrastruttura”; nel caso contrario, si parla di Independent BSS (IBSS), cioè di una “rete ad hoc”. È possibile anche creare un Extended Service Set (ESS), unendo più BSS attraverso uno specifico componente, che lo standard indica con il nome Distribution System (DS). Un ESS costituisce un unico segmento di rete locale, e quindi una sottorete. Ciò garantisce ai dispositivi membri non solo di comunicare con apparecchi che appartengono ad altri BSS, ma anche di potersi spostare liberamente attraverso BSS diversi, fornendo un efficiente supporto alla mobilità delle stazioni. Vediamo come avviene lo scambio di messaggi tra due stazioni (STA1 e STA2), nel caso in cui appartengano a BSS diversi (in cui gli AP sono, rispettivamente, AP1 ed AP2), ma allo stesso ESS. All’interno di una rete con infrastruttura, ciascun dispositivo deve sempre trasmettere i propri messaggi all’AP, il quale riconoscerà il destinatario e recapiterà il messaggio. Per quanto detto, STA1 trasmette il messaggio destinato a STA2 ad AP1, il quale si accorge che il destinatario non appartiene al proprio BSS e lo inoltra al DS; 7 Wi-Fi Protected Setup (WPS) questo, recapita il messaggio ad AP2, che a sua volta lo invia a STA2. Da questo esempio si evince che un AP deve conoscere i dispositivi che compongono il proprio BSS, oltre che sapere come raggiungere un qualsiasi AP interno all’ESS. Infatti, ogni access point gestisce una lista contenente un identificativo di ciascuna stazione interna al proprio BSS [1]. Invece, lo standard non definisce una procedura con cui si possa stabilire a quale AP esterno inoltrare il messaggio, poiché questa dipende dalla tecnologia realizzativa del DS, che, a sua volta, non è definita dallo standard. 1.2.2 Sicurezza in 802.11 A causa delle caratteristiche del mezzo trasmissivo usato in una rete wireless (lo spazio libero), la sicurezza rappresenta una problematica di fondamentale importanza. Infatti, in una WLAN chiunque si trovi nelle vicinanze di una stazione è in grado di intercettare le informazioni trasmesse. Quindi, è necessario prevedere dei meccanismi di sicurezza, per proteggere gli utenti da malintenzionati; tre sono i concetti di maggior rilievo [1]: autenticazione: procedura con la quale un AP verifica che una stazione sia in possesso di valide credenziali; confidenzialità: garantire, mediante cifratura, che le informazioni trasmesse non possano essere decifrate da altre stazioni; integrità: garantire che i dati trasmessi siano recapitati al destinatario senza essere stati modificati da attaccanti. Il working group 802.11, considerando questi tre aspetti, ha provveduto a sviluppare meccanismi di sicurezza che fossero in grado di offrire delle garanzie agli utenti delle reti, che sono stati poi raccolti nell’emendamento 802.11i: per quanto riguarda l’autenticazione, sono stati introdotti i metodi 802.1X e PSK (Pre-Shared Keys); per la confidenzialità ed integrità dei dati sono stati progettati i protocolli TKIP (Temporal Key Integrity Protocol) e CCMP (Counter mode with Cipher-block chaining MAC Protocol), che sostituiscono WEP (Wired Equivalent Privacy), definito nello standard 802.11-1997. Inoltre, nel 2007, è stato introdotto il protocollo WPS (analizzato nel capitolo successivo). 8 Wi-Fi Protected Setup (WPS) 1.2.2.1 WEP Come suggerito dal nome, questo protocollo è stato sviluppato con l’intento di garantire agli utenti di una rete wireless un livello di privacy equivalente a quello delle reti cablate; tuttavia, WEP si è dimostrato troppo vulnerabile, e per questo è stato deprecato con lo standard 802.11-2007. Per quanto riguarda l’autenticazione, WEP offre due diverse procedure: Open System: non è richiesta alcuna credenziale alle stazioni; Shared Key: bisogna conoscere una chiave condivisa per associarsi all’AP. Per garantire l’integrità e la confidenzialità dei dati, invece, WEP prevede un meccanismo composto di due diverse fasi: 1. Cifratura dei dati Gli elementi necessari a questa fase sono tre: i dati in chiaro da cifrare (plaintext), una chiave WEP ed un Initialization Vector (IV). Come è possibile osservare dalla figura 1.1, la chiave WEP e l’IV vengono combinati per generare un seme, che l’algoritmo di crittografia RC4 utilizza per generare una chiave di cifratura (keystream); nello stesso tempo, a partire dai dati, è calcolato un Integrity Check Value (ICV), usando l’algoritmo non crittografico CRC-32, che poi viene accodato ai dati stessi. Quindi, plaintext ed ICV vengono cifrati mediante operazione di XOR con la keystream; a questi è poi aggiunto l’IV. 9 Wi-Fi Protected Setup (WPS) 2. Decifratura dei dati Il ricevente, per poter decifrare i dati, deve necessariamente utilizzare la stessa keystream del mittente: questa viene calcolata a partire dalla stessa chiave WEP e dall’IV (trasmesso dal mittente insieme ai dati cifrati). Quindi, l’operazione di XOR tra dati cifrati e la chiave calcolata restituisce in chiaro sia dati che l’ICV. A questo punto il ricevente calcola autonomamente il proprio ICV, che poi confronta con quello ricevuto, per verificare che i dati non siano stati modificati durante la trasmissione. Se questi valori coincidono, la comunicazione è avvenuta con successo, altrimenti il messaggio viene scartato. 1.2.2.2 TKIP TKIP è un meccanismo che può essere opzionalmente implementato sulle stazioni che supportano soltanto WEP; esso non è completamente sicuro, ma è la migliore soluzione che si possa adottare su stazioni di questo tipo. I miglioramenti introdotti sono sostanziali: viene utilizzato il MIC (Message Integrity Code) per proteggere gli utenti da attacchi di tipo spoofing; ad ogni messaggio è associato un numero di sequenza, detto TKIP Sequence Counter (TSC), utile per identificare replay attack in corso; per generare la chiave di cifratura vengono utilizzati l’indirizzo della stazione sorgente (TA), il TSC, ed una Temporal Key (TK). 10 Wi-Fi Protected Setup (WPS) La fase di cifratura TKIP, illustrata in figura 1.3, prevede che, a partire dal MIC key e da alcuni campi in chiaro, venga generato il MIC; contemporaneamente, TA, TK e TSC vengono combinati per generare sia l’IV che la chiave RC4. Il tutto viene poi utilizzato per effettuare l’incapsulamento WEP. La fase di decifratura, illustrata in figura 1.4, prevede che il ricevente ricalcoli la chiave WEP, a partire dal TA, TK e TSC, e poi proceda con il decapsulamento WEP. Quindi, calcola autonomamente il MIC, per poi confrontarlo con quello ricevuto. Se questi valori coincidono, la comunicazione è avvenuta con successo, altrimenti il messaggio viene scartato. 11 Wi-Fi Protected Setup (WPS) 1.2.2.3 CCMP CCMP è un protocollo più robusto di TKIP. Esso utilizza una Temporal Key (TK) diversa per ogni sessione, oltre che un Packet Number (PN), utile contro i replay attack. Figura 1.5 illustra la procedura di cifratura dei dati di CCMP. Il blocco di cifratura CCM riceve in ingresso: il costrutto nonce; la TK; i dati da criptare; il costrutto AAD (Additional Authentication Data); il MIC; mentre, produce in uscita il MIC per il controllo d’integrità ed i dati criptati. In ricezione, invece, bisogna ricostruire gli elementi che sono stati posti in ingresso al cifratore e farli elaborare dal decifratore CCM, il quale esegue il controllo del MIC e restituisce i dati in chiaro. 12 Wi-Fi Protected Setup (WPS) Capitolo 2 Wi-Fi Protected Setup (WPS) Lo standard Wi-Fi Protected Setup (WPS), noto anche come Wi-Fi Simple Configuration (WSC) [8], fu approvato nel gennaio 2007 dalla Wi-Fi Alliance, con lo scopo di instaurare connessioni sicure sulle reti wireless. Infatti, molti proprietari di reti Wi-Fi non gestiscono correttamente la sicurezza di quest’ultime, esponendosi a possibili furti di banda e/o identità, ma soprattutto mettendo a rischio l’integrità e la segretezza dei propri dati. Da alcune stime si apprende che una percentuale delle aziende compresa tra il 60% ed il 70% non esegue una corretta configurazione delle impostazioni relative alla sicurezza [8]. Per rendersi meno vulnerabili agli attacchi provenienti dalla rete, alcune di queste aziende hanno provveduto a sviluppare per proprio conto del software aggiuntivo; tuttavia, il crescente numero di differenti soluzioni ha creato delle incompatibilità di interazione tra aziende. In questo contesto, la Wi-Fi Alliance ha provveduto a sviluppare il protocollo WPS, con lo scopo di semplificare il setup e la gestione degli aspetti relativi alla sicurezza delle reti Wi-Fi. In un certo senso, WPS invoglia l’utente ad attivare le protezioni puntando sulla semplicità e sull’immediatezza: è sufficiente premere un pulsante presente sui dispositivi che si vuole far comunicare, e questi automaticamente si scambieranno le informazioni necessarie ad instaurare una connessione sicura, rispettando le modalità imposte dallo standard. Nei paragrafi che seguono verranno esposte le principali caratteristiche architetturali e funzionali del protocollo WPS. 13 Wi-Fi Protected Setup (WPS) 2.1 Architettura e componenti Lo standard WPS definisce tre tipologie di componenti [8] che costituiscono una rete: AP: Access Point che utilizza 802.11 in modalità infrastruttura; Enrollee: dispositivo che richiede di accedere alla rete wireless; diventa membro una volta che ha ottenuto delle valide credenziali; Registrar: entità che ha la possibilità di concedere o revocare delle credenziali; può essere integrato nell’AP oppure separato da questo. Un rete può essere creata semplicemente attivando un AP. Inizialmente non ci sono dispositivi connessi alla rete. Quando una nuova entità Enrollee desidera essere aggiunta invia all’AP una richiesta; a questo punto l’Access Point esegue un insieme di operazioni, definite dal Protocollo di Registrazione, per decidere l’esito della richiesta. Lo standard definisce quattro metodi per aggiungere un nuovo dispositivo: PIN: il nuovo dispositivo wireless deve fornire all’AP della rete un PIN (Personal Identification Number); questo metodo deve essere obbligatoriamente supportato da ogni prodotto certificato WPS; Push-Button (PBC): l’utente deve premere un pulsante, fisico o virtuale, su entrambi i dispositivi per avviare la procedura di registrazione presso la rete; il supporto di tale metodo è obbligatorio per gli AP ed opzionale per i dispositivi; Near-Field-Communication (NFC): per essere aggiunto alla rete l’utente deve avvicinare il dispositivo all’Access Point; USB: l’utente utilizza una USB flash drive per trasferire dati tra il dispositivo e l’AP; il supporto di questo metodo è opzionale, ma deprecato. 14 Wi-Fi Protected Setup (WPS) Le tre entità comunicano per mezzo di interfacce, ciascuna delle quali implementa una parte del Protocollo di Registrazione. In figura 2.1 è rappresentata la struttura della rete, dove le lettere maiuscole identificano le interfacce di comunicazione. 2.1.1 Interfaccia E Dal punto di vista logico, l’interfaccia E è posizionata tra le entità Enrollee e Registrar e permette a quest’ultimo di scoprire nuove entità Enrollee e di comunicarle le credenziali per accedere alla rete. Tale interfaccia è implementata su entrambi i dispositivi. Enrollee L’interfaccia E dell’Enrollee realizza le seguenti funzionalità: 1. inserisce nelle probe request le WPS IE; 2. mostra su un display una device password, unica e generata in modo casuale, usata per le comunicazioni in-band tra Registrar ed Enrollee; 3. implementa la parte “Enrollee” del Protocollo di Registrazione; 4. opzionalmente, può supportare più canali out-of-band per rendere più semplice e sicura la configurazione; Registrar L’interfaccia E del Registrar realizza le seguenti funzionalità: 1. implementa la parte “Registrar” del Protocollo di registrazione; 2. può supportare più canali out-of-band; 3. configura l’AP con il MAC address e le credenziali dell’Enrollee, usando anche l’interfaccia M se necessario; 4. risponde ai messaggi probe request dell’Enrollee con probe response, se può funzionare da AP. 15 Wi-Fi Protected Setup (WPS) 2.1.2 Interfaccia M Questa interfaccia è posizionata tra le entità AP e Registrar e permette ad un Registrar esterno di gestire un AP che supporta WSP. È implementata su entrambi i dispositivi. AP L’interfaccia M dell’AP realizza le seguenti funzionalità: 1. trasmette sulla rete i propri messaggi di scoperta, funzionando da Enrollee; 2. gestisce le probe request ed i messaggi EAP che gli giungono dall’Enrollee e li converte in messaggi UPnP; Registrar L’interfaccia M del Registrar realizza le seguenti funzionalità: 1. elabora i messaggi di scoperta proveniente dall’AP; 2. implementa la parte “Registrar” del Protocollo di Registrazione, in modo da avere diritto di gestire l’AP e concedere credenziali all’Enrollee; 3. configura l’AP con le credenziali e l’indirizzo MAC dell’Enrollee. 2.1.3 Interfaccia A L’interfaccia A si colloca logicamente tra le entità Enrollee ed AP, con lo scopo di scoprire reti che supportino il protocollo WPS. È implementata su entrambi i dispositivi. AP L’interfaccia A dell’AP realizza le seguenti funzionalità; 1. trasmette sia beacon frame che probe response, contenenti, rispettivamente, informazioni che indicano il supporto di WPS ed una descrizione dell’AP; 2. implementa il protocollo EAP e l’authenticator 802.1X; Enrollee L’interfaccia A dell’Enrollee realizza le seguenti funzionalità: 1. ricerca un AP o Registrar esterni che supportino WPS e trasmette i messaggi probe request; 2. implementa il supplicant 802.1X ed il protocollo EAP. 16 Wi-Fi Protected Setup (WPS) 2.2 Struttura delle frame di gestione La trattazione dello standard WPS continua con una panoramica sulla tipologia e sulla struttura dei messaggi che i componenti della rete utilizzano per scambiarsi informazioni. La maggior parte di queste viaggiano attraverso le cosiddette frames di gestione, cioè messaggi che contengono notizie generali sulla rete, importanti per la gestione della stessa. Esistono cinque tipologie di frame di gestione: Beacon Frame: contiene tutte le informazioni sulla rete e viene trasmessa periodicamente dalle stazioni per annunciare la presenza di una rete wireless; Association Request: contiene informazioni sul dispositivo che l’ha trasmessa (ad esempio i data rates supportati), e permette a chi la riceve di allocare risorse a favore del richiedente; Association Response: contiene la risposta ad una precedente richiesta di associazione; nel caso in cui questa sia stata accettata, la frame contiene informazioni sull’associazione, come un numero identificativo ed i data rates; Probe Request: una stazione trasmette questa frame quando necessita di avere notizie da altre stazioni; ad esempio, un dispositivo può voler sapere se sono presenti dei componenti nelle sue vicinanze che supportino un certo standard; Probe Response: una stazione trasmette questa frame in risposta ad una Probe Request; contiene informazioni generali sui servizi supportati dalla rete; WPS inserisce nelle frames di gestione nuove information elements (IE), che sono utilizzate dai dispositivi per comprendere se nelle vicinanze sono presenti altri componenti che supportano il protocollo WPS. Non tutti gli attributi sono fondamentali durante una comunicazione: alcuni devono essere necessariamente presenti (R), altri sono opzionali (O), altri ancora sono condizionali (C), cioè la loro presenza è richiesta soltanto se sono presenti delle altre informazioni ad essi associati. Vediamo, per ciascuna frame, quali sono le IE introdotte dal protocollo WPS. 17 Wi-Fi Protected Setup (WPS) 2.2.1 Attributi IE nelle Beacon Frame Attributo R/O/C Descrizione Versione R Deprecato. Ha sempre valore 0x10 per garantire la compatibilità con gli standard precedenti. L’informazione aggiornata è contenuta nel campo Version2 WPS State R Il valore è 0x01 (non configurato) o 0x02 (configurato) AP Setup Locked C Deve essere incluso se il valore è TRUE Selected Registrar C Indica se recentemente un utente ha attivato un Registrar per aggiungere un Enrollee alla rete C Indica il metodo o la specifica password che il Registrar scelto vuole utilizzare. Deve essere necessariamente incluso se il campo Selected Registrar è al valore TRUE Selected Registrar Configuration Method C Descrive il metodo di configurazione attivo per tutti i Registrar. Deve essere necessariamente incluso se il campo Selected Registrar è al valore TRUE UUID-E C RF Bands C Indica tutta la banda disponibile sull’AP Version2 (inside WFA Vendor Extension) C 0x20 = versione 2.0, 0x21 = versione 2.1, etc. Deve essere necessariamente incluso dalla versione 2.0 AuthorizedMACs (inside WFA Vendor Extension) C Contiene una lista di indirizzi MAC degli Enrollee che utilizzano WPS <other…> O Può contenere attributi multipli Device Password ID 18 Wi-Fi Protected Setup (WPS) 2.2.2 Attributi IE nelle Association Request Attributo R/O/C Descrizione Versione R Deprecato. Ha sempre valore 0x10 per garantire la compatibilità con gli standard precedenti. L’informazione aggiornata è contenuta nel campo Version2 Request Type R Version2 (inside WFA Vendor Extension) <other…> C 0x20 = versione 2.0, 0x21 = versione 2.1, etc. Deve essere necessariamente incluso dalla versione 2.0 O Può contenere attributi multipli 2.2.3 Attributi IE nelle Association Response Attributo R/O/C Descrizione Versione R Deprecato. Ha sempre valore 0x10 per garantire la compatibilità con gli standard precedenti. L’informazione aggiornata è contenuta nel campo Version2 Response Type R Version2 (inside WFA Vendor Extension) <other…> C 0x20 = versione 2.0, 0x21 = versione 2.1, etc. Deve essere necessariamente incluso dalla versione 2.0 O Può contenere attributi multipli 19 Wi-Fi Protected Setup (WPS) 2.2.4 Attributi IE nelle Probe Request Attributo R/O/C Descrizione Versione R Deprecato. Ha sempre valore 0x10 per garantire la compatibilità con gli standard precedenti. L’informazione aggiornata è contenuta nel campo Version2 Request Type R Configuration Methods UUID-(E o R) Primary Device Type RF Bands R R R R Specifica banda RF usata da questo messaggio Association State R Configuration Error R Device Password ID R Costruttore C Deve essere incluso dalla versione 2.0 Nome Modello C Deve essere incluso dalla versione 2.0 Numero Modello C Deve essere incluso dalla versione 2.0 Nome Dispositivo C Contiene una descrizione del dispositivo. Deve essere incluso dalla versione 2.0 C 0x20 = versione 2.0, 0x21 = versione 2.1, etc. Deve essere necessariamente incluso dalla versione 2.0 O Indica la volontà di far parte della rete Requested Device Type O Quando un dispositivo riceve una Probe Request contenente un WPS IE con l’attributo Requested Device Type potrà rispondere soltanto con una Probe Response se il dispositivo Primary Device Type coincide con il Requested Device Type contenuto nella Probe Request <other…> O Può contenere attributi multipli Version2 (inside WFA Vendor Extension) Request to Enrollee (inside WFA Vendor Extension) 20 Wi-Fi Protected Setup (WPS) 2.2.5 Attributi IE nelle Probe Response Attributo R/O/C Descrizione Versione R Deprecato. Ha sempre valore 0x10 per garantire la compatibilità con gli standard precedenti. L’informazione aggiornata è contenuta nel campo Version2 WPS State R Il valore è 0x01 (non configurato) o 0x02 (configurato) AP Setup Locked C Deve essere incluso se il valore è TRUE Selected Registrar C Indica se recentemente un utente ha attivato un Registrar per aggiungere un Enrollee alla rete C Indica il metodo o la specifica password che il Registrar scelto vuole utilizzare. Deve essere necessariamente incluso se il campo Selected Registrar è al valore TRUE Selected Registrar Configuration Method C Descrive il metodo di configurazione attivo per tutti i Registrar. Deve essere necessariamente incluso se il campo Selected Registrar è al valore TRUE Response Type R UUID-E R Costruttore R Nome Modello R Numero Modello R Numero Seriale R Primary Device Type R Nome Dispositivo R Configuration Method R Corrisponde al metodo supportato dall’AP per aggiungere un Registrar esterno RF Bands C Indica la banda disponibile sull’AP Version2 (inside WFA Vendor Extension) C 0x20 = versione 2.0, 0x21 = versione 2.1, etc. Deve essere necessariamente incluso dalla versione 2.0 AuthorizedMACs (inside WFA Vendor Extension) C Contiene una lista di indirizzi MAC degli Enrollee che utilizzano WPS <other…> O Può contenere attributi multipli Device Password ID Identificatore dell’AP 21 Wi-Fi Protected Setup (WPS) 2.3 Protocollo di Registrazione Il Protocollo di Registrazione stabilisce l’insieme delle operazioni che devono essere compiute per aggiungere un dispositivo alla rete. La procedura di registrazione inizia automaticamente all’attivazione di un Enrollee, o per decisione dell’utilizzatore del dispositivo; in entrambi i casi, tale procedura non può completarsi senza l’intervento di un utente supervisore. Il Protocollo di Registrazione svolge ben precise ed importanti funzioni: stabilisce il ruolo di ciascun dispositivo; permette di stabilire una trasmissione sicura delle impostazioni della rete dal Registrar all’Enrollee; aiuta a risolvere problemi di connettività al canale wireless. La procedura di registrazione prevede due fasi distinte. 1. Discovery phase. Questa fase permette ai dispositivi Enrollee non solo di trovare i Registrar presenti nella rete, ma anche di rendersi visibili agli stessi. Sostanzialmente Registrar ed Enrollee si scambiano soltanto informazioni descrittive. La discovery phase deve essere necessariamente eseguita. Nel caso in cui sia l’entità Enrollee ad iniziare la fase di scoperta, questa può essere effettuata seguendo due diverse metodologie: l’Enrollee utilizza la scansione attiva, in modo da inviare probe request sulla rete durante l’intervallo di scansione; l’AP risponderà con una probe response contenente le informazioni di tutti i Registrar disponibili. Questo metodo è consigliato soltanto nel caso in cui l’entità Enrollee intenda segnalare la sua presenza, senza conoscere informazioni aggiuntive. l’Enrollee decide di associarsi ad un AP che supporta lo standard WPS e lo comunica all’entità Registrar, inviandogli il messaggio M1; al momento della ricezione, il Registrar risponderà con il messaggio M2D. Questo metodo è utilizzato nel caso in cui l’entità Enrollee voglia sia scoprire Registrar disponibili che rendere sé stesso visibile. 22 Wi-Fi Protected Setup (WPS) Invece, nel caso in cui nella rete sia presente un AP che possa funzionare anche da Enrollee, la fase di scoperta è iniziata dall’entità Registrar, e può svolgersi, anche in questo caso, in due modi: un Registrar wireless esterno invia delle probe request contenenti dei particolari attributi settati in maniera tale da segnalare all’AP che esso può fungere da Registrar della rete. L’AP comunicherà la sua risposta con una probe response. Un Registrar wired esterno utilizza dei meccanismi interni per trovare l’AP. 2. Credential provisioning. Si giunge a questa fase soltanto se sia Enrollee che Registrar decidono di procedere con la fase di registrazione vera e propria. Sostanzialmente, il Registrar comunica all’Enrollee le informazioni necessarie ad accedere alla rete. Il protocollo di Registrazione termina con tre diversi messaggi, a seconda delle cause: M2D: indica che il Registrar non è in grado di autenticare l’entità Enrollee, e contiene informazioni descrittive circa il Registrar stesso; M2: termina la procedura di registrazione se trasmessa su un canale out-of-band; M8: contiene le credenziali utili all’Enrollee; Il protocollo di Registrazione termina anche nel caso si verifichino errori o timeout. 2.3.1 Definizione dei messaggi Il Protocollo di Registrazione utilizza diversi messaggi per realizzare le proprie funzioni, e ciascuno è composto da un numero variabile di attributi, che possono essere opzionali (O) oppure necessari (R); un attributo può anche essere condizionale (C), nel senso che deve essere necessariamente incluso nel messaggio quando sono vere le condizioni ad esso associate. Inoltre, un attributo definito come “<other…>” indica un attributo non richiesto dallo standard, che deve essere ignorato dai dispositivi che non sono in grado di identificare la loro funzione. Vediamo, per ciascun messaggio utilizzato dal Protocollo di Registrazione, gli attributi legati allo standard WPS ed il loro significato. 23 Wi-Fi Protected Setup (WPS) 2.3.1.1 Messaggio M1 Attributo R/O/C Descrizione Versione R Deprecato. Ha sempre valore 0x10 per garantire la compatibilità con gli standard precedenti. L’informazione aggiornata è contenuta nel campo Version2 Tipo Messaggio R Per il messaggio M1 il valore è 0x04 UUID-E R Indirizzo MAC R Enrollee Nonce R Chiave Pubblica R Chiave Diffie-Hellman dell’Enrollee Flags per il tipo di Autenticazione R Specifica il tipo di autenticazione supportato dall’Enrollee Flags per la Crittografia R Specifica il tipo di crittografia supportato dall’Enrollee Flags per la Connessione R Metodo di Configurazione R WPS State R Costruttore R Nome Modello R Numero Modello R Numero Seriale R Primary Device Type R Nome Dispositivo R RF Bands R Stato Associazione R Device Password ID R Errore Configurazione R Versione OS R Version2 (inside WFA Vendor Extension) C 0x20 = versione 2.0, 0x21 = versione 2.1, etc. Deve essere necessariamente incluso dalla versione 2.0 Request to Enrollee (inside WFA Vendor Extension) O Indica la volontà di far parte della rete <other…> O Può contenere attributi multipli Indirizzo MAC dell’Enrollee Per un Enrollee è settato al valore 0x01 ‘Not Configured’ Specifica banda RF usata da questo messaggio 24 Wi-Fi Protected Setup (WPS) 2.3.1.2 Messaggio M2 Attributo R/O/C Descrizione Versione R Deprecato. Ha sempre valore 0x10 per garantire la compatibilità con gli standard precedenti. L’informazione aggiornata è contenuta nel campo Version2 Tipo Messaggio R Per il messaggio M2 il valore è 0x05 Enrollee Nonce R Registrar Nonce R UUID-R R Chiave Pubblica R Chiave Diffie-Hellman del Registrar Flags per il tipo di Autenticazione R Specifica il tipo di autenticazione supportato dal Registrar Flags per la Crittografia R Specifica il tipo di crittografia supportato dal Registrar Flags per la Connessione R Metodo di Configurazione R Costruttore R Nome Modello R Numero Modello R Numero Seriale R Primary Device Type R Nome Dispositivo R RF Bands R Stato Associazione R Errore Configurazione R Device Password ID R Versione OS R Version2 (inside WFA Vendor Extension) C 0x20 = versione 2.0, 0x21 = versione 2.1, etc. Deve essere necessariamente incluso dalla versione 2.0 <other…> O Può contenere attributi multipli Authenticator R Specifica banda RF usata da questo messaggio 25 Wi-Fi Protected Setup (WPS) 2.3.1.3 Messaggio M2D Attributo R/O/C Descrizione Versione R Deprecato. Ha sempre valore 0x10 per garantire la compatibilità con gli standard precedenti. L’informazione aggiornata è contenuta nel campo Version2 Tipo Messaggio R Per il messaggio M2D il valore è 0x06 Enrollee Nonce R Registrar Nonce R UUID-R R Flags per il tipo di Autenticazione R Specifica il tipo di autenticazione supportato dal Registrar Flags per la Crittografia R Specifica il tipo di crittografia supportato dal Registrar Flags per la Connessione R Metodo di Configurazione R Costruttore R Nome Modello R Numero Modello R Numero Seriale R Primary Device Type R Nome Dispositivo R RF Bands R Stato Associazione R Errore Configurazione R Versione OS R Version2 (inside WFA Vendor Extension) C 0x20 = versione 2.0, 0x21 = versione 2.1, etc. Deve essere necessariamente incluso dalla versione 2.0 <other…> O Può contenere attributi multipli Specifica banda RF usata da questo messaggio 26 Wi-Fi Protected Setup (WPS) 2.3.1.4 Messaggio M3 Attributo R/O/C Descrizione Versione R Deprecato. Ha sempre valore 0x10 per garantire la compatibilità con gli standard precedenti. L’informazione aggiornata è contenuta nel campo Version2 Tipo Messaggio R Per il messaggio M3 il valore è 0x07 Registrar Nonce R E-Hash1 R E-Hash2 R Version2 (inside WFA Vendor Extension) C 0x20 = versione 2.0, 0x21 = versione 2.1, etc. Deve essere necessariamente incluso dalla versione 2.0 <other…> O Può contenere attributi multipli Authenticator R Hash della prima metà della device password, DH segreto e la nonce1 segreta Hash della seconda metà della device password, DH segreto e la nonce2 segreta 2.3.1.5 Messaggio M4 Attributo R/O/C Descrizione Versione R Deprecato. Ha sempre valore 0x10 per garantire la compatibilità con gli standard precedenti. L’informazione aggiornata è contenuta nel campo Version2 Tipo Messaggio R Per il messaggio M4 il valore è 0x08 Enrollee Nonce R R-Hash1 R Hash della prima metà della device password, DH segreto e la nonce1 segreta R-Hash2 R Hash della seconda metà della device password, DH segreto e la nonce2 segreta Impostazioni criptate Contiene la nonce segreta del Registrar Version2 (inside WFA Vendor Extension) C 0x20 = versione 2.0, 0x21 = versione 2.1, etc. Deve essere necessariamente incluso dalla versione 2.0 <other…> O Può contenere attributi multipli Authenticator R 27 Wi-Fi Protected Setup (WPS) 2.3.1.6 Messaggio M5 Attributo R/O/C Descrizione Versione R Deprecato. Ha sempre valore 0x10 per garantire la compatibilità con gli standard precedenti. L’informazione aggiornata è contenuta nel campo Version2 Tipo Messaggio R Per il messaggio M5 il valore è 0x09 Registrar Nonce R Contiene la nonce1 segreta dell’Enrollee Impostazioni criptate Version2 (inside WFA Vendor Extension) C 0x20 = versione 2.0, 0x21 = versione 2.1, etc. Deve essere necessariamente incluso dalla versione 2.0 <other…> O Può contenere attributi multipli Authenticator R 2.3.1.7 Messaggio M6 Attributo R/O/C Descrizione Versione R Deprecato. Ha sempre valore 0x10 per garantire la compatibilità con gli standard precedenti. L’informazione aggiornata è contenuta nel campo Version2 Tipo Messaggio R Per il messaggio M6 il valore è 0x0a Enrollee Nonce R Impostazioni criptate Contiene la nonce2 segreta del Registrar Version2 (inside WFA Vendor Extension) C 0x20 = versione 2.0, 0x21 = versione 2.1, etc. Deve essere necessariamente incluso dalla versione 2.0 <other…> O Può contenere attributi multipli Authenticator R 28 Wi-Fi Protected Setup (WPS) 2.3.1.8 Messaggio M7 Attributo R/O/C Descrizione Versione R Deprecato. Ha sempre valore 0x10 per garantire la compatibilità con gli standard precedenti. L’informazione aggiornata è contenuta nel campo Version2 Tipo Messaggio R Per il messaggio M7 il valore è 0x0b Registrar Nonce R Contiene la nonce2 segreta dell’Enrollee Impostazioni criptate Setting Delay Time (inside WFA Vendor Extension) O Una stima approssimativa in secondi del tempo necessario al dispositivo per applicare le modifiche Version2 (inside WFA Vendor Extension) C 0x20 = versione 2.0, 0x21 = versione 2.1, etc. Deve essere necessariamente incluso dalla versione 2.0 <other…> O Può contenere attributi multipli Authenticator R 2.3.1.9 Messaggio M8 Attributo R/O/C Descrizione Versione R Deprecato. Ha sempre valore 0x10 per garantire la compatibilità con gli standard precedenti. L’informazione aggiornata è contenuta nel campo Version2 Tipo Messaggio R Per il messaggio M8 il valore è 0x0c Enrollee Nonce R Contiene le impostazioni wireless criptate dell’Enrollee Impostazioni criptate Version2 (inside WFA Vendor Extension) C 0x20 = versione 2.0, 0x21 = versione 2.1, etc. Deve essere necessariamente incluso dalla versione 2.0 <other…> O Può contenere attributi multipli Authenticator R 29 Wi-Fi Protected Setup (WPS) 2.3.1.10 Messaggio WPS_ACK È trasmesso dall’Enrollee o dal Registrar quando ha elaborato con successo un messaggio ma non ha una frame da trasmettere in risposta. Attributo R/O/C Descrizione Versione R Deprecato. Ha sempre valore 0x10 per garantire la compatibilità con gli standard precedenti. L’informazione aggiornata è contenuta nel campo Version2 Tipo Messaggio R Per il messaggio WPS_ACK il valore è 0xD Enrollee Nonce R Registrar Nonce R Version2 (inside WFA Vendor Extension) <other…> C 0x20 = versione 2.0, 0x21 = versione 2.1, etc. Deve essere necessariamente incluso dalla versione 2.0 O Può contenere attributi multipli 2.3.1.11 Messaggio WPS_NACK È trasmesso dall’AP o dal Registrar quando si verifica un errore durante la fase di autenticazione. Attributo R/O/C Descrizione Versione R Deprecato. Ha sempre valore 0x10 per garantire la compatibilità con gli standard precedenti. L’informazione aggiornata è contenuta nel campo Version2 Tipo Messaggio R Per il messaggio WPS_NACK il valore è 0xE Enrollee Nonce R Registrar Nonce R Configuration Error Version2 (inside WFA Vendor Extension) C 0x20 = versione 2.0, 0x21 = versione 2.1, etc. Deve essere necessariamente incluso dalla versione 2.0 <other…> O Può contenere attributi multipli 30 Wi-Fi Protected Setup (WPS) 2.3.1.12 Messaggio WPS_Done È trasmesso dall’Enrollee dopo che questo ha processato con successo il messaggio M8 ed indica che l’Enrollee ha correttamente ricevuto le credenziali. Attributo R/O/C Descrizione Versione R Deprecato. Ha sempre valore 0x10 per garantire la compatibilità con gli standard precedenti. L’informazione aggiornata è contenuta nel campo Version2 Tipo Messaggio R Per il messaggio WPS_Done il valore è 0xF Enrollee Nonce R Registrar Nonce R Version2 (inside WFA Vendor Extension) <other…> C 0x20 = versione 2.0, 0x21 = versione 2.1, etc. Deve essere necessariamente incluso dalla versione 2.0 O Può contenere attributi multipli 2.4 Sicurezza In generale, possiamo affermare che la sicurezza di un sistema è pari a quella del suo componente più debole. Di conseguenza, l’effettiva sicurezza di una rete che utilizza lo standard WPS è pari a quella del metodo meno sicuro utilizzato per connettere il dispositivo alla rete stessa. In questo senso, WPS si dimostra uno standard più sicuro dei precedenti; WPS prevede due modalità di funzionamento: 1. nella configurazione in-band l’entità Enrollee fornisce al Registrar una chiave detta “device password”, utilizzata per compiere uno scambio di chiavi con il metodo Diffie-Hellman. La password può essere inserita manualmente, oppure tramite NFC. In quest’ultimo caso, è previsto che il Registrar nasconda la chiave pubblica Diffie-Hellman dell’Enrollee per proteggersi da eventuali attacchi; 2. nella modalità out-of-band le credenziali vengono trasmesse all’Enrollee attraverso un canale esterno alla rete. Tale comunicazione può essere opzionalmente criptata. Secondo l’ultima specifica, il canale out-of-band attualmente supportato è lo NFC. Vediamo nel dettaglio le due modalità. 31 Wi-Fi Protected Setup (WPS) 2.4.1 Configurazione in-band Questa configurazione è stata progettata per garantire un’elevata protezione contro attacchi di tipo forza bruta e tentativi di intercettazione. Tale protezione è garantita dal fatto che se un attaccante si finge un Enrollee interno alla rete, il Registrar si accorge che questo non è a conoscenza della password prima di esporre la stessa ad un attacco di tipo forza bruta. Comunque, qualora il Registrar esegua più volte il Protocollo di Registrazione con un attaccante usando lo stesso PIN, questo sarà in grado di risalire alla password della rete. Si è cercato di risolvere il problema facendo in modo che nel caso in cui durante la comunicazione si verifichi un errore, il Registrar debba allertare l’utente e non utilizzare più il PIN, ad esclusione del caso in cui la password sia composta da almeno 32 byte di casualità. Le regole per il riuso del PIN non vengono applicate al metodo PBC. Tutti i dispositivi che supportano WPS devono necessariamente fornire almeno una device password, unica e generata in modo casuale da ciascun dispositivo. Inoltre, all’interno di una stessa rete è consentito avere lo stesso PIN al massimo a due dispositivi. La specifica raccomanda di non assegnare un’unica password ad un gruppo di apparecchi, e di generarla in modo che non si basi sulle caratteristiche dei dispositivi (ad esempio, il MAC address). 32 Wi-Fi Protected Setup (WPS) 2.4.2 Configurazione out-of-band La configurazione out-of-band prevede tre modalità di funzionamento: unencrypted settings: le credenziali vengono trasmesse sul canale out-of-band; questa modalità presuppone che un utente controlli il canale, anche dopo che la procedura di registrazione sia stata completata. Uno dei vantaggi di tale metodo è dato dal fatto esso lavora bene con gli AP che non inoltrano al Registrar messaggi contenti chiavi pubbliche degli Enrollee. Lo svantaggio è che un utente che riesce ad accedere al canale out-of-band ottiene immediatamente delle valide credenziali. encrypted settings: utilizza una chiave generata a partire dalla chiave pubblica Diffie-Hellman dell’Enrollee per criptare le impostazioni per quello specifico Enrollee. Tuttavia, la specifica puntualizza che la codifica non protegge del tutto da attaccanti in ascolto sul canale. interfacce NFC operanti in modalità peer-to-peer: è la più sicura tra tutte le modalità, poiché prevede uno scambio di chiavi di 1536 bit con la procedura Diffie-Hellman tramite l’interfaccia NFC; le impostazioni sono codificate con una chiave AES a 128 bit. In questo modo, è impossibile perfezionare un attacco di tipo man-in-the-middle. 2.5 Setup iniziale della rete Il setup iniziale di una rete che supporta lo standard WPS può essere eseguito con due diverse modalità. Il primo caso prevede l’utilizzo di un AP indipendente, che sia anche in grado di svolgere la funzione di Registrar, senza utilizzarne uno esterno. Contrariamente, il secondo caso prevede che l’AP collabori con uno o più Registrar esterni, permettendo a questi di concedere credenziali agli Enrollee. La specifica dello standard stabilisce che un AP che supporti WPS debba necessariamente trasmettere in broadcast il suo nome identificativo (SSID, Service Set Identifier) all’interno delle beacon frame; nel caso in cui un utente disattivi l’invio in broadcast di tale informazione, automaticamente l’AP deve disabilitare l’utilizzo di WPS. 33 Wi-Fi Protected Setup (WPS) 2.5.1 AP indipendente La più semplice configurazione iniziale di una rete che supporta WPS è quella in cui si utilizza un AP indipendente. Quest’ultimo deve scegliere un SSID per la rete, preferibilmente casuale, ed un canale per le comunicazioni; di default dovrebbe essere attivato il protocollo WPA2, che utilizza una PSK (Pre-Shared Key) generata sempre in maniera randomica. Un AP indipendente deve svolgere anche il ruolo di Registrar della rete, concedendo alle entità Enrollee le credenziali generate grazie al Protocollo di Registrazione; inoltre, l’utente deve avere la possibilità di riportare tutte le impostazioni allo stato di fabbrica, attraverso una specifica opzione per il reset dell’Access Point. Nel caso in cui l’AP per svolgere le funzioni di Registrar utilizzi delle interfacce Web, la specifica raccomanda di: proteggere le pagine con il protocollo crittografico TLS (Transport Layer Security); non usare l’autenticazione base del protocollo HTTP; avere la possibilità di disabilitare l’interfaccia Web del Registrar integrato nell’AP per aggiungere Enrollee. Idealmente, il Registrar dovrebbe guidare l’utente nella configurazione della rete, anche attraverso messaggi che spieghino la causa di eventuali errori verificatisi. Questo risulta complicato nel caso di AP indipendenti che non sono dotati di un display, e ciò si riflette sulla sicurezza della rete poiché l’utente non è in grado di configurare la stessa in maniera ottimale senza appropriati feedback da parte del sistema. 34 Wi-Fi Protected Setup (WPS) 2.5.2 AP con un Registrar esterno Il protocollo WPS è stato progettato con il presupposto che l’utente fisicamente in possesso dell’AP durante il processo di settaggio possa essere l’unico autorizzato ad aggiungere dispositivi alla rete. Supponendo che le funzionalità relative alla sicurezza siano tutte attive, ciascun dispositivo membro deve essere dotato di credenziali, che possono essere fornite da uno o più Registrar esterni; inoltre, lo stesso Registrar esterno aiuta l’utente nel caso si verifichino errori e stabilisce una comunicazione con l’AP, controllandolo in modo da fargli accettare le credenziali associate a ciascun dispositivo. Un utente potrebbe voler utilizzare un Registrar esterno perché: ha una maggiore capacità di memorizzazione e mostra al display un resoconto degli eventi della procedura di setup; ha maggiori strumenti per la diagnostica di errori; supporta più canali out-of-band, facilitando la procedura con la quale vengono aggiunti dispositivi alla rete; è possibile effettuare operazioni su uno specifico utente, aggiungendo un ulteriore livello di controllo del processo. Lo standard WPS stabilisce che, per garantire la facilità d’uso, gli AP che implementano tale protocollo debbano supportare simultaneamente almeno tre Registrar esterni. Un AP indipendente può funzionare come tale anche se configurato per supportare alcuni Registrar esterni. Sono previste due modalità con le quali aggiungere un Registrar esterno alla rete: EAP-based: prevede lo scambio di numerosi messaggi e si basa sulla procedura di incapsulamento EAPOL (EAP over LANs); Ethernet-based: utilizza il protocollo UPnP (Universal Plag and Play). Vediamole nel dettaglio. 35 Wi-Fi Protected Setup (WPS) 2.5.2.1 EAP-based setup In figura 2.2 è riportata la sequenza di messaggi che, in questa procedura, le tre entità si scambiano. Il setup prevede le seguenti fasi: 1. l’AP trasmette una beacon frame contenente dei campi specifici che indicano il supporto dello standard WPS; 2. il Registrar invia sulla rete una WPS probe request che ha il campo Request Type impostato al valore “Registrar”; 3. l’AP risponde con una WPS probe response diretta al Registrar con il campo Response Type impostato ad “AP”; 4. l’utente ottiene una device password dall’AP tramite Web page, o leggendola da un display, e la utilizza per comunicare con il Registrar; 5. il Registrar esterno inizializza una connessione utilizzando lo standard 802.1X, usando un particolare nome come suo EAP-Response/Identity; 6. AP e Registrar si scambiano una serie di messaggi, seguendo il Protocollo di Registrazione; 36 Wi-Fi Protected Setup (WPS) 7. l’AP invia la frame EAP-Done, il Registrar risponde con una EAP-ACK per segnalare di aver ricevuto correttamente l’ultimo messaggio; la procedura di registrazione si conclude con la frame EAP-Failure; 8. AP e Registrar modificano la propria configurazione secondo le informazioni che si sono scambiati; Solitamente, la device password fornita dall’AP non è abbastanza robusta per resistere agli attacchi provenienti dalla rete; per questo è preferibile che l’utente modifichi la password di default con una segreta, conforme e più complessa. 2.5.2.2 Ethernet-based setup La procedura di setup basata su Ethernet, illustrata in figura 2.3, prevede un numero minore di passi rispetto a quella precedente; questi sono: 1. l’utente induce il Registrar a cercare gli AP disponibili usando il protocollo UPnP; 2. il Registrar invita l’AP ad inviargli il messaggio M1, utilizzando il metodo GetDeviceInfo; 3. l’utente ottiene una device password dall’AP, tramite un display o pagina Web, e la comunica al Registrar; 4. AP e Registrar si scambiano messaggi usando il metodo PutMessage; le impostazioni di configurazione vengono scambiate nei messaggi M7 ed M8. 37 Wi-Fi Protected Setup (WPS) 2.6 Aggiungere dispositivi membri alla rete Un dispositivo Enrollee che vuole accedere ad una rete deve innanzitutto verificare che esistano nelle vicinanze degli AP disponibili a stabilire una connessione: l’Enrollee può sia attendere di ricevere le beacon frame trasmesse dagli access point, sia trasmettere egli stesso delle probe request, configurando in maniera opportuna i campi WPS IE, ed aspettare delle probe response. Un Enrollee deve essere programmato per svolgere una sola sessione di configurazione per volta; nel caso in cui un Registrar tenti di configurare un Enrollee che è già impegnato in un’altra sessione, l’Enrollee deve trasmettere un messaggio NACK allo stesso Registrar, che sarà ignorato dal primo Registrar in quanto conterrà un valore di nonce da lui non riconosciuto. Inoltre, un AP che supporta WPS deve essere in grado di gestire un numero di chiavi pari a quello dei dispositivi a lui connessi; tuttavia, nella pratica comune è consentito ad un AP di utilizzare un’unica chiave WPA2 condivisa tra tutti i dispositivi. Vediamo, ora, quali sono i diversi modi per aggiungere un dispositivo alla rete. 38 Wi-Fi Protected Setup (WPS) 2.6.1 Setup in-band usando un Registrar/AP indipendente Il seguente scenario è valido per aggiungere un Enrollee ad un AP indipendente, oppure ad un Registrar esterno wireless. La procedura, illustrata in figura 24, prevede i seguenti steps: 1. l’Enrollee trasmette una probe request contenente i propri Discovery data ad un AP che supporta WPS; questo (o il Registrar) risponde con una probe response che contiene i suoi Discovery data; 2. all’utente viene richiesto di inserire la device password attraverso una tastiera o un canale out-of-band; 3. l’Enrollee si connette all’AP/Registrar e avvia il protocollo 802.1X; 4. Enrollee e Registrar si scambiano i messaggi M1-M8 per generare le credenziali; 5. l’Enrollee si dissocia e riconnette, usando le nuove credenziali. 2.6.2 Setup in-band usando un Registrar esterno Il setup usando un Registrar esterno prevede diversi casi: la procedura può utilizzare il metodo PIN oppure PBC; inoltre, essa può essere avviata sia per iniziativa del Registrar che dell’Enrollee. Sono analizzate, nel seguito, tutte le casistiche. 39 Wi-Fi Protected Setup (WPS) 2.6.2.1 Setup, con metodo PIN, avviato da un Registrar esterno 1. l’utente dopo aver attivato la configurazione basata sul metodo PIN, ottiene un PIN dal dispositivo, attraverso il display, che comunica al Registrar esterno; 2. il Registrar esterno comunica all’AP quando egli diventa attivo, trasmettendogli un messaggio in cui l’attributo Selected Registrar è settato al valore TRUE; 3. l’AP che riceve questo messaggio aggiorna al valore TRUE i flag relativi all’attributo Selected Registrar nelle proprie beacon frame e probe response; 4. l’Enrollee avvia il Protocollo di Registrazione basato sul metodo PIN e cerca un AP che supporti tale metodo di registrazione; 5. l’Enrollee si associa all’AP e trasmette il messaggio M1, che verrà inoltrato al Registrar esterno; 6. l’AP aggiorna l’attributo Selected Registrar in base allo stato ed ai messaggi ricevuti dal Registrar esterno. 40 Wi-Fi Protected Setup (WPS) 2.6.2.2 Setup, con metodo PBC, avviato da un Registrar esterno 1. l’utente attiva la configurazione PBC-based sul dispositivo che funziona da Registrar esterno; 2. il Registrar esterno comunica all’AP quando egli diventa attivo, trasmettendogli un messaggio in cui l’attributo Selected Registrar è settato al valore TRUE; 3. l’AP che riceve questo messaggio aggiorna al valore TRUE i flag relativi all’attributo Selected Registrar nelle proprie beacon frame e probe response; 4. l’Enrollee avvia il Protocollo di Registrazione basato sul metodo PBC e cerca un AP che supporti tale metodo di registrazione; 5. l’Enrollee si associa all’AP e trasmette il messaggio M1, che verrà inoltrato al Registrar esterno; 6. l’AP aggiorna l’attributo Selected Registrar in base allo stato ed ai messaggi ricevuti dal Registrar esterno. 41 Wi-Fi Protected Setup (WPS) 2.6.2.3 Setup, con metodo PIN, avviato dall’Enrollee 1. l’utente avvia la configurazione con metodo PIN sul dispositivo Enrollee; 2. l’Enrollee trasmette una probe request con le WPS IE; 3. l’AP inoltra la probe request al Registrar esterno; 4. il Registrar esterno ottiene informazioni sull’Enrollee; 5. l’utente seleziona un Enrollee dalla lista dei dispositivi ed inserisce il PIN dell’Enrollee nel Registrar esterno; 6. il Registrar esterno comunica all’AP quando egli diventa attivo, trasmettendogli un messaggio in cui l’attributo Selected Registrar è settato al valore TRUE; 7. l’AP che riceve questo messaggio aggiorna al valore TRUE i flag relativi all’attributo Selected Registrar nelle proprie beacon frame e probe response; 8. l’Enrollee avvia il Protocollo di Registrazione basato sul metodo PBC e cerca un AP che supporti tale metodo di registrazione; 9. l’Enrollee si associa all’AP e trasmette il messaggio M1, che verrà inoltrato al Registrar esterno; 10. l’AP aggiorna l’attributo Selected Registrar in base allo stato ed ai messaggi ricevuti dal Registrar esterno. 42 Wi-Fi Protected Setup (WPS) 2.6.2.4 Setup, con metodo PBC, avviato dall’Enrollee 1. l’utente avvia la configurazione con metodo PBC; 2. l’Enrollee trasmette una probe request con le WPS IE; 3. l’AP inoltra la probe request al Registrar esterno; 4. il Registrar esterno ottiene informazioni sull’Enrollee; 5. l’utente seleziona un Enrollee dalla lista dei dispositivi ed attiva le funzionalità PBC del Registrar esterno; 6. il Registrar esterno comunica all’AP quando egli diventa attivo, trasmettendogli un messaggio in cui l’attributo Selected Registrar è settato al valore TRUE; 7. l’AP che riceve questo messaggio aggiorna al valore TRUE i flag relativi all’attributo Selected Registrar nelle proprie beacon frame e probe response; 8. l’Enrollee avvia il Protocollo di Registrazione basato sul metodo PBC e cerca un AP che supporti tale metodo di registrazione; 9. l’Enrollee si associa all’AP e trasmette il messaggio M1, che verrà inoltrato al Registrar esterno; 10. l’AP aggiorna l’attributo Selected Registrar in base allo stato ed ai messaggi ricevuti dal Registrar esterno. 43 Wi-Fi Protected Setup (WPS) 2.6.3 Setup in-band usando Registrar esterni multipli Questo scenario, molto complesso e poco utilizzato, mostra la procedura di scoperta di Registrar multipli e la conseguente registrazione in-band con uno di essi. 1. l’Enrollee trasmette il proprio messaggio di scoperta usando una probe request; l’AP ritrasmette in broadcast il messaggio a tutti i Registrar esterni; 2. l’AP risponde con una probe response contenente i propri Discovery data; 3. l’Enrollee si connette all’AP e avvia il protocollo 802.1X; 4. l’Enrollee trasmette il messaggio M1, che verrà inoltrato a tutti i Registrar esterni; ciascuno di questi che è attivo, dovrebbe rispondere con il messaggio M2 o M2D; 5. i Registrar esterni trasmettono i messaggi M2D all’AP, che li accoda per consegnarli all’Enrollee; 44 Wi-Fi Protected Setup (WPS) 6. l’AP sequenzialmente consegna i messaggi M2D all’Enrollee, che risponde a ciascuno con un messaggio ACK; dopo l’ultimo messaggio M2D, l’AP trasmette il messaggio EAP-Failure per terminare la connessione 802.1X; 7. l’utente legge la device password dell’Enrollee e la inserisce nel Registrar-1; 8. il Registrar-1 comunica all’AP quando egli diventa attivo, trasmettendogli un messaggio in cui l’attributo Selected Registrar è settato al valore TRUE; 9. l’AP che riceve questo messaggio aggiorna al valore TRUE i flag relativi all’attributo Selected Registrar nelle proprie beacon frame e probe response; 10. l’Enrollee si riconnette e ripete l’autenticazione 802.1X; questa volta, il Registrar-1 trasmette il messaggio M2 invece di M2D; 11. il primo messaggio M2 trasmesso dal Registrar-1 all’Enrollee fissa il Registrar per la corrente esecuzione del protocollo; potenzialmente, gli altri messaggi M2 ed M2D del Registrar-2 potrebbero anche non essere trasmessi all’Enrollee; 12. Enrollee e Registrar eseguono il Protocollo di Registrazione fino a quando l’Enrollee riceverà le proprie credenziali; 2.7 Vulnerabilità Il ricercatore Stefan Viehböck ha annunciato nel 2011 di aver progettato e realizzato un attacco forza bruta contro una rete WPS [9] che utilizza il metodo di accesso PIN-based, riuscendo a scoprire la chiave e ad accedere senza alcuna autorizzazione alla rete stessa. In figura 2.10 è illustrata la struttura di un codice PIN: è composto di otto cifre, delle quali l’ultima è calcolata come checksum delle precedenti; notiamo che, in realtà, le cifre sconosciute sono soltanto sette. Un attacco di tipo brute-force può essere condotto con successo poiché è possibile ricavare informazioni sulla correttezza di parte del PIN inserito dalle risposte dell’AP. 45 Wi-Fi Protected Setup (WPS) Infatti: se un attaccante riceve il messaggio WPS_NACK dopo aver trasmesso il messaggio M4, allora comprende che la prima parte del PIN è sbagliata; se un attaccante riceve il messaggio WPS_NACK dopo aver trasmesso il messaggio M6, allora comprende che la seconda parte del PIN è sbagliata; Questo meccanismo fa drasticamente diminuire il numero di tentativi necessari ad un attacco forza bruta per scoprire il codice d’accesso alla rete. Infatti, poiché il PIN è ( composto da otto cifre, sarebbero necessari ) tentativi; tuttavia, a causa della suddivisione del codice in due parti, sono sufficienti ( ) tentativi, e, ricordando che l’ultima cifra può essere calcolata con degli algoritmi, allora il numero di tentativi è, in realtà pari a ( ). In figura 2.11 è illustrata la metodologia con la quale viene condotto un attacco brute-force. 46 Wi-Fi Protected Setup (WPS) Uno strumento proof-of-concept che simuli un attacco forza bruta è stato implementato in Pyton, ed è utilizzato su numerosi routers. Un output di esempio è riportato in figura 2.12. Ovviamente, sono state progettate diverse soluzioni al problema: una delle più utilizzate prevede di bloccare per un tempo sufficientemente lungo un utente ogni volta che falliscono un certo numero di tentativi consecutivi di autenticazione, così da aumentare di molto la durata dell’attacco, che diventa inutilizzabile. In alternativa, è possibile risolvere il problema disattivando lo standard WPS. Per evitare di dover fare ciò è stato proposto il metodo Visual Device Pairing Security (ViDPSec) [10], analizzato nel prossimo paragrafo. 47 Wi-Fi Protected Setup (WPS) 2.7.1 Visual Device Pairing Security (ViDPSec) Il metodo ViDPSec si propone come una soluzione alle problematiche di vulnerabilità di WPS. Esso è un protocollo user-based che prevede la supervisione di un utente per stabilire una Session Symmetric Key (SSK). Tutti i dati scambiati tra i dispositivi vengono cifrati grazie a quest’unica chiave. Per realizzare una SSK può essere utilizzato un qualsiasi algoritmo simmetrico, come, ad esempio, AES. Il metodo impone l’installazione di un display a LED ed un pulsante per la verifica della SUM, necessari durante la fase di ViDPSec handshake, che prevede l’utilizzo di un PIN dinamico e riscontri dell’utente. Il PIN dinamico viene mostrato sul display, insieme alla somma percepita dal lato AP. Il metodo WPS che prevede l’accesso alla rete tramite PIN con un Registrar esterno è stato così modificato: 1. numero casuale sul dispositivo: l’Enrollee genera un numero di quattro cifre, mostrato sul display; inoltre, calcola la sua firma 2. PIN dinamico dell’AP: in base al valore e la trasmette all’AP; , viene generato un PIN dinamico (che non varia per tutta la sessione) di quattro cifre, mostrato al display; viene calcolato il valore e trasmesso al Registrar; 3. scambio di chiavi pubbliche: Enrollee e AP si scambiano le Chiave Pubbliche per la sessione corrente ( e rispettivamente); 4. scambio SSK: l’AP trasmette la SSK all’Enrollee, criptato con la Chiave Pubblica dell’Enrollee (SSK * ); 5. verifica della somma: la somma viene calcolata su entrambi i terminali e mostrata sul display dell’AP e dell’utente; quest’ultimo deve soltanto controllare che i valori delle somme coincidano; 6. configurazione della WLAN: le impostazioni della WLAN vengono scambiate sul canale sicuro precedentemente stabilito, criptato con la SSK. 48 Wi-Fi Protected Setup (WPS) Conclusioni In questa tesi sono state messe in evidenza le principali caratteristiche del protocollo WPS. Abbiamo visto come questo renda davvero più semplice effettuare una corretta configurazione delle impostazioni di sicurezza di una rete wireless, a favore soprattutto degli utenti meno esperti. In tal senso, l’introduzione delle IE è stata di fondamentale importanza, in quanto esse permettono alle stazioni WPS che eseguono il Protocollo di Registrazione di “riconoscersi” e di poter utilizzare tutte le funzionalità introdotte dallo standard. Inoltre, viene molto semplificata anche la procedura con la quale possono essere aggiunti dispositivi ad una rete; infatti, può essere sufficiente premere un pulsante presente sugli apparecchi per stabilire una comunicazione sicura tra questi. Tuttavia, si è mostrato anche che WPS non è completamente affidabile, soprattutto quando sfrutta il metodo PIN; quindi, sono state illustrate le possibili soluzioni al problema. Nonostante, per quanto detto pocanzi, parte degli utenti manifesti scetticismo sull’utilizzo del protocollo, WPS continua a diventare sempre più utilizzato dai produttori di dispositivi in grado di supportare la tecnologia wireless. 49 Bibliografia [1] S. Avallone, “Protocolli per reti mobili”, 2013 [2] IEEE Standard for Information Technology – Telecommunications and Information Exchange Between Systems – Local and Metropolitan Area Network – Specific Requirements – Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications, “IEEE Std 802.11-1997”, 1997 [3] IEEE, “History of IEEE”, http://www.ieee.org/about/ieee_history.html [4] IEEE Standard for Information Technology – Telecommunications and Information Exchange Between Systems – Local and Metropolitan Area Network – Specific Requirements – Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications, “IEEE Std 802.11-2007”, 2007 [5] IEEE Standard for Information Technology – Telecommunications and Information Exchange Between Systems – Local and Metropolitan Area Network – Specific Requirements – Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications, “IEEE Std 802.11-2012”, 2012 [6] Wi-Fi Alliance, “Who We Are”, http://www.wi-fi.org/who-we-are 50 [7] ISO/IEC International Standard - Information Technology Telecommunications and Information Exchange Between Systems – Local and Metropolitan Area Network – Specific Requirements – Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Medium Access Control (MAC) Security Enhancements, “ISO/IEC 8802-11, Second Edition: 2005/Amendment 6 2006: IEEE STD 802.11i-2004 (Amendment to IEEE Std 802.11-1999)”, 2004 [8] Wi-Fi Alliance, “Wi-Fi Simple Configuration Technical Specification”, 2011 [9] S. Viehböck, “Brute forcing Wi-Fi Protected Setup”, 2011 [10] D. Zisiadis, S. Kopsidas, A. Varalis, L. Tassiulas, “Enhancing WPS Security”, 2012 51
© Copyright 2024 ExpyDoc