Sicurezza nel GSM e Smart Card - Dipartimento di Informatica e

Sicurezza nel GSM e
Smart Card
A cura di
Marco Canu
Marco Cascianelli
Luca de Angelis
Emanuele Garuglieri
Paola Ranaldi
Storia e panoramica
sull’architettura GSM
A cura di
Marco Cascianelli
Cronologia
1921 – il Dipartimento di Polizia di Detroit sperimenta
comunicazione one-way centrale-volanti
1935 – E.H.Armstrong inventa la Frequency Modulation (la
modulazione varia proporzionalmente al segnale
analogico da trasmettere, segnale modulante, come
frequenza di un segnale sinusoidale ausiliario). Già tra la
fine degli anni 40 fu evidente la mancanza di un numero
sufficiente di canali radio per soddisfare le richieste di
tutti i settori
Cronologia
Fine anni 40 – singolo trasmettirore FM, copertura ristretta,
commutazione manuale delle chiamate nella stazione
radio. Banda di 120 KHz
Anni 60 – riduzione della banda necessaria a 60KHz
Anni 70 – riduzione della banda a 25 KHz
Passaggio ai sistemi trunked
z
z
I primi sistemi utilizzavano più trasmettitori
indipendenti, con una frequenza fissa per
ogni utente.
In seguito vennero introdotti i sistemi trunked,
con selezione dinamica dei canali liberi –
inizialmente manuale ed in seguito
automatizzata
Sistemi a celle
z
z
z
Concepiti negli anni 40, sperimentati negli
anni 60, commercializzati negli anni 80
invece di usare trasmettitori ad elevatra
potenza per coprire vaste ma limitate aree,
servendo un numero ristretto di utenze,
usano stazioni distribuite su celle
geografiche limitate
Ogni cella usa frequenze diverse da quelle
usate nelle celle adiacenti
Sistemi a celle
z
z
z
I trasmettitori necessitano di minore potenza
per coprire una cella senza interferire con
quelle non adiacenti operanti alle stesse
frequenze
I terminali mobili devono essere in grado di
sintonizzarsi sulle frequenze relative alla cella
Il passaggio dalle frequenze di una cella a
quelle della cella adiacente si chiama
handover
Collocazione delle celle
z
z
È importante trovare il giusto equilibrio tra
grandezza delle celle e numero di
suddivisioni della banda.
Uno studio attento garantisce un numero non
eccessivo di handover e basso rischio di
interferenza tra celle a fronte di una banda
necessaria limitata
Collocazione delle celle
z
z
Il territorio viene suddiviso in
aree (celle) adiacenti, che
utilizzano un numero ridotto di
frequenze.
La grandezza delle celle può
variare per esigenze relative al
servizio richiesto o alla
conformazione del territorio
TACS
Acronimo di Total Access Communication System
1979 – AMPS negli USA (Advanced Mobile Phone
Standard)
1981 – NMT nei paesi scandinavi (Nordic Mobile
Telephone)
1985 – TACS in Gran Bretagna
z
z
z
1000 canali; 890-960 MHz
ETACS: 1320 canali; 872-950 MHz
1990 – in Italia viene adottato l’ETACS a seguito della
saturazione del sistema RTMS
TACS – limiti
z
z
z
z
z
z
z
z
Standard diversi incompatibili in vari paesi
Roaming internazionale limitato per sicurezza e incompatiblità
Sfruttamento inefficiente della banda, limite di utenze gestibili
per zona (segnale analogico)
Bassa qualità del segnale dovuta alla sensibilità al rumore
Grande numero di ricetrasmettitori necessari, per l’alto
numero di canali
Costi alti dei terminali, per l’impossibilità di politiche
commerciali di scala (standard incompatibili)
Impossibile autenticare un terminale
Impossibile criptare il segnale, e trasmettere dati
GSM
1982 – La CEPT crea il Group Special Mobile
1985 – Il GSM sceglie definitivamente la via del
digitale
z
z
z
z
z
z
TDM – Time Divisione Multiplexing
Bassa sensibilità al rumore (=> celle più
piccole=>più utenze possibili)
Cifratura dei messaggi
Identificazione con chiave segreta degli apparati
Trasmissione dati
980-915 MHz, 935-960 MHz
GSM
1987 – Memorandum of Understanding, per apertura
del servizio nel 1991
1989 – GSM passa all’ETSI, viene rettificato il
significato dell’acronimo: Global System for Mobile
Communications
1990 – phase 1: prime specifiche
1993 – phase 2: integrazione servizi supplementari
z
z
36 reti GSM in 22 paesi
Con DCS1800 e PCS1900 80 paesi attualmente usano
GSM
Architettura GSM
Operation Support Subsystem
Network
Service
Management
Centre
Operation
and
Manintenance
Centre
Network Subystem
Home
Location
Register
Autentication
Centre
Unico canale protetto
Base
Transceiver
Station
Base
Station
Controller
Mobile service
Switching Centre
Base Station Subsystem
(gestione della copertura radio)
Mobile Station
Equipment
Identity
Register
Rete GSM
Visitor
Location
Register
Architettura GSM
: rete di segnalazione
SS7
AuC
HLR
SS7
MSC
A
Abis
BTS
Abis
VLR
A
A
A
BSC
BSC
BSC
SS7
BSC
MSC
SS7
VLR
Abis
BTS BTS
Abis
BTS
Abis
BTS
Abis
BTS BTS
Um
Um
Um: cifrata
Abis: non cifrata
Abis
Abis
BTS
Procedura di chiamata
z
Verso MS:
z
z
z
z
z
z
z
Utente PSTN compone MSISDN
Il GMSC richiede all’HLR la posizione dell’abbonato
L’HLR ottiene dal VLR l’MSRN
Il GMSC usa l’MSRN per l’instradamento verso l’MSC da
cui dipende l’utente mobile
L’MSC ottiene dal VLR il LAI che identifica le BSS a cui
inviare la “paging request”
La MS risponde alla ricerca inviando alla BSS una “channel
request”
La MS usa il canale ottenuto per inviare una “paging
response”
Procedura di chiamata
z
z
z
z
z
z
z
La BSS invia la “paging response” al VLR tramite l’MSC
associato
L’MSC riceve dal VLR una “complete call” che rimanda alla
MS tramite BSS
L’MS invia al MSC una “call confirmation”
L’MSC, tramite il GMSC, fa arrivare alla PSTN il tono di
chiamata
L’MSC assegna un canale di chiamata alla BSS, che a sua
volta ne assegna uno alla MS
La MS squilla; appena l’utente risponde l’MS invia una
“connect” all’MSC che invia una “answer” al PSTN tramite
GMSC
MSC e GMSC interconnettono il canale GSM e il circuito
PSTN e la chiamata ha corso
Procedura di chiamata
z
Da una MS (ala rete telefonica)
z
z
z
z
z
La MS trasmette alla BTS una “channel request”
La BSS manda una “request for service” alla MSC
L’MSC ottiene dal VLR info sull’abbonato
L’MS manda una “setup” con le informazioni
necessarie alla MSC
L’MSC ottiene dal VLR in risposta alla “setup” una
“complete call”, e comunica alla MS una “call
proceeding”
Procedura di chiamata
z
z
z
L’MSC assegna un canale alla BSS, che ne
assegna uno a sua volta alla MS
L’MSC contatta la PSTN, e al “address complete
message” fa giungere il tono di chiamata
all’utente mobile
Quando dalla PSTN giunge una “answer” l’MSC
connette il canale GSM al circuito PSTN, e la
chiamata ha corso
Procedura di handover
L’handover è gestito dalle BSC con i dati
continuamente inviati dalla MS sulla qualità
del segnale e sulla posizione della MS stessa
Gli algoritmi di handover producono sempre
una lista di celle candidate a partire dalla
migliore
Procedura di handover
Tra celle sotto lo stesso BSC:
z La BSC invia una “handover command” con
le informazioni sul nuovo canale
z La MS cambia canale e invia una “handover
completed”
Procedura di handover
Tra BSC sotto lo stesso MSC
z La BSC invia una “handover required” alla
MSC
z L’MSC invia l’”handover request” all’altra
BSC, la quale predispone un canale per la
MS
z L’MSC invia tramite la BSC d’origine un
“handover command” alla MS
Procedura di handover
Tra BSC sotto MSC differenti
z Il BSC di partenza invia un “handover required”
all’MSC
z L’MSC contatta l’altro MSC, il quale ottiene dal VLR
un numero di istradamento per la connessione tra
MSC
z Il secondo MSC fa predisporre la BSC necessaria e
manda le info all’MSC di partenza
z L’MSC di partenza attiva la connessione i istruisce
la MS per il passaggio di canale
Canali radio
z
z
z
z
z
890-915 MHz (25 MHz) per uplink
935-960 MHz (25 MHz) per downlink
Le portanti uplink e downlink sono scelte a
45Mhz di distanza
Tra due canali radio adiacenti ci devono
essere 200 KHz
Totale di 124 canali in entrambe le direzioni
Canali logici
MS
Broadcast channels
bcch
bcch
fcch
sch
Common control channels
pgh
rach
agch
Dedicated control channels
sacch
facch
sdcch
BTS
GSM Burst
Il burst è un quanto di trasmissione GSM
z Normal burst: traffico e controllo
z
z
z
z
57 bit information
26 bit training sequence
0.031 ms guard period
6 bit tail bit
GSM Burst
z
Frequency correction burst: fcch
z
z
142 fixed bit
Synchronization burst: sch
z
z
z
z
64 bit sync sequence
39 bit coded information: frame tdma e id BTS
6 bit tail bit
8,25 bit guard period
GSM Burst
z
Access burst: racch, primo accesso alla BTS
z
z
z
z
z
41 bit training sequence
36 bit coded information
8 e 3 bit head bit e tail bit
68,25 guard period
Dummy burst
z
Burst privo di informazioni usato nel bcch
Problemi dell’interfaccia aerea
z
z
z
Perdite da spazio libero: attenuazione
funzione del quadrato della distanza e del
quadrato della frequenza
Perdite da ostruzione
Propagazione multipercorso (Rayleigh
fading)
Ottimizzazione dell’interfaccia
aerea
Codifica del canale: frame da 260 bit (20ms di
conversazione)
z 50 bit più importanti: classe 1a, 3 bit di parità
z 132 bit media importanza: classe 1b, 4 bit di coda
z 78 bit meno importanti: classe 2a
Dopo la codifica di canale dei bit di classe 1, i 189 bit
vengono convoluti con r=1/2; i 378 bit ottenuti, con i
78 di classe 2, formano il frame di 456 bit
Ottimizzazione dell’interfaccia
aerea
Interleaving: suddivisione del frame da 456 bit
in 8 blocchi da 57 bit con distribuzione
uniforme; i primi 4 blocchi vengono spediti in
prima posizione nei primi 4 burst. I successivi
4 vengono spediti in seconda posizione dei
successivi 4 burst
Ottimizzazione dell’interfaccia
aerea
Equalizzazione: sulla base della sequenza di
training viene per quanto possibile dedotta la
distorsione da Rayleigh fading
Time advance: i tre time slot di compensazione
tra trasmissione e ricezione possono essere
ridotti di massimo 63 bit per compensare
eventuali ritardi di trasmissione (tramite
sacch 2 volte al secondo)
Ottimizzazione dell’interfaccia
aerea
Frequency hopping: ad ogni time slot viene
scelta la frequenza con miglior campo
Modulazione GMSK: ad ogni bit di trasmissione
le frequenze di 0 e 1 vengono “shiftate” di
esattamente 180°; inoltre un filtro gaussiano
viene applicato a monte dello sfasamento per
ridurre le componenti fuori banda, di disturbo
per i canali adiacenti
Le Sim Card e MD5
A cura di
Emanuele Garuglieri
Sim Card
Acronimo di Subscriber Identity Module.
Funzioni:
z
z
z
Identificare l’utente del servizio GSM
Contenere dati
Crittare la conversazione
In quanto evoluzione nel campo della telefonia delle Smart Card non
ha solo funzioni di storage ma anche funzioni computazionali
Punto di Forza:
z Autosufficienza
Sim Card:
Struttura fisica
Composta da tre elementi:
z Supporto plastico
z Circuito stampato
z Circuito integrato
Comunicazione con l’esterno tramite appositi pin
I requisiti di resistenza sono definiti nel documento ISO7816.
Sim Card:
Il Chip
La capacità di una qualsiasi smart
card (la sim in questo
contesto) deriva dal suo
circuito integrato, solitamente
composto da:
z Microprocessore
z Rom (contiene l’OS)
z Ram (utilizzata come in tutti i
calcolatori)
z Eeprom (con funzioni di
storage)
Sim Card:
Interfaccia SIM-Mobile Station
Scambio di dati a 9600 bit/s tramite una linea seriale bidirezionale
utilizzata in modalità half duplex.
Questo pemette di evitate attacchi massici alla carta.
Sim Card:
Chiavi
Dentro ad ogni sim card c’è un area di sistema che può
contenere differenti chiavi di sicurezza, e per ciò segrete.
Ciclo di vita e chiavi correlate:
z
z
z
z
Nella fase di fabbricazione viene aggiunto un chiave di fabbricazione KF,
unica, che deriva da una master key (MK) del produttore.
Nella fase di pre-personalizzazione la chiave di fabbricazione viene
rimpiazzata da una chiave personalizzata, KP, dopodichè verrà attivato un
blocco delle personalizzazioni(Vper), inoltre vengono disabilitate le istruzioni
di accesso fisico alla memoria.
Nella fase di personalizzazione vengono scritti i dati e le applicazioni sulla
card e vengono inseriti i codici PIN e PUK e viene scritto un blocco Vutil.
Nella fase di utilizzo è possibile modificare il codice PIN ma non il PUK e le
politiche di sicurezza sono gestite dall’applicazione.
Sim Card:
Invalidazione
Per invalidare una sim card ci sono due modi:
z
z
L’applicazione scrive un blocco di invalidazione sul file
principale
Il sistema di controllo blocca irreversibilmente l’accesso,
il PIN e il PUK sono stati inseriti errati.
Sim Card
Struttura logica
MF
File organizzati in maniera gerarchica
per mezzo di directory:
z
z
z
Master File (MF) è la “root” del file
system, ed è selezionato
automaticamente al reset.
EF 0
EF n
DF 0
EF 00
Elementary File (EF) sono I
“repository” dei dati.
Dedicated File (DF) sono le
“directory” del file system e
possono contenere sia DF che “EF”.
Esse consentono di installare più di
un’applicazione all’interno della
Smart Card.
EF 0n
DF n
DF n0
EF n0
EF nn
EF n00
EF n0n
Sim Card
Controllo degli Accessi
Il principio fondamentale di controllo di accesso
è basato sulla corretta presentazione dei PIN
e sulla loro gestione.
Ad ogni file è associato una intestazione che
indica le condizioni o i requisiti di accesso e
lo stato corrente.
Sim Card
Livelli di accesso
Esistono vari livelli di accesso:
z
z
z
z
z
Always: nessuna restrizione
Never: l’accesso al file è proibito
Card Holder Verification 1: CHV1 regola l’accesso, il
PIN1 è stato inserito
Card Holder Verification 2: CHV2 regola l’accesso, il
PIN2 è stato inserito
Administrative: l’allocazione dei livelli e i relativi requisiti
sono sotto la responsabilità di una appropriata autorità
amministrativa
Sim Card
PIN e PUK
Personal Identifier Number: serve per accedere alle
funzionalità e ai dati della smart card.
Se inserito in maniera scorretta un numero n di volte
necessita di un’altro codice di sblocco (PUK).
Se anche quest’ultimo viene inserito errato un numero n di
volte, successive, provoca il Blocco Irreversibile,
eventualmente invalidando permanentemente la carta.
Sim Card
Capacità Crittografiche
Utilizzo del DES e del tripleDES
Punto debole :Ampiezza di banda dell’ interfaccia
seriale
Soluzione:nessuna, codifica simmetrica lenta.
Sim Card
Capacità Crittografiche
Utilizzo del RSA con chiave tra 512,768 e 1024 bit.
Punto debole: Capacità computazionali elevate
Soluzione:Teorema cinese del resto
La chiave è memorizzata nell’Eeprom e non è
accessibile dall’esterno.
Oltre al RSA vengono utilizzati anche i DSA che si
basano su algoritmo MD5 che è una evoluzione del
MD4
Sim Card
Capacità Crittografiche –MD5
Message Digest (MD5) – Ron Rivest
Funzione hash che dato un messaggio in input genera una sequenza
(fingerprinter) di lunghezza fissa (128 bit).
MD5 è una funzione hash one-way, cioè:
z dato un qualsiasi M, deve essere computazionalmente
semplice calcolare H(M);
z dato un qualsiasi h, deve essere computazionalmente
impraticabile calcolare un M tale che h = H(M);
Corollario:
Funzione hash senza collisioni
Una funzione di hash sicura deve essere senza collisioni
(collision-resistant):
z
z
dato un qualsiasi M, deve essere computazionalmente
impraticabile trovare un M’≠ M tale che H(M’) = H(M)
(funzione debolmente senza collisioni);
deve essere computazionalmente impraticabile
trovare una coppia (M, M’), con M’≠ M, tale che
H(M) = H(M’) (funzione fortemente senza collisioni).
L’idea è che, anche se necessariamente esistono
messaggi diversi che producono lo stesso hash, non
è praticabile trovarli.
Corollario:
Attacco ad una funzione hash
Le due proprietà sull’assenza di collisioni (debole e forte),
corrispondono a due diversi tipi di attacchi a forza bruta:
z
z
attacco a forza bruta “semplice”: trovare un messaggio che
produca un dato hash (cioè un hash uguale a quello di un
messaggio dato);
attacco del compleanno (birthday attack): trovare due messaggi
che producano lo stesso hash, indipendentemente dal valore di
questo hash.
La complessità dei due attacchi è molto diversa!
z
se l’hash è lungo m bit, la complessità del primo è 2m, quella del
secondo è 2m/2.
Sim Card
Capacità Crittografiche –MD5
MD5 è una funzione hash sicura
Sim Card
Capacità Crittografiche –MD5
Algoritmo di preprocessamento:
1- Il messaggio N viene riempito (padding) con altri bit in modo da
diventare N=64 mod 512. Il padding è un 1 seguito da 0 fino a
soddisfare la regola enunciata precedentemente. Se la misura
originale è già corretta si aggiungono comunque 512 bit.
2- Viene aggiunto una sequenza di 64 bit che rappresenta la
lunghezza del messaggio in input prima dello svolgersi del punto 1.
3- Dividiamo il messaggio in blocchi di 512 bit ed ogni blocco in 16
sottoblocchi mj da 32 bit.
In questo modo otteniamo dei blocchi di 512 bit che andranno
processati singolarmente tramite la funzione hash e il cui risultato
sarà l’input della iterazione successiva. Con questo preprocesso ci
assicuriamo che due messaggi (diversi) non vengono rappresentati
nello stesso modo.
Sim Card
Capacità Crittografiche –MD5
Algoritmo:
1- 4 registri da 32 bit che rappresentano il digest vengono inizializzati
con le seguenti 4 sequenze:
A = 0x01234567
B = 0x89abcdef
C = 0xfedcba98
D = 0x76543210
Dette Variabili di concatenamento (chaining variables). Ad ogni
passo si fornisce il digest al passo successivo come input.
2- Copia il contento dei registri in 4 variabili a,b,c,d
3- Applica una funzione fp scelta tra 4 (F,G,H,I) a 3 registri scelti tra
a,b,c,d
4- Aggiungi al quarto registro il risultato ottenuto nel passo 3
5- Somma il sotto-blocco di testo del messaggio, mj, al risultato
ottenuto nel punto 4
Sim Card
Capacità Crittografiche –MD5
6- Somma un valore costante Ti al risultato del punto precedente
7- Effettua una rotazione Sk verso destra, considerando il registro
come circolare.
8- Sommo al risultato del passo 7 una delle altre tre variabili (in mod
232) e pongo il risultato al posto di quest’ultima, sostituisco il
contenuto di ognuna delle altre tre con quella alla sua sinistra
9- ripeti 16 volte dal passo 3 al 8 con la stessa funzione scelta la prima
volta e variando j e i
10- ripeti 4 volte dal passo 3 al 9 con una funzione hash diversa da
quella o quelle utilizzate precedentemente, azzerando j e variando i
e k.
11- somma i contenuti delle variabili a,b,c e d ai rispettivi registri A,B,C
e D.
12- ripeti per ogni blocco di 512 bit dal passo 2 al 11.
13- concateno i registri A,B,C,D e ottengo il message digest.
Sim Card
Capacità Crittografiche –MD5
La funzione fp è scelta tra le seguenti:
z
z
z
z
F(x,y,z) = (x and y) or (not x and z)
G(x,y,z) = (x and z) or (y and not z)
H(x,y,z) = x xor y xor z
I(x,y,z) = y xor (x or not z).
Sim Card
Capacità Crittografiche –MD5
mj
Tk
Sim Card
Capacità Crittografiche –MD5
Punti di forza del MD5:
z
Sicurezza: E’ computazionalmente difficile trovare due messaggi che
danno lo stesso valore di hash.
z
Sicurezza Diretta: MD5 non è basato su nessuna assunzione, come la
difficoltà della fattorizzazione.
z
Velocità: MD5 è integrabile per software ad alta velocità.E’ basata su
semplici manipolazioni sui bit.
z
Semplicità e Compattezza: MD5 è semplice, senza strutture dati e
programmi complicati.
MD5 è stato attaccato con parziale successo da den Boer
and Bosselaers.
Idea: Evoluzione SHA.
DSS e Teorema
Cinese del Resto
A cura di
Luca de Angelis
Teorema Cinese del Resto (1)
Def: Siano m ed n due naturali primi tra loro; siano a,b ∈ ℤ. Allora il
sistema di congruenze seguente, ha una soluzione in ℤ.
⎧ x ≡ a (mod n )
⎨
⎩ x ≡ b (mod m )
Inoltre, se x0 ∈ ℤ è una soluzione, le soluzioni del sistema sono tutti
e soli gli interi x con:
x ≡ x 0 (mod mn )
Teorema Cinese del Resto (2)
Dimostrazione (prima parte):
z
1)
Soluzioni intere del tipo x=b+km, con k numero intero, se e solo
se b+km è congruo a(mod n);
2)
Poiché m ed n sono primi tra loro, segue che m ha inverso in
ℤn;
3)
Si calcola il numero k0 := m-1(a-b) e si moltiplica tutto per m;
4)
Quindi si ha mk0=(a-b), cioè congruo ad (a-b)(mod n);
5)
Segue che b+ mk0 è congruo ad a(mod n);
6)
Da qui si trova x0 := b+ mk0 è una soluzione del sistema.
Teorema Cinese del Resto (3)
Dimostrazione (seconda parte):
z
7)
Sia x0 la soluzione precedente.
8)
Un intero x è soluzione del sistema se e solo se è congruo ad
x0 (mod n) e ad x0 (mod m);
9)
Cioè se e solo se (x - x0) =
m e (x - x0) =
n;
10) Essendo m ed n primi tra loro questo si verifica se e solo se
(x - x0) =
mn = mn
11) Ossia se e solo se x è congruo ad x0 (mod mn). Cvd.
Teorema Cinese del Resto (4)
Def: Siano dati r numeri naturali n1, n2, …., nr a due a due primi tra loro;
sia n = n1n2…nr. Siano inoltre a1, a2, …, ar r numeri interi. Allora il
sistema di congruenze lineari
x ≡ ai (mod ni ), 1 ≤ i ≤ r
ha una soluzione in ℤ. Se l’intero x0 è una soluzione, allora le altre
soluzioni del sistema sono tutti e soli gli interi x con:
x ≡ x 0 (mod n1n 2 ...n r )
Digital Signature Standard
(DSS)
z
z
E’ uno standard per l’autenticazione e la firma digitale
proposto dal NIST in collaborazione con l’NSA
Il DSS non è un algoritmo, ma specifica una serie di
algoritmi da utilizzare per implementarlo:
z
z
z
z
DSA (raccomandato dal NIST)
RSA
ECDSA
Viene anche specificata quale funzione hash utilizzare per
comprimere il messaggio e per generare la firma:
z
SHA-1 (specificata nel relativo standard: SHS)
Digital Signature Alghoritm
(DSA) (1)
z
Parametri:
z
z
z
z
z
z
p = numero primo, tale che 2L-1<p<2L con
21023≤L≤21024;
q = numero primo, divisore di p-1 con 2159<q<2160;
g = h(p-1)/qmod p, dove h è un intero e 1<h<p-1
tale che h(p-1)/qmod p>1;
x = intero casuale o pseudocasuale con 0<x<q
y = gxmod p
k = intero casuale o pseudocasuale con 0<k<q
Digital Signature Algorithm
(DSA) (2)
z
z
z
I parametri p, q e g sono pubblici e possono
essere condivisi con un gruppo di utenti
x e y sono rispettivamente la chiave privata e
la chiave pubblica
k e x sono usati per generare la firma. Anche
k deve essere segreto e viene rigenerato
ogni volta
Generazione della firma
z
La firma è la coppia di
valori (r,s) così definiti:
z
z
z
z
r = (gkmod p)mod q;
s = (k-1(SHA-1(M)+xr)mod q.
SHA-1(M) è una stringa di
160 bit che è l’output della
funzione hash;
k-1 è l’inverso moltiplicativo
di k, mod q;
Verifica della firma (1)
Il destinatario conosce p, q,
g e la chiave pubblica del
mittente e riceve M’, r’, s’:
z
z
z
z
z
z
z
Se non è 0<r’<q e 0<s’<q
allora la firma è violata;
w = (s’)-1mod q;
u1 = ((SHA-1(M’))w)mod q;
u2 = (r’w) mod q;
v = ((gu1yu2mod p) mod q.
Se v=r’ la firma è corretta!
Verifica della firma (2)
Teo: Se nella firma ricevuta M’=M, r’=r e s’=s allora v=r’
Dimostrazione:
z
Si ha che:
w = (s’)-1mod q = s-1mod q e s = (k-1(SHA-1(M)+xr)mod q
segue che:
(SHA-1(M)+xr)w mod q = k mod q;
2. u1 = ((SHA-1(M’))w)mod q = (SHA-1(M)w)mod q;
3. u2 = (r’w) mod q = rw mod q;
1.
z
Essendo y = gxmod p:
4.
v = ((gu1yu2mod p) mod q = (g(SHA-1(M)+xr)wmod p) mod q = (gk
mod p) mod q = r = r’. Cdd.
Critiche a DSA
z
z
z
z
z
z
Non può essere usato per la crittazione e la
distribuzione di chiavi Æ Vero
E’ stato sviluppato dall’NSA, quindi ci
potrebbe essere una trapdoor Æ Forse
E’ più lento di RSA Æ Sì e No
RSA è uno standard de facto Æ Vero
Può essere coperto da licenze Æ Vero
La chiave è troppo corta Æ Era Vero
Confronto DSA-RSA
DSA
RSA
DSA con p,
q, g in
comune
Generazione della
chiave
14 sec
Secret
4 sec
Precalcolo
14 sec
N/A
4 sec
Generazione della
firma
0.03 sec
15 sec
0.03 sec
Verifica della firma
16 sec
1.5 sec
10 sec
Secure Hash Standard (SHS)
z
Questo standard specifica 4 algoritmi hash
sicuri, da utilizzare negli standard di firma
digitale:
z
z
z
z
z
SHA-1;
SHA-256;
SHA-384;
SHA-512.
Sono sicuri perché sono unilaterali, e sono
sia debolmente che fortemente senza
collisioni
Secure Hash Alghoritms
z
Ognuno dei 4 algoritmi può essere descritto in due
passi:
z
z
z
Preprocessamento;
Calcolo dell’hash.
Gli algoritmi si differenziano principalmente per:
z
z
z
z
Lunghezza del messaggio di input;
Lunghezza del message digest;
Lunghezza dei blocchi e delle word utilizzati dalle funzioni
interne;
Sicurezza rispetto all’attacco del compleanno.
SHA - Proprietà
Message
Block
Word
MD Size Security
Size (bit) Size (bit) Size (bit)
(bit)
(bit)
SHA-1
<264
512
32
160
80
SHA-256
<264
512
32
256
128
SHA-384
<2128
1024
64
384
192
SHA-512
<2128
1024
64
512
256
SHA-1 Preprocessamento
z
Il preprocessamento deve essere eseguito
prima del calcolo della funzione hash
z
Si può dividere in tre sotto-passi:
1. Padding del messaggio M;
2. Parsing del risultato in blocchi;
3. Setting dei valori iniziali.
SHA-1 Padding
z
z
z
Lo scopo di questa operazione è far sì che la
lunghezza del messaggio ottenuto sia un
multiplo di 512 bits
Se la lunghezza del messaggio M è di l bits,
si aggiunge un “1” seguito da k zeri, con:
l + 1 + k = 448 mod 512
Rimangono 64 bit che servono ad esprime la
lunghezza del messaggio iniziale.
SHA-1 Parsing
z
z
z
Lo scopo di questa operazione è dividere il
messaggio ottenuto precedentemente in N
blocchi di m bits
In questo caso si divide in N blocchi da 512
bit: M(1), M(2), …, M(N)
Ogni blocco è diviso in 16 word da 32 bit.
Quindi l’i-esimo blocco si può esprimere in:
M0(i), M1(i), …, M15(i)
SHA-1 Settings
z
z
Lo scopo di questa operazione è di settare il
valore iniziale H(0) dell’hash
In questo caso si hanno 5 word da 32 bit:
H0(0) = 0x67452301
H1(0) = 0xefcdab89
H2(0) = 0x98badcfe
H3(0) = 0x10325476
H4(0) = 0xc3d2e1f0
SHA-1 Calcolo dell’hash
z
z
z
E’ un algoritmo iterativo: l’hash di un passo dipende dall’hash
del passo precedente; ogni iterazione calcola dei valori di
A,B,C,D,E che vengono sommati ai successivi
Ogni passo è composto da 4 round con 20 operazioni
ciascuno;
Ogni operazione è fatta da una funzione su tre variabili,
scorrimenti ed addizioni simili ad MD5
SHA-1 Funzioni e Costanti
z
Ognuna delle 4 funzioni vale solo per 1 round e sono così definite
(in ordine):
⎧Ch(x,y,z)= (x ∧ y) ⊕ (¬x ∧ z)
⎪Parity( x, y, z ) =x ⊕ y ⊕ z
⎪
f t ( x, y, z ) = ⎨
⎪Maj( x, y, z) = (x ∧ y) ⊕ (x ∧ z) ⊕ ( y ∧ z )
⎪⎩Parity( x, y, z ) =x ⊕ y ⊕ z
z
Sono usate 4 costanti. Una diversa per ogni round di un passo:
K
t
⎧ 2
• 2 32 = 5 a 827999
⎪
⎪ 4
⎪ 3
• 2 32 = 6 ed 9 eba 1
⎪
⎪ 4
= ⎨
⎪ 5 • 2 32 = 8 f 1 bbcdc
⎪ 4
⎪
⎪ 10 • 2 32 = ca 62 c 1 d 6
⎪⎩ 4
SHA-1 Schema Operazione
SHA-1 Algoritmo (1)
1.
Si entra ne ciclo principale (FOR i=1 to N). Il blocco i-esimo
M(i) è esteso fino a 80 word da 32 bit W0, W1, …, W79 in
questo modo:
1.
2.
2.
3.
Wt = Mt, con t = 0…15
Wt = (Wt-3⊕ Wt-8 ⊕ Wt-14 ⊕ Wt-16)<<<1, con t = 16…79
Si inizializzano 5 variabili a, b, c, d, e con i rispettivi valori
dell’hash precedente
Si entra nel ciclo interno:
FOR t=0 to 79
TEMP = (a<<<5)+ft(b,c,d)+e+Wt+Kt
e=d
d=c
c = b<<<30
b=a
a = TEMP
SHA-1 Algoritmo (2)
4.
Si calcola l’i-esimo hash intermedio H(i):
H0(i) = a + H0(i-1)
H1(i) = b + H1(i-1)
H2(i) = c + H2(i-1)
H3(i) = d + H3(i-1)
H4(i) = e + H4(i-1)
5.
Alla fine il Message Digest viene calcolato
concatenando i valori riportati dal passo n-esimo:
H0(N) || H1(N) || H2(N) || H3(N) || H4(N)
z
Il risultato finale è una stringa di 160 bit
SHA-1 Sicurezza
z
z
Finora non si conoscono attacchi contro
SHA-1
Poiché produce un Message Digest di 160
bit, è più sicuro agli attacchi brute force degli
algoritmi che producono MD a 128 bit (in
primis MD4 e MD5)
SHA-1 vs MD5
Il modello di sicurezza
nel GSM
A cura di
Paola Ranaldi
Introduzione
Tutto l'intero costrutto per la sicurezza si fonda su criteri inerenti
l'identificazione dell'abbonato, introdotti specificamente con il sistema GSM.
L'abbonato è identificato univocamente dal codice IMSI che, unitamente alla
chiave personale di autenticazione Ki, costituiscono le credenziali di
identificazione. L'innovazione particolare è che le procedure di
autenticazione e crittografia al fine di garantire maggiore sicurezza e
protezione nel sistema si esplicano in modo che queste informazioni non
vengano trasmesse sul canale radio.
Precisamente, per l'autenticazione si utilizza un meccanismo di tipo
challenge-response, mentre per la crittografia dei dati trasmessi si adotta
una chiave di sessione Kc, ed anch'essa non viene mai trasmessa sul
canale radio.
Mobile Station (MS)
z
Mobile Equipment(ME):
Dispositivo mobile fisico
Identificatori:
ƒ
z
IMEI – International Mobile Equipment Identity
Subscribe Identity Module(SIM)
Smart Card che contiene le chiavi, gli identificatori e gli algoritmi
Idenificatori:
ƒ
Ki – chiave di identificazione del sottoscrittore
ƒ
IMSI – International Mobile Subscriber Identity
ƒ
TMSI – Temporary Mobile Subscriber Identity
ƒ
MSISDN – Mobile Station International Service Digital Network
ƒ
PIN – Personal Identity Number protecting a SIM
ƒ
LAI – location area identity
¾ Il modello di sicurezza del GSM è basato su un segreto condiviso
tra l’HLR della rete di appartenenza del sottoscrittore e la carta SIM
del sottoscrittore: Ki
Gli algoritmi
z
Algoritmo di autenticazione della MS (A3)
z
Algoritmo di generazione della chiave di sessione (A8)
z
Algoritmo di autenticazione e generazione della chiave
di sessione (COMP128)
z
Algoritmo di cifratura (A5)
Autenticazione della MS (A3)
e generazione di Kc di sessione (A8)
z
z
Quando la MS vuole comunicare con la rete GSM,entrando nell’area di una MSC invia una
richiesta di accesso alla BTS che la inoltra alla MSC
Alla richiesta di identificazione della MS alla rete, l’HLR fornisce alla MSC cinque tuple contenenti:
ƒ
ƒ
ƒ
z
RAND, un numero casuale a 128 bit
SRES, calcolata su RAND e sulla chiave Ki , utilizzando l’algoritmo A3
Kc, la chiave di sessione. Essa viene calcolata mediante l’algoritmo A8 che prende in input RAND e ki
L’MSC invia la RAND della prima tupla alla MS
IMSI / TMSI
SIM
RICHIESTA D’ACCESSO
RETE GSM
GEN. RANDOM
RAND
RAND
Ki
A3
A3
SRES
A8
A8
TRATTA RADIO
KC
ki
Autenticazione della MS (A3)
e generazione di Kc di sessione (A8)
z
z
z
z
La MS calcola una SRES con l’algoritmo A3 utilizzando la RAND ricevuta dalla MSC, e la chiave
Ki che risiede nella SIM
La MS invia la SRES alla MSC
La MSC confronta la SRES inviatagli dalla MS con quella contenuta nella tripla del HLR
La MS calcola la chiave di sessione Kc mediante l’algoritmo A8 che prende in input
RAND e ki
IMSI/TMSI
SIM
RICHIESTA D’ACCESSO
RETE GSM
GEN. RANDOM
RAND
RAND
Ki
A3
A3
SRES
A8
SRES
?= SRES
SRES
KC
A8
KC
TRATTA RADIO
ki
Crittografia dei dati trasmessi ( A5)
La chiave di sessione kc viene usata per la codifica sul canale via etere.
La stessa kc viene utilizzata fin quando l’MSC non identifica nuovamente la MS, nel qual caso
ne viene generata una nuova
ME
SIM
ki
Fn
Data
RAND
RAND
A8
A8
kc
kc
A5
A5
XOR
Ciphertext
XOR
ki
OPERATORE
GSM
Fn
Data
Elementi del sistema GSM
SIM: A3, A8;
IMSI\TMSI Ki
MS: A5
BTS: A5; Kc
NS (Network Subsystem)
MSC
AuC Æ VLR; HLR; EIR;
A3, A8
IMSI\TMSI, LAI, Ki
gen. Num. pseudocasuali
Sicurezza della rete
z
La scelta di generare un numero casuale (RAND) è dovuta al fatto che se tale stringa
non fosse generata, il valore SRES trasmesso dalla MS alla BTS sarebbe sempre lo
stesso: si potrebbe dunque effettuare un attacco a ripetizione
z
Sia l’A3 che l’A8 sono memorizzati nella SIM. Questo significa che l’operatore può
decidere quali algoritmi utilizzare indipendentemente dai produttori di
hardware e dagli altri operatori. Infatti, l’autenticazione funziona anche negli altri
paesi, poiché le reti locali chiedono le 5 triple all’HLR della rete di appartenenza
dell’abbonato. Così la rete locale non deve sapere niente riguardo gli algoritmi A3 ed
A8 utilizzati.
z
L’abbonato è identificato univocamente dal codice IMSI e dalla chiave personale di
autenticazione ki
z
Per la crittografia dei dati trasmessi si adotta una chiave di sessione Kc
Î per garantire maggiore sicurezza e protezione del sistema le procedure di
autenticazione e crittografia si esplicano in modo che IMSI, Ki e kc non vengano
mai trasmesse sul canale radio
.
L’anonimato
z
z
z
z
z
z
z
z
Quando una MS entra in un’area MSC diversa e accende il segnale radio utilizzando
per la prima volta la SIM, obbligatoriamente viene usata la sua vera identità IMSI.
Per proteggere l’IMSI di un utente suLl’interfaccia aerea L’IMSI, non appena conclusa
con successo l’autenticazione, viene sostituita con un’identificazione provvisoria
TMSI, ed è proprio questa ad essere resa pubblica nella rete e ad essere utilizzata in
tutte le comunicazioni successive
Appena si conclude con successo l’autenticazione, la rete assegna alla SIM un TMSI
e lo trasmette in forma cifrata alla MS dove poi viene decifrato
L’MS risponde confermando l’avvenuta ricezione e memorizza Il TMSI nella SIM.
Da questo momento, per tutte le comunicazioni successive, il codice TMSI è utilizzato
al posto del codice IMSI
Il codice TMSI è valido solo nella Location Area (LA) in cui è stato rilasciato. Per
comunicazioni al di fuori della LA è necessario l’utilizzo del LAI in aggiunta al TMSI
Ogni volta che si compie una Location Updating il VLR assegna una nuova TMSI alla
MS e la invia insieme al messaggio che comunica l’esatto aggiornamento della
localizzazione (Location Updating Accept)
Il codice TMSI, quando il processo di crittografia è stato attivato può essere riallocato
anche in caso di altri accessi alla rete (TMSI ReallocationRequest-TMSI Reallocation
Confirmation)
Comp128
Invece di utilizzare due algoritmi distinti, A3 ed A8, la maggior parte
degli operatori GSM utilizza un unico algoritmo, chiamato
COMP128.
Ki (128 bit) , RAND (128 bit)
A3
SRES (32 bit)
ALGORITMO DI
AUTENTICAZIONE
Ki (128 bit) , RAND (128 bit)
A8
Kc (64 bit)
ALGORITMO DI GENERAZIONE
DELLA CHIAVE DI SESSIONE KC
Comp128
Invece di utilizzare due algoritmi distinti, A3 ed A8, la maggior parte
degli operatori GSM utilizza un unico algoritmo, chiamato
COMP128.
Ki (128 bit) , RAND (128 bit)
Comp128
SRES (32 bit) , Kc (54 bit)
Comp128
1.
z
z
Vengono creati:
Un array x[ ] formato da 32 byte
Un array bit[ ] formato da 128 byte
Negli ultimi 16 byte di x[ ] viene immesso RAND
presente in input
Comp128
2. Viene creata un’iterazione per cui per 8 volte vengono eseguiti
i seguenti passi:
Comp128
3. Viene creato l’array simoutput[ ] di 96 bit dei quali:
z
z
I primi 32 rappresentano SRES
Gli altri 64 ( di cui gli ultimi 10 sono sempre posti
uguali a zero) rappresentano la chiave kc
Comp128
z
Il COMP128 e' considerato un algoritmo debole In generale anche
gli altri algoritmi utilizzati dal GSM lo sono. Infatti:
z
gli ultimi 10 bit della chiave di sessione kc sono posti uguali a zero.
Lo spazio delle chiavi si riduce da 264 a 254 .
Si è riscontrato che questo avviene in tutte le implementazioni di A3/A8,
incluse quelle che non usano COMP128 per la generazione della chiave
e sembra sia una caratteristica voluta.
z
In realta' vi e' il forte e fondato sospetto che siano utilizzati proprio
per questo. Durante il processo di standarizzazione del protocollo
piu' volte diversi governi si espressero a favore di algoritmi deboli
per rendere possibile l'intercettazione ed il controllo delle
chiamate.
Algoritmo di cifratura A5
L’algoritmo A5 è lo stream cipher utilizzato per cifrare i frame che vengono
inviati via etere
Ciascun frame contiene 114 bit e rappresenta una parte della comunicazione
tra MS e BTS e viceversa.
I cifratori di tipo stream cipher operano bit a bit producendo per ogni bit di
testo in chiaro un singolo bit cifrato in uscita.
z
z
z
MS
Fn (22 bit)
Kc (64 bit)
Kc (64 bit)
A5
A5
114 bit
Data(114 bit)
XOR
OPERATORE
GSM
Fn (22 bit)
114 bit
Ciphertext (114 bit)
XOR
Data (114 bit)
Algoritmo di cifratura A5
Uno stream cipher è tipicamente implementato come un exclusive-or(XOR) tra il
flusso dei dati ed una opportuna sequenza di bit chiave (keystream).
L’efficacia in termini di sicurezza dipende quindi dalle proprietà della Keystream:
una keystream completamente casuale è certamente più efficace di una
deterministica a breve periodo
z
z
OPERATORE
GSM
MS
Kc (64 bit)
Kc (64 bit)
Fn (22 bit)
A5
A5
keystream (114 bit)
Data(114 bit)
XOR
Ciphertext (114 bit)
Fn (22 bit)
keystream (114 bit)
XOR
Data (114 bit)
Algoritmo di cifratura A5
Fn è il numero del frame da cifrare
z
Kc viene utilizzata per tutta la sessione, durante la quale il numero del frame
cambia
Î Viene generata un’unica keystream per ciascun frame
z
Una telefonata può essere decifrata qualora l’attaccante conosca Kc in quanto il
numero di frame viene trasmesso in chiaro
z
OPERATORE
GSM
MS
Kc (64 bit)
Kc (64 bit)
Fn (22 bit)
A5
A5
keystream (114 bit)
Data(114 bit)
XOR
Ciphertext (114 bit)
Fn (22 bit)
keystream (114 bit)
XOR
Data (114 bit)
Algoritmo di cifratura A5
I tre LFSR
z
z
Il generatore delle keystream è costituito da 3 LFSR di lunghezze differenti.
Organizzati in modo non lineare, che corrispondono ai tre polinomi delle
connessioni:
z
X19 + x5 + x2 + x + 1
z
x22 + x + 1
z
x23 + x15 + x2 + x + 1
Tali polinomi sono stati scelti primitivi in modo che i corrispondenti registri
abbiano periodo massimale: il periodo massimo di un registro a K bit è 2k -1
Algoritmo di cifratura A5
I tre LFSR
z
z
La lunghezza totale dei tre LFSR è di 64 bit.
Gli LFSR sono lunghi rispettivamente 19, 22 e 23 bit e le funzioni utilizzate
sono polinomi di feedback sparsi.
Tutti e tre i registri sono temporizzati in base al valore del loro bit centrale
Algoritmo di cifratura A5
I tre LFSR
z
Ad ogni passo ciascun registro viene shiftato se il suo bit centrale concorda con
il valore di maggioranza dei bit centrali dei tre registri. Per esempio, se i bit
centrali dei tre registri sono rispettivamente 0,1 e 1, gli ultimi due registri vengono
shiftati, invece se i bit centrali sono rispettivamente 0, 1 e 0, allora vengono shiftati il
primo ed il terzo registro. Così, ad ogni round, vengono shiftati almeno due registri.
Lo XOR dei bit meno significativi dei tre registri rappresenta un bit della
keystream.
Algoritmo di cifratura A5
I tre LFSR: inizializzazione
z
z
I tre LFSR vengono inizializzati con una combinazione non lineare della chiave di
sessione Kc ed il numero di frame .
I 64 bit di Kc vengono inizialmente caricati nei tre registri r1, r2 ed r3 bit a bit, in modo
sequenziale. Durante il caricamento dei bit della chiave, la regola di shift dei registri che
contengono i bit di maggioranza è disabilitata. Il caricamento dei bit viene mostrato nel
seguente esempio:
Algoritmo di cifratura A5
I tre LFSR: inizializzazione
z
Dopo il caricamento dei bit della chiave di sessione ciascuno dei 22 bit del numero di
frame viene messo in XOR con i tre valori di feedback dei registri stessi. Durante il
caricamento di ciascun bit del numero di frame, vengono shiftati i registri il cui bit
centrale concorda con il bit di maggioranza.
Algoritmo di cifratura A5:
la keystream di output
Dopo che i registri sono stati inizializzati con la chiave di sessione Kc ed il numero del frame
corrente:
z
z
z
z
i primi 100 bit di output della keystream vengono scartati allo scopo di distribuire i bit del numero
di frame in modo casuale nei tre LFSR;
vengono prodotti 114 bit di output della keystream, che vengono utilizzati per cifrare il frame da
MS a BTS;
vengono scartati altri 100 bit di output dell keystream per nascondere la relazione tra i primi 114
bit ed i succesivi 114 bit della keystream;
vengono prodotti 114 bit di output della keystream, che vengono utilizzati per decifrare il frame
successivo ricevuto dalla BTS.
Ad ogni passo, viene prodotto un bit della keystream. L'algoritmo restituisce una keystream di
228 bit. La cifratura effettiva avviene mettendo in XOR 114 bit della keystream e 114 bit del
messaggio in chiaro.
Successivamente, l’algoritmo A5 viene reinizializzato con la stessa chiave Kc ed il numero del
frame successivo.
Algoritmo di cifratura A5:
z
Esistono tre versioni dell’ algoritmo A5:
z A5\1 : la versione più forte e meno diffusa
z A5\2 : la versione più debole per cui non esistono limiti di esportazione
z A5\3 : la nuova versione, non ancora utilizzata nei sistemi GSM
z
L’A5 è stato giudicato “troppo sicuro” per essere esportato dagli USA in
medioriente. Così l’algoritmo originale è stato rinominato A5\1, mentre le
successive versioni sono indicate con A5\X
Nel 1998 due ricercatori della California University di Berkeley sono riusciti
a rompere gli algoritmi A5\2+A3\A8 ponendo seriamente in evidenza la
responsabilità di enti governativi (la CIA e l’NSA)nella scelta di algoritmi
così deboli
L’anno successivo il gruppo di Berkley annuncia di aver violato con
successo anche l’A5\1
z
z
Poche garanzie di riservatezza
z
E’ possibile concludere che intercettare e decrittare al volo una telefonata
sia fattibile per chi abbia a disposizione mezzi e risorse (10000 dollari è la
stima per un’apparecchiatura di intercettazione di alta qualità).
z
In realtà ascoltare le nostre conversazioni è molto più semplice:
l’architettura GSM prevede che la conversazione sia cifrata dal telefono alla
cella, la BTS, ma da questo punto in poi il traffico viaggia in chiaro.
Così l’operatore e le autorità competenti non avranno difficoltà ad ascoltare
le telefonate.
z
Allora la scelta di algoritmi deboli è da imputarsi a progetti di controllo e di
spionaggio non legati alla collaborazione con un operatore, a cui può far
comodo intercettare una telefonata senza l’autorizzazione o la
collaborazione di qualcuno.
Attacchi alla
Sicurezza nel GSM
A cura di
Marco Canu
Cronologia degli Attacchi
z
z
z
z
z
z
1991
z
Prima Implementazione del GSM.
Aprile 1998
z
La “Smartcard Developer Association” (SDA) assieme a dei ricercatori di Berkeley ha
rotto l’algoritmo COMP128 registrato nella SIM riuscendo a ricavare Ki nell’arco di
alcune ore. Scoprendo tra l’altro che la chiave di sessione Kc utilizza solo 54 bits.
Agosto 1999
z
Il debole A5/2 è stato rotto con un semplicissimo PC nell’arco di pochi secondi.
Dicembre 1999
z
Alex Biryukov, Adi Shamir e David Wagner hanno pubblicato lo scema di rottura del più
resistente algoritmo A5/1. In una conversazione di 2 minuti, e con un tempo di attacco
nell’ordine di 1 secondo.
Maggio 2002
z
Il gruppo di ricerca dell’IBM ha scoperto una nuova strada per estrarre velocemente la
chiave del COMP128 utilizzando un attacco basato su SIDE EFFECTS.
Settembre 2003
z
Un gruppo di ricercatori israeliani del Technion Insitute of Technology di Haifa è riuscito
a violare il sistema GSM basato sulle code di correzione dell’errore.
Tipologie di Attacchi
z
Algoritmi di Cifratura (Attacchi all’Algoritmo A5/x)
z Attacco Brute-Force
z Attacco Divide-and-Conquer
(Known Plaintext)
z Time-Memory Trade-Off
z
SIM Card (Recupero della chiave ki )
z Attacchi Logici
z Attacchi Fisici
z Rottura dell’Algoritmo COMP128
z
z
z
Attacco Chosen Challeng
Partitionin Attack
Architettura di Rete (Insicurezza strutturale della Rete)
z Intercettazione Segnali Operazioni di Rete
z Recupero Chiave dall’Authentication Center (AuC)
Algoritmo A5/1
Debolezza della Chiave
z
Un gruppo di ricercatori dell’Università della California ritiene che
la semplicità nel rompere l’A5/1 sia dovuta al fatto che il governo
lo abbia deliberatamente indebolito per fini di sorveglianza delle
comunicazioni.
z
Sebbene l’A5/1 utilizzi una chiave a 64 bit, i ricercatori hanno
scoperto che gli ultimi 10 bit sono settati a 0 Questo significa che
con computer estremamente potenti, a disposizione delle varie
agenzie governative, potrebbe essere possibile, abbastanza
velocemente, decodificare una conversazione.
z
Algoritmi A5/x
z A5/1 utilizzato nei paesi europei (Kc di 54 bit)
z A5/2 utilizzato negli USA (Kc di 16 bit)
z A5/0 utilizzato in medio oriente (non cifra la comunicazione)
Algoritmo A5/1
Attacco Brute-Force
z
Un attacco Brute-Force in Real-Time non è realizzabile, essendo la
complessità di tale attacco di 254 operazioni.
z
E’ altresì possibile memorizzare i frame della comunicazione tra MS
e BTS e lanciare l’attacco successivamente.
z
Con un calcolatore PIV 3GHz con 55M transistor, se
l’implementazione di tre LFSR richiedesse circa 2000 transistor, la
ricerca esaustiva nello spazio delle chiavi richiederebbe circa 25
ore. (15 giorni con un PIII 600MHz)
z
Possibilità di ridurre la complessità (riducendola di 1/3)
interrompendo la ricerca su una particolare chiave appena si
incontra un bit non valido nella Keystream.
Algoritmo A5/1
Attacco Divide-and-Conquer
z
z
z
z
z
z
z
Riduce la complessità da 254 tentativi dell’attacco di forza bruta a 245
(29=512)
Attacco known-plaintext.
Tenta di determinare lo stato iniziale degli LFSR da una sequenza di
keystream conosciuta.
E’ sufficiente conoscere solo 64 bit consecutivi della keystream calcolati
dalle coppie testo in chiaro-testo cifrato a lui note.
Attacco implementato indovinando il contenuto dei due LFSR più corti e
computando il terzo dalla keystream conosciuta mediante la risoluzione di
equazioni lineari appropriate.
Questo attacco richiederebbe in media 240 tentativi, nell'ipotesi in cui gli
shift dei primi due registri non fossero dipendenti dal terzo registro.
J.Golic ha proposto un altro attacco divide-and-conquer basato sulle stesse
assunzioni con la complessità media di circa 240.
z
z
262.32 stati interni possono essere raggiunti a partire dai 264 stati iniziali da cui è
possibile ottenere, indovinando n bit dei primi due registri, delle semplici
equazioni lineari. La cui risuluzione ha complessità media di 240.16
J. Golic: Ulteriore attacco Trade-Off Tempo-Memoria basato sul Paradosso del
Compleanno.
Algoritmo A5/1
A5/2 ed Attacco Man-in-the-Middle
Attacco ad A5/2
z
z
z
z
z
z
Chiave Kc di 16 bit
Attacco Known-Plaintext
Basso ordine algebrico.
Code di correzione dell’errore.
Complessità Temporale inferiore ad 1 sec.
Attacco Man-in-the-Middle
z
z
z
z
L’attaccante si finge BTS e MS in fasi successive
Riceve la comunicazione crittata da MS (calcolato con
A5/2)
Ottiene Kc dal frame ricevuto conosciendo il numero di
frame
Recupero della Chiave Ki
Attacco Fisico alla SIM e Rottura COMP128
z
La chiave Ki è il cardine della sicurezza nel GSM
z
z
Capacità del Sistema di Individuare chiamate contemporanee
z
z
z
z
z
Se l’attaccante è interessato solo all’ascolto delle chiamate dell'abbonato resta
invisibile alla rete GSM.
La SDA (The Smartcard Developers Association) e l'ISAAC (Internet
Security, Applications, Authentication and Cryptography) hanno scoperto un
difetto nell’algoritmo COMP128 che rende capaci effettivamente di
recuperare la chiave segreta Ki, dalla SIM.
L’attacco richiede l'accesso fisico alla SIM ed è di tipo chosen-challenge.
La chiave segreta può essere dedotta dalle risposte SRES mediante
crittoanalisi differenziale.
Se il lettore di smartcard utilizzato per implementare l’attacco lancia 6.25
query al secondo alla SIM, l’attacco richiede circa 8 ore per essere portato
a termine.
z
z
Una volta recuperata la chiave si ha completo accesso ai servizi dell’utente
truffato.
Necessari 217.5 challange alla SIM, per generare le SRES e le chiavi di sessione
Kc
Applicazione dell’Ingengeria Sociale
Attacco al COMP128
Tipologia e Complessità Temporale
z
z
z
z
z
Il COMP128 è un algoritmo di autenticazione. Ampiamente utilizzato
dai Service Provider del GSM.
Si tratta di un attacco di tipo chosen-challenge attack. Nel quale si
formulano alla SIM una serie di richieste tratte da uno specifico
insieme di input. La SIM applica l’algoritmo alla propria chiave segreta
e all’insieme di input scelti, restituendone la risposta. L’analisi delle
risposte porta alla comprensione ed alla rottura dell’algoritmo, con la
conseguente individuazione della chiave.
Realizzare tale attacco richiede un accesso alla SIM (sia esso logico
o fisico), ed un semplice pc per elaborare le operazioni.
E’ necessario interrogare la Smart Card per almeno 150.000 volte,
mentre sono necessari calcoli aggiuntivi relativamente irrisori.
Sebbene l’algoritmo fosse segreto, lo studio e la sua comprensione
sono stati resi possibili dalla lettura di documenti pubblici e dall’analisi
del comportamento di un elevato numero di Carte.
Attacco al COMP128
Debolezza e “Trucchi” per la crittoanalisi
z
z
z
L’attacco si basa sull’esistenza di una “pipe'' all’interno del
COMP128. In particolare i bytes i,i+8,i+16,i+24 all’output del secondo
round dipendono unicamente dai bytes i,i+8,i+16,i+24 che sono in
input all’algoritmo. In particolare:
z I Bytes i,i+8 dell’input sono i bytes i,i+8 della chiave,
z I bytes i+16,i+24 dell’input sono i bytes i,i+8 dell’input di prova.
L’attacco si basa quindi sulla variazione dei bytes i+16,i+24 di input
(i.e. I bytes i,i+8 del challenge) mantenendo costante il resto
dell’input.
Il paradosso del compleanno ci garantisce una rapida collisione dei
bytes i,i+8,i+16,i+24 dell’output dopo due round. Tale collisione sarà
evidenziata dalla collisione dell’output dell’algoritmo.
Ogni collisione ci permette di apprendere due bytes i,i+8 con l’analisi
dei primi 2 round.
z ``2-R attack'', nella terminologia della Crittoanalisi Differenziale.
Recupero della Chiave Ki
Attacco Logico alla SIM: via Etere
z
z
I ricercatori dell'SDA (The Smartcard Developers
Association) e dell’ISAAC (Internet Security, Applications,
Authentication and Cryptography) sono sicuri che l'attacco
precedentemente descritto possa essere lanciato anche via
etere.
L’attacco via etere è basato sul fatto che la MS deve
rispondere ad ogni challange inviatagli dalla BTS.
z
z
z
Un attaccante potrebbe impersonare la BTS legittima inviando alla
MS obiettivo delle challenge per risalire alla chiave segreta mediante
le risposte a queste challenge.
Durata ipotetica 8-13 ore.
Possibilità di dividere l’attacco in più momenti.
Insicurezza Strutturale della Rete
Intercettazione Segnali delle Operazioni di Rete
z
z
z
z
Le trasmissioni sono cifrate solo tra la MS e la BTS. Dopo la BTS, i
segnali vengono trasmessi in chiaro nelle operazioni di rete.
Le comunicazioni avvengono via Cavo, ma anche attraverso le
microonde e le comunicazioni satellitari.
La rete di segnalazione SS7 utilizzata dagli operatori della rete GSM è
completamente insicura se l’attaccante ne guadagna l’accesso diretto.
Se l’Attaccante potesse accedere a tale rete potrebbe:
z
z
z
z
Conoscere RAND, SRES e Kc consentendogli l’intercettazione
on-the-fly di qualsiesi chiamata.
Provare ad accedere all’HLR (Home Location Register) di una particolare
rete.
Conoscere la chiave Ki di tutti gli abbonati.
Attacchi di Ingegneria Sociale
Insicurezza Strutturale della Rete
Recupero della Chiave dall’AuC
z
z
z
z
z
Lo stesso attacco utilizzato per il recupero di Ki da una
SIM card può essere utilizzata per recuperare la chiave
Ki dall’AuC.
La procedura di base è identica alla procedura utilizzata
nella MS per accedere alla SIM.
L’Authentication Center risponde alle richieste fatte dalla
rete GSM e restituire triple valide da utilizzare
nell'autenticazione della MS.
La differenza è che l’AuC è molto più veloce nel
processare le richieste di quanto non lo sia la SIM card.
La sicurezza dell’AuC gioca un ruolo fondamentale
riguardo alla possibilità di eseguire o meno questo
attacco.
Intercettazione delle Chiamate
Sebbene:
z
z
zVari
Sia stato rotto l’algoritmo COMP128
Siano state messe appunto strategie per attaccare gli A5/x di cifratura delle
conversazioni
scienziati nel mondo sembrano essere unanimi sul fatto che
l’intercettazione e la decodifica real-time di una chiamata via-etere sia
ancora impossibile nonostante lo spazio delle chiavi sia ridotto.
zEsistono, tuttavia, altri tipi di attacchi al sistema che sono attuabili e
sembrano essere minacce molto reali. Sono stati, infatti, implementati alcuni
attacchi che non sfruttano nessuno dei difetti degli algoritmi di sicurezza.
Side-Effects and Partitioning
Attack
z
z
z
z
z
IBM ha lanciato l'allarme su una vulnerabilità delle SIM card, che gli
hacker potrebbero utilizzare per rubare le chiavi crittografiche segrete di
un cellulare e sostituirsi al legittimo proprietario per fare tutte le chiamate
che desiderano.
Attraverso il baco si puo' portare un nuovo tipo di attacco side-channel,
denominato 'partitioning attack'.
Monitorando i side-channels, come ad esempio il consumo di energia o
l'emanazione elettromagnetica (EM), un hacker potrebbe ottenere in
pochi minuti le chiavi segrete contenute nelle SIM card con tutte le
informazioni sull'identità dell'utente.
Un attacco di questo tipo è molto più facile del tentativo di decodificare gli
algoritmi crittografici delle chiavi o di estrarle direttamente dal microchip.
Le SIM card destinate ai cellulari GSM utilizzano gli algoritmi crittografici
COMP128, o suoi derivati, per registrare i dati identificativi dell'utente e
delle sue attività. Osservando con un computer i side channels è
possibile estrarre le chiavi COMP128 da una SIM card.
Assunzioni Crittografiche
Tradizionali
Traditional
Cryptographic
Attacks
Smart Card
Input
Output
Crypto Processing
Sensitive Information
Informazioni attualmente disponibili
Side Channels
•Power Consumption
•Electromagnetic radiation
•Timing
•Errors
•Etc.
Side Channel Attacks
Smart Card
Input
Output
Crypto Processing
Sensitive Information
Analisi del consumo energetico
durante l’esecuzione del DES
z
Simple Power Analysis delle operazioni DES compiute
da una tipica Smart Card
z
z
Sopra: Permutazione iniziale, 16 round DES, permutazione
finale
Sotto: Vista dettagliata del secondo e terzo round
Partitioning Attack on COMP128
z
z
z
z
Successi dell’attacco
z Derivata la chiave Ki contenuta nella SIM card
Cardinal Principle
z I bit rilevanti dei cicli intermedi ed il loro valore dovrebbero essre
statisticamente indipendenti dall’input, dall’output e dalle informazioni
sensibili.
Idea dell’Attacco
z Trovare una violazione del Cardinal Principle, ovvero la presenza di
effetti collaterali con segnali che dipendano dall’input, dall’output e
dalle informazioni sensibili.
z Tentare di esplicitare le relazioni statistiche sui segnali per ricavare
informazioni sensibili.
L’algoritmo si basa sulla partizione successiva di una tabella,
inizialmente da 512 bit in tabelle di dimensioni dimezzate ad ogni passo
e sulla possibilità di:
z Individuare l’accesso ad una particolare tabella attraveso canali
collaterali.
Scoperta Falla nel sistema di
crittografia delle comunicazioni GSM
z
z
Prof. Eli Biham e i dottorandi Elad Barkan e Nathan
Keller
“Elad ha scoperto una falla nel sistema di sicurezza
della tecnologia GSM - ha detto Biham - Durante il
setup, il protocollo non agisce nel modo corretto. Il
sistema GSM infatti prima accede ai dati per
eliminare interferenze e rumori e solo in un secondo
momento effettua la crittografia dei dati. Ovvio che
durante la prima fase, i dati sono accessibili a
chiunque. Quando Elad me l’ha detto, non ci volevo
credere. Poi abbiamo provato e riprovato e
purtroppo era tutto vero “
Possibili miglioramenti
z
z
z
z
z
La sicurezza potrebbe essere migliorata in alcuni punti con misure
relativamente semplici:
utilizzazione da parte dell’operatore di un algoritmo crittograficamente
sicuro al posto di COMP128
impiegare una nuova implementazione di A5 con una forza crittografica
tale che un attacco brute-force non sia ammissibile in nessun caso
cifrare il traffico tra gli operatori della rete centrale e tra le componenti
della rete. Ciò neutralizzerebbe gli attacchi ai segnali della rete
Nessuno dei miglioramenti precedenti è troppo difficile da mplementare.
Essi presentano tutti nuove spese prevalentemente a carico degli
operatori di rete e non sono, quindi, molto allettanti dal loro punto di vista.
Così, questi miglioramenti non saranno implementati fino a quando
l’insicurezza delle reti GSM non diventi di pubblico dominio e gli operatori
di rete non siano forzati a migliorare la sicurezza della rete. Tutti e tre i
miglioramenti sarebbero necessari per la sicurezza della rete contro tutti
gli attacchi introdotti in questa trattazione.
Conclusioni
z
z
z
z
z
z
Il modello di sicurezza del GSM è stato rotto a più livelli ed è, così,
vulnerabile ai numerosi attacchi contro parti differenti della rete dell’operatore.
Anche assumendo che tutti gli algoritmi di cifratura non siano stati rotti, l’architettura
GSM sarebbe ancora vulnerabile agli attacchi che hanno come obiettivo la rete centrale
dell’operatore o l’HLR ed ai vari ambiti dell’ingegneria sociale nei quali l’attaccante
corrompe un impiegato dell’operatore, ecc.
E’ stato provato che gli algoritmi di cifratura che vengono utilizzati dal sistema GSM
sono difettosi. L’algoritmo A5 utilizzato per la cifratura del canale di trasmissione viaetere è vulnerabile agli attacchi known-plaintext e divide-and-conquer e lo spazio delle
chiavi, che è stato intenzionalmente ridotto, è abbastanza piccolo da rendere
ammissibile anche un attacco brute-force. Dato che l'algoritmo COMP128 utilizzato
dalla maggior parte delle reti GSM è difettoso, se fossero fondate le affermazioni
dell'ISAAC, la chiave segreta Ki potrebbe essere recuperata con un attacco chosenchallange in poche ore.
Non si può assumere che il modello GSM fornisca una sicurezza completa contro un
eventuale attaccante. Le risorse necessarie dipendono dall’attacco scelto. Così, non si
può fare affidamento solo sul modello di sicurezza GSM qualora si trasferiscano dati
confidenziali sulla rete.
In aggiunta alla possibilità di intercettazione di una chiamata, anche il difetto della
funzione COMP128 rende il cloning della SIM una minaccia, abilitando così un
attaccante ad effettuare chiamate a spese di qualcun altro.
Comunque, la realtà è che sebbene lo standard GSM sia stato ideato per correggere i
difetti dei sistemi di telefonia mobile analogici, tali obiettivi non sono stati raggiunti. Lo
standard GSM corrente e la sua implementazione permettono sia il cloning dell’identità
del sottoscrittore che l’intercettazione di una chiamata
Sim Card
Bibliografia
z
z
z
z
z
Funzioni hash sicure – Davide Cerri (dispense)
Applied Cryptography - Bruce Schneier
La sicurezza nel GSM e le Sim Card
Crittologia – Berardi, Beutelspacher
Matematica discreta - Berardi, Beutelspacher
E in più www.google.it ricerca GSM, SIM CARD, MD5,A5/2,A5/1,A5/0
storia del gsm, COMP128,SHA, teoreme cinese del
resto,A3,A8,MD4,Smart Card,attacchi al GSM, etc...