• Non ci sono risultati.

Sicurezza nel GSM e Smart Card

N/A
N/A
Protected

Academic year: 2021

Condividi "Sicurezza nel GSM e Smart Card "

Copied!
133
0
0

Testo completo

(1)

Sicurezza nel GSM e Smart Card

A cura di Marco Canu Marco Cascianelli

Luca de Angelis

Emanuele Garuglieri

Paola Ranaldi

(2)

Storia e panoramica sull’architettura GSM

A cura di

Marco Cascianelli

(3)

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

(4)

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

(5)

Passaggio ai sistemi trunked

z

I primi sistemi utilizzavano più trasmettitori indipendenti, con una frequenza fissa per ogni utente.

z

In seguito vennero introdotti i sistemi trunked, con selezione dinamica dei canali liberi –

inizialmente manuale ed in seguito

automatizzata

(6)

Sistemi a celle

z

Concepiti negli anni 40, sperimentati negli anni 60, commercializzati negli anni 80

z

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

z

Ogni cella usa frequenze diverse da quelle

usate nelle celle adiacenti

(7)

Sistemi a celle

z

I trasmettitori necessitano di minore potenza per coprire una cella senza interferire con

quelle non adiacenti operanti alle stesse frequenze

z

I terminali mobili devono essere in grado di sintonizzarsi sulle frequenze relative alla cella

z

Il passaggio dalle frequenze di una cella a quelle della cella adiacente si chiama

handover

(8)

Collocazione delle celle

z

È importante trovare il giusto equilibrio tra grandezza delle celle e numero di

suddivisioni della banda.

z

Uno studio attento garantisce un numero non eccessivo di handover e basso rischio di

interferenza tra celle a fronte di una banda

necessaria limitata

(9)

Collocazione delle celle

z

Il territorio viene suddiviso in aree (celle) adiacenti, che

utilizzano un numero ridotto di frequenze.

z

La grandezza delle celle può variare per esigenze relative al servizio richiesto o alla

conformazione del territorio

(10)

TACS

z

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

1000 canali; 890-960 MHz

z

ETACS: 1320 canali; 872-950 MHz

1990 – in Italia viene adottato l’ETACS a seguito della

saturazione del sistema RTMS

(11)

TACS – limiti

z

Standard diversi incompatibili in vari paesi

z

Roaming internazionale limitato per sicurezza e incompatiblità

z

Sfruttamento inefficiente della banda, limite di utenze gestibili per zona (segnale analogico)

z

Bassa qualità del segnale dovuta alla sensibilità al rumore

z

Grande numero di ricetrasmettitori necessari, per l’alto numero di canali

z

Costi alti dei terminali, per l’impossibilità di politiche commerciali di scala (standard incompatibili)

z

Impossibile autenticare un terminale

z

Impossibile criptare il segnale, e trasmettere dati

(12)

GSM

1982 – La CEPT crea il Group Special Mobile 1985 – Il GSM sceglie definitivamente la via del

digitale

z

TDM – Time Divisione Multiplexing

z

Bassa sensibilità al rumore (=> celle più piccole=>più utenze possibili)

z

Cifratura dei messaggi

z

Identificazione con chiave segreta degli apparati

z

Trasmissione dati

z

980-915 MHz, 935-960 MHz

(13)

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

36 reti GSM in 22 paesi

z

Con DCS1800 e PCS1900 80 paesi attualmente usano

GSM

(14)

Architettura GSM

Mobile Station

Base Station Subsystem

(gestione della copertura radio)

Base

Transceiver Station

Base Station Controller

Operation Support Subsystem

Network Service

Management Centre

Operation and

Manintenance Centre

Network Subystem

Home Location Register

Equipment Identity Register

Rete GSM

Autentication Centre

Mobile service

Switching Centre Visitor Location Register

Unico canale protetto

(15)

Architettura GSM

SS7

Um

HLR

MSCVLR

BTS

BSC

BTS

Abis Abis

BTS

BSC

BTS

Abis Abis

MSCVLR

BTS

BSC

BTS

Abis Abis

BTS

BSC

BTS

Abis Abis A

A

AuC

A A

Um

Um: cifrata Abis: non cifrata

SS7 SS7 : rete di segnalazione

SS7

(16)

Procedura di chiamata

z

Verso MS:

z

Utente PSTN compone MSISDN

z

Il GMSC richiede all’HLR la posizione dell’abbonato

z

L’HLR ottiene dal VLR l’MSRN

z

Il GMSC usa l’MSRN per l’instradamento verso l’MSC da cui dipende l’utente mobile

z

L’MSC ottiene dal VLR il LAI che identifica le BSS a cui inviare la “paging request”

z

La MS risponde alla ricerca inviando alla BSS una “channel request”

z

La MS usa il canale ottenuto per inviare una “paging

response”

(17)

Procedura di chiamata

z

La BSS invia la “paging response” al VLR tramite l’MSC associato

z

L’MSC riceve dal VLR una “complete call” che rimanda alla MS tramite BSS

z

L’MS invia al MSC una “call confirmation”

z

L’MSC, tramite il GMSC, fa arrivare alla PSTN il tono di chiamata

z

L’MSC assegna un canale di chiamata alla BSS, che a sua volta ne assegna uno alla MS

z

La MS squilla; appena l’utente risponde l’MS invia una

“connect” all’MSC che invia una “answer” al PSTN tramite GMSC

z

MSC e GMSC interconnettono il canale GSM e il circuito

PSTN e la chiamata ha corso

(18)

Procedura di chiamata

z

Da una MS (ala rete telefonica)

z

La MS trasmette alla BTS una “channel request”

z

La BSS manda una “request for service” alla MSC

z

L’MSC ottiene dal VLR info sull’abbonato

z

L’MS manda una “setup” con le informazioni necessarie alla MSC

z

L’MSC ottiene dal VLR in risposta alla “setup” una

“complete call”, e comunica alla MS una “call

proceeding”

(19)

Procedura di chiamata

z

L’MSC assegna un canale alla BSS, che ne assegna uno a sua volta alla MS

z

L’MSC contatta la PSTN, e al “address complete message” fa giungere il tono di chiamata

all’utente mobile

z

Quando dalla PSTN giunge una “answer” l’MSC

connette il canale GSM al circuito PSTN, e la

chiamata ha corso

(20)

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

(21)

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”

(22)

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

(23)

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

(24)

Canali radio

z

890-915 MHz (25 MHz) per uplink

z

935-960 MHz (25 MHz) per downlink

z

Le portanti uplink e downlink sono scelte a 45Mhz di distanza

z

Tra due canali radio adiacenti ci devono essere 200 KHz

z

Totale di 124 canali in entrambe le direzioni

(25)

Canali logici

MS Broadcast channels BTS

Common control channels

Dedicated control channels

bcch bcch

fcch sch

pgh rach agch

sacch facch sdcch

(26)

GSM Burst

Il burst è un quanto di trasmissione GSM

z

Normal burst: traffico e controllo

z

57 bit information

z

26 bit training sequence

z

0.031 ms guard period

z

6 bit tail bit

(27)

GSM Burst

z

Frequency correction burst: fcch

z

142 fixed bit

z

Synchronization burst: sch

z

64 bit sync sequence

z

39 bit coded information: frame tdma e id BTS

z

6 bit tail bit

z

8,25 bit guard period

(28)

GSM Burst

z

Access burst: racch, primo accesso alla BTS

z

41 bit training sequence

z

36 bit coded information

z

8 e 3 bit head bit e tail bit

z

68,25 guard period

z

Dummy burst

z

Burst privo di informazioni usato nel bcch

(29)

Problemi dell’interfaccia aerea

z

Perdite da spazio libero: attenuazione

funzione del quadrato della distanza e del quadrato della frequenza

z

Perdite da ostruzione

z

Propagazione multipercorso (Rayleigh

fading)

(30)

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

(31)

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

(32)

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)

(33)

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

(34)

Le Sim Card e MD5

A cura di

Emanuele Garuglieri

(35)

Sim Card

Acronimo di Subscriber Identity Module.

Funzioni:

z Identificare l’utente del servizio GSM

z Contenere dati

z 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

(36)

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.

(37)

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)

(38)

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.

(39)

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 Nella fase di fabbricazione viene aggiunto un chiave di fabbricazione KF, unica, che deriva da una master key (MK) del produttore.

z 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.

z 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.

z Nella fase di utilizzo è possibile modificare il codice PIN ma non il PUK e le politiche di sicurezza sono gestite dall’applicazione.

(40)

Sim Card:

Invalidazione

Per invalidare una sim card ci sono due modi:

z

L’applicazione scrive un blocco di invalidazione sul file principale

z

Il sistema di controllo blocca irreversibilmente l’accesso,

il PIN e il PUK sono stati inseriti errati.

(41)

Sim Card

Struttura logica

File organizzati in maniera gerarchica per mezzo di directory:

z Master File (MF) è la “root” del file system, ed è selezionato

automaticamente al reset.

z Elementary File (EF) sono I

“repository” dei dati.

z 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.

MF

DF 0 EF 00

EF 0n EF 0

EF n

DF n

EF n0

EF nn

DF n0 EF n00

EF n0n

(42)

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.

(43)

Sim Card

Livelli di accesso

Esistono vari livelli di accesso:

z

Always: nessuna restrizione

z

Never: l’accesso al file è proibito

z

Card Holder Verification 1: CHV1 regola l’accesso, il PIN1 è stato inserito

z

Card Holder Verification 2: CHV2 regola l’accesso, il PIN2 è stato inserito

z

Administrative: l’allocazione dei livelli e i relativi requisiti

sono sotto la responsabilità di una appropriata autorità

amministrativa

(44)

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.

(45)

Sim Card

Capacità Crittografiche

Utilizzo del DES e del tripleDES

Punto debole :Ampiezza di banda dell’ interfaccia seriale

Soluzione:nessuna, codifica simmetrica lenta.

(46)

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

(47)

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);

(48)

Corollario:

Funzione hash senza collisioni

Una funzione di hash sicura deve essere senza collisioni (collision-resistant):

z dato un qualsiasi M, deve essere computazionalmente impraticabile trovare un M’≠ M tale che H(M’) = H(M) (funzione debolmente senza collisioni);

z 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 .

(49)

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 attacco a forza bruta “semplice”: trovare un messaggio che produca un dato hash (cioè un hash uguale a quello di un

messaggio dato);

z 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.

(50)

Sim Card

Capacità Crittografiche –MD5

MD5 è una funzione hash sicura

(51)

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.

(52)

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

(53)

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.

(54)

Sim Card

Capacità Crittografiche –MD5

La funzione fp è scelta tra le seguenti:

z

F(x,y,z) = (x and y) or (not x and z)

z

G(x,y,z) = (x and z) or (y and not z)

z

H(x,y,z) = x xor y xor z

z

I(x,y,z) = y xor (x or not z).

(55)

Sim Card

Capacità Crittografiche –MD5

mj Tk

(56)

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.

(57)

DSS e Teorema Cinese del Resto

A cura di

Luca de Angelis

(58)

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 ℤ.

Inoltre, se x0 ∈ ℤ è una soluzione, le soluzioni del sistema sono tutti e soli gli interi x con:

⎩ ⎨

) (mod

) (mod

m b

x

n a

x

)

0

(mod mn

x

x

(59)

Teorema Cinese del Resto (2)

z

Dimostrazione (prima parte):

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.

(60)

Teorema Cinese del Resto (3)

z

Dimostrazione (seconda parte):

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.

(61)

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, …, arr numeri interi. Allora il sistema di congruenze lineari

ha una soluzione in ℤ. Se l’intero x0è una soluzione, allora le altre soluzioni del sistema sono tutti e soli gli interi x con:

r i

n a

x

i

(mod

i

), 1 ≤ ≤

) ...

(mod

1 2

0

n n n

r

x

x

(62)

Digital Signature Standard (DSS)

z

E’ uno standard per l’autenticazione e la firma digitale proposto dal NIST in collaborazione con l’NSA

z

Il DSS non è un algoritmo, ma specifica una serie di algoritmi da utilizzare per implementarlo:

z DSA (raccomandato dal NIST)

z RSA

z ECDSA

z

Viene anche specificata quale funzione hash utilizzare per comprimere il messaggio e per generare la firma:

z SHA-1 (specificata nel relativo standard: SHS)

(63)

Digital Signature Alghoritm (DSA) (1)

z

Parametri:

z

p = numero primo, tale che 2

L-1

<p<2

L

con 2

1023

≤L≤2

1024

;

z

q = numero primo, divisore di p-1 con 2

159

<q<2

160

;

z

g = h

(p-1)/q

mod p, dove h è un intero e 1<h<p-1 tale che h

(p-1)/q

mod p>1;

z

x = intero casuale o pseudocasuale con 0<x<q

z

y = g

x

mod p

z

k = intero casuale o pseudocasuale con 0<k<q

(64)

Digital Signature Algorithm (DSA) (2)

z

I parametri p, q e g sono pubblici e possono essere condivisi con un gruppo di utenti

z

x e y sono rispettivamente la chiave privata e la chiave pubblica

z

k e x sono usati per generare la firma. Anche k deve essere segreto e viene rigenerato

ogni volta

(65)

Generazione della firma

z

La firma è la coppia di valori (r,s) così definiti:

z

r = (g

k

mod p)mod q;

z

s = (k

-1

(SHA-1(M)+xr)mod q.

z

SHA-1(M) è una stringa di 160 bit che è l’output della funzione hash;

z

k

-1

è l’inverso moltiplicativo

di k, mod q;

(66)

Verifica della firma (1)

z

Il destinatario conosce p, q, g e la chiave pubblica del mittente e riceve M’, r’, s’:

z

Se non è 0<r’<q e 0<s’<q allora la firma è violata;

z

w = (s’)

-1

mod q;

z

u

1

= ((SHA-1(M’))w)mod q;

z

u

2

= (r’w) mod q;

z

v = ((g

u1

y

u2

mod p) mod q.

z

Se v=r’ la firma è corretta!

(67)

Verifica della firma (2)

Teo: Se nella firma ricevuta M’=M, r’=r e s’=s allora v=r’

Dimostrazione:

z

Si ha che:

1. 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;

z Essendo y = g

x

mod p:

4. v = ((gu1yu2mod p) mod q = (g(SHA-1(M)+xr)wmod p) mod q = (gk mod p) mod q = r = r’. Cdd.

(68)

Critiche a DSA

z

Non può essere usato per la crittazione e la distribuzione di chiavi Æ Vero

z

E’ stato sviluppato dall’NSA, quindi ci potrebbe essere una trapdoor Æ Forse

z

E’ più lento di RSA Æ Sì e No

z

RSA è uno standard de facto Æ Vero

z

Può essere coperto da licenze Æ Vero

z

La chiave è troppo corta Æ Era Vero

(69)

Confronto DSA-RSA

10 sec 1.5 sec

16 sec

Verifica della firma

0.03 sec 15 sec

0.03 sec

Generazione della firma

4 sec N/A

14 sec

Precalcolo

4 sec Secret

14 sec

Generazione della chiave

DSA con p, q, g in comune RSA

DSA

(70)

Secure Hash Standard (SHS)

z

Questo standard specifica 4 algoritmi hash sicuri, da utilizzare negli standard di firma digitale:

z

SHA-1;

z

SHA-256;

z

SHA-384;

z

SHA-512.

z

Sono sicuri perché sono unilaterali, e sono sia debolmente che fortemente senza

collisioni

(71)

Secure Hash Alghoritms

z

Ognuno dei 4 algoritmi può essere descritto in due passi:

z

Preprocessamento;

z

Calcolo dell’hash.

z

Gli algoritmi si differenziano principalmente per:

z

Lunghezza del messaggio di input;

z

Lunghezza del message digest;

z

Lunghezza dei blocchi e delle word utilizzati dalle funzioni interne;

z

Sicurezza rispetto all’attacco del compleanno.

(72)

SHA - Proprietà

256 512

64 1024

<2128 SHA-512

192 384

64 1024

<2128 SHA-384

128 256

32 512

<264 SHA-256

80 160

32 512

<264 SHA-1

Security (bit) MD Size

(bit) Word

Size (bit) Block

Size (bit) Message

Size (bit)

(73)

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.

(74)

SHA-1 Padding

z

Lo scopo di questa operazione è far sì che la lunghezza del messaggio ottenuto sia un

multiplo di 512 bits

z

Se la lunghezza del messaggio M è di l bits, si aggiunge un “1” seguito da k zeri, con:

l + 1 + k = 448 mod 512

z

Rimangono 64 bit che servono ad esprime la

lunghezza del messaggio iniziale.

(75)

SHA-1 Parsing

z

Lo scopo di questa operazione è dividere il messaggio ottenuto precedentemente in N blocchi di m bits

z

In questo caso si divide in N blocchi da 512 bit: M

(1)

, M

(2)

, …, M

(N)

z

Ogni blocco è diviso in 16 word da 32 bit.

Quindi l’i-esimo blocco si può esprimere in:

M

0(i)

, M

1(i)

, …, M

15(i)

(76)

SHA-1 Settings

z

Lo scopo di questa operazione è di settare il valore iniziale H

(0)

dell’hash

z

In questo caso si hanno 5 word da 32 bit:

H

0(0)

= 0x67452301

H

1(0)

= 0xefcdab89

H

2(0)

= 0x98badcfe

H

3(0)

= 0x10325476

H

4(0)

= 0xc3d2e1f0

(77)

SHA-1 Calcolo dell’hash

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

z

Ogni passo è composto da 4 round con 20 operazioni ciascuno;

z

Ogni operazione è fatta da una funzione su tre variabili,

scorrimenti ed addizioni simili ad MD5

(78)

SHA-1 Funzioni e Costanti

z Ognuna delle 4 funzioni vale solo per 1 round e sono così definite (in ordine):

z Sono usate 4 costanti. Una diversa per ogni round di un passo:

⎪ ⎪

⎪⎪ ⎨

=

=

=

¬

=

=

z y

x z

y x Parity

z y z)

(x y)

(x z

y x Maj

z y

x z

y x Parity

z) x

( y) (x

Ch(x,y,z) z

y x f

t

) , , (

) (

) , , (

) , , ) (

, , (

⎪⎪

=

=

=

=

=

6 1 62 4 2

10

1 8 4 2

5

1 9

6 4 2

3

827999 5

4 2 2

32 32 32 32

d c ca

bbcdc f

eba ed

a

K t

(79)

SHA-1 Schema Operazione

(80)

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 W

0

, W

1

, …, W

79

in

questo modo:

1. Wt = Mt, con t = 0…15

2. Wt= (Wt-3Wt-8 Wt-14 Wt-16)<<<1, con t = 16…79

2.

Si inizializzano 5 variabili a, b, c, d, e con i rispettivi valori dell’hash precedente

3.

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

(81)

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

(82)

SHA-1 Sicurezza

z

Finora non si conoscono attacchi contro SHA-1

z

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)

(83)

SHA-1 vs MD5

(84)

Il modello di sicurezza nel GSM

A cura di

Paola Ranaldi

(85)

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.

(86)

Mobile Station (MS)

z Mobile Equipment(ME):

Dispositivo mobile fisico Identificatori:

ƒ IMEI – International Mobile Equipment Identity z 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

(87)

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)

(88)

Autenticazione della MS (A3)

e generazione di Kc di sessione (A8)

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

z Alla richiesta di identificazione della MS alla rete, l’HLR fornisce alla MSC cinque tuple contenenti:

ƒ 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

z L’MSC invia la RAND della prima tupla alla MS

RETE GSM

SIM RICHIESTA D’ACCESSO

GEN. RANDOM

RAND

ki

A3

RAND

SRES

Ki

A3

A8 A8

KC IMSI / TMSI

TRATTA RADIO

(89)

Autenticazione della MS (A3)

e generazione di Kc di sessione (A8)

z La MS calcola una SRES con l’algoritmo A3 utilizzando la RAND ricevuta dalla MSC, e la chiave Ki che risiede nella SIM

z La MS invia la SRES alla MSC

z La MSC confronta la SRES inviatagli dalla MS con quella contenuta nella tripla del HLR

z La MS calcola la chiave di sessione Kc mediante l’algoritmo A8 che prende in input RAND e ki

RETE GSM

SIM RICHIESTA D’ACCESSO

GEN. RANDOM

RAND

ki

A3

RAND

SRES

Ki

A3

A8 A8

SRES

SRES?= SRES

KC KC

TRATTA RADIO IMSI/TMSI

(90)

A8 A8

A5 A5

ki ki

kc kc

Fn Fn

XOR XOR

Data Data

RAND

La chiave di sessione kc viene usata per la codifica sul canale via etere.

La stessa kcviene utilizzata fin quando l’MSC non identifica nuovamente la MS, nel qual caso ne viene generata una nuova

Crittografia dei dati trasmessi ( A5)

RAND

Ciphertext

SIM OPERATORE

ME GSM

(91)

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

(92)

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

.

(93)

L’anonimato

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.

z 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

z 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

z L’MS risponde confermando l’avvenuta ricezione e memorizza Il TMSI nella SIM.

z Da questo momento, per tutte le comunicazioni successive, il codice TMSI è utilizzato al posto del codice IMSI

z 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

z 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)

z 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)

(94)

Comp128

Invece di utilizzare due algoritmi distinti, A3 ed A8, la maggior parte degli operatori GSM utilizza un unico algoritmo, chiamato

COMP128.

A3 A8

Ki (128 bit) , RAND (128 bit) Ki (128 bit) , RAND (128 bit)

SRES (32 bit) Kc (64 bit)

ALGORITMO DI

AUTENTICAZIONE

ALGORITMO DI GENERAZIONE

DELLA CHIAVE DI SESSIONE KC

(95)

Comp128

Invece di utilizzare due algoritmi distinti, A3 ed A8, la maggior parte degli operatori GSM utilizza un unico algoritmo, chiamato

COMP128.

Comp128

Ki (128 bit) , RAND (128 bit)

SRES (32 bit) , Kc (54 bit)

(96)

Comp128

1. Vengono creati:

z

Un array x[ ] formato da 32 byte

z

Un array bit[ ] formato da 128 byte

Negli ultimi 16 byte di x[ ] viene immesso RAND

presente in input

(97)

Comp128

2. Viene creata un’iterazione per cui per 8 volte vengono eseguiti

i seguenti passi:

(98)

Comp128

3. Viene creato l’array simoutput[ ] di 96 bit dei quali:

z

I primi 32 rappresentano SRES

z

Gli altri 64 ( di cui gli ultimi 10 sono sempre posti

uguali a zero) rappresentano la chiave kc

(99)

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.

(100)

Algoritmo di cifratura A5

z L’algoritmo A5 è lo stream cipher utilizzato per cifrare i frame che vengono inviati via etere

z Ciascun frame contiene 114 bit e rappresenta una parte della comunicazione tra MS e BTS e viceversa.

z I cifratori di tipo stream cipher operano bit a bit producendo per ogni bit di testo in chiaro un singolo bit cifrato in uscita.

A5 A5

Kc (64 bit) Kc (64 bit)

Fn (22 bit) Fn (22 bit)

XOR XOR

Data(114 bit) Ciphertext (114 bit) Data (114 bit)

OPERATORE MS GSM

114 bit 114 bit

(101)

Algoritmo di cifratura A5

z Uno stream cipher è tipicamente implementato come un exclusive-or(XOR) tra il flusso dei dati ed una opportuna sequenza di bit chiave (keystream).

z 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

A5 A5

Kc(64 bit) Kc (64 bit)

Fn (22 bit) Fn(22 bit)

XOR XOR

Data(114 bit) Ciphertext (114 bit) Data (114 bit)

OPERATORE MS GSM

keystream (114 bit) keystream (114 bit)

(102)

Algoritmo di cifratura A5

z 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

A5 A5

Kc(64 bit) Kc (64 bit)

Fn (22 bit) Fn(22 bit)

XOR XOR

Data(114 bit) Ciphertext (114 bit) Data (114 bit)

OPERATORE MS GSM

keystream (114 bit) keystream (114 bit)

(103)

Algoritmo di cifratura A5 I tre LFSR

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

z 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

(104)

Algoritmo di cifratura A5 I tre LFSR

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.

z Tutti e tre i registri sono temporizzati in base al valore del loro bit centrale

(105)

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.

(106)

Algoritmo di cifratura A5 I tre LFSR: inizializzazione

z I tre LFSR vengono inizializzati con una combinazione non lineare della chiave di sessione Kc ed il numero di frame .

z 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:

Riferimenti

Documenti correlati

Punto di incontro: ore 09.15 presso l’Ufficio del Turismo Reutte, 6600 Reutte, Untermarkt 34 (si prosegue insieme fino al punto di partenza) Attrezzatura: abbigliamento

Punto di incontro: ore 9.15 presso l’Ufficio del Turismo Reutte 6600 Reutte, Untermarkt 34 – si prosegue insieme fino al punto di partenza Parcheggio delle Cascate dello

I dati sulla distribuzione della Social Card- Ufficio Studi Usr

bilità, che deve guardare agli ultimi, ai problemi reali della gente e cercare di dare un messaggio evangelico a questa gente». «Oggi la nostra è una Chiesa in uscita che segue un

Vegetable puff with Tremosine Formagella Spit-roasted tortelli with Alpe del Garda butter Water, wine, coffee. Gemüse in Blätterteig mit Tremosine Formagella Am Spieß gebratene

Dichiaro di aver restituito la merce o di non aver usufruito del servizio richiesto nei termini previsti dal contratto di acquisto senza aver ricevuto alcun accredito da

La concessione del telefono cellulare aziendale e della SIM card sono autorizzate dal Dirigente del Servizio Sistema Informativo e Innovazione su formale e motivata

Si ritiene di dover escludere – in ogni caso – dal diritto al rilascio della smart card gratuita le figure del socio accomandante e del semplice socio di società di capitali