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