sicurezza nel gsm e smart card - roma tre...

133
Sicurezza nel GSM e Smart Card A cura di Marco Canu Marco Cascianelli Luca de Angelis Emanuele Garuglieri Paola Ranaldi

Upload: others

Post on 09-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Sicurezza nel GSM e Smart Card

A cura diMarco Canu

Marco CascianelliLuca de Angelis

Emanuele Garuglieri Paola Ranaldi

Storia e panoramica sull’architettura GSM

A cura diMarco Cascianelli

Cronologia1921 – il Dipartimento di Polizia di Detroit sperimenta

comunicazione one-way centrale-volanti1935 – 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

CronologiaFine 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 60KHzAnni 70 – riduzione della banda a 25 KHz

Passaggio ai sistemi trunked

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

Concepiti negli anni 40, sperimentati negli anni 60, commercializzati negli anni 80invece di usare trasmettitori ad elevatrapotenza per coprire vaste ma limitate aree, servendo un numero ristretto di utenze, usano stazioni distribuite su celle geografiche limitateOgni cella usa frequenze diverse da quelle usate nelle celle adiacenti

Sistemi a celle

I trasmettitori necessitano di minore potenza per coprire una cella senza interferire con quelle non adiacenti operanti alle stesse frequenzeI terminali mobili devono essere in grado di sintonizzarsi sulle frequenze relative alla cellaIl passaggio dalle frequenze di una cella a quelle della cella adiacente si chiama handover

Collocazione delle celle

È 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

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

TACSAcronimo di Total Access Communication System

1979 – AMPS negli USA (Advanced Mobile PhoneStandard)

1981 – NMT nei paesi scandinavi (Nordic Mobile Telephone)

1985 – TACS in Gran Bretagna1000 canali; 890-960 MHzETACS: 1320 canali; 872-950 MHz

1990 – in Italia viene adottato l’ETACS a seguito della saturazione del sistema RTMS

TACS – limitiStandard diversi incompatibili in vari paesiRoaming 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 rumoreGrande numero di ricetrasmettitori necessari, per l’alto numero di canaliCosti alti dei terminali, per l’impossibilità di politiche commerciali di scala (standard incompatibili)Impossibile autenticare un terminaleImpossibile criptare il segnale, e trasmettere dati

GSM1982 – La CEPT crea il Group Special Mobile1985 – Il GSM sceglie definitivamente la via del

digitaleTDM – Time Divisione MultiplexingBassa sensibilità al rumore (=> celle più piccole=>più utenze possibili)Cifratura dei messaggiIdentificazione con chiave segreta degli apparatiTrasmissione dati980-915 MHz, 935-960 MHz

GSM1987 – Memorandum of Understanding, per apertura

del servizio nel 19911989 – GSM passa all’ETSI, viene rettificato il

significato dell’acronimo: Global System for Mobile Communications

1990 – phase 1: prime specifiche1993 – phase 2: integrazione servizi supplementari

36 reti GSM in 22 paesiCon DCS1800 e PCS1900 80 paesi attualmente usano GSM

Architettura GSM

Mobile Station

Base Station Subsystem(gestione della copertura radio)

Base TransceiverStation

Base StationController

Operation Support Subsystem

NetworkServiceManagementCentre

OperationandManintenanceCentre

Network Subystem

HomeLocationRegister

EquipmentIdentityRegister

Rete GSM

AutenticationCentre

Mobile serviceSwitching Centre Visitor

LocationRegister

Unico canale protetto

Architettura GSMSS7

Um

HLR

MSCVLR

BTS

BSC

BTSAbisAbis

BTS

BSC

BTSAbisAbis

MSCVLR

BTS

BSC

BTSAbisAbis

BTS

BSC

BTSAbisAbis

AA

AuC

A A

Um

Um: cifrataAbis: non cifrata

SS7

SS7

: rete di segnalazione

SS7

Procedura di chiamataVerso MS:

Utente PSTN compone MSISDNIl GMSC richiede all’HLR la posizione dell’abbonatoL’HLR ottiene dal VLR l’MSRNIl GMSC usa l’MSRN per l’instradamento verso l’MSC da cui dipende l’utente mobileL’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 “channelrequest”La MS usa il canale ottenuto per inviare una “pagingresponse”

Procedura di chiamataLa BSS invia la “paging response” al VLR tramite l’MSC associatoL’MSC riceve dal VLR una “complete call” che rimanda alla MS tramite BSSL’MS invia al MSC una “call confirmation”L’MSC, tramite il GMSC, fa arrivare alla PSTN il tono di chiamataL’MSC assegna un canale di chiamata alla BSS, che a sua volta ne assegna uno alla MSLa MS squilla; appena l’utente risponde l’MS invia una “connect” all’MSC che invia una “answer” al PSTN tramite GMSCMSC e GMSC interconnettono il canale GSM e il circuito PSTN e la chiamata ha corso

Procedura di chiamata

Da una MS (ala rete telefonica)La MS trasmette alla BTS una “channel request”La BSS manda una “request for service” alla MSCL’MSC ottiene dal VLR info sull’abbonatoL’MS manda una “setup” con le informazioni necessarie alla MSCL’MSC ottiene dal VLR in risposta alla “setup” una “complete call”, e comunica alla MS una “callproceeding”

Procedura di chiamataL’MSC assegna un canale alla BSS, che ne assegna uno a sua volta alla MSL’MSC contatta la PSTN, e al “address complete message” fa giungere il tono di chiamata all’utente mobileQuando 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:La BSC invia una “handover command” con le informazioni sul nuovo canaleLa MS cambia canale e invia una “handovercompleted”

Procedura di handover

Tra BSC sotto lo stesso MSCLa BSC invia una “handover required” alla MSCL’MSC invia l’”handover request” all’altra BSC, la quale predispone un canale per la MSL’MSC invia tramite la BSC d’origine un “handover command” alla MS

Procedura di handoverTra BSC sotto MSC differenti

Il BSC di partenza invia un “handover required” all’MSCL’MSC contatta l’altro MSC, il quale ottiene dal VLR un numero di istradamento per la connessione tra MSCIl secondo MSC fa predisporre la BSC necessaria e manda le info all’MSC di partenzaL’MSC di partenza attiva la connessione i istruisce la MS per il passaggio di canale

Canali radio

890-915 MHz (25 MHz) per uplink935-960 MHz (25 MHz) per downlinkLe portanti uplink e downlink sono scelte a 45Mhz di distanzaTra due canali radio adiacenti ci devono essere 200 KHzTotale di 124 canali in entrambe le direzioni

Canali logiciMS BTSBroadcast channels

Common control channels

Dedicated control channels

bcchbcchfcchsch

pghrachagch

sacchfacchsdcch

GSM Burst

Il burst è un quanto di trasmissione GSMNormal burst: traffico e controllo

57 bit information26 bit training sequence0.031 ms guard period6 bit tail bit

GSM Burst

Frequency correction burst: fcch142 fixed bit

Synchronization burst: sch64 bit sync sequence39 bit coded information: frame tdma e id BTS6 bit tail bit8,25 bit guard period

GSM Burst

Access burst: racch, primo accesso alla BTS41 bit training sequence36 bit coded information8 e 3 bit head bit e tail bit68,25 guard period

Dummy burstBurst privo di informazioni usato nel bcch

Problemi dell’interfaccia aerea

Perdite da spazio libero: attenuazione funzione del quadrato della distanza e del quadrato della frequenzaPerdite da ostruzionePropagazione multipercorso (Rayleighfading)

Ottimizzazione dell’interfaccia aereaCodifica del canale: frame da 260 bit (20ms di

conversazione)50 bit più importanti: classe 1a, 3 bit di parità132 bit media importanza: classe 1b, 4 bit di coda78 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 gaussianoviene applicato a monte dello sfasamento per ridurre le componenti fuori banda, di disturbo per i canali adiacenti

Le Sim Card e MD5

A cura diEmanuele Garuglieri

Sim CardAcronimo di Subscriber Identity Module.Funzioni:

Identificare l’utente del servizio GSMContenere datiCrittare 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:Autosufficienza

Sim Card: Struttura fisica

Composta da tre elementi:Supporto plasticoCircuito stampatoCircuito integrato

Comunicazione con l’esterno tramite appositi pinI requisiti di resistenza sono definiti nel documento ISO7816.

Sim Card: Il ChipLa capacità di una qualsiasi smart

card (la sim in questo contesto) deriva dal suo circuito integrato, solitamente composto da:MicroprocessoreRom (contiene l’OS)Ram (utilizzata come in tutti i calcolatori)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: ChiaviDentro 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:

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: InvalidazionePer invalidare una sim card ci sono due modi:

L’applicazione scrive un blocco di invalidazione sul file principaleIl sistema di controllo blocca irreversibilmente l’accesso, il PIN e il PUK sono stati inseriti errati.

Sim CardStruttura logica File organizzati in maniera gerarchica

per mezzo di directory:

Master File (MF) è la “root” del file system, ed è selezionato automaticamente al reset.

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.

MF

DF 0 EF 00

EF 0n

EF 0

EF n

DF n

EF n0

EF nn

DF n0 EF n00

EF n0n

Sim CardControllo 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 CardLivelli di accesso

Esistono vari livelli di accesso:Always: nessuna restrizioneNever: l’accesso al file è proibito

Card Holder Verification 1: CHV1 regola l’accesso, il PIN1 è stato inseritoCard Holder Verification 2: CHV2 regola l’accesso, il PIN2 è stato inseritoAdministrative: l’allocazione dei livelli e i relativi requisiti sono sotto la responsabilità di una appropriata autorità amministrativa

Sim CardPIN e PUKPersonal 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 CardCapacità CrittograficheUtilizzo del DES e del tripleDES

Punto debole :Ampiezza di banda dell’ interfaccia seriale

Soluzione:nessuna, codifica simmetrica lenta.

Sim CardCapacità CrittograficheUtilizzo 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 CardCapacità Crittografiche –MD5Message 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è:dato un qualsiasi M, deve essere computazionalmentesemplice calcolare H(M);dato un qualsiasi h, deve essere computazionalmenteimpraticabile calcolare un M tale che h = H(M);

Corollario:Funzione hash senza collisioniUna funzione di hash sicura deve essere senza collisioni

(collision-resistant):dato un qualsiasi M, deve essere computazionalmenteimpraticabile trovare un M’≠ M tale che H(M’) = H(M)(funzione debolmente senza collisioni);deve essere computazionalmente impraticabiletrovare una coppia (M, M’), con M’≠ M, tale cheH(M) = H(M’) (funzione fortemente senza collisioni).

L’idea è che, anche se necessariamente esistonomessaggi diversi che producono lo stesso hash, nonè praticabile trovarli.

Corollario:Attacco ad una funzione hashLe due proprietà sull’assenza di collisioni (debole e forte),

corrispondono a due diversi tipi di attacchi a forza bruta: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!se l’hash è lungo m bit, la complessità del primo è 2m, quella del secondo è 2m/2.

Sim CardCapacità Crittografiche –MD5

MD5 è una funzione hash sicura

Sim CardCapacità Crittografiche –MD5Algoritmo 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 rappresentatinello stesso modo.

Sim CardCapacità Crittografiche –MD5Algoritmo:1- 4 registri da 32 bit che rappresentano il digest vengono inizializzati

con le seguenti 4 sequenze:A = 0x01234567B = 0x89abcdefC = 0xfedcba98D = 0x76543210Dette Variabili di concatenamento (chaining variables). Ad ognipasso si fornisce il digest al passo successivo come input.

2- Copia il contento dei registri in 4 variabili a,b,c,d3- Applica una funzione fp scelta tra 4 (F,G,H,I) a 3 registri scelti tra

a,b,c,d4- Aggiungi al quarto registro il risultato ottenuto nel passo 35- Somma il sotto-blocco di testo del messaggio, mj, al risultato

ottenuto nel punto 4

Sim CardCapacità Crittografiche –MD56- Somma un valore costante Ti al risultato del punto precedente7- 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 ie 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 CardCapacità Crittografiche –MD5

La funzione fp è scelta tra le seguenti:

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 zI(x,y,z) = y xor (x or not z).

Sim CardCapacità Crittografiche –MD5

mj

Tk

Sim CardCapacità Crittografiche –MD5Punti di forza del MD5:

Sicurezza: E’ computazionalmente difficile trovare due messaggi che danno lo stesso valore di hash.Sicurezza Diretta: MD5 non è basato su nessuna assunzione, come la difficoltà della fattorizzazione.Velocità: MD5 è integrabile per software ad alta velocità.E’ basata su semplici manipolazioni sui bit.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 diLuca 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 ℤ.

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

⎩⎨⎧

≡≡

)(mod)(mod

mbxnax

)(mod0 mnxx ≡

Teorema Cinese del Resto (2)

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.

Teorema Cinese del Resto (3)

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.

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

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

rinax ii ≤≤≡ 1 ),(mod

)...(mod 210 rnnnxx ≡

Digital Signature Standard (DSS)

E’ uno standard per l’autenticazione e la firma digitale proposto dal NIST in collaborazione con l’NSAIl DSS non è un algoritmo, ma specifica una serie di algoritmi da utilizzare per implementarlo:

DSA (raccomandato dal NIST)RSAECDSA

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

SHA-1 (specificata nel relativo standard: SHS)

Digital Signature Alghoritm(DSA) (1)

Parametri: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<qy = gxmod pk = intero casuale o pseudocasuale con 0<k<q

Digital Signature Algorithm(DSA) (2)

I parametri p, q e g sono pubblici e possono essere condivisi con un gruppo di utentix e y sono rispettivamente la chiave privata e la chiave pubblicak e x sono usati per generare la firma. Anche k deve essere segreto e viene rigenerato ogni volta

Generazione della firmaLa firma è la coppia di valori (r,s) così definiti:

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

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:

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;

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

Non può essere usato per la crittazione e la distribuzione di chiavi VeroE’ stato sviluppato dall’NSA, quindi ci potrebbe essere una trapdoor ForseE’ più lento di RSA Sì e NoRSA è uno standard de facto VeroPuò essere coperto da licenze VeroLa chiave è troppo corta Era Vero

Confronto DSA-RSA

10 sec1.5 sec 16 secVerifica della firma

0.03 sec15 sec0.03 secGenerazione della firma

4 secN/A14 secPrecalcolo

4 secSecret14 secGenerazione della chiave

DSA con p, q, g in

comuneRSADSA

Secure Hash Standard (SHS)Questo standard specifica 4 algoritmi hashsicuri, da utilizzare negli standard di firma digitale:

SHA-1;SHA-256;SHA-384;SHA-512.

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

Secure Hash AlghoritmsOgnuno dei 4 algoritmi può essere descritto in due passi:

Preprocessamento;Calcolo dell’hash.

Gli algoritmi si differenziano principalmente per: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à

256512641024<2128SHA-512

192384641024<2128SHA-384

12825632512<264SHA-256

8016032512<264SHA-1

Security(bit)

MD Size(bit)

Word Size (bit)

Block Size (bit)

MessageSize (bit)

SHA-1 Preprocessamento

Il preprocessamento deve essere eseguito prima del calcolo della funzione hash

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

Lo scopo di questa operazione è far sì che la lunghezza del messaggio ottenuto sia un multiplo di 512 bitsSe la lunghezza del messaggio M è di l bits, si aggiunge un “1” seguito da k zeri, con:

l + 1 + k = 448 mod 512Rimangono 64 bit che servono ad esprime la lunghezza del messaggio iniziale.

SHA-1 Parsing

Lo scopo di questa operazione è dividere il messaggio ottenuto precedentemente in N blocchi di m bitsIn 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

Lo scopo di questa operazione è di settare il valore iniziale H(0) dell’hashIn 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

E’ un algoritmo iterativo: l’hash di un passo dipende dall’hashdel passo precedente; ogni iterazione calcola dei valori di A,B,C,D,E che vengono sommati ai successiviOgni 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 CostantiOgnuna delle 4 funzioni vale solo per 1 round e sono così definite (in ordine):

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

⎪⎪⎩

⎪⎪⎨

⊕⊕=∧⊕∧⊕∧=

⊕⊕=∧¬⊕∧=

=

zyxzyxParityzyz)(xy)(xzyxMaj

zyxzyxParityz)x(y)(xCh(x,y,z)

zyxft

),,()(),,(

),,(),,(

⎪⎪⎪⎪⎪

⎪⎪⎪⎪⎪

=•

=•

=•

=•

=

61622410

18245

196243

8279995242

32

32

32

32

dcca

bbcdcf

ebaed

a

K t

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. Wt = Mt, con t = 0…152. Wt = (Wt-3⊕Wt-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+Kte = dd = cc = b<<<30b = aa = 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)

Il risultato finale è una stringa di 160 bit

SHA-1 Sicurezza

Finora non si conoscono attacchi contro SHA-1Poiché 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 diPaola 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 diautenticazione 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)

Mobile Equipment(ME):Dispositivo mobile fisicoIdentificatori:

IMEI – International Mobile Equipment Identity

Subscribe Identity Module(SIM)Smart Card che contiene le chiavi, gli identificatori e gli algoritmiIdenificatori:

Ki – chiave di identificazione del sottoscrittoreIMSI – International Mobile Subscriber IdentityTMSI – Temporary Mobile Subscriber IdentityMSISDN – Mobile Station International Service Digital NetworkPIN – Personal Identity Number protecting a SIMLAI – location area identity

Il modello di sicurezza del GSM è basato su un segreto condivisotra l’HLR della rete di appartenenza del sottoscrittore e la carta SIM del sottoscrittore: Ki

Gli algoritmi

Algoritmo di autenticazione della MS (A3)

Algoritmo di generazione della chiave di sessione (A8)

Algoritmo di autenticazione e generazione della chiave di sessione (COMP128)

Algoritmo di cifratura (A5)

Autenticazione della MS (A3)e generazione di Kc di sessione (A8)

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 MSCAlla richiesta di identificazione della MS alla rete, l’HLR fornisce alla MSC cinque tuple contenenti:

RAND, un numero casuale a 128 bitSRES, calcolata su RAND e sulla chiave Ki , utilizzando l’algoritmo A3Kc, 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

RETE GSM SIM RICHIESTA D’ACCESSO

GEN. RANDOMRAND

kiA3RAND

SRES

Ki A3

A8A8KC

IMSI / TMSI

TRATTA RADIO

Autenticazione della MS (A3)e generazione di Kc di sessione (A8)

La MS calcola una SRES con l’algoritmo A3 utilizzando la RAND ricevuta dalla MSC, e la chiave Ki che risiede nella SIMLa MS invia la SRES alla MSCLa MSC confronta la SRES inviatagli dalla MS con quella contenuta nella tripla del HLRLa MS calcola la chiave di sessione Kc mediante l’algoritmo A8 che prende in inputRAND e ki

RETE GSM SIM RICHIESTA D’ACCESSO

GEN. RANDOMRAND

kiA3RAND

SRES

Ki A3

A8A8

SRES

SRES?= SRES

KCKC

TRATTA RADIO

IMSI/TMSI

A8 A8

A5 A5

ki ki

kc kc

Fn Fn

XOR XORData Data

RAND

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

Crittografia dei dati trasmessi ( A5)

RAND

Ciphertext

SIM OPERATOREGSM

ME

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

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

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.

L’abbonato è identificato univocamente dal codice IMSI e dalla chiave personale di autenticazione ki

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

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 successiveAppena si conclude con successo l’autenticazione, la rete assegna alla SIM un TMSI e lo trasmette in forma cifrata alla MS dove poi viene decifratoL’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 IMSIIl 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 TMSIOgni 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 riallocatoanche in caso di altri accessi alla rete (TMSI ReallocationRequest-TMSI ReallocationConfirmation)

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

Comp128

Ki (128 bit) , RAND (128 bit)

SRES (32 bit) , Kc (54 bit)

Comp128

1. Vengono creati:Un array x[ ] formato da 32 byteUn 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:I primi 32 rappresentano SRESGli altri 64 ( di cui gli ultimi 10 sono sempre posti uguali a zero) rappresentano la chiave kc

Comp128

Il COMP128 e' considerato un algoritmo debole In generale anche gli altri algoritmi utilizzati dal GSM lo sono. Infatti:

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.

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

A5 A5Kc (64 bit) Kc (64 bit)

Fn (22 bit) Fn (22 bit)

XOR XORData(114 bit) Data (114 bit)Ciphertext (114 bit)

OPERATOREGSMMS

114 bit 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

A5 A5Kc (64 bit) Kc (64 bit)

Fn (22 bit) Fn (22 bit)

XOR XORData(114 bit) Data (114 bit)Ciphertext (114 bit)

OPERATOREGSMMS

keystream (114 bit) keystream (114 bit)

Algoritmo di cifratura A5

Fn è il numero del frame da cifrareKc viene utilizzata per tutta la sessione, durante la quale il numero del frame cambiaViene generata un’unica keystream per ciascun frameUna telefonata può essere decifrata qualora l’attaccante conosca Kc in quanto il numero di frame viene trasmesso in chiaro

A5 A5Kc (64 bit) Kc (64 bit)

Fn (22 bit) Fn (22 bit)

XOR XORData(114 bit) Data (114 bit)Ciphertext (114 bit)

OPERATOREGSMMS

keystream (114 bit) keystream (114 bit)

Algoritmo di cifratura A5I tre LFSR

Il generatore delle keystream è costituito da 3 LFSR di lunghezze differenti. Organizzati in modo non lineare, che corrispondono ai tre polinomi delle connessioni:

X19 + x5 + x2 + x + 1

x22 + x + 1

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 A5I tre LFSR

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 A5I tre LFSR

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 A5I tre LFSR: inizializzazione

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 A5I tre LFSR: inizializzazione

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

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

Esistono tre versioni dell’ algoritmo A5:A5\1 : la versione più forte e meno diffusaA5\2 : la versione più debole per cui non esistono limiti di esportazioneA5\3 : la nuova versione, non ancora utilizzata nei sistemi GSM

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ì deboliL’anno successivo il gruppo di Berkley annuncia di aver violato con successo anche l’A5\1

Poche garanzie di riservatezza

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à).

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.

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 Attacchi1991

Prima Implementazione del GSM.Aprile 1998

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 dialcune ore. Scoprendo tra l’altro che la chiave di sessione Kc utilizza solo 54 bits.

Agosto 1999Il debole A5/2 è stato rotto con un semplicissimo PC nell’arco di pochi secondi.

Dicembre 1999Alex 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 attacconell’ordine di 1 secondo.

Maggio 2002Il 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 2003Un 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 AttacchiAlgoritmi di Cifratura (Attacchi all’Algoritmo A5/x)

Attacco Brute-ForceAttacco Divide-and-Conquer

(Known Plaintext)Time-Memory Trade-Off

SIM Card (Recupero della chiave )Attacchi LogiciAttacchi FisiciRottura dell’Algoritmo COMP128

Attacco Chosen ChallengPartitionin Attack

Architettura di Rete (Insicurezza strutturale della Rete)Intercettazione Segnali Operazioni di ReteRecupero Chiave dall’Authentication Center (AuC)

ik

Algoritmo A5/1Debolezza della ChiaveUn 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.

Sebbene l’A5/1 utilizzi una chiave a 64 bit, i ricercatori hannoscoperto 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.

Algoritmi A5/xA5/1 utilizzato nei paesi europei (Kc di 54 bit)A5/2 utilizzato negli USA (Kc di 16 bit)A5/0 utilizzato in medio oriente (non cifra la comunicazione)

Algoritmo A5/1Attacco Brute-ForceUn attacco Brute-Force in Real-Time non è realizzabile, essendo la complessità di tale attacco di 254 operazioni.

E’ altresì possibile memorizzare i frame della comunicazione tra MS e BTS e lanciare l’attacco successivamente.

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)

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/1Attacco Divide-and-Conquer

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.

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/2Chiave Kc di 16 bitAttacco Known-Plaintext Basso ordine algebrico.Code di correzione dell’errore.Complessità Temporale inferiore ad 1 sec.

Attacco Man-in-the-Middle L’attaccante si finge BTS e MS in fasi successiveRiceve la comunicazione crittata da MS (calcolato con A5/2)Ottiene Kc dal frame ricevuto conosciendo il numero di frame

Recupero della Chiave KiAttacco Fisico alla SIM e Rottura COMP128

La chiave Ki è il cardine della sicurezza nel GSMUna volta recuperata la chiave si ha completo accesso ai servizi dell’utente truffato.

Capacità del Sistema di Individuare chiamate contemporaneeSe 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.

Necessari 217.5 challange alla SIM, per generare le SRES e le chiavi di sessioneKc

Applicazione dell’Ingengeria Sociale

Attacco al COMP128Tipologia e Complessità TemporaleIl 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 COMP128Debolezza e “Trucchi” per la crittoanalisi

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 ininput all’algoritmo. In particolare:

I Bytes i,i+8 dell’input sono i bytes i,i+8 della chiave, 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.

``2-R attack'', nella terminologia della Crittoanalisi Differenziale.

Recupero della Chiave KiAttacco Logico alla SIM: via Etere

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.

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 ReteIntercettazione Segnali delle Operazioni di Rete

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:

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 ReteRecupero della Chiave dall’AuC

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

Sia stato rotto l’algoritmo COMP128 Siano state messe appunto strategie per attaccare gli A5/x di cifratura delle conversazioni

Vari 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. Esistono, 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

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 CrittograficheTradizionali

Traditional Cryptographic

Attacks

InputCrypto Processing

Sensitive Information

OutputSmart CardSmart Card

Informazioni attualmente disponibili

Side Channels•Power Consumption•Electromagnetic radiation•Timing•Errors•Etc.

Side Channel Attacks

InputCrypto Processing

Sensitive Information

OutputSmart CardSmart Card

Analisi del consumo energeticodurante l’esecuzione del DES

Simple Power Analysis delle operazioni DES compiuteda una tipica Smart Card

Sopra: Permutazione iniziale, 16 round DES, permutazionefinaleSotto: Vista dettagliata del secondo e terzo round

Partitioning Attack on COMP128Successi dell’attacco

Derivata la chiave Ki contenuta nella SIM cardCardinal Principle

I bit rilevanti dei cicli intermedi ed il loro valore dovrebbero essrestatisticamente indipendenti dall’input, dall’output e dalle informazionisensibili.

Idea dell’AttaccoTrovare una violazione del Cardinal Principle, ovvero la presenza dieffetti collaterali con segnali che dipendano dall’input, dall’output e dalle informazioni sensibili.Tentare di esplicitare le relazioni statistiche sui segnali per ricavareinformazioni sensibili.

L’algoritmo si basa sulla partizione successiva di una tabella, inizialmente da 512 bit in tabelle di dimensioni dimezzate ad ogni passoe sulla possibilità di:

Individuare l’accesso ad una particolare tabella attraveso canalicollaterali.

Scoperta Falla nel sistema di crittografia delle comunicazioni GSM

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 miglioramentiLa sicurezza potrebbe essere migliorata in alcuni punti con misure relativamente semplici: utilizzazione da parte dell’operatore di un algoritmo crittograficamente sicuro al posto di COMP128impiegare una nuova implementazione di A5 con una forza crittografica tale che un attacco brute-force non sia ammissibile in nessun casocifrare 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 deglioperatori 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.

ConclusioniIl 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 via-etere è 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 chosen-challange 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 CardBibliografia

Funzioni hash sicure – Davide Cerri (dispense)Applied Cryptography - Bruce SchneierLa sicurezza nel GSM e le Sim CardCrittologia – Berardi, BeutelspacherMatematica 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...