Wi-Fi Protected Setup (WPS)

Transcript

Wi-Fi Protected Setup (WPS)
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