WIRELESS SECURITY
DI ULTIMA GENERAZIONE
Politecnico di Milano Polo Regionale di Como
Fondamenti di Crittografia
Anno Accademico 2004 - 2005
Autore:
Aldo Puglisi 674641 [email: [email protected]]
Docenti:
Prof. Luca Breveglieri
Prof.ssa Alessandra Cherubini
Indice Generale
Introduzione ........................................................................................................................... 4
1.0 Principi Fondamentali ................................................................................................ 5
1.1 Lo standard IEEE 802.11 ...................................................................................... 6
1.1.1 Cosa rende lo standard differente? ..................................................... 6
1.1.2 802.11b............................................................................................................... 7
1.1.3 802.11g............................................................................................................. 10
1.1.4 802.11a............................................................................................................. 13
1.2 Funzionalità e componenti di rete ................................................................. 17
1.2.2 Tipologie di Reti Wireless ....................................................................... 17
1.2.2 Access Point ................................................................................................... 18
1.3 Wireless security .................................................................................................... 21
1.3.1 Wireless versus Wired ................................................................................. 21
1.3.2 Cosa deve essere protetto?....................................................................... 21
1.3.3 Requisiti di sicurezza.................................................................................... 22
2.0 Opzioni di Sicurezza.................................................................................................. 25
2.1 Wired Equivalent Privacy (WEP)................................................................. 26
2.1.1 Debolezze di WEP........................................................................................ 28
2.2 802.11i...................................................................................................................... 30
2.2.1 TKIP.................................................................................................................... 31
2.2.2 Framework – 802.1X ................................................................................. 35
2.2.3 Authentication Framework - EAP........................................................ 36
2.2.4 EAP Authentication Methods ................................................................. 37
2.3 Wi-Fi Protected Access (WPA) ..................................................................... 39
2.3.1 Benefici di WPA ............................................................................................ 39
2.3.2 WPA Deployment Issues ......................................................................... 39
3.0 Advanced Encryption Standard ....................................................................... 40
3.1 Convenzioni............................................................................................................ 41
3.2 Operazioni su campi finiti............................................................................... 43
3.3 Descrizione dell’algoritmo.............................................................................. 48
3.4 Key Schedule ......................................................................................................... 54
3.6 Implementazione software efficiente ...................................................... 56
4.0 Protocolli Wireless basati su AES................................................................... 60
4.1 AES encapsulation data ................................................................................... 61
4.1.1 Modes of operation..................................................................................... 61
4.1.2 802.11 Encapsulations based on AES............................................... 66
4.2 Confronto tra Encapsulations data................................................................ 72
4.2.1 Data Authenticity............................................................................................ 72
4.2.2 Packet sequence space size...................................................................... 72
4.2.3 MSDU vs. MPDU ............................................................................................... 73
4.2.4 Performance...................................................................................................... 73
4.2.5 La Situazione dei Brevetti .......................................................................... 73
4.3 Wi-Fi Protected Access 2.................................................................................... 74
5.0 Conclusioni e sviluppi futuri ................................................................................. 76
6.0 Riferimenti ..................................................................................................................... 78
Appendice: Acronimi e abbreviazioni....................................................................... 80
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 2 di 82
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 3 di 82
Introduzione
Negli ultimi anni l’uso dei dispositivi wireless in ambito aziendale e domestico è
diventato sempre più comune, infatti, la possibilità di condividere files o connessioni
Internet tra computer senza l’uso di scomodi cavi, è stata determinante nel favorire
l’ascesa di soluzioni tecnologiche basate sulle onde radio.
La strada che ha portato allo sviluppo di reti non è stata priva di problemi, in
particolare si è avvertita l’esigenza di garantire sicurezza e confidenzialità a dati che
viaggiano su un mezzo trasmissivo, l’aria, che per sua natura non è confinabile.
L’istituto IEEE e la Wireless Alliance nell’elaborazione dello standard attualmente in
uso, IEEE 802.11, hanno deciso di considerare alcuni aspetti critici delle comunicazioni
senza fili, focalizzando la loro attenzione su:
- Autenticazione
- Integrità dei Dati
- Confidenzialità
Attualmente sul mercato sono presenti diverse soluzioni atte a garantire sicurezza
nelle reti wireless, prime fra tutte quelle basate su algoritmi con bassi costi
computazionali, per cercare di limitare il consumo di risorse di periferiche che spesso e
volentieri sono installate su dispositivi mobili e quindi alimentati a batteria.
Lo scopo di questo documento è quello di analizzare i protocolli di sicurezza wireless,
focalizzando l’attenzione su le nuove implementazioni basate su Advanced Encryption
Standard (AES).
Nel primo Capitolo verrà presentata una panoramica della situazione attuale
nell’ambiente wireless, analizzando lo standard IEEE 802.11, e le sue diverse
estensioni, ovvero 802.11b, 802.11g e 802.11a. Lo scopo del Capitolo non è dare una
descrizione esaustiva dei concetti, ma solo di fornire il background specifico al
contesto wireless.
Nel secondo Capitolo verranno presentate le opzioni di sicurezza attualmente
disponibili per garantire sicurezza nelle WLAN, in particolare verrà analizzato il
protocollo WEP e lo standard 802.11i. Lo scopo del capitolo è quello di presentare la
nuova specifica 802.11i e tutte le sue componenti.
Nel terzo Capitolo verrà analizzato l’algoritmo Rijndael, noto come Advanced
Encrytpion Standard [1]. L’esposizione partirà dagli aspetti algebrici necessari per
comprendere l’algoritmo, proseguirà con la descrizione dei passaggi compiuti ad ogni
iterazione dell’algoritmo [2]. Il capitolo si concluderà con la descrizione di una
implementazione software efficiente di Rijndael [4].
Nel quarto Capitolo verranno analizzati i modes of operation di AES. In particolare
verranno analizzati i protocolli AES-OCB ed AES-CCM, che permettono di impiegare la
cifratura AES sui i frames 802.11.
Infine, nell’ultimo Capitolo concluderemo l’approfondimento con le considerazioni e gli
sviluppi futuri.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 4 di 82
1.0 Principi Fondamentali
In questo capitolo analizzeremo brevemente i concetti che stanno alla base del
contesto wireless, focalizzando l’attenzione sulla specifica IEEE 802.11, nelle sue
diverse estensioni e sui componenti di rete necessari per implementare una rete senza
fili.
Come precedentemente sottolineato, lo scopo del capitolo non è quella di dare una
descrizione esaustiva delle caratteristiche dello standard, ma è quello di fornire gli
elementi necessari per comprendere a fondo il contesto in cui i protocolli di sicurezza
vengono impiegati.
In seguito analizzeremo i requisiti di sicurezza delle reti WLAN, delineando le
differenze tra ambienti wired e wireless, e descrivendo i principali attacchi che
possono essere sferrati.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 5 di 82
1.1 Lo standard IEEE 802.11
Il primo tentativo di sviluppare una rete commerciale Wireless LAN è stato presentato
da Motorola nell’anno 1990, ma la soluzione presentava numerose problematiche:
interferenze, un basso data rate, frequenze radio proprietarie e costi molto alti.
Nello stesso anno l’IEEE (Institute of Electrical and Electronics Engineers) iniziava un
progetto di standardizzazione con lo scopo di creare una specifica per reti senza fili.
La fase di progettazione si concluse nel 1997, quando IEEE creò il primo standard per
WLAN, chiamato IEEE 802.11, dal nome del gruppo designato al suo sviluppo, il quale
definiva un Medium Access Control (MAC) e tre Physical Layer (PHY) per connessioni
wireless (Infrared, Frequency Hoping Spread Spectrum Radio e Direct Sequence
Spread Spectrum Radio). Lo schema sottostante descrive i livelli fisici definiti per
802.11.
Data Link Layer
PHY Layer
Medium Access Control
FHSS
DSSS
IR
Benché lo standard abbia segnato una svolta nel campo wireless, esso supportava un
data rate massimo di 2 Mbps, troppo poco per molte applicazioni. Per cercare di
risolvere questo problema, in seguito furono aggiunte delle estensioni con lo scopo di
supportare data rates più alti: 802.11b, 802.11a e 802.11g.
In seguito analizzeremo le principali caratteristiche delle estensioni di 802.11, con
riferimento alle tecnologie chiave che maggiormente influenzano le differenti tra le
diverse specifiche.
1.1.1 Cosa rende lo standard differente?
Per mantenere la compatibilità tra i dispositivi e cercare di massimizzare il riuso delle
tecnologie, le modifiche, con ciascuna delle nuove estensioni, sono state apportate
principalmente agli strati fisici (PHY) della specifica 802.11.
Dunque, alti trasmission rates sono stati accompagnati dall’utilizzo di efficienti
tecnologie di trasmissione, e dall’uso di efficienti tecniche di signal encoding.
La Tabella 1.1 mostra le tecnologie di encoding e trasmissione utilizzate ad ogni
trasmission rates delle diverse estensioni di 802.11. In particolare, le tecniche di
modulazione introdotte nei diversi standard sono sostanzialmente tre: CCK, PBCC
OFDM. Nelle sezioni successive verranno presentati ulteriori dettagli e verrà spiegato
come queste modifiche influiscano positivamente sulle diverse specifiche.
Rate
(Mbps)
Encoding
802.11b
Obbligatorio
1
DBPSK
2
DQPSK
5.5
DBPSK
6
BPSK
9
BPSK
BarkerDSSS
BarkerDSSS
CCK DSSS
Opzionale
PBCC
802.11g
Obbligatorio
BarkerDSSS
BarkerDSSS
CCK DSSS
OFDM
Opzionale
802.11a
Obbligatorio
Opzionale
PBCC
CCKOFDM
OFDM,
OFDM
OFDM
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 6 di 82
CCKOFDM
11
DQPSK
12
QPSK
18
QPSK
22
8PSK
24
16 QAM
33
8PSK
36
16 QAM
48
64 QAM
54
64 QAM
CCK DSSS
PBCC
CCK DSSS
OFDM
OFDM
PBCC
CCKOFDM
OFDM,
CCKOFDM
PBCC
CCKOFDM
PBCC
OFDM,
CCKOFDM
OFDM,
CCKOFDM
OFDM,
CCKOFDM
OFDM
OFDM
OFDM
OFDM
OFDM
OFDM
Tabella 1.1 – Tecniche di encoding e modulazione degli standard 802.11
1.1.2 802.11b
Nel 1999 un gruppo di lavoro dell’IEEE ha presentato lo standard 802.11b, una
evoluzione di 802.11, in modo particolare una estensione High Rate del livello fisico
DSSS dalle velocità 1 o 2Mbps alle 5.5 o 11Mbps nel nuovo standard.
L’obbiettivo principale era quello di avvicinare la velocità di trasmissione a quella via
cavo mantenendo la compatibilità con la tecnologia wireless già esistente.
Sostanzialmente si dovevano mantenere la stessa banda (80MHz) a 2.4GHz, la stessa
occupazione spettrale e lo stesso formato del frame DSSS.
•
•
Vantaggi di 802.11b – costi bassi; raggio d’azione ampio e difficilmente
ostacolato.
Svantaggi di 802.11b – velocità massima relativamente bassa; supporta pochi
utenti simultanei; altre apparecchiature possono provocare interferenze.
La Tabella 1.2 le principali caratteristiche dello standard, che verranno approfondite
nei paragrafi seguenti.
Caratteristica
Radio Technology
(Bandwidth Utilization Mode)
Modulation
Noise Sensing Technology
Media Access Method
Frequency Band
Supported Rates
Channels
Descrizione
Obbligatorio: DSSS, FHSS, IR
Obbligatorio CCK (Complementary Code Keying)
Opzionale PBCC (Packet Binary Convolutional
Code)
Clear Channel Assessment (CCA) capability
Carrier Sense Multiple Access with Collision
Avoidance (CSMA/CA)
2400 ~ 2483.5 MHz per U.S., Canada, e ETSI
2400 ~ 2497MHz per Giappone
1, 2, 5.5 e 11 Mbps
1-11 U.S., Canada
1-13 ETSI
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 7 di 82
1-14 Giappone
10-11 Spagna
10-13 - Francia
Indoors: 75-100 ft.
Outdoors: ~ 1,000 ft.
Range
Tabella 1.2 – Caratteristiche base di 802.11b
1.1.2.1
Tecniche di modulazione
Per aumentare la velocità di trasmissione è stato introdotto un tipo diverso di
modulazione chiamata CCK (Complementary Code Keying) che, al posto della
sequenza di 11 chip (Barker chipping code) utilizzata nel DSSS, si serve di una
sequenza di 8 chip con un chipping rata di 11Mchip/s. La codifica CCK a 11Mbit/s non
usa una sequenza pseudo noise (PN) statica, bensì calcola una differente sequenza di
spreading basandosi sui dati da trasmettere. I dati vengono suddivisi in simboli di 8
bit sui quali vengono generate le sequenze PN su 8 chip, ogni chip viene poi mappato
su una costellazione DQPSK ed infine trasmesso.
Lo standard 802.11b definisce anche un'altra tecnica di modulazione, conosciuta come
Packet Binary Convolutional Coding (PBCC), proposto da Texas Instruments e
largamente sponsorizzata, ma infine definita come opzionale.
1.1.2.2
Canali
Lo standard 802.11b lavora attorno ad una banda di 2.4 GHz ISM (Industrial Scientific
e Medical). Gli 80 MHz disponibili sono suddivisi in 14 canali. Domini Regolatori
governano i canali utilizzati nei differenti paesi per le comunicazioni 802.11b.
La Tabella 1.3 riassume i canali consentiti per ogni dominio regolatore.
Dominio Regolatore
U.S. (FCC)/Canada (IC)
Europa (ETSI) eccetto Francia e Spagna
Francia
Spagna
Giappone (MKK)
Canali Consentiti
1-11 in 2.412 - 2.462 GHz
1-13 in 2.412 - 2.472 GHz
10-13 in 2.457 - 2.472 GHz
10-11 in 2.457 2.462
14 in 2.484 GHz
Tabella 1.3 – Canali dei domini regolatori
Canali adiacenti sono separati da soli 5 MHz e la maggior parte dell’energia di ogni
canale misura, come da progetto, una banda di 22 MHz. Questo significa che esistono
delle interferenze tra i canali. La Figura 2.1 mostra che questa allocazione dei canali
permette di avere solo tre canali non sovrapposti. Ad esempio per gli Stati Uniti questi
canali non sovrapposti sono 1, 6 e 11. Per l’Europa, causa i canali aggiuntivi (12 e
13), 1, 7 e 13 sono le locazioni migliori per i canali non sovrapposti.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 8 di 82
Figura 1.1 – Locazioni canali USA
La Figura 4.2 mostra le locazioni migliori per i canali non sovrapposti in Europa.
Figura 1.2 – Locazioni canali Europa
1.1.2.3
Trasmission Rates
802.11b aggiunge due nuovi rates operativi alla specifica originale 802.11, 5.5 Mbps e
11 Mbps. Come precedentemente citato, alti trasmission rates sono ottenuti
utilizzando la tecnologia di trasmissione Height Rate DSSS (HR/DS) e la modulazione
CCK. La specifica supporta inoltre il dynamic rate switching con l’obiettivo di
migliorare le prestazioni. L’algoritmo per l’implementazione del rate switching è al di
fuori dello scopo dello standard, ma in generale l’idea di base è che quando il segnale
degrada o a causa della lunga distanza tra client wireless e Access Point (AP) o a
causa di rumore, il trasmission rate decade, ma i dispositivi continuano a comunicare.
A livello fisico, lunghe onde viaggeranno ulteriori distanze, e per questo motivo il
decadimento del segnale permette all’ AP di comunicare con il client wireless anche se
questo si sta allontanando.
Per assicurare coesistenza ed interoperabilità fra i produttori differenti, lo standard
definisce un insieme delle regole che devono essere seguite da tutte le stazioni mobili.
I trasmission rates possono anche essere selezionati come aspetto della scelta. Per
esempio è possibile programmare la maggior parte del AP per negoziare soltanto
determinati trasmission rates con i client. Le ragioni che spingono a controllare i rates
includono il controllo del range di funzionamento degli AP o per permettere che
soltanto determinati data rates accertino il livello specifico di qualità.
La Tabella 1.4 mostra un approssimazione delle velocità di trasmissione in funzione
della distanza supportate dallo standard 802.11b.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 9 di 82
Rate
Max Range
1 Mbps
350 ft.
2 Mbps
250 ft.
5.5 Mbps
180 ft.
11 Mbps
150 ft.
Tabella 1.4 – Rate vs Range Approssimato
1.1.2.4
Range
Il range 802.11b è fortemente influenzato dall’ambiente circostante.
In ambienti chiusi, dove i segnali RF trasmessi dall’AP viaggiano attraverso ostacoli o
rimbalzano sugli stessi, la ricezione da parte del client wireless è più bassa che in
ambienti aperti. Per ovviare il problema, è possibile installare repeater per rigenerare
il segnale ed aumentare il range d’azione dell’AP.
La Tabella 1.5 mostra tipici valori per tre diversi ambienti, ambienti aperti, uffici ed
ambiente domestico. Si noti che i valori massimi specificati possono essere raggiunti
soltanto al basso data rate di 1 Mbps. La tabella mostra inoltre che distanza può
essere raggiunta alla velocità di 11 Mbps.
Environment/Setting
Maximum Range at
1 Mbps
Maximum Range at 11
Mbps
Ambiente aperto
750-1,000 ft
150-350 ft
Ufficio
250-350 ft
100-150 ft
Ambiente domestico
125-200 ft
60-80 ft
Tabella 1.5 – Range massimi dei diversi ambienti
1.1.3 802.11g
IEEE ha approvato lo standard 802.11g nel 2001.
802.11g lavora nella stessa banda di 802.11b, 2.4 GHz. Alti rates sono, ancora una
volta, ottenuti effettuando modifiche allo strato PHY (chiamato Extendend Rate Phy –
ERP) della specifica iniziale 802.11. Le modifiche più importanti sono quelle apportate
alle tecnologie di trasmissione ed alla tecniche di encoding adottate.
Per un migliore utilizzo della banda a disposizione, 802.11g usa Orthogonal Frequency
Division Multiplexing (OFDM) come tecnica di modulazione, ed aggiunge ulteriori
encoding modes (BSK3, QPSK, QPSK1, CCK, 16 QAM, 64 QAM).
Con OFDM il messaggio da trasmettere, ad alta velocità, viene suddiviso in diversi
sottosegnali a bassa velocità, trasmessi in parallelo tra loro (vengono trasmessi e
sono ricevuti in modo simultaneo) e a diverse frequenze. Ogni sottoportante è
ortogonale all’altra, in questo modo possono tutte essere ricevute senza interferenze
reciproche.
Per garantire compatibilità con 802.11b include un protocollo di handshake, che
permette alle stazioni 802.11b di determinare quando altre unità stanno per
trasmettere i pacchetti usando 802.11g a più alti data rates. Ulteriori informazioni
riguardo l’interoperabilità verranno fornite nella prossima sezione.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 10 di 82
•
•
Vantaggi di 802.11g – velocità massima abbastanza alta; supporta molti utenti
simultanei; raggio d’azione più ampio e difficilmente ostacolato; possibilità di
implementare reti WLAN multimodo.
Svantaggi di 802.11g – costi più alti dell’802.11b; altre apparecchiature
possono provocare interferenze.
La Tabella 1.6 mostra le principali caratteristiche dello standard 802.11g.
Caratteristica
Descrizione
Radio Technology
(Bandwidth Utilization Mode)
Obbligatorio - DSSS, FHSS, IR
Obbligatorio
Noise Sensing Technology
CCK per garantire compatibilità 802.11b
OFDM per alti data rates
Opzionale
PBCC (Packet Binary Convolutional Code)
Clear Channel Assessment (CCA) capability
Media Access Method
Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA)
Modulation
Banda
Supported Rates
Canali
Range
2400 ~ 2483.5 MHz per USA, Canada, e ETSI 2400 ~ 2497MHz per
Giappone
Obbligatorio 1, 2, 5.5, 11, 12, 24 Mbps
Opzionale 9, 18, 22, 33, 36, 48, 54 Mbps
1-11 USA, Canada
1-13 ETSI
1-14 Giappone
10-11 Spagna
10-13 - Francia
Indoors: 75-100 ft.
Outdoors: ~ 1,000 ft.
Tabella 1.6 – Caratteristiche base di 802.11g
1.1.3.1
Trasmission Rates
802.11g è stato costruito sulla base dei quattro trasmission rate di 802.11b (1, 2 5.5
e 11) aggiungendo altri dieci nuovi rates. Dei quattordici rates totali, solo sette sono
obbligatori (1, 2, 5.5, 11, 6, 12 e 24 Mbps), gli altri sette sono opzionali. Dei sette
rates opzionali, due, 22 e 33, usano la modulazione PBCC. Normalmente, la maggior
parte dei dispositivi supportano tutti i rates opzionali tranne quelli basati su PBCC. La
ragione è da ricercare soprattutto in decisioni di business, orientate al taglio dei costi,
da parte dei costruttori di periferiche wireless.
1.1.3.2
Coesistenza di 802.11b e 802.11g
Una delle caratteristiche di 802.11g è relativa al supporto di rates superiori rispetto a
802.11b (fino a 54 Mbps).
Un’ulteriore caratteristica di 802.11g è quella di essere retro-compatibile con i
dispositivi 802.11b. Sfortunatamente, questa retro-compatibilità ha il suo prezzo,
infatti per raggiungere elevati trasmission rates, 802.11g ricorre all’uso di OFDM (ed
opzionalmente PBCC) combinato con una serie di schemi di encoding dipendenti dal
rates. In altre parole, ciò significa che i dispositivi 802.11g, mentre comunicano nella
stessa banda di 802.11b, ovvero 2.4 GHz, comunicano in una “lingua” o in un “modo”
che i dispositivi 802.11b non capiscono. Quindi, i dispositivi 802.11b, non potendo
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 11 di 82
capire la comunicazione 802.11g, non possono partecipare al handshaking richiesto
per permettere a più stazioni comunicare allo stesso tempo.
Allora, com’è possibile per un AP 802.11g mantenere simultaneamente la
comunicazione con entrambi tipi di clients 802.11b e 802.11g, senza che questi si
disturbino a vicenda?
La risposta si trova nell’uso di un protocollo di handshake che definito per con lo
standard 802.11b, il protocollo RTS/CTS handshake (Request to Send / Clear to
Send). Questo handshake è stato sviluppato affinché le stazioni lo usino a loro
discrezione quando rilevano un degrado della comunicazione o il mezzo è
sovraffollato. Piuttosto che richiedere la ritrasmissione dei pacchetti non ricevuti, la
stazione (STA) può ripulire il canale di trasmissione inviando un messaggio RTS all’
Access Point. Se l’AP determina che la STA può trasmettere, invia un messaggio CTS
broadcast alla stazione richiedente. Entrambi i messaggi RTS e CTS contengono
informazioni riguardo il tempo che il client necessita per trasportare il pacchetto in
questione. Tutti i clienti che ricevono il CTS assegnano il canale alla STA richiedente,
assicurando di non trasmettere durante il periodo di tempo richiesto.
Le stazioni 802.11b sono in grado di capire le richieste RTS/CTS della unit 802.11g
perchè questi messaggi sono inviati utilizzando uno schema di modulazione utilizzato
nella specifica 802.11b, ovvero CCK. Una volta che una STA 802.11g ha ricevuto il
canale, può commutare di nuovo ad OFDM se necessario. Questa interoperabilità
genera un overhead tale da diminuire il throughtput del 50% circa.
Per cercare di limitare gli effetti negativi del protocollo RTS/CTS è stato allora
specificato un secondo metodo per riservare il canale. Questo metodo è chiamato
CTS-to-Self e consiste nell’invio di un messaggio CTS soltanto, saltando l’invio del
messaggio RTS. Tutte le stazioni che “sentono” questo messaggio si asterranno dal
trasmettere, ripulendo il canale. Questo metodo di prenotazione del canale riduce
l’overhead, aumentando il throughtput.
1.1.3.3
Canali
802.11g funziona allo stessa banda di 802.11b, 2.4 GHz, e supporta lo stesso numero
di canali, 14. Come tale, 802.11g ha le stesse limitazioni di 802.11b, ovvero ha
soltanto tre canali non sovrapposti. I canali 1, 2 , 5.5 e 11 sono implementati come
nella specifica 802.11b, ovvero con la stessa tecnologia di trasmissione e
modulazione. I canali 6, 9, 12, 18, 22, 24, 36, 48 e 54 sono implementati utilizzando
OFDM e più efficienti tecniche di encoding. A causa dei vantaggi che ha OFDM rispetto
DSSS, questi rates possono essere raggiunti a distanze che sono comparabili con
alcuni dei rates più bassi di 802.11b. Per esempio, i 6 Mbps in 802.11g possono
essere supportati a distanze superiori che i 2 Mbps in 802.11b.
1.1.3.4
Range
Ci sono diversi fattori che influenzano il range di comunicazione tra dispositivi
wireless. Alcuni di questi fattori includono l’ostruzione del segnale da parte degli
oggetti posti nell’ambiente, rumori in RF, distanza tra AP e client mobile, tasso di
trasmissione, tecnologia di trasmissione, radio-input sensitivity e potenza di
trasmissione. La maggior parte della letteratura tende ad elencare soltanto una o due
range. Questi range generalmente si riferiscono alla distanza massima, indoor e
outdoors, in cui l’AP è in grado di comunicare con il dispositivo mobile usando il più
basso rate che esso supportati. Sul mercato è possibile trovare dispositivi che
specificano range massimi di 600 ft. outdoors ed altri che dicono 1000 ft. Ci si può
dunque domandare, qual è il range specificato da 802.11?
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 12 di 82
Lo standard non specifica esattamente la distanza massima per ogni rate supportato.
Invece, esso specifica piuttosto la sensibilità del ricevitore e la massima potenza di
trasmissione. Inoltre, quando specifica la massima potenza di trasmissione, lo
standard 802.11 dice che i dispositivi wireless devono aderire ai requisiti specificati
dalle istituzioni regolatrici competenti nei loro rispettivi domini regolatori.
Questo significa che non esiste una distanza precisa in cui la comunicazione si arresta
o si ha una commutazione di rate. La distanza è influenzata dalla maturità della
tecnologia (i dispositivi di prima generazione tendono ad arrivare a distanze minori),
dell’ambiente, dalle condizioni imposte dagli enti competenti, ed in alcuni casi dalle
modifiche apportate allo standard da parte delle aziende. Una componente che ha
contribuito a migliorare le distanze, in attesa che la tecnologia maturasse, è stata la
sensibilità del ricevente. La sensibilità del ricevente può significare che la differenza
tra 600 e 1000ft varia come annunciato da alcuni prodotti. La tabella 1.7 mostra i
rates supportati da 802.11g vs un approssimato massimo range indoor. Le righe in
grigio mostrano i i rates originali supportati da 802.11b e le righe bianche i nuovi
rates aggiunti nella specifica 802.11g.
1 Mbps
Max Indoor Range
Approssimato
350 ft.
2 Mbps
250 ft.
5.5 Mbps
180 ft.
6 Mbps
300 ft.
9 Mbps
250 ft.
11 Mbps
150 ft.
12 Mbps
200 ft.
18 Mbps
170 ft.
24 Mbps
140 ft.
36 Mbps
100 ft.
48 Mbps
95 ft.
54 Mbps
90 ft.
Rate
Tabella 1.7 - 802.11g Rate vs. Max Range Approssimato
1.1.4 802.11a
IEEE ha approvato lo standard 802.11a nel 1999.
Lo scopo principale era quello di utilizzare una banda poco affollata, e di innalzare i
data rates.
La modifica principale indotta con 802.11a è stata quella di utilizzare una frequenza
(5GHz) non influenzata da telefoni cordless, forni a microonde e da attrezzature
industriali, e di supportare un numero maggiore di canali non sovrapposti, 8 contro i 3
supportati da 802.11b e 802.11g, per avere una capacità di rete superiore.
Nonostante ciò, 802.11a è stato lento nel guadagnare i consensi del mercato. Uno dei
motivi è stata la mancanza di interoperabilità con l’attuale 802.11b causa diverse
frequenze di funzionamento, ed il fatto che lo standard 802.11g prometteva
interoperabilità con 802.11b e data rates paragonabili con 802.11a.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 13 di 82
•
•
Vantaggi di 802.11a – velocità massima abbastanza alta; supporta molti utenti
simultanei; le frequenze sottoposte a regolamentazione prevengono il rischio di
interferenza da parte di altre apparecchiature.
Svantaggi di 802.11a – costi più alti dell’802.11b; raggio d’azione limitato a
causa del segnale facilmente ostacolabile.
La Tabella 1.8 mostra alcune delle caratteristiche principali dello standard 802.11a. Le
prossime sezioni forniscono ulteriori dettagli su queste caratteristiche.
Caratteristica
Descrizione
Radio Technology
(Bandwidth Utilization Mode)
Obbligatorio - DSSS, FHSS, IR
Modulation
Obbligatorio: OFDM
Opzionale: Nessuno
Noise Sensing/Media Busy
Technology
Clear Channel Assessment (CCA) capability
Media Access Method
Frequenza
Carrier Sense Multiple Access with Collision Avoidance
(CSMA/CA)
5 GHz band - Conforme alle autorità responsabili dei
domini regolatori geografici specifici.
Rates Supportati
Tutti: 6, 9, 12, 18, 24, 36, 48, 54
Obbligatorio: 6, 12, 24
Canali
U.S. 36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161
Europa 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108,
112,116, 120, 124, 128, 132, 136, 140
Giappone 34, 38, 42, 46
Tabella 1.8 – Caratteristiche base di 802.11a
1.1.4.1
Trasmission Rates & Range
Lo standard 801.11a supporta alti trasmission rates, da 6Mbps a 54Mbps. L’abilità di
raggiungere rates più alti rispetto a 802.11b deriva dall’uso di OFDM, uno dei più
efficienti trasmission mode. Tuttavia, l’utilizzo di una banda più elevata in frequenza,
ha come conseguenza un range più corto. La Tabella 1.9 mostra i rate supportati ed i
rispettivi range approssimati.
6 Mbps
Max Indoor
Range
Approssimato
180 ft.
9 Mbps
165 ft.
12 Mbps
155 ft.
18 Mbps
130 ft.
24 Mbps
120 ft.
36 Mbps
105 ft.
48 Mbps
90 ft.
54 Mbps
60 ft.
Rate
Tabella 1.9 Rate vs. Max Range Approssimato
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 14 di 82
1.1.4.2
Canali 802.11a
I canali definiti per l’uso della specifica 802.11a dipendono dai piani regolatori dei
diversi paesi. Ad esempio, negli Stai Uniti, 802.11a utilizza 12 canali, sparsi su tre
bande (inferiore, centrale e superiore). 8 canali di questi sono ristretti per uso indoors
e 4 (52-64) possono essere utilizzati sia indoors che outdoors.
La Tabella 1.10 mostra la distribuzione dei canali per banda negli USA.
Dominio
Regolatore
Banda (GHz)
Operating
Channel Numbers
Frequenza
Centrale (MHz)
Stati Uniti
U-NII banda inferiore
(5.15-5.25)
36
40
44
48
5180
5200
5220
5240
Stati Uniti
U-NII banda centrale
(5.25-5.35)
52
56
60
64
5260
5280
5300
5320
Stati Uniti
U-NII banda
superiore
(5.725-5.835)
149
153
157
161
5745
5765
5785
5805
Tabella 1.10 – Canali Operativi validi negli USA
1.1.4.3
802.11a/bg Throughtput
Il throughput è ovviamente un parametro molto importante nell’analisi degli ambienti
wireless e non solo. E’ risaputo che avere throughput elevati, significa avere la
possibilità di servire un maggior numero di utenti, di offrire servizi migliori e di una
certa complessità quali quelli multimediali. E’ chiaro che elevati data rates forniscono
elevati throughput. Cosi, 802.11g e 802.11a hanno throughput superiori di 802.11b.
Che cosa non può essere chiaro è che ci sono altre parti della specifica che
interessano il throughput. La più importante è la retrocompatibilità tra 802.11g e
802.11b. La specifica 802.11g richiede che AP di tipo 802.11g supportino la
comunicazione con i client 802.11b. Come citato in precedenza, questo supporto
causa una perdita di throughput sia per i client 802.11b che per quelli 802.11g cosi
come per gli AP. La Tabella 1.11 mostra i throughput approssimativi che possono
essere ottenuti con tutte le tecnologie 802.11, come pure i rendimenti ottenuti da un
AP 802.11g mentre funziona in mix-mode usando RTS/CTS e CTS-to-Self packet
protection.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 15 di 82
11
6
Throughput
come
percentuale del
Throughput di
802.11b
100%
54
8
133%
54
12
200%
802.11g senza client 802.11b
54
22
367%
802.11a
54
26
430%
Data Rate
(Mbps)
Tecnologia
802.11b
802.11g con client 802.11b
usando CTS/RTS protection
802.11g con client 802.11b
usando CTS-to-self protection
Throughput
Approssimato
(Mbps)
Tabella 1.11 – Confronto del Throughput per 802.11b, 802.11g e 802.11a
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 16 di 82
1.2 Funzionalità e componenti di rete
E’ possibile riassumere le aspettative di un utente WLAN come la possibilità di poter
accedere ad Internet e di desiderare i benefici aggiunti di un collegamento senza fili.
In questa sezione verranno brevemente analizzati gli aspetti tecnici degli ambienti
WLAN e le funzionalità che queste tipologie di reti devono offrire per soddisfare le
aspettative dell'utente. Verranno inoltre brevemente analizzati i componenti hardware
e software della rete necessari a fornire queste funzioni.
1.2.2 Tipologie di Reti Wireless
Esistono fondamentalmente due tipologie di reti wireless:
A. Ad-hoc o peer-to-peer
Consiste di un certo numero di calcolatori ciascuno dotata di scheda di rete
wireless. Ogni calcolatore può comunicare direttamente con tutti i altri
calcolatori wireless abilitati. I calcolatori possono condividere files e stampanti
in questo senso, ma non possono potere accedere alle risorse della wired LAN, a
meno che uno dei calcolatori non funga da bridge alla wired LAN usando un
software speciale (che è chiamato “bridging”). Come possiamo notare dalla
Figura 1.3 ogni computer della rete wireless può comunicare direttamente con
gli
altri
computer.
Figura 1.3 – Rete Wireless Ad-hoc
B. Access Point Based
L’integrazione di una rete wireless con una rete cablata avviene grazie a
particolari dispositivi detti Access Point (AP), che fungono da Bridge tra i due
diversi tipi di rete. Lo scopo di questi dispositivi è quello di fornire accesso alla
rete wireless a client mobili, quali notebook o palmari, garantendo un livello di
sicurezza adeguato.
Nella prossima sezione analizzeremo le caratteristiche di questa tipologia di
dispositivi.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 17 di 82
1.2.2 Access Point
Un AP deve essere posizionato in modo tale che la portata utile del segnale possa
essere massimizzata, ad esempio utilizzando opportune antenne direzionali che
permettono di definire l’angolazione del lobo di radiazione, ed a condizione di
specificare l’area di connettività wireless. Tale area prende il nome di cella, e la sua
dimensione solitamente varia tra 90 e 150 metri. Per servire aree più grandi occorre
installare più Access Point, con un certo grado di sovrapposizione (overlap).
1.2.2.1 Tipologie di Access Point
Esistono due tipologie di Access Point:
1. Hardware access points (HAP)
Offrono un supporto completo delle principali caratteristiche delle reti senza fili,
ma è necessario controllare i requisiti con attenzione.
Figura 1.4 – Hardware Access Point
2. Software Access Point
Funzionano su un calcolatore dotato di una scheda di rete senza fili della rete
come quella usata in una rete ad-hoc o peer-to-peer wireless.
Figura 1.5 Software Access Point
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 18 di 82
1.2.2.2 Caratteristiche importanti degli Access Point
Questa sezione descrive le caratteristiche e le funzionalità più importanti di un AP da
considerare quando si implementa una rete wireless. Lo scopo non è quello di dare
una lista esaustiva delle caratteristiche, ma di fornire un background necessario per
comprendere i concetti relativi alla sicurezza delle reti wireless.
A. Fornire informazioni sullo stato della rete ai client mobili
Uno dei servizi che un Access Point deve offrire è quello di mantenere i client
informati sullo stato generale della rete senza fili. Per fare ciò, l’AP invia in
broadcast sulla rete wireless dei parametri attraverso messaggi chiamati
beacon. Lo scopo di questa tipologia di messaggi è quello di semplificare il
processo di associazione alla rete da parte degli utenti finali, ovvero
determinare a quale rete si possono connettere, e di fornire informazioni sulle
caratteristiche della rete stessa (canale in uso, …).
Un altro metodo utilizzato per l’associazione dei dispositivi è l’advertising, in cui
un AP invia in broadcast un messaggio che include il Service Set Identifier
(SSID) della rete (in aggiunta all’informazione inviata con il beacon).
L’advertising non è obbligatorio o necessario per stabilire una connessione tra
AP e mobile station, ma se non è attivo è necessario che il client conosca lo
SSID della rete per potersi connettere. Questo è uno dei più semplici metodi di
sicurezza implementabile, benché poco affidabile.
B. Rispondere alle richieste di informazione da parte delle Mobile Station
La stazione mobile non deve attendere l’AP per pubblicizzare la sua presenza,
ma non può connettersi a reti che non sono pubblicizzate. La mobile station può
proattivamente prendere informazioni da un AP in uno dei seguenti modi: può
trasmettere una richiesta per scoprire qual è la rete 802.11 più vicina o può
trasmettere una richiesta per associazione ad un AP specifico. In entrambi i
casi, l’AP include le informazioni necessarie riguardo la rete wireless in risposta
alla mobile station.
C. Privacy e Sicurezza
802.11 può fornire data privacy cifrando i frames prima di trasmetterli sulla rete
senza fili. La prima specifica per cifrare i dati in 802.11 è WEP. Usando WEP,
l’amministratore di un AP inserisce una chiave, e gli utenti devono programmare
la stessa chiave nei client. Una volta che i due sono abbinati, i pacchetti
possono essere scambiati. Siccome le chiavi devono essere modificate
manualmente, è necessario informare tutti i client ogni qualvolta che la chiave
segreta viene cambiata. Nelle prossime sezioni verranno analizzate le
problematiche relative a questo approccio e verranno descritte le soluzioni
alternative proposte come standard.
D. Autenticazione di utenti e dispositivi
802.11 utilizza WEP in due modi: per autenticare i dispositivi e per fornire
confidenzialità cifrando i pacchetti di dati. E’ importante capire la distinzione,
infatti solitamente si fa confusione su questo aspetto. E’ possibile utilizzare o
meno WEP per autenticazione e cifratura dei dati ma esistono dei semplici ruoli:
è possibile utilizzare WEP per l’autenticazione solo se viene usato anche per la
cifratura. Il contrario non è vero. E’ possibile invece utilizzare WEP per la
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 19 di 82
cifratura e non per l’autenticazione. Nel contesto di 802.11, non utilizzare WEP
per l’autenticazione è detto “Open Authentication” mentre utilizzare WEP per
l’autenticazione
è
detto
“Pre-shared-key
Authentication”.
Anche questi aspetti verranno analizzati nella sezione dedicata al protollo WEP.
E. Autorizzazione dei dispositivi
Autorizzare la mobile station (MS) a connettersi alla rete significa rendere la MS
in grado di associarsi con un AP ed inviare e ricevere pacchetti attraverso
l’associazione (connessione). Nello standard 802.11, l’autenticazione è richiesta
per l’autorizzazione, ed un autorizzazione positiva abilita l’associazione.
Nelle reti wireless WEP-enabled, l’autorizzazione è il lavoro dell’AP
F. Fornire accesso alla rete locale
Una volta che la MS è associata all’AP, essa può inviare e ricevere data frames
nella rete wireless. L’AP funge da ponte tra la rete wireless e la rete wired,
fornendo l’accesso alle risorse poste nella porzione cablata.
1.2.2 Altri componenti
Authentication Authorization and Accounting (AAA) Server
Authentication Authorization and Accounting (AAA) Server è un termine generico per
identificare un componente di rete che offre questa tipologia di servizi:
•
Authentication è un processo per identificare un unità (device o user) che
intende agganciarsi ad una transazione network-based. L’autenticazione può
essere reciproca e può avvenire utilizzando uno dei protocolli di autenticazione
quali EAP-TTLS o PEAP.
•
Authorization è un permesso (enablement) di accesso ad una risorsa specifica
una volta che un’unità (device o user) è stata autenticata. Ad esempio,
l’authorization può essere implementata abilitando una porta di uno switch, e
fornendo quindi accesso ad una risorsa quale database, web services, ...
•
Accounting si riferisce al tracking dell’utilizzo delle risorse.
RADIUS (Remote Authetincation Dial In User Service) è un protocollo standard
utilizzato per la comunicazione tra un AAA server ed un AAA agent. Il supporto
per
questo protocollo è ampliamente disponibile nell’industria. Alcuni AAA server
supportano protocolli proprietari, che possono essere più efficienti che RADIUS, ma
possono presentare limiti di interoperablità tra i componenti.
Authentication Database
Questo componente è necessario per autenticare gli utenti che accedono alla rete e
per gestire in modo efficiente le credenziali di tutti i clients registrati. Solitamente
l’authentication database è gestito dall’authentication server.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 20 di 82
1.3 Wireless security
1.3.1 Wireless versus Wired
In una rete wired, il primo metodo di autenticazione è implementato dalle barriere
fisiche che un utente deve attraversare per accedere alla rete. Per esempio, è ovvio
che un utente che può collegare un computer ad una LAN aziendale all'interno
dell’edificio della società debba passare attraverso controlli di identità per avere
accesso all’edificio.
Tali barriere non sono disponibili in una rete senza fili in cui i segnali possono
viaggiare oltre le pareti dell’edificio. E’ stato necessario implementare un meccanismo
di sicurezza per custodire una rete Wi-Fi.
802.11 includono una specifica per le reti Wi-Fi che si è evoluta dal relativo primo
standard come la Wireless Equivalent Privacy (WEP) all'ultima specifica 802.11i, come
Robust Secure Network (RSN). Il resto di questa sezione descrive le caratteristiche
principali della sicurezza wireless. Ma in primo luogo, guardiamo che cosa stiamo
provando a proteggere.
1.3.2 Cosa deve essere protetto?
La sicurezza definita dalla specifica 802.11 indirizza la protezione soltanto verso il link
radio di comunicazione tra la mobile station e l’AP. Lo standard 802.11 non specifica la
sicurezza di rete oltre l’AP.
In seguito viene riportata una breve lista di tipologie di attacchi che possono essere
effettuati via rete wireless. Nota che questa non è una lista esaustiva di attacchi, ma
soltanto una lista dei più comuni.
• Associazione non autorizzata ad un AP, ovvero quando client non appartenenti
al contesto in cui la rete è installata (ad es. azienda) si connettono per usufruire
impropriamente della banda o, nel caso peggiore per accedere ad informazioni
sensibili. Un fenomeno tipico è detto Wardriving, in cui individui dotati di
computer portatili e antenna si muovono in auto per la città con lo scopo di
connettersi
alle
reti
aziendali,
ed
utilizzare
la
banda.
•
Rogue AP, ovvero Access Point non autorizzati all’interno della rete wireless che
possono presentarsi al client come “ufficiali”. Anticipiamo che il framework di
autenticazione 802.1X evita questa tipologia di problematiche, imponendo
l’autenticazione dell’AP oltre a quella del client, inoltre esistono tools che
permettono di monitorare la rete per individuare Rogue AP (ad es.
aptools.sourceforge.net).
•
Man-in-the-middle, ovvero utenti che si pongono tra sorgente e target per
catturare
informazioni
sensibili.
•
Eavesdropping, ovvero la possibilità da parte di un malintenzionato di
intercettare passivamente i segnali radio e decodificare i dati trasmessi. Il tutto
utilizzando delle comuni apparecchiature da poche centinaia di euro.
Tutte le periferiche wireless devono disporre di componenti hardware in grado
di trasmettere e ricevere dati. Le stesse possono essere modificate in modo da
intercettare il traffico trasmesso su di un particolare canale o frequenza della
rete. Di conseguenza basta che un malintenzionato si trovi nel raggio di
copertura del segnale wireless perché gli sia estremamente facile ricevere tutti i
dati durante la trasmissione. Questo tipo di attacco è molto pericoloso, basti
pensare che in una fase di test è stato possibile catturare dati anche a 16 Km di
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 21 di 82
distanza. La cosa sconvolgente, e che ci deve far riflettere sull’importanza dei
sistemi di sicurezza di cui dovremo dotare la nostra rete, è che questo tipo di
attacco
è
quasi
impossibile
sia
da
rilevare
che
da
impedire.
•
Jamming, ovvero la possibilità di creare delle interferenze atte a rendere
praticamente inutilizzabile il canale di comunicazione. Inoltre, considerato che
queste tecnologie wireless utilizzano frequenze senza licenza, oltre ad attacchi
intenzionali, è possibile che queste interruzioni siano causate anche da
periferiche che si trovano in casa o in ufficio, come telefoni cordless, sistemi di
controllo,
forni
a
microonde...
•
MAC spoofing, un attacco che consiste nel servirsi illecitamente dell’indirizzo
MAC di host illegittimi. Ad esempio, su reti wireless gli host malintenzionati si
spacciano per un host legittimo, o per il network access point, per superare
meccanismi di controllo degli accessi. È relativamente semplice effettuare lo
spoofing degli indirizzi MAC ed esiste una quantità di tools disponibili per
lanciare
questi
attacchi,
tra
i
quali
AirJack
e
FakeAP.
•
Denial of Service (DoS), un genere di attacco nel quale i cosiddetti pirati
(crackers) attivano un numero elevatissimo di false richieste da più macchine
allo stesso server consumando le risorse di sistema e di rete del fornitore del
servizio. In ambito wireless un attacco DoS può essere messo in atto contro un
AP, con l’obiettivo di saturare lo stesso e metterlo fuori uso.
La conoscenza di questa tipologie di attacchi aiuta nelle decisioni riguardanti il set-up
della rete e della sicurezza.
1.3.3 Requisiti di sicurezza
I requisiti primari per una rete sicura includono tra gli altri il controllo degli accessi, il
mantenimento della privacy e dell’integrità dei dati, e la protezione contro le tipologie
di attacchi noti. Per soddisfare questi requisiti, la rete deve necessariamente fornire
tecnologie (hardware e software) che implementano le seguenti funzioni:
•
•
•
•
•
•
•
Struttura generale per riunire l'esecuzione delle funzioni citate sotto
Autenticazione
Autorizzazione
Confidenzialità
Integrità dei dati
Gestione delle chiavi
Protezione contro le tipologie di attacchi noti: MAC spoofing, man-in-themiddle, …
Di seguito verrà data una breve descrizione delle funzionalità sopra citate.
1.3.3.1 Access Control Framework
L’access control framework fornisce il “collante” per l’implementazione di tutti gli altri
servizi. La specifica originale di WEP non includeva un framework per l’autenticazione
e autorizzazione. Con l’avvento dei nuovi protocolli WAP, WAP2, il Task Group 802.11i
introdusse l’uso di 802.1X come framework di autenticazione e autorizzazione di tutti
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 22 di 82
gli attori che partecipano alla rete. Il framework 802.1X verrà descritto nelle prossime
sezioni.
1.3.3.2 Autenticazione
Autenticazione si riferisce alla verifica delle credenziali fornite da un entità che cerca
l’autenticazione sulla rete. I metodi di autenticazione utilizzati in un’implementazione
di rete dipendono da diversi fattori, quale ad esempio il contesto d’uso della rete
(aziendale o pubblico), l’intento della rete nei confronti degli utenti, …
Per questo motivo, è necessario un modo per supportare metodi di autenticazione
multipli. 802.1X utilizza Extensible Authentication Protocol (EAP) per supportare
metodi di autenticazione multipli.
EAP ed i metodi di autenticazione verranno analizzati nelle prossime sezioni.
1.3.3.3 Autorizzazione
Questa funzione si riferisce alla possibilità di fornire, alla particolare unità autenticata,
la possibilità di accedere alla specifica risorsa. 802.1X specifica l’autorizzazione portbased. Una volta che un client autorizzato (laptop o componente di rete) è stato
autenticato, vengono abilitate soltanto le porte per accedere a risorse di rete
permesse. Meccanismi di accesso elaborati possono essere derivati da queste
funzionalità base, utilizzando VLAN-enabled (Virtual LAN) switches.
1.3.3.4 Confidenzialità
Questa funzione si riferisce a come tenere segrete le informazioni scambiate tra o due
o più unità comunicanti. In altre parole, solo le unità a cui i messaggi diretti sono
abilitate a leggere i messaggi. Questa funzione è accompagnata dalla cifratura dei
frames wireless con un forte algoritmo di encryption. WEP utilizza una chiave precondivisa per cifrare i dati, mentre 802.11i utilizza Advanced Encryption Standard
(AES).
E’ importante notare che questo aspetto è fondamentale in qualsiasi tipologia di rete,
ma in particolare nelle reti senza fili. La causa è da ricercare nella natura delle reti
senza fili, infatti i dati viaggiano per aria, e sono maggiormente soggetti ad
intercettazioni da parte di individui non autorizzati. L’uso di algoritmi di cifratura sicuri
è fondamentale per l’ascesa di questi standard, infatti la tendenza comune è quella di
non fidarsi di dati che viaggiano su di un mezzo confinabile. Ad esempio, la maggior
parte delle persone non è incline ad utilizzare dispositivi mobili per transazioni
bancarie o per maneggiare dati sensibili. Con l’avvento di soluzioni basate su AES,
sicuramente il gap di sicurezza tra reti wireless e wired verrà colmato, ma si assisterà
ad un periodo di transizione, in cui le periferiche e le reti si adatteranno a questa
ottima soluzione. Torneremo su questo aspetto nelle prossime sezioni, quando
analizzeremo in dettaglio l’algoritmo AES ed i protocolli basati su quest’ultimo.
1.3.3.5 Integrità dei dati
Questa funzione si accerta che il destinatario di un messaggio abbia modo di rilevare
se un messaggio è stato alterato nella trasmissione o meno. In WEP, l’integrità dei
dati è implementata attraverso l’uso di Cyclic Redundancy Check (CRC), il quale non è
crittograficamente sicuro, poiché i suoi risultati sono prevedibili, e quindi si può
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 23 di 82
predire matematicamente il CRC quando uno o più bit del messaggio vengono
modificati. WPA e WPA2 utilizzano “Message Integrity Check” (MIC), 802.11i utlizza
Counter Mode con CCB MAC (CCM).
1.3.3.6 Gestione delle chiavi
Gestione delle chiavi si riferisce alla capacità di automatizzare il modo in cui
autenticazione e chiave di cifratura sono generati, trasferiti, ed utilizzati nel sistema
per assicurare sicurezza nel link di comunicazione. Con WEP, 802.11 fornisce un
sistema non automatizzato per la gestione delle chiavi. In WEP, una chiave precondivisa rimane la stessa fino a quando non è modificata manualmente sull’AP e su
tutte le mobile stations che utilizzano il particolare AP. Ovviamente questa mancanza
è una lacuna per la specifica. 802.11i colma questa lacuna delegando a 802.1X le
funzioni di gestione delle chiavi. Per fornire un percorso di migrazione per l’hardware
esistente, 802.11i specifica l’uso di WEP come uno dei due nuovi protocolli definiti in
802.11i. Per poter utilizzare WEP in 802.11i, sono stati fatte alcuni cambiamenti al
protocollo. Questi cambiamenti risiedono nel protocollo Temporal Key Integrity
Protocol (TKIP).
Ulteriori dettagli relativi a TKIP e 802.11i verranno forniti nelle prossime sezioni.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 24 di 82
2.0 Opzioni di Sicurezza
In questo capitolo descriveremo le principali soluzioni atte a garantire la sicurezza
delle reti senza fili.
In primo luogo verrà analizzato il protocollo WEP, lo standard de-facto attuale,
sottolineando le debolezze che questa soluzione presenta.
In seguito analizzeremo lo standard 802.11i, la soluzione proposta da IEEE e Wi-Fi
Alliance per colmare le lacune presentate da WEP.
L’analisi di 802.11i proposta in questo capitolo si concentra fondamentalmente sugli
aspetti di base dello standard, introducendo i protocolli basati su AES che verranno
approfonditi nei capitoli 3 e 4.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 25 di 82
2.1
Wired Equivalent Privacy (WEP)
Wired Equivalent Privacy (WEP) è la specifica originale per la sicurezza in 802.11. Esso
è stato progettato per rendere sicuro il link radio e proteggere i dati che attraversano
la porzione wireless della rete. WEP non fornisce protezione oltre l’AP e si applica
ugualmente a 802.11a, a 802.11b ed a 802.11g.
I limiti di WEP risiedono non solo nell’assenza di un metodo sicuro di cifratura, ma
anche nella mancanza di un pratico protocollo per la gestione delle chiavi. WEP si basa
sulla conoscenza di una chiave segreta da parte delle entità comunicanti. La chiave
segreta può essere utilizzata come credenziale in una fase di autenticazione, e può
inoltre cifrare i pacchetti per fornire confidenzialità. La chiave deve essere impostata
manualmente nell’AP e su tutti i clients che vogliono comunicare con l’AP. Una volta
che la chiave di cifratura è impostata, essa rimane la stessa fino a quando non
modificata manualmente in ognuno dei dispositivi di rete che utilizza la rete wireless in
questione. Questa mancanza di gestione automatica delle chiavi, rende WEP una
preda facile di hackers che osservano per scoprire e sfruttare risorse altrui o chiavi
segrete di cifratura.
WEP ha fondamentalmente tre obiettivi di sicurezza: fornire autenticazione dei
dispositivi, confidenzialità, e integrità dei messaggi. L’autenticazione deve avvenire
prima che la stazione mobile sia in grado di associarsi e trasmettere traffico con un
AP. Questa autenticazione non è reciproca: solo alla stazione mobile è richiesto di
autenticarsi con l’AP. L’autenticazione è fornita attraverso due diversi modi di
funzionamento: Open Authentication e Shared-Key Authentication.
Open Authentication permette ad una dispositivo qualsiasi di associarsi con l’AP.
Con Shared-Key Authentication, l’AP invia una stringa alla Mobile Station (MS) in un
challenge message. La MS è tenuta a cifrare la stringa usando la relativa chiave WEP
ed a trasmetterla di nuovo all’AP. La chiave di cifratura usata dalla mobile station è la
stessa chiave che è utilizzata per il traffico regolare quando lavora in WEP mode.
Una volta che la mobile station è stata autenticata, è pronta ad associarsi con l’AP e
successivamente a scambiare messaggi con altre entità sulla rete. La figura 2.1
mostra la Shared-Key Authentication Sequence.
Figura 2.1 – Shared key Authentication Sequence
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 26 di 82
Quando WEP è abilitato, esso fornisce confidenzialità cifrando i messaggi scambiati sul
link wireless tra mobile station e AP. Per cifrare i messaggi, l’unità di trasmissione in
genera un Inizialization Vector (IV) di 24-bit che viene concatenato con la chiave
segreta di 40-bit o 104-bit per formare la chiave di cifratura di WEP estesa.
La chiave estesa è data in input ad un engine RC4 per generare un keystream di
cifratura della stessa lunghezza del frame data più la lunghezza dell’IV, 64 o 128 bit
rispettivamente (24 bits + 40 bits = 64 bits oppure 24 bits + 104bits = 128 bits).
Infine, viene effettuato lo XOR tra il keystream, il corpo dei frame (l’header è escluso)
e l’IV per generare lo stream cifrato. Siccome l’IV è generato dall’unità trasmettente,
esso deve essere inviato al ricevitore al di fuori dell’area cifrata del frame. La figura
2.2 mostra il processo di cifratura. Per dettagli sulla composizione del frame si veda la
figura 2.3.
Figura 2.2 – Il processo di cifratura di WEP
L'obiettivo dell’integrità di WEP è di fornire un modo al ricevente del frame per
determinare se il frame è stato alterato durante la trasmissione o meno. Per
raggiungere questo obiettivo, al mittente del frame è richiesto di computare un hash
value (32-bit CRC) del data frame e di appenderlo prima del frame cifrato. L’hash
value è chiamato Integrità Check Value (ICV). Siccome l’ICV è cifrato, esso non è
visibile da un osservatore casuale o attacker.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 27 di 82
Figura 2.3 – Zone di fame cifrate e in chiaro
2.1.1 Debolezze di WEP
I ben divulgati problemi di sicurezza di 802.11 provengono dall'uso di WEP come
mezzo primario per la protezione del collegamento senza fili. Come citato
precedentemente, WEP è stato progettato per fornire autenticazione, confidenzialità,
ed integrità, ma sfortunatamente esso fallisce in tutte queste aree. La prima area di
debolezza deriva dall’incapacità di WEP di mantenere segreta la chiave condivisa. Le
ragioni di questo problema sono la mancanza di una gestione automatizzata delle
chiavi. La distribuzione delle chiavi di WEP è manuale: ogni utente necessita di
conoscere la stessa chiave segreta. Una volta che la chiave è stata distribuita ad una
larga comunità di user, cambiarla significa aggiornare ogni utente conosciuto:
soluzione poco pratica. Il risultato è che nella maggior parte degli ambienti dove è
utilizzato WEP, la chiave rimane la stessa per periodi di tempo molto lunghi. Quando
una larga comunità conosce la chiave segreta, è sicuro che la chiave non rimane
segreta molto a lungo.
Un ulteriore problema di WEP è che la chiave segreta può essere facilmente scoperta
da pacchetti sniffati. Questo è possibile perché WEP riusa la stessa chiave di cifratura
dopo circa 20.000 pacchetti scambiati e fa sapere quando il riuso sta avvenendo.
L'esposizione accade perché parte della chiave, l’IV, è trasmessa in chiaro. Un
attacker può quindi sapere quando sta avvenendo riuso della chiave tenendo
semplicemente traccia dell’IV. Sapere quando la chiave è riutilizzata fa si che un
hackers ottenga i pacchetti multipli che sono stati cifrati con la stessa chiave. Con il
processo di XOR dei messaggi catturati, l’attacker può quindi recuperare la chiave di
cifratura.
Un secondo modo per rompere la chiave WEP è quando questa è utilizzata in fase di
autenticazione. Come citato, la specifica 802.11 descrive due modi di autenticarsi:
Shared Key e Open Authentication. Quando si utilizza Shared Key, la chiave usata per
l’autenticazione è la stessa chiave utilizzata per cifrare i pacchetti. Sfortunatamente,
questo modo di funzionamento espone il testo utilizzato nel challenge message sia in
chiaro che cifrato, fornendo ad un hacker abbastanza informazioni per spezzare la
chiave.
Un terzo caso in cui le chiavi WEP sono esposte, accade quando certe chiavi, chiamate
chiavi deboli, sono utilizzate nell’algoritmo RC4. Le chiavi deboli hanno patterns nei
primi e terzi byte della chiave che causano pattern corrispondenti nei primissimi byte
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 28 di 82
del flusso chiave generato RC4. Munito con questa informazione, un hacker può usare
l’IV ed il flusso chiave esposto per identificare le potenziali chiavi deboli.
Possiamo concludere dicendo che le informazioni sopra riportate sono sufficienti per
dichiarare che WEP è un protocollo insicuro, ed in quanto tale va sostituito.
Il problema della sostituzione di un protocollo utilizzato in larga scala come WEP non è
banale, infatti è necessario aggiornare o sostituire le periferiche che lo utilizzano, ed
alcune volte il numero delle periferiche può essere davvero elevato.
Questo è stato il punto di partenza per la progettazione degli standard sostitutivi di
WEP da parte di IEEE Task Group “i” (IEEE 802.11i).
L’idea base è stata quella di fornire un periodo di transizione, in cui gli utenti potevano
continuare ad utilizzare l’hardware in loro possesso, in attesa che il mercato si
aggiornasse all’uso dell’algoritmo di sicurezza per eccellenza: Advanced Encryption
Standard (AES).
Dunque nella nuova specifica 802.11i vennero inclusi due algoritmi, Wi-Fi Protected
Access (WPA) e la soluzione definitiva Wi-Fi Protected Access 2 (WPA2), con i relativi
protocolli di supporto.
Nella prossima sezione analizzeremo lo standard 802.11i con WPA, e tutti i protocolli
di supporto alla nuova architettura (framework di autenticazione, …).
Nei capitoli 3 e 4 invece analizzeremo in dettaglio i protocolli wireless basati su AES, e
la soluzione WPA2.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 29 di 82
2.2
802.11i
IEEE 802.11i è uno standard sviluppato da IEEE per fornire uno strato di sicurezza alle
comunicazioni basate sullo standard IEEE 802.11. Come abbiamo precedentemente
notato infatti, le comunicazioni protette da WEP non sono molto sicure, in quanto il
protocollo presenta diversi difetti, anche dal punto di vista progettuale.
La specifica IEEE 802.11i è stata ratificata il 24 giugno 2004 e rappresenta un
superset (estensione) del precedente standard WEP.
L'architettura dell'802.11i fondamentalmente comprende due protocolli, il primo
chiamato Wi-Fi Protected Access (WPA), che utilizza il framework 802.1X per
l’autenticazione e TKIP per l’integrità dei dati, ed il secondo WPA2, che utilizza il
framework 802.1X per l’autenticazione ed il protocollo AES per la cifratura. In questa
sezione analizzeremo le basi di 802.11i e il protocollo WPA, rimandando ai capitoli 3 e
4 i dettagli sull’algoritmo AES ed il protocollo WPA2.
La Tabella 2.1 mostra alcune caratteristiche di WEP e delle opzioni di sicurezza che
presenteremo in questa sezione: WPA e WPA2.
CARATTERISTICA
Access Control
Framework
Authentication
Framework
Encryption
Algorithm
Key Size
WEP
WPA
WPA2
Nessuno
802.11i
802.11i
Nessuno
EAP
EAP
RC4
RC4
AES
40 / 140bit
128bit
Packet Key
Concatenation
128 bit Encrypt.
64 bit Authent.
Mixing Function
Key Management
Static
802.1X + TKIP
802.1X +
CCMP
Key Lifetime
24 bit IV
48 bit IV
48 bit IV
Authentication
Methods
Shared Key
(PSK)
Shared Key
(PSK), Metodi
EAP-based
Shared Key
(PSK), Metodi
EAP-based
Header Integrity
Data Integrity
Pre-Authentication
Roaming
Nessuno
CRC32
NO
Limitato (solo
AP stesso
produttore)
Michael
Michael
NO
Limitato (solo
AP stesso
produttore)
Michael
Michael
NO
Limitato (solo
AP stesso
produttore)
Non necessario
Tabella 2.1 – Le opzioni di sicurezza wireless
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 30 di 82
2.2.1 TKIP
Progettato come “wrapper” intorno a WEP, TKIP è stato sviluppato da TGi (IEEE
802.11 “Task Group i”) per risolvere le debolezze di WEP e per fornire un percorso di
espansione WLANs più sicuro usando l’hardware esistente.
TKIP è utilizzato dal protocollo WPA per la privacy dei dati.
TKIP comprende fondamentalmente quattro elementi che vengono aggiunti al WEP:
1. Message Integrity Check o MIC, chiamato Michael, come protezione contro le
falsificazioni
2. Un nuovo Initialization Vector di 48 bit
3. Un per-packet key mixing function, per scorrelare l’IV pubblico dalle chiavi
deboli
4. Un Meccanismo di Rekeying, per fornire chiavi di integrità e di crittografia
sempre nuove, prevenendo minacce di attacchi che provengono dal riutilizzo
della chiave.
TKIP è l’acronimo di “Temporary Key Integrity Protocol”. Il meccanismo di rekeying
aggiorna quelle che sono dette temporary keys, che sono consumate dall’engine WEP
e dalla funzione di integrità Michael.
Nelle prossime sezioni analizzeremo le componenti di TKIP.
2.2.1.1 Sconfitta dei falsi: Michael
MIC è un meccanismo di autenticazione dei dati. La letteratura denomina questi
message authenitcation code, o MACs, ma poiché IEEE 802 aveva già utilizzato
l’acronimo MAC per identificare il “Media Access Control", TGi decise di utilizzare il
termine MIC.
Ogni MIC ha tre componenti: una chiave segreta K (condivisa soltanto fra il mittente
e destinatario), una tagging function e un predicato di verifica. La tagging function
prende la chiave K e un messaggio M come input e genera un tag T, denominato
message integrità code, come output. Un protocollo protegge un messaggio M dal
falso, facendo si che il mittente computi il tag T e lo trasmetta assieme al messaggio
M. Per verificare la presenza di falso, il ricevente da in input K, M e T al predicato di
verifica. Se il predicato restituisce TRUE, allora il messaggio è autentico, altrimenti
viene scartato. Un MIC è considerato sicuro se è impossibile per un attacker
selezionare modifiche corrette per qualche nuovo, mai visto prima, messaggio M
senza conoscere la chiave K.
Michael è il nome del message integrity check utilizzato da TKIP. Esso è un nuovo MIC
progettato dal signor Niels Ferguson.
La chiave di Michael è a 64-bit, ed è rappresentata come due parole a 32-bit littleEndian (K0, K1).
La tagging function di Michael prima riempie un messaggio con il valore hex 0x5a ed
abbastanza zero pad per portare la lunghezza totale del messaggio ad un multiplo di
32-bits, poi partiziona il risultato in una sequenza di parole a 32-bit M1 M2... ed infine
computa il tag dalla chiave e dalle parole del messaggio usando una struttura iterativa
semplice:
(L,R)
(K0,K1)
do i from 1 to n
L
L ⊕ Mi
(L,R)
b(L,R)
return (L,R) as the tag
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 31 di 82
dove il simbolo ⊕ denota una operazione
sviluppata da rotazioni, little-Endian additions
Il predicato di verifica del Michael, ripete la
restituisce il risultato di un confronto bit-wise
il tag ricevuto assieme al messaggio.
di XOR e b è una semplice funzione
e bit swap.
tagging function sopra il messaggio, e
di questo tag localmente computato con
2.2.1.2 Initialization Vector
Sfortunatamente, MIC non può rilevare un pacchetto ripetuto. Ciò accade ad esempio
quando un avversario registra un pacchetto valido durante la comunicazione e poi
successivamente lo ritrasmette. Il modo standard per risolvere questo problema è di
associare un packet sequence number space con una chiave MIC e re-inizializzare lo
spazio di sequenza ogni volta che la chiave MIC è sostituita. Questa strategia richiede
che il trasmettitore si astenga dal trasmettere dati protetti dalla vecchia MIC key una
volta il sequence number space è esaurito. Le scelte disponibili al trasmettitore per
gestire l’esaurimento sono (a) comunicazione di fermata complessiva, (b) prova il
rekey del MIC con una chiave nuova, o (c) trasmissione del traffico successivo senza
alcuna protezione crittografica. Non riuscire ad adottare una di queste strategie rischia
esporre i dati già protetti sotto la chiave. TKIP segue molto attentamente questo
design classico. Per sconfiggere ripetizioni, TKIP usa il campo IV di WEP come packet
sequence number. Sia il trasmettitore che il ricevente inizializzano il packet sequence
number space a zero ogni volta che le nuove chiavi di TKIP sono impostate ed il
trasmettitore incrementa il sequence number con ogni pacchetto trasmesso. TKIP
richiede al ricevente di rispettare un ordine adeguato della sequenza IV dei pacchetti
arrivanti. TKIP definisce un pacchetto come fuori-sequenza se il relativo IV è lo stesso
o più piccolo di un MPDU (frammento di pacchetto) correttamente ricevuto precedente
associato con la stessa chiave di crittografia. Se un MPDU è fuori ordine, allora è
considerato come una ripetizione ed il ricevente lo scarta ed incrementa un contatore
di ripetizione. TKIP devia dal design usuale associando il sequence number con la
chiave di crittografia di TKIP, non con la relativa chiave MIC. Questo vincolo deriva
dalla scelta del campo di WEP IV come sequence space. Ciò è stata fatto per poter
riutilizzare l’hardware WEP attuale e quindi i formati di pacchetto.
2.2.1.3 Sconfitta degli attacchi alle chiavi deboli: Key Mixing
TKIP key mixing function è stata inventata da Doug Whiting e Ron Rivest.
Essa trasforma una chiave temporale ed il contatore di sequenza del pacchetto in una
per-packet key ed IV. La mixing function agisce in due fasi, in ogni fase compensa un
particolare difetto di design di WEP, in particolare la Fase 1 elimina l’uso della stessa
chiave in tutti i collegamenti, mentre la Fase 2 de-correla l’IV pubblico dalla perpacket key.
La Fase 1 combina il MAC address 802 dell'interfaccia wireless locale e la chiave
temporanea, effettuando iterativamente l’operazione di XOR con una S-box (tabella di
sostituzione non lineare invertibile), per produrre una chiave intermedia. La
mescolatura del MAC address locale nella chiave temporale in questo modo, induce
stazioni ed Access Point differenti a generare chiavi intermedie differenti, anche se
cominciano dalla stessa chiave temporale. Questa costruzione conduce alla
generazione di per-packet key differenti per ogni stazioni, soddisfacendo i requisiti
minimi imposti. Inoltre, la chiave intermedia della Fase 1 deve essere computata
soltanto quando la chiave temporale è aggiornata, così la maggior parte delle
esecuzioni porta ad avere un ottimizzazione di prestazioni.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 32 di 82
La Fase 2 usa un tiny cipher per "cifrare" il numero progressivo del pacchetto sotto la
chiave intermedia, producendo una per-packet key di 128-bit. Nella realtà, i primi 3
byte dell’output della fase 2 corrispondono esattamente al WEP IV e gli ultimi 13 alla
chiave base di WEP, come per WEP, l’IV e la base key sono concatenati per formare la
chiave per-packet key di 128-bit. Questo design soddisfa il secondo obiettivo della
mixing function, rendendo difficile per un avversario correlare gli IV e le per-packet
key.
Il tiny cipher definito per la fase 2 ha una struttura di Fiestel, il che significa che i loop
interni implementano una trasformazione nella forma (L,R)à(R,L ⊕ f(R)). Come con
Michael, il loop interni del tiny cipher possono essere implementati usando solo
operazioni semplici: XOR, rotazioni, tabelle di look-up – tutte operazioni poco costose
per i processori dei dispositivi 802.11. La fase 2 rappresenta il packet sequence
number come un contatore a 16-bit little-Endian. La fase 2 assegna gli 8-bit più
significativi del counter al primo e secondo byte del WEP IV, ed i bit meno significativi
del counter al terzo byte dell’IV. Esso dunque maschera i bit più significativi del
secondo byte per impedire che la concatenazione WEP per-packet key produca una
delle chiavi deboli di RC4.
2.2.1.4 Rekeying
La definizione di ultimo elemento di TKIP, rekeying, non è ancora completa, ma
sostanzialmente esso consiste nella generazione di chiavi di cifratura ed intergità
nuove ogniqualvolta che queste vengono “consumate” dai diversi algoritmi TKIP.
L’architettura di rekey di 802.11i dipende da una gerarchia di tre chiavi: temporali, di
cifratura e master keys. Le master sono nella parte superiore della gerarchia ed
autorizzano tutte le chiavi del processo. Le chiavi di cifratura sono a metà della
gerarchia e vengono utilizzate per proteggere le chiavi temporali scambiate tra AP e
stazione mobile, infine le chiavi temporali occupano il livello più basso della gerarchia
e sono consumate da TKIP nelle procedure di privacy ed authentication.
2.2.1.5 Processo Completo
Ora che abbiamo visto tutte le componenti di TKIP, possiamo vedere come
collaborano con WEP per fornire la sicurezza. Quando una stazione fa uno scambio
iniziale con un'infrastruttura, usa il framework 802.1X (descritto nella prossima
sezione) per autenticare e derivare una chiave master nuova. La chiave master
rimane in uso fino a che non espiri o sia revocata. La chiave master è legata
direttamente allo step di autenticazione, e questa chiave autorizza implicitamente
tutte le chiavi successive e tutto il traffico proteggono. Dopo la stabilizzazione della
chiave master, l’authentication server distribuisce fresh keying material alla stazione
ed all’Access Point per derivare un primo insieme delle chiavi di cifratura. La chiave
master protegge lo scambio fra authentication server e la stazione. Il protocollo inoltre
fornisce a stazione ed AP i mezzi per aggiornarsi con chiavi di cifratura nuove dopo
ogni riassociazione. L’Access Point usa le chiavi di cifratura stabilite per proteggere le
chiavi temporali nuove che trasmette alla stazione. L’Access Point ripete un messaggio
di refresh key circa una volta ogni 216 pacchetti di dati, di modo che l'associazione
abbia sempre le chiavi ed associati packet sequence spaces concordanti con i
presupposti dell’algoritmo.
Quando la sicurezza è in uso, né l’Access Point né la stazione consentono il traffico
normale dei dati fino a che le chiavi temporali non sono stabilite. Una volta che questo
è compiuto, l’Access Point e la stazione possono usare le chiavi temporali per
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 33 di 82
proteggere i pacchetti usando TKIP ed entrambi scartano il traffico non protetto da
TKIP se ne ricevono.
Il processo di encapsulation di TKIP è semplice da descrivere.
Quando la stazione desidera trasmettere un MSDU (MAC Service Data Unit –
pacchetto intero), l’implementazione TKIP usa la chiave temporale Michael per
computare il MIC dei MAC address di destinazione e sorgente, così come per il payload
MSDU. TKIP appende il MIC al campo dati, estendendo il payload di dati del pacchetto
di 8 byte. In seguito 802.11 divide MSDU in frammenti MPDU. Una volta che ciò è
fatto, assegna ad ogni frammento un numero progressivo di pacchetto ed impiega la
key mixing function per generare una chiave di cifratura per-packet per ciascuno,
rappresentata come WEP IV e una chiave base. A questo punto, i restanti step sono
puro WEP, e sono effettuati in hardware. Il sistema computa e collega il campo dati
ICV (Intergrity Check Value) ad ogni frammento. La cifratura consuma l’IV e la chiave
base, cifra il campo dati, includendo MIC ed ICV, e codifica IV ed il key id dell'insieme
delle chiavi temporali nel campo di WEP IV, completando cosi il processo di
encapsulation. L'intero MPDU ora è protetto e pronto per essere trasmesso.
La Figura 2.4 descrive il processo.
Figura 2.4 – Processo di encapsulation di TKIP
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 34 di 82
2.2.2 Framework – 802.1X
802.1X è la specifica che descrive un framework architetturale per un meccanismo di
autorizzazione ed autenticazione basato su port access control.
802.1X è parte della famiglia di standard per local e metropolitan area network ed è
stato adottato da IEEE 802.11 Task Group “i” come base per il nuovo modello di
sicurezza di Wi-Fi. 802.1X è basato su Extensible Authentication Protocol (EAP). EAP
permette agli amministratori di rete di scegliere fra parecchi metodi di autenticazione
in base alle esigenze del loro ambiente.
La figura 2.4 mostra uno schema semplice di architettura 802.1X.
Figura 2.5 – L’architettura 802.1X
Per garantire autenticazione e autorizzazione, 802.1X fornisce le seguenti specifiche:
• Come funziona il meccanismo di access control
• Livelli di access control supportati ed il port behavior ad ogni livello
• Requisiti per il protocollo tra supplicant ed authenticator
• Requisiti per il protocollo tra authenticator ed authenticator server
• Come l'autenticazione e l'autorizzazione sono usate supportare il network
access control
• Codifiche di Protocol Data Units (PDUs) utilizzate nello scambio di informazioni
tra protocolli di autenticazione e autorizzazione
• Requisiti per la gestione dell’access control port-based
• Requisiti per gestione remota usando SMT (Station Management)
• Requisiti di conformità allo standard 802.1X da parte dell’apparecchiatura usata
2.2.2.1
Port-Based Network Access Control
802.1X controlla gli accessi ad una rete limitando i servizi che un client (ad es. un
notebook computer) può accedere da un altro sistema (ad es. un AP) attraverso la
porta specifica. In questo contesto, una porta è un punto di collegamento alla LAN.
Nelle reti wired, un esempio di porta sono le porte fisiche di un router. In una rete
wireless, un esempio di una porta è una “associazione” tra una stazione (notebook) ed
un AP. Esempi di servizi che possono essere ristretti attraverso un access control portbased includono le funzioni di routing nel network layer e l’accesso al DHCP server.
Controllando tali funzioni, un dispositivo collegato ad una porta specifica può essere
limitato a servizi che effettuano solo autenticazione ed autorizzazione. Una volta che il
dispositivo/utente è stato autenticato, la porta può essere abilitata per avere accesso
ad altri servizi quali ad esempio l’accesso alla rete Internet.
La Figura 2.5 illustra un accesso port-based.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 35 di 82
Figura 2.6 – 802.1X port-based access control
2.2.3 Authentication Framework - EAP
Extensible Authentication Protocol (EAP) è un framework generico di autenticazione
che, come suggerisce il nome, supporta un'ampia varietà di protocolli di
autenticazione. La Figura 2.6 mostra un diagramma a blocchi del framework EAP.
EAP è stato sviluppato originariamente per l’uso in PPTP (Point-to-Point Tunneling
Protocol) ed è attualmente usato da 802.1X come parte del meccanismo di controllo di
accesso per le reti wireless, ovvero EAP può essere utilizzato su un’ampia varietà di
data links (802.3, 802.11, …).
Figura 2.7 –Il Framework EAP
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 36 di 82
Il metodo reale di autenticazione impiegato è determinato attraverso un processo di
negoziazione fra MS da autenticare ed il server di autenticazione. Nelle prossime
sezioni analizzeremo i diversi metodi di autenticazione supportati da EAP.
2.2.4 EAP Authentication Methods
Come citato precedentemente, EAP è framework che supporta un’ampia varietà di
protocolli di autenticazione. Il protocollo attuale di autenticazione da usare per
l’autenticazione è selezionato attraverso un processo di negoziazione tra mobile
station e AP. I dispositivi selezionano il metodo di autenticazione in base ai protocolli
che supportano ed alle politiche che possono essere configurate nel dispositivo da un
amministratore. Un esempio di una politica potrebbe essere la selezione di un
protocollo di autenticazione specifico per i collegamenti all'interno della rete aziendale,
ed un altro protocollo per i collegamenti fuori della rete aziendale.
Esistono diversi protocolli di autenticazione EAP, i più importanti sono: MD5, LEAP,
TLS, TTLS, e PEAP.
2.2.4.1 MD5 - Message Digest 5
MD5 è il più semplice dei metodi di autenticazione EAP, ma quando utilizzato su una
rete wireless è il meno sicuro. MD5 è un metodo di autenticazione unidirezionale di
supplicant (stazione mobile) alla rete (AP) che usa un hash della password e challenge
string per fornire prova di identità. Gli svantaggi principali di MD5 includono il
salvataggio della password in chiaro per l’authenticator ed il fatto di essere un metodo
di autenticazione unidirezionale. Inoltre, MD5 non fornisce key management, e quindi
esiste la possibilità che attackers sniffino la rete per rompere le chiavi.
2.2.4.2 LEAP – Lightweight EAP
LEAP è un metodo di autenticazione EAP sviluppato da Cisco System, che supporta
autenticazione reciproca. Esso utilizza l’username e la password della MS e le
credenziali dell’AP per l’autenticazione con i server RADIUS. Sull'autenticazione, LEAP
genera chiavi WEP one-time per uso di sessione. Usando LEAP, ogni utente connesso
alla rete wireless usa una chiave WEP univoca. Le chiavi di sessione possono essere
rinnovate utilizzando il timeout RADIUS, il quale causa il la necessità di ri-effettuare il
login da parte di un utente (re-login). I re-login possono avvenire senza l’intervento o
la conoscenza dell’utente.
La vulnerabilità di LEAP sta nell’uso di MS-CHAPv1 per l’autenticazione reciproca. MSCHAPv1 è risaputo essere vulnerabile ad attacchi. Lo svantaggio di LEAP è che
funziona end-to-end solo su reti Cisco-based.
2.2.4.3 TLS - Transport Level Security
TLS è un metodo di autenticazione IETF (Internet Engineering Task Force)
standardizzato che utilizza i certificati X.509 per fornire autenticazione reciproca. La
generazione del TLS, la distribuzione e l'amministrazione generale dei certificati
richiede una Public Key Infrastructure (PKI). Per trasmettere informazioni di PKI, TLS
si appoggia su Secure Sockets Layer (SSL).
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 37 di 82
TLS genera per le chiavi di sessione WEP e provvede alla re-autenticazione della MS
ed al re-keying senza intervento dell'utente.
Lo svantaggio principale di TLS sta nel fatto che il client deve avere un certificato.
Gestire certificati per un largo numero di client può essere un task molto difficile, e
per questo motivo TLS non è molto usato in pratica.
2.2.4.4 TTLS – Tunneled TLS
TTLS, sponsorizzato da Funk Software, ed ora diventato uno standard IETF, è uno dei
due metodi (l’altro è PEAP analizzato nel prossimo paragrafo) sviluppato per
sormontare l’esigenza di TLS di avere certificati sul client. In TTLS, la mobile station si
identifica con username/password mentre l’AP continua ad utilizzare certificati come in
TLS. TTLS è in grado di trasmettere credenziali (username/password) in maniera
sicura utilizzando un tunnel SSL stabilito tra il client ed l’authentication server. In
quanto utilizza questo tunnel sicuro, TTLS è capace di supportare meccanismi multipli
di challenge-response (PAP, CHAP, MS-CHAPv1, MS-CHAPv2, PAP/Token Card or EAP).
TTLS implementa i differenti metodi di autenticazione scambiando “attribute-valuepairs” (AVPs) che è simile a ciò che è usato nel protocollo RADIUS. Un altro vantaggio
di TTLS rispetto TLS è che l’identità utente non è esposta agli attacker mentre queste
informazioni sono trasmesse al server sopra il tunnel sicuro stabilito. TTLS è
considerato molto sicuro, è stato implementato da parecchi vendor ed è ampiamente
schierato. Tuttavia, non è stato impiegato da tutti come metodo definitivo di
autenticazione 802.11. Il rivale principale delle TTLS è Protected EAP (PEAP) che verrà
discusso nella prossima sezione.
2.2.4.5 Protected EAP - PEAP
PEAP, sponsorizzato da Microsoft, Cisco, e RSN, è ora uno standard IETF, ed è uno dei
due metodi di autenticazione (l’atro è TTLS) sviluppato per sormontare l’esigenza di
TLS di avere certificati sul client.
In PEAP, come in TTLS, la mobile station si identifica con username/password mentre
l’AP continua ad utilizzare i certificati.
La differenza principale tra TTLS e PEAP è che PEAP utilizza il client-to-RADIUS tunnel
per stabilire un secondo scambio EAP. Questo permette a PEAP di supportare tutti i
metodi di autenticazione di EAP.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 38 di 82
2.3
Wi-Fi Protected Access (WPA)
Mentre 802.11i risolveva tutti i problemi di sicurezza incontrati con WEP, il
completamento di queste nuove specifiche di sicurezza non rispondevano alle esigenze
di tempo nell'industria WLAN. La Wi-Fi Alliance, utilizzando le specifiche preliminari
per lo standard 802.11i, allora decise di sviluppare la specifica Wi-Fi Protected Access
(WPA) come soluzione ad interim.
WPA è un subset dello standard 802.11i, dal quale differisce soltanto per le specifiche
di Indipendent Basic Service Set, pre-authentication, e per l’algoritmo di cifratura.
Per cifrare, WPA supporta WEP con TKIP, entrambi implementabili in software e/o
firmware. Per l’autenticazione, WAP supporta due modi di funzionamento: Enterprise e
Pre-Shared Key (PSK). Il modo Enterprise richiede un server RADIUS, ovvero il
framework 802.1X, per l’autenticazione e la distribuzione della chiave. PSK è stato
introdotto come un mezzo di autenticazione in ambienti wireless ristretti (domestici,
piccoli hotspot, …) che non hanno a disposizione un server di autenticazione. In PSK
mode, la chiave pre-condivisa è usata solo per l’autenticazione e non per la cifratura
dei pacchetti.
Per la privacy dei dati, WPA utilizza TKIP. Le chiavi di sessione sono generate a partire
dalla chiave (master) pre-condivisa e rinnovata in maniera regolare per cercare di
evitare attacchi da parte di hackers. Per-packet keys a loro volta sono generate dalle
chiavi di sessione usando una funzione di mixing. Da settembre 2003, un dispositivo
per essere certificato Wi-Fi deve obbligatoriamente includere una implementazione
del protocollo WPA. Per l’integrità dei dati, WPA aggiunge un message integrità check
(MIC) chiamato Michael. Queste feature sono garantite grazie all’uso del protocollo
TKIP.
2.3.1 Benefici di WPA
WPA
•
•
•
•
ha parecchi benefici importanti rispetto a WEP:
Fornisce una sicurezza maggiore rispetto a WEP
Richiede di modificare solo il software/firmware
Fornisce una soluzione che può essere implementata con l’hardware esistente
Permette ai clients WEP-based di operare in reti miste WEP/WPA (tuttavia,
questo rischia di compromettere la sicurezza)
• Il supporto è o sarà al più presto integrato nella maggior parte dei sistemi
operativi. Il supporto per Microsoft Windows XP è disponibile da Giugno 2003.
2.3.2 WPA Deployment Issues
Alcune dei problemi più noti devono necessariamente essere considerati quando si
utilizza WPA includono:
• Necessità di upgrade del firmware negli AP e nelle stations.
• WPA non supporta la pre-autenticazione
• WPA non supporta il roaming e le stazioni devono essere riautenticate, quando
si muovono connettendosi tra diversi AP. Questo può richiedere qualche
secondo. I produttori cercano di supportare il roaming effettuando la cache
delle credenziali, ma questa soluzione non funziona correttamente con vendor
di hardware differenti.
• Richiede nuove capacità nel client (802.1X e WPA)
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 39 di 82
3.0 Advanced Encryption Standard
Advanced Encription Standard (AES), conosciuto anche come Rijndael, è un algoritmo
simmetrico di cifratura a blocchi utilizzato come standard dal governo USA per
proteggere dati sensibili.
L’algoritmo è stato sviluppato da due crittografi Belgi, John Daemen e Vincent Rijmen,
che lo hanno presentato al processo di selezione per l’AES con il nome di Rijndael.
A differenza del predecessore DES, Rijndael è una rete a sostituzione e permutazione,
non una rete di Feistel (struttura particolare in cui cifratura e decifratura sono
operazioni molto simili inventata da uno sviluppatore IBM).
AES è veloce sia sviluppato in software che in hardware, è relativamente semplice da
implementare, e richiede poca memoria.
Rijndael è un algoritmo di cifratura sviluppato sfruttando le migliori conoscenze della
crittografia, ed è ritenuto un algoritmo molto sicuro. AES è stato progettato per avere
un’elevata resistenza contro i classici attacchi, quali cripto-analisi lineare, criptoanalisi differenziale, …
Nelle sezioni successive verranno analizzati i concetti algebrici che stanno alla base
dell’algoritmo e verrà fornita una descrizione degli step necessari per implementare
l’algoritmo in software [1] [2] [3].
Nella parte finale del capitolo verrà presentata una implementazione efficiente di AES
[4] con le relative considerazioni sui limiti imposti dai dispositivi wireless, ovvero
limitata capacità di calcolo, dimensioni ridotte e batteria.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 40 di 82
3.1
Convenzioni
Iniziamo la descrizione dell’algoritmo AES con alcune considerazioni sulle convenzioni
adottate per la rappresentazione dei dati.
3.1.1 Input & Output
L’input, l’output e la chiave di cifratura di Rijndael sono sequenze contenenti 128, 192
o 256 bit, con il vincolo che le sequenze di input e output abbiano la stessa lunghezza.
In generale la lunghezza delle sequenze di input e output può essere uno dei tre valori
sopra elencati, ma per Advanced Encryption Standard (AES) l’unica lunghezza
permessa è di 128 bit. Tuttavia, entrambi, Rijndael e AES, permettono una chiave di
cifratura di tutte e tre le dimensioni.
I singoli bit all’interno di una sequenza sono enumerati partendo da zero e arrivando
fino a un unità meno della lunghezza della sequenza, ovvero il numero i associato con
un bit (il suo indice) quindi deve essere in uno dei tre ranges 0
i < 128, 0
i <
192 oppure 0
i < 256, in base alla sequenza in questione.
3.1.2 Bytes
Un byte in Rijndael è un gruppo di 8 bit ed è l’unità base per ogni operazione.
Tutti i bytes in Rijndael sono interpretati come elementi di un campo finito, utilizzando
la rappresentazione in cui ogni byte b con i bit b0 b1 … b7 rappresenta il polinomio,
ovvero in rappresentazione polinomiale:
b7x7+ b6x6+ b5x5+ b4x4+ b3x3+ b2x2+ b1x+ b0 = ∑ bixi
con 0
i
7
Il valori dei bytes saranno rappresentati in binario come concatenazione dei loro bits
(0 o 1) fra i loro sostegni. Quindi, {011000011} identifica un elemento specifico del
campo finito, in cui il bit di maggiore peso sta all’estrema sinistra.
E’ inoltre conveniente denotare il valore di un byte utilizzando una notazione
esadecimale, con ognuno dei due gruppi di quattro bits rappresentati da un carattere,
quindi ad esempio il valore {011000011} può essere scritto come {63}, dove il
carattere che denota il gruppo di 4-bit contenente i bit di maggiore peso sta ancora a
sinistra.
Alcune operazioni sui campi finiti coinvolgono un bit aggiuntivo, (b8) alla sinistra del
byte di 8-bit e dove questo extra bit è presente, esso appare immediatamente alla
sinistra del sostegno di sinistra, come ad esempio 1{1b}.
3.1.3 Array di Bytes
Tutte le sequenze di input, output e della chiave di cifratura sono rappresentati come
arrays di bytes mono-dimensionali, dove il byte n consiste nei bit da 8n a 8n+7 della
sequenza e con il bit 8n+i nella sequenza corrispondente al bit 7-i nel byte, con
0
i < 8. Per esempio una sequenza denotata dal simbolo a, l’ennesimo byte sarà
riferito utilizzando tutte e due le notazioni come an oppure a[n], dove n è in uno dei
tre ranges 0
n < 16, 0
n < 24 oppure 0
n < 32.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 41 di 82
3.1.4 Gli stati di Rijndael
Le operazioni interne di Rijndael sono compiute su array di bytes bidimensionali
chiamati state, che consistono in 4 righe di bytes, ognuna della quale contiene Nb
bytes, dove Nb è la sequenza di input divisa per 32. Nello state array denotato con il
simbolo s, ogni singolo byte ha due indici: il numero di riga r, nel range 0
r < 4, e il
suo numero di colonna c, nel range 0
c < Nb, in notazione compatta possiamo
dunque scrivere sr,c oppure s[r,c]. Per AES il range di c è 0
c < 4, in quanto Nb è
fisso ad un valore 4.
Alla partenza (fine) delle operazioni di cifratura o decifratura i bytes del cipher in input
(output) sono copiati sullo (dallo) state array come illustrato in Figura 3.1.
Cipher input bytes
in0
in4
in8
in12
…
in1
in5
in9
in13
…
in2
in6
in10
in14
…
in3
in7
in11
in15
…
Cipher state array
à
s0,0
s0,1
s0,2
s0,3
…
s1,0
s1,1
s1,2
s1,3
…
s2,0
s2,1
s2,2
s2,3
…
s3,0
s3,1
s3,2
s3,3
…
Cipher output bytes
à
out0
out4
out8
out12
…
out1
out5
out9
out13
…
out2
out6
out10
out14
…
out3
out7
out11
out15
…
Figura 3.1 - L’input sullo state array e l’output da esso
Dunque alla partenza della cifratura o decifratura, l’input array in è copiato sullo state
array secondo lo schema:
s[r,c]= in[r+4c]
con 0
r<4e0
c < Nb
e quando la cifratura è completa, lo state è copiato sull’output array out secondo lo
schema:
out[r+4c]= s[r,c]
con 0
r<4e0
c < Nb
3.1.5 Array di parole a 32-bit
I quattro bytes in ogni colonna dello state array possono essere considerati sia come
un array di quattro bytes indicizzati con il numero di riga r oppure come una singola
parola a 32-bit.
Lo state può dunque essere considerato come un array mono-dimensionale di parole
per il quale il numero della colonna c fornisce l’indice dell’array.
Il key schedule per Rijndael (donato con w) è un array di parole a 32-bit che è
inizializzato con la chiave di cifratura nell’ordine dettato dall’indice r, cosi che il byte
4n+r della chiave di cifratura è copiato all’interno del byte r del key schedule word
w[n]. La cifratura itera attraverso una serie di cicli ognuno dei quali utilizza Nk parole
da questo key schedule. In ultimo, può dunque essere considerato come un array di
round keys, ognuna contenente Nk parole.
Il key schedule sarà approfondito nelle sezioni successive.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 42 di 82
3.2
Operazioni su campi finiti
In questa sezione analizzeremo l’algebra dei campi finiti utilizzata da Rijndael.
3.2.1 Addizione su campi finiti
L’addizione tra due elementi di un campo finito è effettuata sommando i coefficienti a
pari potenza nella rappresentazione polinomiale. Questa operazione è effettuata in
GF(2), ovvero, in modulo 2, dove 1+1=0. Conseguentemente, addizione e sottrazione
sono equivalenti ad un or-esclusivo su bytes che rappresentano gli elementi del
campo. L’operazione di addizione per un elemento di un campo finito è denotata con il
simbolo ⊕. Ad esempio, la seguenti espressioni sono equivalenti:
(x6 + x4 + x2 + x +1) + (x7 + x +1) = x7 + x6 + x4 + x2
{01010111} ⊕ {10000011} = {11010100}
{57} ⊕ {83} = {d4}
(notazione polinomiale)
(notazione binaria)
(notazione esadecimale)
3.2.2 Moltiplicazione su campi finiti
La moltiplicazione su un campo finito è più complessa che un’addizione, ed è ottenuta
moltiplicando i due polinomi per i due elementi interessati e raccogliendo a pari
esponente di x nel risultato. In quanto ogni polinomio può avere una potenza inferiore
a 7, il risultato può avere al massimo una potenza di 14, ciò significa che non è
possibile utilizzare un singolo byte.
Questa situazione è gestita rimpiazzando il risultato con il polinomio resto dopo la
divisione per uno speciale polinomio irriducibile di ordine 8. Un polinomio si dice
irriducibile se non ha altri divisori oltre uno e se stesso.
Per Rijndael il polinomio irriducibile è chiamato m(x) ed è definito come:
m(x)=x8 + x4 + x3 + x + 1
Poiché questo polinomio ha una potenza di x fino ad un massimo di 8, non può essere
rappresentato da un singolo byte. Come indicato precedentemente, questo verrà
scritto come 1{00011011} oppure come 1{1b}.
Per esempio, utilizzando il simbolo • per rappresentare la moltiplicazione in un campo
finito, il prodotto {57} • {83} procede come segue:
(x6
(x6
(x6
(x6
+
+
+
+
x4
x4
x4
x4
+
+
+
+
x2
x2
x2
x2
+
+
+
+
x
x
x
x
+1) • (x7 + x +1) à
+1) • x7 =
x13 + x11 + x9 + x8 + x7 +
+1) • x =
x7
+x5
+ x3 + x2 + x
6
4
+1)
=
x
+x
+ x2 + x + 1
____________________________________________________
x13 + x11 + x9 + x8
+ x6 + x5 + x4 + x3
+1
Questo risultato intermedio è diviso per m(x):
8
4
3
5
(x + x + x + x + 1) • x =
Sottrai per avere il resto intermedio
(x8 + x4 + x3 + x + 1) • x3 =
Sottrai per avere il resto finale
x13 + x11 + x9 + x8
+ x6 + x5 + x4 + x3
+1
13
9
8
x
+x +x
+ x6 + x5
____________________________________________________
x11
+ x4 + x3
+1
x11
+ x7 + x6
+ x4 + x3
____________________________________________________
x7 + x6
+1
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 43 di 82
quale fornisce come risultato {11000001} ovvero {c1}.
La moltiplicazione definita sopra è associativa, e esiste un elemento neutro {01}; per
qualsiasi polinomio binario b(x) di grado inferiore di 8, l’algoritmo esteso di Euclide
può essere utilizzato per computare i polinomi a(x) e c(x), tale che:
b(x) • a(x) ⊕ m(x) • c(x) = 1
a(x) • b(x) mod m(x) = 1
quale indica che i polinomi a(x) e b(x) sono inversi reciproci. Ancora:
a(x) • (b(x) ⊕ c(x)) = a(x) • b(x) ⊕ a(x) • c(x)
Quindi, segue che l’insieme di 256 valori di byte, con lo XOR come addizione e la
moltiplicazione come definita sopra, ha la struttura del campo finito GF(256).
3.2.3 Moltiplicazione tramite repeated shifts
L’elemento del campo finito {00000010} è il polinomio x, che significa che
moltiplicando un altro elemento per questo le sue potenze di x aumentano tutte di 1.
Questo è equivalente a shiftare la sua rappresentazione in byte di un bit cosicché il bit
in posizione i si sposti in posizione i+1. Se il bit superire è settato prima di questo
movimento, verrà generato un termine x8, ed allora il polinomio modulare sarà
sommato per annullare questo bit supplementare ed avere un risultato che “entra” in
un byte.
Ad esempio, quando {11001000} è moltiplicato per x, {00000010}, il risultato iniziale
è 1{10010000}. Il bit di overflow è rimosso sommando il polinomio modulare,
1{00011011}, utilizzando un operazione exclusive-or per avere il risultato finale
{10001011}.
Ripetendo questo processo, un elemento di un campo finito può essere moltiplicato
per tutte le potenze di x che vanno da 0 fino a 7. La moltiplicazione di questo
elemento per un altro elemento del campo finito può quindi essere ottenuta
sommando i risultati per un appropriata potenza di x. Ad esempio, la Tabella 3.1
mostra questi calcoli per il prodotto degli elementi del campo {57} e {83} per dare
{c1}, ovvero moltiplica {01010111} • {10000011} per dare {11000001}, oppure in
notazione polinomiale moltiplica (x6 + x4 + x2 + x +1) • (x7 + x +1) per dare x7 + x6
+ 1. Se consideriamo la riga con n=1, abbiamo che:
1. {57} • x = {10101110}
2. Non è necessario fare lo XOR con m(x)
3. Siccome esiste un elemento di {83} con potenza di x pari a 1, viene tenuto il
risultato {10101110}
4. Viene effettuato lo XOR tra {10101110} ed il risultato della precedente
iterazione, quindi: {10101110} ⊕ {01010111} = {11111001} e si ottiene il
risultato dell’iterazione attuale.
Il procedimento continua fino a n=7.
n
{57} • xn
0
{01010111}
1
{10101110}
2
1{01011100}
3
{10001110}
⊕ m(x)
1{00011011}
{83}
⊕ to result
result
{01010111}
1
{01010111}
{01010111}
{10101110}
1
{10101110}
{11111001}
{01000111}
0
{10001110}
0
{57} • xn
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 44 di 82
4
1{00011100}
{00000111}
0
5
{00001110}
1{00011011}
{00001110}
0
6
{00011100}
{00011100}
0
7
{00111000}
{00111000}
1
{00111000}
{11000001}
Tabella 3.1 – Moltiplicazione {57} • {83}
3.2.4 Moltiplicazione su campi finiti tramite tabelle
Quando determinati elementi del campo finito (conosciuti come generatori) sono
moltiplicati ripetutamente per elaborare una lista delle loro potenze, gn, generano
progressivamente tutti e 255 elementi non-zero del campo. Quando la n raggiunge
256 l'elemento originale del campo ricorre con g255 quindi che è uguale a {01}.
I valori di n per ogni elemento del campo possono pensarsi come logaritmi e ciò
fornisce un modo per convertire la moltiplicazione in somma. Quindi i due elementi a
= gα e b = gβ hanno come prodotto a • b = gα+β .
Con una tabella “logaritmica” che mostra le potenze del generatore per ogni elemento
del campo finito, è possibile quindi determinare le potenze α e β corrispondenti agli
elementi a e b e sommare questi due valori per trovare la potenza di g per il risultato.
Una tabella di inversione può essere utilizzata per determinare gli elementi del
prodotto.
Poiché i due valori iniziali di potenza sono alti quanto 255, la loro somma potrebbe
essere più grande di 255, ma se questo accade è possibile sottrarre 255 dal valore per
arrivare nel range delle tabelle perché g255 = {01}. Anche se fino ad ora sono stati
utilizzati esponenti decimali in questa spiegazione, tutti gli esponenti in ciò che segue
sono esadecimale.
N(xy)
x
0
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
Y
0
64
7d
65
96
66
7e
2b
af
2c
7f
cc
97
53
44
67
1
00
04
c2
2f
8f
dd
6e
79
58
d7
0c
bb
b2
39
11
4a
2
19
e0
1d
8a
db
fd
48
0a
a8
75
f6
3e
87
84
92
ed
3
01
0e
b5
05
bd
30
c3
15
50
7a
6f
5a
90
3c
d9
de
4
32
34
f9
21
36
bf
a3
9b
f4
eb
17
fb
61
41
23
c5
5
02
8d
b9
0f
d0
06
b6
9f
ea
16
c4
60
be
a2
20
31
6
1a
81
27
e1
ce
8b
1e
5e
d6
0b
49
b1
dc
6d
2e
fe
7
c6
ef
6a
24
94
62
42
ca
74
f5
ec
86
fc
47
89
18
8
4b
4c
4d
12
13
b3
3a
4e
4f
59
d8
3b
bc
14
b4
0d
9
c7
71
e4
f0
5c
25
6b
d4
ae
cb
43
52
95
2a
7c
63
a
1b
08
a6
82
d2
e2
28
ac
e9
5f
1f
a1
cf
9e
b8
8c
b
68
c8
72
45
f1
98
54
e5
d5
b0
2d
6c
cd
5d
26
80
c
33
f8
9a
35
40
22
fa
f3
e7
9c
a4
aa
37
56
77
c0
d
ee
69
c9
93
46
88
85
73
e6
a9
76
55
3f
f2
99
f7
e
df
1c
09
da
83
91
3d
a7
ad
51
7b
29
5b
d3
e3
70
f
03
c1
78
8e
38
10
ba
57
e8
a0
b7
9d
d1
ab
a5
07
Tabella 3.2 – N tale che {xy} = {03}N per un elemento {xy} del campo finito
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 45 di 82
E(xy)
x
0
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
y
0
01
5f
e5
53
4c
83
b5
fe
fb
c3
9f
9b
fc
45
12
39
1
03
e1
34
f5
d4
9e
c4
19
16
5e
ba
b6
1f
cf
36
4b
2
05
38
5c
04
67
b9
57
2b
3a
e2
d5
c1
21
4a
5a
dd
3
0f
48
e4
0c
a9
d0
f9
7d
4e
3d
64
58
63
de
ee
7c
4
11
d8
37
14
e0
6b
10
87
d2
47
ac
e8
a5
79
29
84
5
33
73
59
3c
3b
bd
30
92
6d
c9
ef
23
f4
8b
7b
97
6
55
95
eb
44
4d
dc
50
ad
b7
40
2a
65
07
86
8d
a2
7
ff
a4
26
cc
d7
7f
f0
ec
c2
c0
7e
af
09
91
8c
fd
8
1a
f7
6a
4f
62
81
0b
2f
5d
5b
82
ea
1b
a8
8f
1c
9
2e
02
be
d1
a6
98
1d
71
e7
ed
9d
25
2d
e3
8a
24
a
72
06
d9
68
f1
b3
27
93
32
2c
bc
6f
77
3e
85
6c
b
96
0a
70
b8
08
ce
69
ae
56
74
df
b1
99
42
94
b4
c
a1
1e
90
d3
18
49
bb
e9
fa
9c
7a
c8
b0
c6
a7
c7
d
f8
22
ab
6e
28
db
d6
20
15
bf
8e
43
cb
51
f2
52
e
13
66
e6
b2
78
76
61
60
3f
da
89
c5
46
f3
0d
f6
f
35
aa
31
cd
88
9a
a3
a0
41
75
80
54
ca
0e
17
01
Tabella 3.3 – Data una potenza (xy), l’elemento {E} del campo tali che {E} = {03}(xy)
Per i campi utilizzati con Rijndael {03} è il generatore che produce la Tabella 3.2 e la
Tabella 3.3. Utilizzando l’esempio precedente, la Tabella 3.2 mostra che
{57}={03}(62) e che {83}={03}(50), dove l’esponente è rappresentato in esadecimale.
Questo da come risultato {57} • {83} = {03}(62)+(50) e siccome (62)+(50)=(b2) in
esadecimale, la Tabella 3.3 da come risultato {c1}, come prima. Queste tabelle
possono inoltre essere utilizzate per determinare l’inverso di un elemento del campo
in quanto g(x) ha un inverso rappresentato da g(ff) – (x) . Dunque l’elemento {af} =
{03}(b7) ha come inverso g(ff) – (b7) = g(48) = {62}.
Tutti gli elementi, eccetto {00}, ammettono inverso.
3.2.5 Polinomi con coefficienti in GF(28)
I polinomi possono essere definiti con i coefficienti in GF(28). In questo modo, un
vettore di 4-byte corrisponde ad un polinomio di grado inferiore a 4.
I polinomi con quattro termini possono essere definiti con coefficienti che sono
elementi del campo finito come:
a(x) = a3 x3 + a2 x2 + a1 x + a0
dove i quattro coefficienti sono denotati come una parola nella forma [a0 , a1 , a2 , a3]
(nota che gli indici crescono da sinistra a destra in questa notazione).
Con un secondo polinomio:
b(x) = b3 x3 + b2 x2 + b1 x + b0
l’addizione può essere effettuata sommando i coefficienti del campo finito a parità di
potenza di x, che corrisponde ad una operazione di XOR tra i bytes corrispondenti in
ciascuna delle parole o uno XOR dei valori completi di parola (nota che la variabile x
qui non è la stessa utilizzata precedentemente nella definizione di un elemento singolo
del campo finito).
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 46 di 82
La moltiplicazione è realizzata algebricamente espandendo il prodotto polinomiale e
raccogliendo a pari potenza di x per avere:
c(x) = c6 x6 + c5 x5 + c4 x4 + c3 x3 + c2 x2 + c1 x + c0
dove:
c0
c1
c2
c3
c4
c5
c6
=
=
=
=
=
=
=
a0
a1
a2
a3
a3
a3
a3
•
•
•
•
•
•
•
b0
b0
b0
b0
b1
b2
b3
⊕
⊕
⊕
⊕
⊕
a0
a1
a2
a2
a2
•
•
•
•
•
b1
b1 ⊕ a0 • b2
b1 ⊕ a1 • b2 ⊕ a0 • b3
b2 ⊕ a1 • b3
b3
e • e ⊕ sono la moltiplicazione su campi finiti e l’addizione (XOR) rispettivamente.
Questo risultato richiede sei bytes per rappresentare i suoi coefficienti, ma può essere
ridotto (modulo) in un polinomio di grado 4 per fornire un risultato che è di grado
inferiore a 4.
In Rijndael il polinomio utilizzato è M(x)=x4 + 1 e la riduzione produce i seguenti
coefficienti polinomiali:
d0
d1
d2
d3
=
=
=
=
a0
a1
a2
a3
•
•
•
•
b0
b0
b0
b0
⊕
⊕
⊕
⊕
a3
a0
a1
a2
•
•
•
•
b1
b1
b1
b1
⊕
⊕
⊕
⊕
a2
a3
a0
a1
•
•
•
•
b2
b2
b2
b2
⊕
⊕
⊕
⊕
a1
a2
a3
a0
•
•
•
•
b3
b3
b3
b3
Se uno dei polinomi è fissato, questo può convenientemente essere scritto in forma
matriciale:
In quanto x4 + 1 non è un polinomio irriducibile in GF(256), non tutte le
moltiplicazioni polinomiali sono invertibili. Per Rijndael è stato selezionato un
polinomio che ha inverso:
a(x) ={03} x3 + {01} x2 + {01} x + {02}
a- 1 (x) ={0b} x3 + {0d} x2 + {09} x + {0e}
Un altro polinomio che Rijndael utilizza ha a0 = a2 = a3 = {00} e a1 = {01}, ovvero è
il polinomio x. Un ispezione della forma matriciale precedentemente illustrata,
mostrerà che il suo effetto è quello di formare la parole di output ruotando i bytes
della parola di input cosicché [b0 b1 b2 b3] sarà trasformato in [b3 b2 b1 b0], con i byte
che si muovono verso le posizioni più alte ed il byte superiore che sposta (ruotando)
nella posizione più bassa. Le più alte potenze della x corrispondono alle altre
permutazioni cicliche dei quattro byte all'interno della parola. La funzione RotWord che
è utilizzata nel key schedule corrisponde a x3.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 47 di 82
3.3
Descrizione dell’algoritmo
Alla partenza della cifratura, l’input è copiato nello stato interno utilizzando le
convenzioni precedentemente esposte. Una round key iniziale è sommata e lo state è
trasformato iterando una round function in un certo numero di cicli. Al completamento
il final state è copiato nell’ output utilizzando le stesse convenzioni.
La round function è parametrizzata utilizzando un key schedule, che consiste in un
array monodimensionale di parole a 32-bit per cui le parole basse 4, 6 o 8 sono
inizializzate con la chiave di cifratura utilizzando la convenzione utilizzata nella sezione
3.1.3. In generale, la lunghezza dell’input, dell’output e dello state, misurato in
multipli di 32 bits (Nb) è 4, 6 o 8 ma AES utilizza soltanto la lunghezza 4.
Le lunghezze della chiave di cifratura, misurate in multipli di 32 (Nk), sono anch’esse
di 4, 6 o 8, tutte e tre autorizzate sia da AES che da Rijndael.
La cifratura è descritta nello pseudo codice sottostante.
Le singole trasformazioni ed il key schedule sono descritti nelle prossime sezioni.
Cipher(byte in[4 * Nb], byte out[4 * Nb], word w[Nb * (Nr + 1)])
begin
byte state[4,Nb]
state = in
AddRoundKey(state, w)
for round = 1 step 1 to Nr 1
SubBytes(state)
ShiftRow(state)
MixColumns(state)
AddRoundKey(state, w + round * Nb)
end for
SubBytes(state)
ShiftRow(state)
AddRoundKey(state, w + Nr * Nb)
out = state
end
Il numero di cicli per la cifratura (Nr) varia con la lunghezza del blocco e della chiave
come mostrato nella seguente Tabella 3.4.
4
4
10
Nb
6
12
8
14
6
8
12
14
12
14
14
14
Nr
Tabella 3.4 – Numero di cicli in funzione del block size e key size
Per cifrare, ogni ciclo dell'AES (eccetto l'ultimo) consiste nei seguenti quattro
passaggi:
• SubBytes — Sostituzione non lineare di tutti i byte che vengono cambiati
secondo una specifica tabella.
• ShiftRows — Spostamento dei byte di un certo numero di posizioni in maniera
dipendente dalla riga di appartenenza
• MixColumns — Combinazione dei byte con un operazione lineare, i byte
vengono trattati una colonna per volta.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 48 di 82
•
AddRoundKey — Ogni byte della tabella viene combinato con la chiave di
sessione, la chiave di sessione viene calcolata dal gestore delle chiavi.
L'ultimo round salta il MixColumns.
In seguito analizzeremo in dettaglio i quattro passaggi compiuti in ogni round.
3.3.1 SubBytes
La trasformazione SubBytes è una sostituzione non lineare che agisce sul singolo byte
della state matrix per produrre un nuovo valore di byte utilizzando una tabella di
sostituzione chiamata S-box. Questa trasformazione è illustrata nella Figura 3.2.
s0,0 s0,1 s0,2 s0,3 s0,4 s0,5
s1,0 s1,1 s1,2
s1,4 s1,5
Sr,c
s2,0 s2,1 s2,2 s2,3 s2,4 s2,5
s3,0 s3,1 s3,2 s3,3 s3,4 s3,5
Trasformazione
Sub Bytes
s0,0 s0,1 s0,2 s0,3 s0,4 s0,5
s1,0 s1,1 s1,2
s1,4 s1,5
Sr,c
s2,0 s2,1 s2,2 s2,3 s2,4 s2,5
s3,0 s3,1 s3,2 s3,3 s3,4 s3,5
Figura 3.2 – La trasformazione SubBytes
Questa sostituzione invertibile, è costruita componendo due trasformazioni:
1. L’inverso moltiplicativo nel campo finito come descritto in precedenza, con
l’elemento {00} mappato su se stesso.
2. La trasformazione affine su GF(2) definita da:
bi’ = bi ⊕ b(i+4)mod8 ⊕ b(i+5)mod8 ⊕ b(i+6)mod8 ⊕ b(i+7)mod8 ⊕ ci
per 0
i < 8 dove bi è il bit i del byte, e ci è il bit i di un byte c con valore {63} o
{01100011}. In forma matriciale la trasformazione affine di questa S-box può
essere espressa con la seguente matrice:
La trasformazione completa è fornita dalla seguente tabella.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 49 di 82
hex
x
0
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
y
0
63
ca
b7
04
09
53
d0
51
cd
60
e0
e7
ba
70
e1
8c
1
7c
82
fd
c7
83
d1
ef
a3
0c
81
32
c8
78
3e
f8
a1
2
77
c9
93
23
2c
00
aa
40
13
4f
3a
37
25
b5
98
89
3
7b
7d
26
c3
1a
ed
fb
8f
ec
dc
0a
6d
2e
66
11
0d
4
f2
fa
36
18
1b
20
43
92
5f
22
49
8d
1c
48
69
bf
5
6b
59
3f
96
6e
fc
4d
9d
97
2a
06
d5
a6
03
d9
e6
6
6f
47
f7
05
5a
b1
33
38
44
90
24
4e
b4
f6
8e
42
7
c5
f0
cc
9a
a0
5b
85
f5
17
88
5c
a9
c6
0e
94
68
8
30
ad
34
07
52
6a
45
bc
c4
46
c2
6c
e8
61
9b
41
9
01
d4
a5
12
3b
cb
f9
b6
a7
ee
d3
56
dd
35
1e
99
a
67
a2
e5
80
d6
be
02
da
7e
b8
ac
f4
74
57
87
2d
b
2b
af
f1
e2
b3
39
7f
21
3d
14
62
ea
1f
b9
e9
0f
c
fe
9c
71
eb
29
4a
50
10
64
de
91
65
4b
86
ce
b0
d
d7
a4
d8
27
e3
4c
3c
ff
5d
5e
95
7a
bd
c1
55
54
e
ab
72
31
b2
2f
58
9f
f3
19
0b
e4
ae
8b
1d
28
bb
f
76
c0
15
75
84
cf
a8
d2
73
db
79
08
8a
9e
df
16
Tabella 3.5 – La substitution table – Sbox [xy] (in esadecimale)
Lo pseudo codice per questa trasformazione:
SubBytes(byte state[4,Nb])
begin
for r = 0 step 1 to 3
for c = 0 step 1 to Nb - 1
state[r,c] = Sbox[state[r,c]]
end for
end for
end
3.3.2 ShiftRows
La trasformazione ShiftRows opera individualmente su ognuna delle ultime tre righe
della state matrix, shiftando ciclicamente i bytes nella riga cosicché:
s’r,c = sr, (c+h[r, Nb])modNb per 0
c < Nb e 0 < r < 4
dove lo shift h[r, Nb] dipende dal numero di riga (r) e dalla dimensione del blocco nel
modo seguente:
h[r, Nb]
Nb
row (r)
1
2
3
4
1
2
3
6
8
1
1
2
3
3
4
Tabella 3.6 – Shift Offset per differenti block lenghts (Nb) e righe (r)
Questo ha l’effetto di spostare i bytes verso le posizioni di indice più basso della riga
eccetto quelli che appartengono ad un indice inferiore della riga stessa che vengono
riportati in posizione di indice superiore (nella parte superiore della riga). Questa
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 50 di 82
azione di trasformazione è illustrata nella Figura 3.3 per un cipher block di dimensione
6.
ShiftRows
s0,0 s0,1 s0,2 s0,3 s0,4 s0,5
s1,0
sS1,2
sS1,3
sr,4 sS1,5
Sr,0 Ss1,1
r,1
r,2
r,3 S1,4
r,5
1. Non cambia
s0,0 s0,1 s0,2 s0,3 s0,4 s0,5
2. ß Shift 1
s1,1
sr,4
s1,5
1,0 S
1,4 S
Ssr,0
Ss1,2
S1,3
r,1
r,2 s
r,3 S
r,5
s2,0 s2,1 s2,2 s2,3 s2,4 s2,5
3. ß Shift 2
s2,0 s2,1 s2,2 s2,3 s2,4 s2,5
s3,0 s3,1 s3,2 s3,3 s3,4 s3,5
4. ß Shift 3
s3,0 s3,1 s3,2 s3,3 s3,4 s3,5
Figura 3.3 – ShiftRows agisce indipendentemente sulle righe della state matrix
Lo pseudo codice per questa trasformazione è il seguente:
ShiftRow(byte state[4,Nb])
begin
byte t[Nb]
for r = 1 step 1 to 3
for c = 0 step 1 to Nb - 1
t[c] = state[r, (c + h[r,Nb]) mod Nb]
end for
for c = 0 step 1 to Nb 1
state[r,c] = t[c]
end for
end for
end
3.3.3 MixColumns
La trasformazione MixColumns agisce indipendentemente su ogni colonna della state
matrix e tratta ogni colonna come un polinomio a quattro termini come descritto nelle
sezioni precedenti.
Nella forma matriciale la trasformazione utilizzata è illustrata dalla equazione
sottostante, dove tutti i valori sono elementi del campo finito come discusso nella
sezione 3.2.
per 0
c < Nb
Questa trasformazione è illustrata in Figura 3.4 per un cipher block di 6.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 51 di 82
s0,0 s0,1 s0,2 S0,c
s0,3 s0,4 s0,5
s1,0 s1,1 s1,2 S1,c
s1,3 s1,4 s1,4
s2,0 s2,1
S
0,c
s0,0 s0,1 s0,2 s0,3 s0,4 s0,5
s1,0 s1,1 s1,2 S1,c
s1,3 s1,4 s1,4
Trasformazione
Mix Columns
s2,2 s2,3 s2,4 s2,5
S2,c
s2,0 s2,1 s2,2 S2,c
s2,3 s2,4 s2,5
s3,0 s3,1 s3,2 s3,3 s3,4 s3,5
s3,0 s3,1 s3,2 s3,3 s3,4 s3,5
S3,c
S3,c
Figura 3.4 – MixColumns agisce indipendentemente su ogni colonna della state matrix
Lo pseudo codice per questa trasformazione è il seguente, dove la funzione FFmul
(x,y) ritorna il prodotto di due elementi del campo finito x e y.
begin
byte t[4]
for c = 0 step 1 to Nb 1
for r = 0 step 1 to 3
t[r] = state[r,c]
end for
for r = 0 step 1 to 3
state[r,c] = FFmul(0x02, t[r]) xor
FFmul(0x03, t[(r + 1) mod 4]) xor
t[(r + 2) mod 4] xor t[(r + 3) mod 4]
end for
end for
end
3.3.4 AddRoundKey
Nella trasformazione AddRoundKey, Nb parole dal Key Scheduler (descritto di seguito)
sono sommate (XOR) nelle colonne della state matrix in modo che:
[ b’0c , b’1c , b’2c , b’3c ] = [ b0c , b1c , b2c , b3c ] ⊕ [wround * Nb+c] per 0
c < Nb
dove [wi] è la parola del key schedule e round è il numero di ciclo nel range 1
round < Nr. Il numero di ciclo parte a 1 perché c’è l'aggiunta di una chiave di iniziale
prima della round function.
l = round * Nb
s0,0
s0,1
s0,2 Ss0,c
0,3
s0,4
s0,5
s1,0
s1,1
s1,2 Ss1,c
1,3
s1,4
s1,4
s2,0
s2,1
s3,0
s3,1
s2,2
s3,2
s2,4 s2,5
2,3
Ss2,c
s3,3
S3,c
s3,4
s3,5
⊕
wl
wl+1
wl+2 wl+c
wl+3
wl+4
s0,0
s0,1
s0,2 Ss0,c
0,3
s0,4
s0,5
s1,0
s1,1
s1,2 Ss1,3
1,c
s1,4
s1,4
s2,0
s2,1
s2,2
s2,3
s2,4
s2,5
s3,0
s3,1
s3,2
s3,3
s3,4
s3,5
wl+5
S2,c
S3,c
Figura 3.5 - Le parole del key shedule sono in XOR con la colonna della state matrix
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 52 di 82
Questa trasformazione è illustrata in Figura 3.5 per un cipher block size di 6 (dove l=
round * Nb). Il byte address all’interno di ogni parola del key schedule è quello
descritto nella sezione 3.1.
Lo pseudo codice per questa trasformazione è la seguente, dove xbyte (r,w) estrae il
byte r dalla parola w.
AddRoundKey(byte state[4,Nb], word rk[]) // rk = w + round * Nb
begin
for c = 0 step 1 to Nb 1
for r = 0 step 1 to 3
state[r,c] = state[r,c] xor xbyte(r, rk[c])
end for
end for
end
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 53 di 82
3.4
Key Schedule
Le chiavi di round sono derivate dalla chiave di cifratura per mezzo di un key
schedule. Questo consiste fondamentalmente di due componenti: Key Expansion e
Round key selection. Il principio base è il seguente:
• Il numero totale dei bit della Round key è uguale alla lunghezza del blocco
moltiplicata per il numero di round più uno (ad esempio per un blocco di 128 bit
e 10 round, sono necessari 1048 Round key bit).
• La chiave di cifratura è espansa in una Expanded Key
• Le Round Key sono prese da questo Expnaded Key nel seguente modo: la prima
Round Key consiste nelle prime Nb parole, la seconda delle seguenti Nb parole,
e cosi via…
Il key schedule consiste in un array lineare di parole da 4-byte denotate con la lettera
wi o w[i] con i nel range 0
i < Nb(Nr+1).
L’espansione dell’input key nel key schedule procede in accordo con lo pseudo codice
seguente, dove la funzione SubWord(x) fornisce una parola di output, in cui la
sostituzione S-box è stata applicata individualmente a ciascuno dei quattro byte del
relativo input x.
La funzione RotWord(x) prende una parola [b0, b1, b2, b3] come input e ritorna una
parola [b1, b2, b3, b0].
L’array di parole Rcon[i] contiene i valori dati da [xi-1, 0, 0, 0] con xi-1 potenza di x nel
campo GF(256) (nota che i parte da 1, non da 0).
KeyExpansion(byte key[4 * Nk], word w[Nb * (Nr + 1)], Nk)
begin
i=0
while (i < Nk)
w[i] = word[ key[4*i], key[4*i+1], key[4*i+2], key[4*i+3] ]
i=i+1
end while
i = Nk
while (i < Nb * (Nr + 1))
word temp = w[i - 1]
if (i mod Nk = 0)
temp = SubWord(RotWord(temp)) xor Rcon[i / Nk]
else if ((Nk = 8) and (i mod Nk = 4))
temp = SubWord(temp)
end if
w[i] = w[i - Nk] xor temp
i=i+1
end while
end
Nota che questo key schedule, per Nk=4 e Nb=6 può essere generato ‘on-the-fly’ se
necessario, utilizzando un buffer di max(Nb, Nk) parole. Esso può inoltre essere diviso
in key schedules separati per Nk<8 e Nk=8 rispettivamente.
Figura 3.6 – Il key schedule ed il round key selection per Nk=4 e Nb=6
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 54 di 82
Dunque, la procedura di encryption di Rijndael consiste in un'applicazione iniziale
dell’operazione di AddRoundKey, seguita da (numero di cicli - 1) cicli e conclusa con
un ciclo finale.
La procedura di decryption di Rijndael funziona applicando l'inverso di tutte le
trasformazioni descritte precedentemente, nell'ordine inverso, per ritornare al
plaintext; per ulteriori dettagli si veda [1].
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 55 di 82
3.6
Implementazione software efficiente
Quando si implementa un algoritmo è importante considerare alcuni aspetti che vanno
al di fuori della specifica funzione che il sistema deve svolgere, in particolare, ed in
maniera fortemente dipendente dal contesto, è importante analizzare in dettaglio
l’efficienza.
In un contesto mobile, quale quello wireless, l’efficienza è cruciale per alcuni motivi.
In primo luogo, è necessario minimizzare il numero di istruzioni che il processore deve
svolgere per una data funzionalità perchè molto spesso i dispositivi mobili sono di
piccole dimensioni, e quindi la dissipazione che devono avere deve essere
proporzionata ai parametri fisici che li caratterizzano.
In secondo luogo, perché i dispositivi wireless funzionano spesso e volentieri a
batteria, quindi un elevato consumo di potenza causato da una mancata o poco curata
ottimizzazione, porterebbe ad avere una autonomia ridotta.
Altri aspetti da considerare sono la potenza di calcolo limitata dei dispositivi, la
memoria, ...
In seguito analizzeremo una implementazione ottimizzata dell’algoritmo AES [4],
focalizzando l’attenzione su due aspetti: ottimizzazione dell’algoritmo nella State
matrix e modifica del key schedule. In entrambi i casi, la linea base consiste nella
trasposizione della State matrix, e nella conseguente modifica del key schedule.
s12
s0
s1
s2
s3
s13
s4
s5
s6
s7
s2 s6 s10 s14
s8
s9
s10 s11
s3 s7 s11 s15
s12 s13 s14 s15
s0 s4
s8
s1 s5
s9
È possibile aumentare il throughput di una implementazione AES modificando il modo
in cui i dati vengono presentati al software. In particolare, le trasformazioni interne di
un ciclo possono essere implementate utilizzando delle tabelle di look-up. Una
possibile scelta è quella di tabulare soltanto la S-Box diretta ed inversa, calcolando
normalmente tutte le altre trasformazioni. In particolare, questo significa che
dobbiamo effettuare parecchie moltiplicazioni di GF soltanto per mezzo di tecniche
software. Come detto, tutte le primitive considerate si comportano in maniera
particolare operando sulla State matrix trasposta. Ciò implica che tutti gli step
dell’algoritmo devono essere modificati per preservare la funzionalità globale mentre
operano con la State matrix trasposta. In particolare:
La trasformazione SubBytes non viene modificata, perché come precedentemente
enunciato essa opera sul singolo bytes, indipendentemente dalla posizione sulla State
matrix.
La trasformazione ShiftRows non sposta affatto più lungamente le righe della State
matrix; invece, ora funziona nello stesso senso sulle colonne.
La trasformazione di AddRoundKey rimane pressoché immutata, poiché è costituita
da un semplice XOR bit a bit fra la State matrix e le chiavi di round. Naturalmente,
dobbiamo accertarci che le chiavi di round siano trasposte prima di essere impiegate.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 56 di 82
La trasformazione MixColums è profondamente rivista. Essa è accelerata grazie alla
trasposizione della State matrix.
Nel vecchio MixColumns, la trasformazione avveniva, come indicato precedentemente,
con un prodotto matriciale in GF(28) delle colonne della State matrix, ovvero:
s’0,c
02 03 01 01
s0,c
01 02 03 01
s1,c
s’2,c
01 01 02 03
s2,c
s’3,c
03 01 01 02
s3,c
s’1,c
=
I costi per ogni colonna per effettuare il MixColumns sono: un raddoppio, 4 addizioni
(XOR), e 3 rotazioni (tutte le operazioni lavorano in 32-bit).
s’0,c
s’1,c
s0,c
= 02
s1,c
s’2,c
s2,c
s’3,c
s3,c
s3,c
⊕ 03
s0,c
s1,c
s2,c
⊕
s2,c
s3,c
s0,c
s1,c
s1,c
⊕
s2,c
s3,c
s0,c
Per la MixColumns completa abbiamo invece 4 raddoppi, 16 addizioni e 12 rotazioni.
Ogni raddoppio significa 4 moltiplicazioni in GF(28) di ogni byte della parola a 32-bit.
Nella nuova e più efficiente versione di MixColumns, è possibile invece lavorare con la
State matrix trasposta, e quindi processare la State array per righe anziché per
colonne.
s'0 s'4
s’8
s’12
s’1 s'5
s’9
s’13
s’2 s’6 s’10
s’14
01 01 02 03
s’3 s’7 s’11
s’15
03 01 01 02
s'0 s'4 s’8 s’12
02 03 01 01
=
=
01 02 03 01
02 03 01 01
⊗
s0 s4
s8
s12
s1 s5
s9
s13
s2 s6 s10 s14
s3 s7 s11 s15
⊗
s0 s 4
s8
s12
s1 s5
s9
s13
s2 s6 s10 s14
s3 s7 s11 s15
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 57 di 82
La nuova trasformazione MixColumns allora diventa:
y0 = {02} * x0 ⊕ {03} * x1 ⊕ x2 ⊕ x3
y1 = x0 ⊕ {02} * x1 ⊕ {03} * x2 ⊕ x3
y2 = x0 ⊕ x1 ⊕ {02} * x2 ⊕ {03} * x3
y3 = {03} * x0 ⊕ x1 ⊕ x2 ⊕ {02} * x3
Dove, i simboli xi e yi (0
i
3) indicano le righe a 32-bit della State array prima e
dopo la nuova operazione di MixColumns rispettivamente. La parola a 32-bit xi
contiene 4 byte che vengono da 4 colonne differenti (similmente per yi). L’operazione
{02}* xi o raddoppio consiste di 4 moltiplicazioni in GF(28) di ogni byte della parola
32bits. Di conseguenza la trasformazione di MixColumns è computata in soli 3
passaggi: uno step di somma, uno step di raddoppio ed uno step finale di somma. La
Tabella 3.7 mostra i tre steps.
Primo
Secondo
Terzo
y0 = x1 ⊕ x2 ⊕ x3
x0 = 02
x0
y0 ⊕ = x0 ⊕ x1
y1 = x0 ⊕ x2 ⊕ x3
x1 = 02
x1
y1 ⊕ = x1 ⊕ x2
y2 = x0 ⊕ x1 ⊕ x3
x2 = 02
x2
y2 ⊕ = x2 ⊕ x3
x3 = 02
x3
y3 = x0 ⊕ x1 ⊕ x2
y3 ⊕= x0 ⊕ x3
Tabella 3.7 – Gli steps necessari per computare MixColumns
Comparando i costi abbiamo 4 raddoppi, 16 XOR, 12 rotazioni nella implementazione
standard, e 4 raddoppi, 16 XOR , nessuna rotazione e zero variabili intermedie,
ovvero la nuova implementazione migliora le performance.
Per la decifratura, viene utilizzata la trasformazione InvMixColumns, ovvero l’inversa
di MixColumns. Anche in questo caso la trasformazione può essere resa più efficiente
utilizzando la matrice trasposta. Inoltre, causa la complessa struttura dei coefficienti
della matrice di InvMixColumns, il miglioramento ottenuto è superiore a quello della
trasformazione diretta.
Come possiamo notare nella formula sottostante, i coefficienti della matrice di
InvMixColumns contengono un più grande numero di 1 che quelli della matrice di
MixColumns.
s'0,c
0e 0b 0d
09
s0,c
09 0e 0b
0d
s1,c
s’2,c
0d 09 0e
0b
s2,c
s’3,c
0b 01 09
0e
s3,c
s’1,c
=
Nel caso di InvMixColumns il metodo “double-and-add” può essere migliorato
considerando i valori particolari dei coefficienti costanti. Questi coefficienti sono usati
congiuntamente agli operandi x0 e x2 ha contenuti sia nella prima fila che nella terza
fila e congiuntamente agli operandi x1 e x3 contenuti sia nella seconda che nella
quarta fila. Per risparmiare l’operazione di raddoppio possiamo sommare queste due
coppie di operandi e salvare il risultato in x0 e x1 rispettivamente. Invece di computare
la sotto-espressione 04 * x0 ⊕ 04 * x2, possiamo calcolare la sotto-espressione 04 *
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 58 di 82
(x0 ⊕ x2), poiché non dobbiamo immagazzinare esclusivamente l’uno o l’altro
addendo. Quindi possiamo sommare i valori precedentemente computati x0 e x1, che
sono 04 * (x0 ⊕ x2) e 04 * (x1 ⊕ x3) rispettivamente, ed allora raddoppiarli, cosi da
ottenere la sotto-espressione 08*( x0 ⊕ x1 ⊕ x2 ⊕ x3), che deve essere accumulata in
ogni operando yi.
La nuova trasformazione InvMixColumns è mostrata nella formula sottostante.
s'0 s'4 s’8 s’12
=
0e 0b 0d 09
⊗
s 0 s4
s8
s12
s1 s5
s9
s13
s2 s6 s10 s14
s3 s7 s11 s15
L’uso della State matrix trasposta conduce dunque ad un miglioramento considerevole
delle prestazioni, in particolare si riduce il numero di operazioni elementari necessarie
per portare a termine il passo MixColumns ed il suo inverso InvMixColumns.
Confrontando l’implementazione efficiente con l’implementazione standard di AES, è
possibile notare che, nel passaggio di InvMixColumns, permette di ridurre il numero di
operazioni che è necessario compiere e consente di eliminare completamente il
numero di variabili intermedie.
Come mostra la Figura 3.7, l’implementazione standard (State matrix non trasposta)
necessita di 12 doubling, 32 somme, 12 rotazioni e 4 variabili intermedie per
InvMixColumns, mentre l’implementazione efficiente (con State matrix trasposta)
richiede soltanto 7 somme e 27 raddoppi, eliminando completamente le variabili
intermedie ed azzerando il numero di rotazioni.
35
30
25
numero 20
occorrenze 15
Efficiente
10
Standard
5
0
doubling
sums
rotations
variabili
intermedie
tipo parametro
Figura 3.7 – Confronto tra implementazioni AES per l’operazione di InvMixColumns
Generalizzando, è possibile affermare che l’implementazione [4] esposta lavora meglio
dell’implementazione standard di AES soprattutto nell’operazione di decifratura dei
dati.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 59 di 82
4.0 Protocolli Wireless basati su AES
In questo capitolo esamineremo tecniche AES-based per l’implementazione di
protocolli di sicurezza nelle reti wireless.
In primo luogo analizzeremo i modes of operation. L’algoritmo AES, come qualsiasi
block cipher, deve essere utilizzato con un modes of operation, ovvero un algoritmo
che impiega il cipher per produrre ciphertext partendo da plaintext, e viceversa.
I modes of operation analizzati nel seguente capitolo sono: Electronic Codebook (ECB)
mode, Counter (CTR) mode e Cipher-Block Chaining (CBC) mode.
In seguito analizzeremo i diversi 802.11 encapsulation data basati su AES, ovvero i
protocolli proposti per incapsulare i pacchetti (MPDU) o frammenti di pacchetto
(MSDU) nelle reti senza fili, utilizzando i diversi mode of operation.
Le soluzioni esaminate e confrontate secondo diversi parametri nel seguente capitolo
sono: AES-CCM e AES-OCB.
Concluderemo il capitolo con una descrizione di WPA2, il protocollo che si propone
come standard ufficiale per la sicurezza di IEEE 802.11.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 60 di 82
4.1
AES encapsulation data
4.1.1 Modes of operation
AES è cipher a blocchi a chiave simmetrica. Un cipher a chiave simmetrica utilizza la
stessa chiave per l’operazione di cifratura e decifratura. AES supporta chiavi da 128-,
192-, 256-bit.
Chiavi più lunghe possono assicurare maggiore sicurezza se propriamente utilizzate.
Attualmente si sostiene che chiavi da 128 bit garantiranno una sicurezza adeguata in
qualsiasi tipo di applicazione commerciale e privata per qualche decade, quindi il
supporto per le chiavi a 192 e 256 bit è destinato ad usi futuri, piuttosto che ad attuali
implementazioni pratiche.
Un block cipher opera su una stringa di bytes di dimensione fissa, mentre uno stream
cipher, come RC4 utilizzato in WEP, trasforma un singolo byte alla volta. Il numero di
bit in un blocco è detto cipher block size. AES utilizza blocchi da 128-bit, ovvero 16
bytes. Se i dati che devono essere protetti dal block cipher non sono multipli del block
size, allora si utilizza uno schema di padding (riempimento) prima di applicare
l’algoritmo ai dati.
Per utilizzare un block cipher si impiegano diversi mode of operation. Un mode of
operation è un algoritmo che utilizza il cipher per produrre ciphertext partendo da un
plaintext e viceversa. Alcuni esempi di mode of operation includono Electronic
Codebook (ECB) mode, Counter (CTR) mode, e Cipher-Block Chaining (CBC) mode.
E’ importante notare che la cifratura fornisce soltanto la privacy dei dati, in particolare
non fornisce alcuna protezione contro la modifica dei dati. Per garantire l’autenticità
dei dati è necessario utilizzare un meccanismo di autenticazione dei dati (ad es. MIC).
Ricordiamo inoltre che la letteratura denomina questi message authenitcation code, o
MACs, ma poiché IEEE 802 aveva già utilizzato l’acronimo MAC per identificare il
“Media Access Control", TGi decise di utilizzare l’acronimo MIC.
4.1.1.1 Electronic Codebook (ECB) mode
ECB mode è utilizzato nativamente dai block cipher. Per utilizzare questo modo di
funzionamento, si partiziona il messaggio M in blocchi M1 M2 …Mm e si cifrano uno alla
volta:
for i = 1 to n do Ci
EK(Mi)
dove Ek(.) denota la funzione di encryption con la chiave K. La sequenza di blocchi
risultante C1 C2 … Cm è il messaggio cifrato, dove ogni blocco è semplicemente il
corrispondente al blocco di plaintext cifrato con la chiave.
Il decryption è il processo inverso:
for i = 1 to n do Mi
DK(Ci)
dove Dk (.) denota il la funzione di decryption con la chiave K.
La Figura 4.1 mostra il funzionamento di ECB mode.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 61 di 82
Mi-1
Mi
Ek
Ci-1
Mi+1
Ci-1
Ci
Ci+1
Ek
Ek
Dk
Dk
Dk
Ci
Ci+1
Mi-1
(a) ECB encryption
Mi
Mi+1
(b) ECB decryption
Figura 4.1 – ECB mode
ECB mode è insicuro per stream di messaggi che potrebbero avere dati ripetuti, infatti
supponendo di avere due blocchi di dati identici M e N, allora si avrebbe che Ek (N) =
Ek (M). Cosi un protocollo basato su ECB pubblicherebbe quando due blocchi sono
identici o meno, e questo può essere di gran aiuto per un attacker.
Definiamo con perdita di funzionamento un parametro che tiene conto delle
informazioni che un attacker è in grado di ricavare grazie al funzionamento improprio
del modes of operation.
Le informazioni utili riguardo plaintext, ricavabili grazie alla perdita di funzionamento,
si possono ottenere molto più lentamente in altri mode of operation che in ECB mode.
Operation mode conosciuti fruiscono informazione al rate di O(q2/2b), dove q è il
numero totale di blocchi cifrati utilizzando la stessa chiave, e b è la dimensione del
blocco espressa in bit.
Ad esempio, il vecchio Data Encryption Standard (DES) usa b=64, mentre AES utilizza
b=128. Cosi DES perde tutta la sua sicurezza dopo che ha cifrato circa q=232 blocchi
utilizzando la stessa chiave, mentre i metodi AES sono sicuri fino a q=264 blocchi
cifrati con la stessa chiave. Poiché la degradazione è indipendente dalla lunghezza
della chiave, la lunghezza del blocco è un secondo parametro che interessa la
sicurezza. Una delle motivazioni principali considerate per la definizione AES, era che il
formato di blocco 64-bit usato da DES è troppo piccolo per fornire oggi una sicurezza
sufficiente.
4.1.1.2 Counter (CTR) mode
Sia Counter mode che CBC mode (presentato nel prossimo paragrafo) fuoriescono le
informazioni al rate di O(q2/2b), quindi sono modi pratici per implementare block
cipher. Entrambi funzionano utilizzando dati ausiliari per “randomizzare” l’operazione
di encryption, ovviando il problema di perdita di funzionamento che si presenta con il
ECB mode. Il Counter mode usa un counter incrementale per i dati ausiliari. Se
rappresentiamo ancora un messaggio M come dei blocchi M1 M2 …Mn, allora il Counter
mode può essere a descritto come:
when the key K is assigned, set counter
0
for each message M = M1 M2
Mn
initial-counter
counter
for i = 1 to n do Ci
Mi ⊕ EK(counter), counter
counter + 1
encrypted-message = initial-counter C1 C2
Cn
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 62 di 82
Ovvero, Counter mode cifra il counter, ed incrementa il valore dello stesso di uno per
ogni blocco cifrato. In seguito viene effettuato lo XOR tra il valore del counter cifrato
ed il plaintext, per produrre il ciphertext. L’encryptor appende all’inizio del blocco di
ciphertext il valore iniziale del counter, per dire al decryptor a che valore inizializzare il
counter. Il decryptor allora estrae così il plaintext:
for an encrypted message C = initial-counter C1 C2
Cn
counter
initial-counter
for i = 1 to n do Mi
Ci ⊕ DK(counter), counter
counter + 1
M = M1 M2
Mn
La Figura 4.2 mostra CTR mode, il simbolo T indica il counter, Mi indica il blocco del
messaggio, EK e DK le funzioni di encryption e decryption rispettivamente.
Figura 4.2 – CTR mode
E’ importante notare che il Counter mode fallisce catastroficamente se il valore del
counter è ripetuto con la stessa chiave. In pratica, questo significa che è rischioso
usare il Counter mode senza gestione della chiave per fornire una nuova chiave ad
ogni sessione.
4.1.1.3 Cipher-Block Chaining (CBC) mode
CBC mode è il mode of operation più utilizzato. CBC utilizza un vettore di
inizializzazione (IV) casuale per impedire la perdita di funzionamento. La cifratura di
CBC mode su un messaggio M può essere descritta come:
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 63 di 82
for each message M = M1 M2
Mn
IV
randomly selected value
initial-IV
IV
for i = 1 to n do Ci
EK(Mi ⊕IV), IV
encrypted-message = initial-IV C1 C2
Ci
Cn
Ovvero, CBC mode maschera il plaintext effettuando una operazione di XOR tra il
vettore di inizializzazione (IV) casualmente generato e il plaintext prima di essere
cifrato. Il valore cifrato risultante diventa l’IV da utilizzare nel passo successivo per
mascherare il plaintext successivo. CBC mode ripete questo procedimento per ogni
blocco di dati presente nel messaggio. E’ importante notare che CBC seleziona un IV
casuale ad ogni passo, e fallisce catastroficamente se ciò non avviene. L’encryptor
appende all’inizio del blocco di ciphertext il valore iniziale del IV, per comunicare al
decryptor a che valore inizializzare l’IV. Il decryptor allora estrae il plaintext con il
processo inverso:
for an encrypted message C = initial-IV C1 C2
IV
initial-IV
for i = 1 to n do Mi
IV ⊕ DK(Ci), IV
M = M1 M2
Cn
Ci
Mn
La Figura 4.3 mostra schematicamente CBC mode.
Mi-1
Mi
Mi+1
Ci-1
Ci
Ci+1
Dk
Dk
Dk
IV
Ek
Ek
Ek
IV
Ci-1
Ci
(a) CBC encryption
Ci+1
Mi-1
Mi
Mi+1
(b) CBC decryption
Figura 4.3 – CBC mode
Oltre che fornire la segretezza di dati, il modo di CBC può anche essere usato per
computare un codice di integrità del messaggio, o MIC (Message Integrità Check), per
fornire l'autenticità (authentication) dei dati.
Se Known-IV denota un valore di IV noto, il CBC-MAC è definito come:
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 64 di 82
for a message M = M1 M2
Mn
IV
Known-IV
for i = 1 to n do MICi
EK(Mi ⊕ IV), IV
MICi
MIC = MICn;
Ovvero, il tag MICn diviene il MIC per verificare l’integrità dei dati. Se il MIC è
trasmesso con il messaggio M, il ricevente autorizzato del messaggio — cioè, quello
che tiene la chiave K — può rilevare i falsi recomputing calcolando il MIC sul
messaggio ricevuto confrontandolo con quello inviato.
Come CBC mode, la sicurezza CBC-MAC decade al rate di O(q2/2b), cosi quando il
block cipher è AES, il block size è b=128, ed è sicuro utilizzare CBC-MAC con la stessa
chiave al più con q=264 blocchi — un numero enorme che non sarà raggiunto mai
oggi dalle applicazioni pratiche.
Di seguito la Figura 4.4 mostra il calcolo del MIC con CBC.
Flag
Nonce
Dlen
AES_E(K)
CBC-MAC
AES_E(K)
AES_E(K)
AES_E(K)
AES_E(K)
AES_E(K)
0 padded
0 padded
Rty=0
Hlen
FC Dur A1 A2 A3 SC A4 QC PN
Clear text frame
Data
MIC
Dlen
Figura 4.4 – Processo di calcolo di MIC con CBC, ovvero CBC-MAC
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 65 di 82
4.1.2 802.11 Encapsulations based on AES
IEEE 802.11 TGi (Task Group i) ha ricevuto due proposte di encapsulation basate sui
modes of operation di AES, la prima è chiamata AES-CCM e la seconda AES-OCB.
In seguito analizzeremo in dettaglio questo due protocolli, ed effettueremo alcuni
confronti atti a mettere in luce pregi e difetti dei due protocolli.
4.1.2.1 AES-CCM encapsulation
Il protocollo AES-CCM è basato sull’AES in Counter (CTR) mode per la privacy dei dati
e CBC-MAC per l’autenticità.
Il protocollo AES-CCM richiede due variabili di stato. La prima, impiega una single-key
AES. Il protocollo CCM utilizza questa chiave sia per cifrare che per calcolare il MIC.
L’utilizzo della stessa chiave per due funzioni differenti è normalmente considerato
una pratica poco consona. Tuttavia, Jacob Jonson di RSA Labs ha provato che questo
non è un problema concreto quando Counter mode counter e CBC-MAC IV sono
costruiti come fatto nel protocollo AES-CCM.
La seconda variabile è un packet counter di 48 bit. Il protocollo AES-CCM utilizza
questo packet sequence counter per costruire sia il CTR counter che il CBC-MAC IV.
CCM costruisce CTR counter e CBC-MAC IV come concatenazione del MAC address
della macchina mittente, il packet counter, un 16 bit zero per-packet block counter, e
16 bits di altri dati necessari a distinguere il Counter mode counter da CBC-MAC IV.
La costruzione del Counter mode encryption counter e del CBC-MAC IV da parte del
protocollo CCM a partire dal packet counter fornisce la key separation necessaria per
usare la stessa chiave sia per cifrare che per il MIC.
Il protocollo AES-CCM incapsula i MPDU di 802.11, o i frammenti di pacchetto, in
quattro passi:
1. Costruisce il CTR counter e CBC-MAC IV a partire dal packet counter, ed allora
incrementa il counter di uno.
2. In seguito, utilizza la chiave AES e il CBC-MAC IV per calcolare il MIC sopra
l’indirizzo sorgente e di destinazione, il QoS traffic class, il data length, e il MPDU
data. Tronca il valore MIC a 64-bits ed allega il risultato ai dati di MPDU.
3. Utilizza la chiave AES ed il Counter mode counter per cifrare il dati MPDU
utilizzando l’AES Counter mode, includendo il MIC appeso.
4. Completa l’MPDU protetto inserendo il valore del packet counter tra l’header
802.11 ed i dati cifrati.
Quindi, il protocollo di AES-CCM sviluppa il carico utile di dati di MPDU da 14 byte — 6
per il valore del packet sequence counter e 8 per il MIC cifrato.
La Figura 4.5 mostra AES-CCM. La Figura deve essere letta dall’alto verso il basso, e
da sinistra verso destra. Come possiamo notare, la parte superiore si riferisce al
calcolo del MIC.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 66 di 82
IV
Flag
Nonce
Dlen
CBC-MAC
AES_E(K)
AES_E(K)
AES_E(K)
AES_E(K)
AES_E(K)
AES_E(K)
0 padded
0 padded
Clear text frame
Hlen FC Dur A1 A2 A3 SC A4 QC PC
Data
MIC
Counter preload
Flag
Nonce
Cnt
Pl(1)
Pl(2)
Pl(C)
Pl(0)
AES_E(K)
AES_E(K)
AES_E(K)
AES_E(K)
Transmitted
encrypted frame
FC Dur A1 A2 A3 SC A4 QC PC
Data
MIC FCS
Figura 4.5 - Cifratura ed Autenticità AES-CCM
Il processo di decapsulation di un MPDU ricevuto avviene con i seguenti passi:
1. Estrae il packet counter dal MPDU ricevuto. Se questo valore è già stato
ricevuto per la chiave AES corrente, il pacchetto viene scartato come replica.
Altrimenti, costruisce il CTR counter ed il CBC-MAC IV a partire dal packet
sequence counter.
2. In seguito, Counter-mode decifra il payload cifrato, utilizzando la chiave AES ed
il CTR counter precedentemente ricostruito.
3. In fine, ricompiuta il MIC utilizzando la chiave AES ed il CBC-MAC IV, tronca il
valore a 64-bits, e confronta il risultato con il valore del MIC decifrato nel MPDU
ricevuto. Se i due valori differiscono, il pacchetto ricevuto viene scartato come
non valido, altrimenti il pacchetto viene accettato come buono.
IV
Flag
Nonce
Dlen
AES_E(K)
CBC-MAC
AES_E(K)
AES_E(K)
AES_E(K)
AES_E(K)
AES_E(K)
0 padded
Decrypted frame
Hlen FC Dur A1 A2 A3 SC A4 QC PC
MIC
check
Data
Counter preload
Flag
Nonce
Cnt
Pl(1)
Pl(2)
Pl(C)
Pl(0)
AES_E(K)
AES_E(K)
AES_E(K)
AES_E(K)
Received
encrypted frame
FC Dur A1 A2 A3 SC A4 QC PC
Data
MIC FCS
Figura 4.6 –Decifratura ed Autenticità AES-CCM
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 67 di 82
Quando utilizzato con uno schema di gestione della chiave, questo procedimento
soddisfa i requisiti di sicurezza. Il controllo su MIC rende i falsi computazionalmente
non praticabili, ed il controllo sul packet counter evita le ripetizioni, a meno che un
attacker possa generare i falsi. Lo schema non riusa mai il counter value o IV con la
stessa chiave. Il MIC protegge gli indirizzi di sorgente e destinazione da modifiche. In
questo contesto viene minimizzato il numero di primitivi crittografici ad uno — AES —
ed AES è il migliore primitivo crittografico corrente. Infine, è importante sottolineare
che sia il Counter mode che il CBC-MAC possono essere implementati efficientemente
in software.
4.1.2.2 AES-OCB encapsulation
Il protocollo AES-OCB è basato su AES in Offset Codebook mode, abbreviato OCB.
OCB è un nuovo mode of operation inventato da Phil Rogaway, un crittografo
dell’Università della California. Il protocollo AES-OCB è invece da attribuire ai signori
Cam-Winget e Walzer.
OCB mode garantisce sia data privacy che data authenticity con un singolo passaggio
sopra i dati ed usando una sola chiave. Il mode of operation deriva il relativo nome dal
b
valore O = EK(0 ) , che è chiamato offset codebook e denota il vettore di b-bit a zero
cifrato con la chiave K. OCB mode impiega un nonce (valore qualsiasi che è utilizzato
al più una volta nel contesto della stessa chiave) invece che un IV o un counter per
“randomizzare” l’encrytpion.
L’offset codebook ed il nonce N sono utilizzati per computare l’offset come EK(Oi ⊕ N).
L’offset viene aggiornato opportunamente ad ogni ciclo.
Se N denota il nonce per il messaggio M = M1 M2 …Mn, OCB mode cifra l’i-esimo blocco
Mi come EK(Mi ⊕ Offseti) ⊕ Offseti; OCB mode cifra il blocco finale del messaggio in un
modo un po’ differente, come un valore Yn, la cui forma non è importante per capire il
funzionamento.
Infine, OCB mode computa il MIC come EK(M1 ⊕ … ⊕ Mn ⊕ Yn ⊕ Offsetn+1).
Poiché OCB mode usa un singolo passaggio sia per cifrare che per autenticare i dati,
implementazioni software sono circa due volte più veloci dei metodi classici, come
quelli usati dal protocollo di AES-CCM.
La cosa ancor più interessante è che OCB mode da una prova di sicurezza dando i
limiti precisi circa la sua perdita di funzionamento. Il teorema sulla sicurezza di OCB
mode afferma che ogni attacco su OCB mode può essere trasformato in un attacco per
rompere l’algoritmo di cipher. Quindi, se si crede AES sicuro, allora anche l’uso di AES
in OCB è sicuro. Il calcolo del teorema ribadisce che OCB mode perde funzionamento
2
b+1
ad un tasso massimo di 3 q /2 — come prima q è il numero totale di blocchi cifrati
con la stessa chiave, e b il cipher block size.
Come AES-CCM, il protocollo AES-OCB richiede due variabili di stato. La prima impiega
una chiave AES singola K. Il protocollo AES-OCB utilizza questa chiave sia per
l’encapsualtion che per la decapsulation.
La seconda variabile di stato è un packet sequence counter a 28-bit. Il protocollo AESOCB utilizza il packet sequence counter per costruire il nonce di OCB mode. Il
protocollo costruisce il nonce di OCB mode come concatenazione dell’indirizzo MAC di
sorgente e di destinazione, il QoS traffic class, ed il packet sequence counter.
Il protocollo AES-OCB opera su pacchetti interi di 802.11 (MSDU).
L’encapsulation richiede i seguenti passi:
1. Come prima cosa, costruisce il nonce di OCB mode, ed incrementa il counter di
uno. In questo modo impedisce il riuso di nonce futuri con la stessa chiave.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 68 di 82
2. Una volta che questo è fatto, usa la chiave di AES, il nonce e l’offset codebook
per creare l’offeset e per cifrare in OCB-mode i dati di MSDU.
3. Completa il MSDU protetto inserendo il valore del counter tra MSDU header ed i
suoi dati cifrati.
Come mostra la Figura, 4.7 AES-OCB aggiunge 12 byte al MSDU utilizzato, 8 per il
MIC OCB e 4 per il valore del counter.
Encrypted
Counter
4
Data
(PDU)
>=1
MIC
8
Figura 4.7 – OCB aggiunge 12 byte al MSDU
Di seguito è riportato lo pseudo codice per OCB [5].
Come possiamo notare, M rappresenta il messaggio che desideriamo cifrare dopo
averlo scomposto in blocchi M[1]M[2]…M[n] da 128 bit ciascuno tranne l’ultimo, che
infatti ha meno di 128 bit. K è la chiave di cifratura, ovvero una chiave AES. N
rappresenta il nonce a 128bit, O rappresenta il vettore di offset cifrato con la chiave K.
C[n]0* rappresenta il padding per l’ultimo blocco.
function ocb-aes-encrypt(K, M, Nonce)
begin
Offset = AES(K, Nonce xor O)
Checksum = 0
for i = 1 to n-1 do begin
Offset = Offset xor O(ntz(i))
Checksum = Checksum xor M[i]
C[i] = Offset xor AES(K, M[i] xor Offset)
end
Offset = Offset xor O(ntz(n))
Pad = AES (K, len(M[n]) xor O(-1) xor Offset)
C[n] = M[n] xor (the first |M[n]| bits of Pad)
Checksum = Checksum xor Pad xor C[n]0*
FullTag = AES(K, Checksum xor Offset)
Tag = a prefix of FullTag (of the desired length)
return C[1]... C[n-1] C[n] Tag
end
La Figura 4.8 mostra invece una rappresentazione grafica di OCB. La figura deve
essere letta da sinistra a destra: in primo luogo computiamo l’offset, poi utilizziamo
l’offset in ogni blocco del messaggio, aggiornando l’offset di volta in volta.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 69 di 82
Figura 4.8 – Cifratura AES-OCB
Il protocollo AES-OCB decapsula un MSDU ricevuto con i seguenti passi:
1. Estrae il counter dal MSDU ricevuto. Se questo valore è già stato ricevuto per la
chiave AES corrente, il pacchetto viene scartato come replica. Altrimenti estrae
l’indirizzo di sorgente e destinazione, il QoS traffic class e ricostruisce il nonce
di OCB mode.
2. In seguito, usa la chiave AES per decifrare in OCB-mode i dati MSDU. Se la
decifratura fallisce, i dati sono trattati come non validi, se ha successo, il
pacchetto viene accettato come buono.
Figura 4.9 – Decifratura AES-OCB
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 70 di 82
Quando utilizzato con uno schema di gestione della chiave, questo procedimento
soddisfa i requisiti di sicurezza. La costruzione del nonce protegge gli indirizzi di
sorgente e destinazione, il QoS traffic class, ed il packet sequence number da
modifiche o perdite. Se un attacker prova a modificare un pacchetto buono, il
processo di decifratura in ricezione fallisce.
Il MIC OCB rende le falsificazioni computazionalmente non praticabili, ed il packet
sequence evita ripetizioni, salvo il caso in cui un attacker sia in grado di generare dei
falsi. Lo schema non riusa mai il valore del packet sequence counter con la stessa
chiave, quindi i nonces costruiti sono tutti unici. Minimizza il numero di primitivi
crittografici ad uno, AES, il primitivo crittografico migliore nella pratica corrente.
Infine, OCB mode può essere implementato efficientemente in software, in maniera
più efficiente delle procedure convenzionali che fanno due passaggi sopra i dati del
pacchetto.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 71 di 82
4.2 Confronto tra Encapsulations data
Entrambi i protocollo basati su AES soddisfano i requisiti di sicurezza richiesti. Essi si
differenziano per una serie di punti che in seguito verranno analizzati.
4.2.1 Data Authenticity
La prova di sicurezza per OCB mode dimostra un limite superiore esatto sul vantaggio
2
b+1
che un attacker può avere, 3 q /2 , dove q è il numero totale di blocchi cifrati con la
stessa chiave, e b è il numero totale di bit nel cipher block size. Per AES, b = 128.
Con un sequence space di 228 MSDU ed un packet size massimo di 212 bytes = 28
8
28
blocchi, il massimo numero di blocchi protetti con la stessa chiave diventa q = 2 2
36
= 2 , ed il massimo vantaggio che un qualsiasi attacker può avere nel manipolare un
36 2
129
72
129
57
pacchetto è 3 (2 ) /2 = 3 2 /2 = 3/2 . Ciò non è una minaccia significativa.
L’autenticità dei dati del protocollo AES-CCM non è tanto definita. Una prova che
rende O(q2/2b) un limite di sicurezza esiste anche per CBC-MAC, ma suppone che tutti
i messaggi abbiano la stessa lunghezza. Per compensare ciò, il protocollo AES-CCM
protegge il campo di lunghezza dei dati 802.11 includendolo nel calcolo del CBC-MAC
ed effettua test per verificare se i dati protetti coincidono realmente con il numero di
byte specificati. I crittografi ritengono che questo assicuri una costruzione sicura, ma
non tutti sono concordi con questa affermazione.
Quindi OCB mode sembra essere superiore per il data authentication.
4.2.2 Packet sequence space size
Uno dei motivi per aumentare il sequence space del protocollo AES-CCM a 48-bit è per
semplificare il keying 802.11. Il protocollo AES-OCB deve essere modificato per
accomodare questa semplificazione. Tuttavia, per procedere su questa strada, sono
necessarie nuove tecniche, poiché il metodo corrente basato sulla costruzione di
nonce non è sufficiente. La costruzione del nonce può essere utilizzata per proteggere
al massimo 128-bit. Il packet sequence counter di 28-bit del protocollo AES-OCB
deriva dal fatto che questo è tutto quello che rimane dai 128-bit del nonce dopo aver
incluso gli indirizzi di sorgente e destinazione ed il QoS traffic class.
Un metodo per supportare sequence space più grandi esiste, ed è chiamato associated
data construction. I dati associati sono dati “supplementari” che devono essere
protetti da falsificazioni, ma rimanere in chiaro. Un modo per proteggere i dati
associati è quello di computare il CBC-MAC ed effettuare lo XOR del risultato nel OCB
MIC.
È probabile che il protocollo di AES-OCB sarà adattato per usare packet sequence
space a 48-bit nel modo seguente. Il nonce sarà costruito dal packet sequence
counter di 48-bit, l’indirizzo sorgente, e lo zero pad. I dati associati saranno costruiti a
partire dall’indirizzo di destinazione, il QoS traffic class, e lo zero pad. Il CBC-MAC dei
dati associati aggiungerà una extra encryption per packet. Il vantaggio massimo di un
58 2
129
116
129
13
attacker potrà avere con questa soluzione arriverà a 3 (2 ) /2 = 3 2 /2 = 3/2 ,
che non è più una probabilità insignificante, ma neanche un problema in pratica. Per
raggiungere questo vantaggio un attacker dovrà scegliere tutti i dati da proteggere, e
deve anche scegliere 258 blocchi in totale.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 72 di 82
4.2.3 MSDU vs. MPDU
Il protocollo AES-CCM protegge i MPDU, i frammenti di pacchetto 802.11, mentre il
protocollo AES-OCB protegge MSDU, i pacchetti 802.11. Proteggere i MSDU è
architetturalmente la soluzione migliore, ovvero conduce ad una implementazione più
flessibile e riutilizzabile. Un protocollo che lavora con i MSDU può infatti essere
utilizzato con qualsiasi media 802. Inoltre, questo approccio minimizza l’overhead,
infatti il protocollo AES-OCB aggiunge sempre 12 bytes di overhead ad ogni pacchetto.
Tuttavia, se un MSDU è frammentato in n MPDU, il protocollo AES-CCM aggiunge 16 n
bytes di overhead.
In favore del protocollo AES-CCM è possibile affermare che applicare protezioni
crittografiche a MPDU è più semplice da fare all’interno delle implementazioni
hardware dell’architettura 802.11.
4.2.4 Performance
Non esistono differenze di performance tra i due approcci quando entrambi sono
implementati in hardware.
Quando però è usato il software, il protocollo AES-OCB ha circa un vantaggio di
prestazioni di 2:1 rispetto al protocollo AES-CCM. Questo è dovuto al fatto che AESCCM richiede il doppio delle operazioni crittografiche rispetto ad AES-OCB, ed il costo
delle operazioni crittografiche domina il costo di tutte le altre operazioni. AES può
essere implementato in software con un costo di corca 20 o 30 cicli per byte. Il data
rate massimo di un utente 802.11a è circa 4.5 milioni di bytes per secondo, ed il data
rate massimo di un utente 802.11b è circa 875 K bytes per secondo. Questo significa
che, per un Access Point 802.11, il protocollo AES-OCB richiede la dedica di circa 90 135 MHz alla crittografia ed AES-CCM richiede circa 180 - 270 MHz. Per un Access
Point 802.11b, AES-OCB richiede 17 – 26.5 MHZ e AES-CCM richiede 34 – 53 MHz.
4.2.5 La Situazione dei Brevetti
Il motivo primario per lo sviluppo del protocollo AES-CCM è stato evitare i reclami di
proprietà intellettuale. Tre brevetti sono stati archiviati che potrebbero applicarsi a
OCB mode. Phil Rogaway, l’inventore di OCB mode, ha archiviato un brevetto. Il punto
di partenza di Rogaway è stato un mode inventato da Charanjint Jutla e chiamato
IAPM, per cui l’IBM ha depositato un brevetto. In fine, Virgil Gligor dell’Università di
Maryland ha inventato un nuovo mode of operation che utilizza tecniche simili ed ha
anch’esso depositato un brevetto che OCB mode può infrangere.
Una fazione presso il comitato 802.11 desidera evitare interamente tutti gli ostacoli
derivanti dai meccanismi di brevetto e sta combattendo per inserire AES-CCM nella
security draft. Questa fazione ha voti sufficienti per bloccare lo standard fino a che
AES-CCM non è incorporato. Questa fazione ha voti sufficienti per ostruire il campione
fino ad incorporare AES-CCM. D'altra parte, una seconda fazione dei fornitori ha
ultimato i lavori sufficienti su AES-OCB e questa fazione ha voti sufficienti per
impedire la rimozione AES-OCB dallo standard finale.
Quindi, sembra che l'unico compromesso possibile sia quello di implementare
entrambi.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 73 di 82
4.3 Wi-Fi Protected Access 2
Dopo aver presentato i mode of operation di AES impiegati nell’ambito delle reti
802.11, analizzeremo WPA2, un protocollo recentemente implementato che fa uso di
queste soluzioni per cercare di risolvere, in via definitiva, le problematiche riscontrate
con l’uso dei protocolli basati su RC4 come WEP.
Lanciato nel Settembre 2004 da parte della Wi-Fi Alliance, WPA2 è un protocollo
certificato interoperabile con la specifica 802.11i. Come WPA, WPA2 supporta
l’autenticazione IEEE 802.1X/EAP e la tecnologia pre-shared-key (PSK). Esso include
un nuovo meccanismo di cifratura avanzato, ovvero AES-CCM.
E’ possibile dunque affermare che WPA2 è una implementazione evoluta del
framework 802.11i precedentemente esposto, in quanto fa uso delle componenti del
framework stesso ed utilizza AES per cifrare i pacchetti di dati.
Come mostra la Tabella 4.2 ci sono due modi di certificazione per WPA e WPA2,
Enterprise e Personal. Entrambi forniscono autenticazione e cifratura. Tutti i dispositivi
certificati Wi-Fi, sono nella versione Personal per default.
Mode
Enterprise Mode (Business and Government)
Personal Mode (SOHO/personal)
WPA
WPA2
Authentication: IEEE 802.1X/EAP
Authentication: IEEE 802.1X/EAP
Encryption: TKIP/MIC
Encryption: AES-CCMP
Authentication: PSK
Authentication: PSK
Encryption: TKIP/MIC
Encryption: AES-CCMP
Tabella 4.2 – WPA e WPA2 mode types
Enterprise mode opera in un modo controllato per fare fronte a richieste di sicurezza
stringenti. Esso fa leva sul framework di autenticazione IEEE 802.1X ed usa un
Extensible Authentication Protocol (EAP) con un server di autenticazione per fornire
autenticazione reciproca forte fra client e server di autenticazione via access point.
In questo modo, ad ogni utente è assegnato un meccanismo chiave unico per
accedere alla WLAN. Ciò permette un elevato livello di privacy. Per WPA, è utilizzato
TKIP per la cifratura dei pacchetti. Come precedentemente detto, TKIP impiega un
algoritmo di cifratura che cambia la chiave di cifratura frequentemente, rendendo il
codice crittografico estremamente difficile da rompere. Per WPA2 è invece impiegata
la cifratura AES. AES è molto più sicuro di TKIP, quindi fornisce una protezione di rete
addizionale.
Personal mode è stato invece progettato per ambienti domestici ed utenti small
office/home office (SOHO), che non hanno installato un server di autenticazione. Esso
opera impiegando una autenticazione pre-shared-key (PSK) invece che IEEE 802.1X.
Questo modo applica una autenticazione in cui una frase pre-condivisa è immessa
manualmente nell’AP per generare la chiave di cifratura.
In enterprise mode l’autenticazione reciproca inizia quando l’utente si associa con
l’Access Point. L’AP blocca l’accesso alla rete fino a quando l’utente non è stato
autenticato. L’utente fornisce le credenziali che vengono comunicate al server di
autenticazione. Il processo di autenticazione è gestito dal framework IEEE
802.1X/EAP. Con EAP, 802.1X crea un framework in cui i client ed i server sono
entrambi autenticati. L’autenticazione reciproca garantisce che solo i client autorizzati
accedano alla rete, e conferma che i client si stanno autenticando su di un server
autorizzato. Questo protegge contro attacchi di tipo “rogue” AP.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 74 di 82
Una volta che l’utente è stato autenticato, il server di autenticazione ed il client
simultaneamente generano un Pairwise Master Key (PMK).
A questo punto avviene un handshake 4-way tra client e AP, per completare
definitivamente il processo di autenticazione, di stabilizzazione e di inizializzazione
delle chiavi di cifratura AES. Quando il client comincia a comunicare sulla LAN,
l’encryption protegge i dati scambiati tra il client e AP. Come precedentemente
esposto, con AES i bit sono cifrati in blocchi di plaintext che sono computati
indipendentemente. I blocchi AES hanno una dimensione di 128-bit, con tre possibili
dimensioni per la chiave, 128, 192 e 256-bit come specificato nello standard. Per
l’implementazione di AES con WPA2/802.11i vengono utilizzate chiave di 128-bit. La
cifratura AES include 4 stadi che compongono un ciclo. Ogni ciclo è ripetuto 10, 12 o
14 volte in base alla dimensione della chiave. Per l’implementazione di AES con
WPA2/802.11i ogni ciclo è iterato 10 volte.
AES utilizza Counter-Mode/CBC-Mac (CCM). CCM è un nuovo mode of operation per i
block cipher che abilita una singola chiave per essere utilizzata sia per la cifratura che
per l’autenticità. CTR effettua la cifratura dei dati, mentre CBC-MAC fornisce
autenticità.
Dunque, Wi-Fi Protected Access è il protocollo che presumibilmente risolverà tutte le
problematiche legate alla sicurezza delle reti wireless, basandosi su AES, in particolare
sul protocollo AES-CCM per cifrare i dati e sull’infrastruttura 802.1X per la gestione
delle chiavi.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 75 di 82
5.0 Conclusioni e sviluppi futuri
In ambiente wireless, la sicurezza è una componente particolarmente delicata, in
quanto, come precedentemente citato, oltre alle problematiche tradizionali, entrano in
gioco aspetti legati alla natura del mezzo trasmissivo, l’aria.
Un attacker potrebbe ad esempio posizionarsi all’esterno di un edificio e manipolare i
pacchetti che vengono scambiati tra le stazioni e gli access point senza che nessuno
se ne accorga, o quasi.
L’integrazione di nuove soluzioni atte a garantire la privacy dei dati sono molto
importanti per lo sviluppo dei servizi wireless. L’uso di un sistema di comunicazione
innovativo deve necessariamente essere accompagnato da sistemi di crittografia forti,
ed allo stesso tempo efficienti, capaci di fornire almeno quella protezione che viene
offerta in ambienti consolidati come quelli tradizionali wired.
L’algoritmo AES, quindi i protocolli wireless AES-based, si propongono come soluzione
alle problematiche riscontrate negli ultimi anni con l’uso di WEP. Come abbiamo citato
precedentemente, AES è veloce sia sviluppato in software che in hardware, è
relativamente semplice da implementare, e richiede poca memoria. Tuttavia, i
dispositivi che utilizzano le onde radio sono molto spesso di dimensioni ridotte, e non
hanno sempre una capacità di elaborazione sufficiente per supportare alcune tipologie
di calcoli. Ad esempio WPA2 sarà entro qualche anno la soluzione standard per la
sicurezza delle reti wireless, ma alcuni palmari non potranno supportarlo causa ridotta
potenza di calcolo.
Le comunicazioni che si basano sulle onde radio devono dunque essere implementate
con soluzioni particolarmente efficienti. Soprattutto, perché negli ultimi anni il numero
di dispositivi embedded che fanno uso di comunicazioni wireless sta aumentando, e la
possibilità di avere un’interfaccia wireless in dispositivi sempre più piccoli sta
diventando un luogo comune.
Gli sviluppi futuri si incentreranno sullo studio di implementazioni efficienti, per
riuscire a fornire soluzioni utilizzabili da qualunque dispositivo wireless, da palmare a
notebook, da Access Point di bassa fascia a dispositivi cellulari, e non solo, con la
consapevolezza che lo sviluppo di un algoritmo crittografico non permette da solo di
risolvere tutti i problemi. Il funzionamento di un codice sofisticato richiede un
microprocessore potente. Di conseguenza ogni volta che l'utente desidera un sistema
affidabile, ne ottiene uno che sarà sì più sicuro, ma anche più lento; solo i computer
più veloci potranno eseguire il processo di codifica e decodifica in tempi ragionevoli. Il
problema si complica quando i sistemi di sicurezza devono essere incorporati in
dispositivi mobili che presentano una serie di fattori limitanti in termini di dimensione,
costi, microprocessori e decodifica in tempi ragionevoli.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 76 di 82
Possiamo affermare dunque che la sicurezza assoluta non esiste, ma è certo che
questi passi da parte della Wi-Fi Alliance procedono sicuramente nella direzione ideale.
Per un definitivo e completo decollo di queste apparecchiature è necessario che le
imprese si sentano sufficientemente sicure nel far viaggiare i propri dati, anche i più
confidenziali, utilizzando la tecnologia Wireless.
Concludiamo l’indagine conoscitiva della sicurezza wireless ricordando che è
importante che la Ricerca, soprattutto in Italia, venga finanziata per poter studiare e
testare nuove soluzioni, atte a migliorare quelle attuali.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 77 di 82
6.0 Riferimenti
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
[21]
[22]
[23]
[24]
[25]
[26]
[27]
[28]
J. Daemen, V. Rijmen , ”AES Proposal: Rijndael”,
http://csrc.nist.gov/encryption/aes/, 1999
NIST, “Announcing the ADVANCED ENCRYPTION STANDARD (AES),” Federal
Information Processing Standards Publication, n. 197, Novembre 2001.
B. Gladman, “A Specification for Rijndael, the AES Algorithm”
http://fp.gladman.plus.com/, 2001.
G. Bertoni, L. Breveglieri, P. Fragneto, M. Macchetti, S. Marchesin
“Efficient Software Implementation of AES on 32-bits Platforms”, 2002
Rogaway, P., M. Bellare, J. Black, and T. Krovetz, “OCB Mode,” Aprile 2001,
http://www.cs.ucdavis.edu/~rogaway/ocb/ocb.htm
Intel Ltd. website, http://www.intel.com
IEEE Std 802.11, Standards for Local and Metropolitan Area Networks: Wireless
LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications,
1999.
CSRC - Proposed Modes of Operation
http://csrc.nist.gov/CryptoToolkit/modes/proposedmodes/
Stanley, D., “IV Sequencing Requirements Summary,” IEEE 802.11 doc 02006r2, Gennaio 2002. http://grouper.ieee.org/groups/802/11/
Housely, R., and D. Whiting, “Temporal Key Hash,” IEEE 802.11 doc 01-550r1
Ottobre 2001. http://grouper.ieee.org/groups/802/11/
Wi-Fi Alliance website, www.wi-fi.org
LEAP: http://home.jwu.edu/jwright/presentations/asleap-defcon.pdf
J. Walker, “Unsafe at any key size: an analysis of WEP encapsulation”, IEEE
802.11-00/362, IEEE Press, 2000
E. Danyelyan, “802.11”: http://www.isoc.org/pubs/int/cisco-1-1.html
Security in Wireless Networks: http://rr.sans.org/wireless/wireless_net3.php
DRAFT Special Publication 800-48, Wireless Network Security:
802.11, Bluetooth, and Handheld Devices:
http://csrc.nist.gov/publications/drafts/draft-sp800-48.pdf
A Technical Comparison of TTLS and PEAP by Matthew Gast:
http://www.oreillynet.com/pub/a/wireless/2002/10/17/peap.html
Attack to Break WEP: http://www.cs.rice.edu/~astubble/papers.html
Ferguson, N., “Michael: an improved MIC for 802.11 WEP,” IEEE Press 2002
http://grouper.ieee.org/groups/802/11/
IEEE Std 802.11, Standards for Local and Metropolitan Area Networks: Wireless
LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications,
1999.
Ferguson, N., “Michael: an improved MIC for 802.11 WEP,” IEEE Press 2002
http://grouper.ieee.org/groups/802/11/
Stanley, D., “IV Sequencing Requirements Summary,” IEEE Press 2002
http://grouper.ieee.org/groups/802/11/
Housely, R., and D. Whiting, “Temporal Key Hash,” IEEE Press 2001
http://grouper.ieee.org/groups/802/11/
Cam-Winget, N., and J. Walker, “Motions to resolve comments on AES
algorithms,” IEEE 802.11 doc 01-382r0, July 9, 2001
Walker, J., “Unsafe at any key size: an analysis of the WEP encapsulation,”
IEEE 802.11 doc 00-362, October 27, 2000
Letanche, O., and D. Stanley, “Proposed TGi D1.9 Clause 8 AES-CTR CBC-MAC
(CCM) text,” IEEE 802.11 doc 02-144r0, Febbraio 2002.
Funk, P., Blake-Wilson, S., “EAP Tunneled TLS Authentication Protocol (EAPTTLS),” draft-ietf-pppext-eap-ttls-01.txt, Febbraio 2002.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 78 di 82
[29]
[30]
[31]
[32]
Blunk, O., Vollbrecht, J., RFC 2284, “Extensible Authentication Protocol”, Marzo
1998
Aboba, B., Simon, D., RFC 2716, “PPP EAP TLS Authentication Protocol,”
Ottobre 1999.
Moore, T., “Suggested Changes to Robust Security Network (RSN) for 802.11,”
IEEE doc. 02/298, Maggio 2002.
Andersson, H., Josefsson, S., Zorn, G., Simon, D., Palekar, A., “Protected EAP
Protocol,” draft-josefsson-pppext-eap-tls-eap-02.txt, Febbraio 2002.
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 79 di 82
Appendice: Acronimi e abbreviazioni
Acronimo
ADSL
Descrizione
Authentication, Authorization and
Accounting
Asynchronous DSL
AES
Advanced Encryption Standard
AIM
AoL Instant Messenger
AP
Access Point
CAT5
Category 5
CCM
Counter Mode with CBC-MAC
CIR
Committed Information Rate
CRC
Cyclic Redundancy Check
DCC
Direct Client Communication
DES
Data Encryption Standard
Dynamic Host Configuration
Protocol
Dynamic Key Exchange
AAA
DHCP
DKE
DSL
GHz
Digital Subscriber Line
Digital Subscriber Line Access
Multiplexer
Extensible Authentication Protocol
Federal Information Processing
Standard
GigaHertz
GRE
Generic Routing Encapsulation
HTTP
HyperText Transfer Protocol
HTTPS
IAPP
HTTP Secure
Internet Assigned Numbers
Authority
Inter Access Point Protocol
ICMP
Internet Control Message Protocol
ICV
IETF
Integrity Check Value
Institute of Electrical and Electronics
Engineers
Internet Engineering Task Force
IPSec
Internet Protocol Security
IRC
Internet Relay Chat
ISP
Internet Service Provider
IV
Initialization Vector
Kbps
Kilobits per second
L2TP
Layer Two Tunneling Protocol
LAN
Local Area Network
LEAP
LoS
Lightweight EAP
Line of Sight
DSLAM
EAP
FIPS
IANA
IEEE
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 80 di 82
Acronimo
Descrizione
MAC
Media Access Controller
Mbps
Megabits per second
MD5
Message Digest 5
MIC
Message Integrity Check
MS
Mobile Station
NAC
Network Access Controller
NAPT
Network Address Port Translator
NAT
Network Address Translator
NIC
NNTP
Network Interface Card
National Institute of Standards and
Technology
Network News Transfer Protocol
OEM
Original Equipment Manufacturer
PAE
Port Access Entity
PDA
Personal Digital Assistant
PDU
Protocol Data Units
PEAP
Protected EAP
PKI
Public Key Infrastructure
PoE
Power over Ethernet
POP3
Post Office Protocol 3
PPTP
Point-to-Point Tunneling Protocol
PSK
Pre-Shared Key
QoS
RDP
Quality of Service
Remote Authentication Dial-In User
Service
Remote Desktop Protocol
RF
Radio Frequency
RSN
Robust Security Network
RTP
Real-Time Protocol
SIP
Session Initiation Protocol
SMT
Station Management
SMTP
SOHO
Simple Mail Transfer Protocol
Simple Network Management
Protocol
Small Office Home Office
SSH2
Secure Socket Shell version 2
SSID
Service Set Identifier
SSL
Secure Sockets Layer
SST
Shiva Secure Technology
Transmission Control
Protocol/Internet Protocol
Temporal Key Integrity Protocol
Transport Layer Security
NIST
RADIUS
SNMP
TCP/IP
TKIP
TLS
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 81 di 82
Acronimo
Descrizione
TTLS
Tunneled TLS
UDP
User Datagram Protocol
VLAN
Virtual LAN
VoIP
Voice over IP
VPN
Virtual Private Network
WAN
Wide Area Network
WEP
Wired Equivalent Privacy
WISP
Wireless ISP
WLAN
Wireless LAN
WM
Windows Messenger
WPA
Wi-Fi Protected Access
XOR
YM
Exclusive OR
Yahoo Messenger
Nomi, marchi, loghi, codice, ed immagini appartengono ai rispettivi proprietari
_____________________________________________________________________________________________
Wireless Security di Ultima Generazione
Pagina 82 di 82
Scarica

Wireless security di ultima generazione