Corso di Sicurezza – A.A. 2007/2008 Elena Tecchi ▸ Nel 1974, Roland Moreno aveva presentato al circuito bancario Carte Bleu un “processo e un dispositivo per il controllo elettronico” dell’identità degli individui. ▸ La prima proposta di Moreno si basava su un anello, e solo in un secondo tempo, dopo aver raccolto le osservazioni e le obiezioni delle banche, l’anello fu sostituito dal rettangolo di plastica che si sarebbe poi diffuso. ▸ A questo punto, si trattava di trovare la tecnologia adatta per concretizzare il progetto, attraverso lo sviluppo di un chip con una memoria sufficiente a contenere le informazioni richieste, e il suo inserimento nella carta senza danneggiarlo. ▸ Fu trovato un processo che consentiva di trasferire automaticamente i chip su un nastro da 35 mm: nasceva così la Smart Card, e Roland Moreno è passato alla storia come il suo inventore. ▸ Ma solo nel 1980, Ugon presentava la prima carta dotata di un microprocessore. ▸ Negli ultimi anni le nuove tecniche, hanno consentito di realizzare Smart Card più potenti dotate di coprocessore crittografico e di buone capacità di memoria a costi accessibili. Tale disponibilità ha avviato una fase di notevole e sorprendente sviluppo che è partita dall’implementazione delle SIM Card in ambito GSM fino ad arrivare alla realizzazione della Carta d’Identità Elettronica, delle carte di credito “intelligenti” e dei titoli di viaggio elettronici. 1 ▸ Le Smart Card sono schede di materiale plastico, analoghe alle carte di credito, conformi per dimensione, spessore ed altre caratteristiche fisiche, sul quale è integrato un chip in grado di memorizzare e gestire informazioni. ▸ A differenza delle classiche carte a banda magnetica, le Smart Card possiedono tutte le informazioni e funzionalità che gli evitano di dover accedere a un database remoto ad ogni transazione. ▸ Il circuito integrato delle Smart Card può semplicemente contenere memoria controllata da una logica dedicata, che fornisce servizi di varia natura (ad esempio accesso mediante PIN), o essere un microprocessore vero e proprio. 2 ISO 7816 Parte I: ▸ Definisce le caratteristiche fisiche di una Smart Card. • • • • • Dimensioni fisiche. Risposte ai raggi X e alla luce UV. Resistenza meccanica. Caratteristiche dei contatti elettrici. Risposte ai campi elettromagnetici e alla elettricità statica. ISO 7816 Parte II: ▸ Questo documento descrive: • • • • • Le dimensioni dei contatti. Il posizionamento dei contatti. Il posizionamento dell’embossing (scritte in rilievo). Il posizionamento della banda magnetica. La struttura del chip. ISO 7816 Parte III: ▸ Questo documento descrive : • • • • I protocolli di comunicazione. Le funzioni dei vari contatti sulle Smart Card. Le caratteristiche elettriche di base. Struttura di ATR (Answer to Reset). I fornitori che si dichiarano conformi agli standard ISO 7816 sono sostanzialmente conformi a queste parti I, II e III. 3 ISO 7816 Parte IV: ▸ Questo documento descrive: • • • • I comandi, i messaggi e le risposte tra la Smart Card e il terminale. La struttura logica dei file e dei dati memorizzati. I meccanismi di protezione dell’accesso agli stessi. Il secure messaging. ISO 7816 Parte V, VI e VII: ▸ ▸ Procedure di registrazione e sistemi di numerazione (parte V). Definizione dei dati (parte VI). • ▸ Definisce il formato dei dati e le regole di costruzione dei dati memorizzati sulla Smart Card e scambiati con il terminale. Comandi per interrogazioni strutturate (parte VII). • Definizione del SCQL (Structured Card Query Language). ISO 7816 Parte VIII, IX e X: ▸ ▸ Comandi relativi alla sicurezza (parte VIII). Comandi addizionali e attributi di sicurezza (parte IX). • ▸ Descrive il ciclo di vita della Smart Card con i relativi attributi di sicurezza. Segnali elettrici e “Answer to Reset” (parte X). 4 ▸ ▸ ▸ ▸ ▸ Telefonia fissa. In questo ambito la Smart Card è usata principalmente come carta prepagata grazie alle sue caratteristiche di inviolabilità. Telefonia mobile. Lo standard GSM ha introdotto il concetto di SIM (Subscriber Identity Module) che rappresenta un dispositivo portabile di identificazione dell'utente. I requisiti funzionali delle SIM corrispondono perfettamente con le funzionalità offerte dalle Smart Card e pertanto, l'implementazione su Smart Card (con supporto di plastica di dimensioni ridotte) è stata una scelta naturale. Analoghe considerazioni si applicano in ambito UMTS dove le USIM sono l'evoluzione delle SIM. Banche. In ambito bancario le Smart Card sono state utilizzate soprattutto come borsellini elettronici, denaro elettronico e in alcuni casi come carte di credito. E-government. In quest'ambito le Smart Card sono state utilizzate principalmente come strumento di identificazione e di memorizzazione di informazioni personali. Il procedimento solitamente avviene attraverso l'inserimento di un codice PIN ma recentemente è stata elaborata una nuova applicazione che sostituisce al PIN i dati biometrici (Impronte digitali in particolare ma anche Iride, volto e voce) del titolare della Smart Card. Trasporti. Nei trasporti pubblici le Smart Card sono impiegate come titoli di viaggio elettronici nei sistemi di bigliettazione elettronica. Tipicamente sono utilizzate come biglietti prepagati multicorsa o in sostituzione degli abbonamenti. Nei trasporti privati invece le Smart Card sono spesso utilizzate come carte di pagamento per i parcheggi pubblici. 5 ▸ ▸ ▸ ▸ ▸ ▸ Militare. In questo settore le Smart Card hanno consentito di realizzare la Carta Multiservizi della Difesa (CMD) che rappresenta sia un vero e proprio documento di riconoscimento del personale militare e del personale civile dipendente dal Ministero della Difesa, sia un contenitore di informazioni personali tra cui informazioni sanitarie (estremamente utili in caso di ferimento durante un operazione di guerra), informazioni relative al grado e al corpo di appartenenza, informazioni relative alla firma digitale, ecc. Settore privato. In tale ambito, le principali necessità riguardano il controllo dell'accesso ad aree riservate, il controllo dell'accesso alle reti e ai sistemi di calcolo e la protezione delle postazioni di lavoro (tipicamente personal computer) mediante sistemi di login sicuro e cifratura dei dati sensibili. Sanità. Carta sanitaria: informazioni precise e complete (allergie, gruppo sanguigno, interventi e cure avute). Firma digitale. L'Italia ha approvato nel Febbraio 1999 la legge che rende valida ad ogni effetto la firma digitale e ne definisce le caratteristiche. Scuole/Università. L'auspicato espandersi dell'uso di computer nelle scuole costringe l'istituto scolastico di dotarsi di strumenti atti a controllarne l'uso. Tramite Smart Card la scuola può riservare l'accesso ai vari PC solo a chi ne è autorizzato, può limitarne l'uso nel tempo (ad esempio per quelli connessi ad Internet); inoltre il server dell'istituto terrà registrazione di ogni connessione/disconnessione. Decoder satellitari. 6 Le tipologie di Smart Card in commercio possono essere raggruppate in tre principali categorie: ▸ Carte a memoria. Questo tipo di Smart Card contiene una memoria permanente EEPROM (Electrically Erasable Programmable Read-Only Memory). Poiché questa è permanente, quando si rimuove la scheda dal lettore e l'energia viene interrotta la scheda salva i dati. Le Memory Card possono memorizzare normalmente da 1 a 4KB; dipendono strettamente dal tipo di lettore e spesso non seguono precisi standard. Non hanno capacità d'elaborazione ma contengono solo circuiti elettronici per memorizzare dati e per comunicare con il dispositivo di lettura. Sono dotate anche di meccanismi di sicurezza come il PIN per proteggere i dati in lettura o scrittura. I PIN sono normalmente composti da 3 ad 8 numeri che vengono scritti in un file speciale presente nella scheda. Poiché questo tipo di scheda non consente la crittografia, le schede a memoria vengono utilizzate per contenere credito telefonico, biglietti per il trasporto o denaro elettronico. ▸ Carte a microprocessore integrato (ICC). Si differenziano da quelle a memoria perché al posto di semplici circuiti per la gestione della memoria e per la comunicazione con il lettore, possiedono un vero e proprio microprocessore e un proprio sistema operativo che le rendono idonee ad elaborare informazioni in maniera indipendente. Queste carte forniscono una gestione efficiente e sicura dei dati che vengono strutturati in file e directory, utilizzano dei PIN per l'accesso alle informazioni, supportano funzionalità di sicurezza, quali crittografia, autenticazione dei messaggi, etc. Attualmente la generazione di Smart Card a microprocessore dispone di processi ad 8 o 16 bit, di 16 o 32Kbyte di memoria programmabile a 512 o 1024 Byte di memoria volatile. Le carte a microprocessore costituiscono la piattaforma di base per i moderni sistemi di identificazione, i quali necessitano di memorizzare e trasportare agevolmente informazioni spesso riservate e di carattere personale. ▸ Carte a memoria ottica. Queste carte dispongono di una banda ottica sulla quale sono memorizzate le informazioni; possono memorizzare fino a 4.9Mbye di dati e si adattano particolarmente ad ospitare informazioni di tipo medico/sanitario, biometrico, geografico. 7 All'interno della categoria di carte a microprocessore è possibile distinguere: ▸ Carte a contatto: In questa tipologia di carte (più comuni) la connessione tra il microcircuito ed il lettore avviene tramite contatti elettrici. Il circuito stampato della carta, una volta inserito nel lettore, può comunicare con esso grazie allo scambio di segnali sotto forma di tensione e corrente. Questo tipo di carte presentano una piccola piastra color oro di circa un cm di diametro sul frontespizio della carta. Ovviamente la piastra di contatto dovrà rispettare gli standard che sono definiti da ISO 7816/2. ▸ Carte a prossimità o contactless: Anche carte senza contatto. Differiscono da quelle a contatti perché lo scambio delle informazioni non avviene attraverso il canale fisico realizzato dai contatti della carta e del lettore, ma per trasmissione in radio frequenza. Nella plastica della carta è presente una minuscola antenna in grado di rilevare un segnale emesso a distanza da un’antenna presente su un dispositivo fisso. La lettura/scrittura della carta può avvenire ad una certa distanza dall’apposito lettore e ad elevata velocità. 8 ▸ Carte ibride o combo: Con tale termine si fa riferimento a delle carte su cui sono presenti sia il chip della carta a contatti, che la tecnologia trasmissiva della carta a prossimità. Il vantaggio delle carte ibride/combo risiede nel fatto che l’utente può avere sullo stesso CPU supporto applicazioni tipiche di entrambe le tecnologie. C ROM O La carta ibrida ha un’unica zona di memoria RAM M (ROM+RAM+EEPROM) e un’unica CPU che EEPROM B interagisce con l’esterno tramite due diversi sistemi O EEPROM di I/O (contatti e radiofrequenza). Access Control Link I B R I D A CPU ROM RAM EEPROM Nella carta combo i due diversi circuiti condividono il medesimo supporto plastico. Funzionalmente tale dispositivo risulta quindi essere l’insieme di due carte distinte e separate in cui possono girare applicazioni differenti che non possono assolutamente comunicare o condividere dati tra loro. 9 Le Smart Card comunicano con l’esterno con l’aiuto di un device hardware. Questi sono suddivisi in due diverse tipologie generali: ▸ Reader: è un’unità che si interfaccia ad un PC per la maggior parte delle elaborazioni. I reader si differenziano in base alla loro interfaccia verso il PC (si possono connettere alle porte seriali RS232, alle porte USB, agli slot di floppy-disk, alle porte ad infrarosso IRDA), alla loro “intelligenza” nel processare i dati, e al rilevamento di errori. ▸ Terminal: è un device che non ha bisogno di interfacciarsi col PC; è quindi un dispositivo di elaborazione indipendente. I terminal spesso hanno un sistema operativo e tools di sviluppo, e tipicamente supportano altre funzionalità (es. stampa di scontrini, funzioni di modem, lettori di carte magnetiche). Le Smart Card utilizzano l’Application Protocol Data Unit (APDUs) per comunicare con i device. La comunicazione è half-duplex, ciò significa che l’informazione è spedita dalla carta o dal device alternativamente. 10 Il microcircuito di cui è dotata una Smart Card è composto dalle seguenti unità: ▸ L'unità centrale (CPU): rappresenta il cuore della Smart Card; essa è in grado di eseguire istruzioni, di effettuare calcoli aritmetici, di controllare il flusso di dati che entrano ed escono dalla carta e di gestirne l'archiviazione sulla memoria. ▸ La Memoria volatile (RAM): rappresenta lo "spazio di lavoro" utilizzato dall'unità centrale per svolgere i propri compiti. Quando l'unità centrale esegue una applicazione utilizza la RAM come appoggio per archiviare temporaneamente i dati e le informazioni necessarie. Tutte le volte che viene tolta l'alimentazione alla Smart Card si perde inevitabilmente il contenuto di questa unità. ▸ Memoria a sola lettura (ROM): in questa unità risiedono programmi e dati fondamentali per il corretto funzionamento della Smart Card. Queste informazioni sono registrate sulla ROM al momento della costruzione del processore e in alcun modo modificabili o cancellabili una volta rilasciata la Smart Card. ▸ La Memoria programmabile (EEPROM Electrically Erasable Programmable Read Only Memory): rappresenta la memoria di massa della Smart Card; su questa unità è possibile memorizzare dati ed applicazioni strettamente legati alla Smart Card stessa e dipendenti dal tipo di utilizzo cui è riservata o dall'utente cui appartiene. La EEPROM presente su una Smart Card ha svariate dimensioni tipicamente è di 32Kbyte. I file sulla EEPROM sono organizzati in maniera simile ad un normale disco fisso, ovvero il sistema operativo la suddivide in settori di dimensione fissata. ▸ Porta di I/O. La carta comunica con l’esterno tramite un’uscita seriale ad un solo bit, con velocità che variano secondo il tipo e le necessità delle specifiche applicazioni. Valori usuali sono 9600 bit/secondo, ma per le carte contactless sono richieste velocità superiori. ▸ Oltre alle unità appena descritte è possibile trovare un co-processore crittografico specializzato per l'esecuzione di algoritmi crittografici standard quali MD5, SHA-1, RSA, DES, 3-DES, DSA. Il co-processore è molto importante in quanto solleva l'unità centrale dal compito di eseguire gli algoritmi crittografici e garantisce buone prestazioni poiché ottimizzato per effettuare esclusivamente questo tipo di operazioni. 11 Una Smart Card può essere vista come una scatola nera: ▸ Riceve un input. ▸ Processa l’input. ▸ Restituisce un output. ▸ I dati non sono mai direttamente raggiungibili. ▸ Il flusso di dati è bidirezionale. 12 Il Sistema operativo è mascherato nella memoria ROM e sovrintende alle seguenti funzioni: ▸ Gestione del protocollo di comunicazione. ▸ Gestione del protocollo logico (APDU). ▸ Gestione dello SmartCard File System. ▸ Sicurezza: • Sicurezza fisica (protezione degli “oggetti di sicurezza” contenuti nella Smart Card); • Sicurezza logica (criteri di accesso ai file ed agli oggetti di sicurezza). Il Multi Application COS è il Sistema Operativo che permette lo sviluppo di applicazioni multiple che vengono eseguite su un’unica carta. Attualmente ci sono tre MACOS sul mercato: ▸ Java Card. Permette alle Smart Card di eseguire le applets che utilizzano la tecnologia JavaTM. Tale tecnologia offre una completa indipendenza dalla piattaforma, la possibilità di archiviare informazioni e applicazioni di natura diversa e un’ampia compatibilità con gli standard. ▸ MultOS, è il primo MACOS aperto e ad alta sicurezza per Smart Card. Permette anche di caricare dinamicamente, aggiornare e cancellare le applicazioni durante la vita della carta. ▸ Microsoft Windows for Smart Card, sotto licenza di Windows che fornisce uno standard open software per Smart Card. È stato progettato per garantire la massima interoperabilità tra la famiglia dei sistemi operativi Microsoft Windows e le nuove tecnologie legate alle Smart Card e, più in generale, ai nuovi sistemi per il commercio e l’intrattenimento attraverso Internet. 13 Le tecniche di sicurezza impiegate nella progettazione delle Smart Card e nelle procedure di autenticazione/trasmissione dei dati verso i terminali d’interfaccia riguardano 4 settori: Integrità dei dati. Si intende la corretta trasmissione dei dati tra la sorgente (Smart card) e destinatario (terminale di servizio) senza nessun tipo di alterazione dell’informazione. L’integrità dei dati viene garantita da sofisticate tecniche crittografiche chiamate check digits, ossia controllo delle cifre (è una procedura numerica che consente di determinare se un certo insieme di valori numerici, i bit memorizzati nella card, sono stati alterati o meno). In genere questa funzionalità è realizzata con l’uso di algoritmi oneway hashing che numericamente vincolano a un insieme stabilito di valori numerici un altro insieme di valori calcolati sulla base dei primi (una sorta di targa numerica). Se anche un singolo bit dell’insieme informativo viene alterato, il valore di hash viene modificato. Esistono diversi algoritmi di hash utilizzati per garantire l’integrità dei dati: • Secure Hash Algorithm (SHA-1). L’SHA-1 produce una firma di 160 bit per un insieme informativo di valori numerici di 264 bit di lunghezza al massimo. • Un’altra funzione hash molto utilizzata è la Message Digest 5 (MD5) che produce una firma inferiore a quella del SHA-1, solo 128 bit. Il sistema operativo garantisce l’integrità del messaggio scambiato dalla carta con il mondo esterno, inserendo dopo il campo dati del comando o della risposta il Codice di Autenticazione del Messaggio (MAC) in modalità cifrata. La cifratura del MAC definisce una sorta di firma digitale del messaggio scambiato realizzata con algoritmi di crittografia simmetrici (DES, RC5). 14 Autenticazione. Permette il riconoscimento reciproco tra la Smart Card e il mondo esterno rappresentato dal terminale che interagisce con la carta. Il principio generale su cui si basa l'autenticazione è che, tra i due soggetti, vengono scambiate quantità casuali che vengono crittografate, in modo simmetrico, con le stesse chiavi e con gli stessi algoritmi. Esistono tre tipi di autenticazione: • Interna: terminale / server remoto -> Smart Card. Consente ad un'applicazione di sincerarsi della "validità" della carta con cui desidera interfacciarsi. A questo scopo il sistema operativo genera un Response verso l'esterno a partire dalla quantità random (Challenge) ricevuta e dall’indicazione della chiave di cifratura da utilizzare. L'applicazione esterna andrà a confrontare il Response ricevuto con quanto ottenuto dalla esecuzione dell'algoritmo di autenticazione che usa lo stesso Challenge e la propria chiave di verifica. Chip Card Terminale • Esterna: Smart Card -> terminale / server remoto. • chiave segreta • chiave segreta Consente ad una carta di sincerarsi della "validità" • algoritmo crittografico • algoritmo crittografico del terminale con cui si interfaccia. • Reciproca: interna + esterna Genera e scrive al Challenge terminale un numero Anche per questa tecnica esistono vari algoritmi, Genera attraverso random. Numero random l’algoritmo tra i più diffusi ci sono: crittografico e la Genera attraverso chiave segreta un DSA. l’algoritmo codice di sequenza Utilizza una chiave privata di lunghezza crittografico e la “response” a partire chiave segreta un dal random. variabile tra 512 e 1024 bit. codice di sequenza “response” a partire RSA. Utilizza chiavi private fino 2048 bit. dal random. Irriproducibilità. Bisogna in qualche modo garantire che la “firma digitale” non possa essere Response Comparazione (Codice di sequenza di risposta) copiata per consentire l’invio di messaggi fasulli apparentemente autentici. Questo è uno degli aspetti cruciali della sicurezza in ambito elettronico. Riservatezza. L’obiettivo è quello di evitare che un intruso possa catturare e decifrare le operazioni interpretando di conseguenza il contenuto informativo della Smart Card. 15 ATTACCHI INVASIVI. Un attacco è invasivo se comporta una totale distruzione dell’hardware. Questi attacchi richiedono, ovviamente, la sottrazione definitiva della Smart Card per il possessore. Sono molto costosi in quanto richiedono ore di lavoro in laboratori specializzati e sono effettuati da esperti nella crittografia e nell’hardware delle carte. ▸ Primo passo: rimozione del chip. Tutti gli attacchi invasivi iniziano con la rimozione del chip dalla Smart Card. Questa operazione è semplice. Basta usare un coltello per tagliare la plastica che racchiude il chip e quindi rimuoverlo. Poi bisogna coprire il chip con 20-50 ml di acido nitrico riscaldato a 60° e aspettare pochi minuti fin quando l’acido scioglie la resina che incapsula il chip. Infine si lavano via l’acido e la resina rimanente con l’acetone. ▸ Secondo passo: studio del chip. Per studiare il chip si possono usare, queste tecniche: • Reverse engineering: si riesce ad identificare la struttura e le funzioni del chip. Questa tecnica può essere applicata con l’uso di microscopi ottici. • Microprobing: permette di interagire direttamente con i componenti del chip. Spesso questa tecnica viene usata insieme alla precedente. • Attacchi logici (semi-invasivi): si possono dedurre i valori delle chiavi crittografiche introducendo degli errori computazionali, attraverso cambiamenti di temperatura o di voltaggio per guadagnare il controllo diretto della CPU. Le chiavi di una Smart Card sono memorizzate nella EEPROM, le cui operazioni di scrittura sono suscettibili a voltaggi e temperature insoliti. Per questa ragione, alcune Smart Card contengono dei sensori che danno un allarme quando ci sono questi tipi di cambiamenti. 16 ATTACCHI NON INVASIVI. Un attacco non invasivo è più limitato, non comporta la distruzione della carta e spesso non è necessaria la sottrazione della carta per il proprietario. Possono essere effettuati in un intervallo di tempo limitato e sono molto difficili da scoprire. In generale richiedono che si conosca il software e l’hardware della Smart Card. ▸ L’attacco non invasivo più comune è quello via software. Per esempio, può essere usato un software nascosto il quale aspetta che l’utente digiti il PIN da un’applicazione di fiducia, quindi disabilita l’uso della chiave privata e chiede alla Smart Card di firmare dei documenti fasulli. L’operazione viene completata con successo ma il proprietario non sa che la propria firma è stata usata contro di lui. Possibili contromisure per prevenire questo attacco sono: • Architettura “single-access device driver”: solo un’applicazione può essere acceduta dalla Smart Card in un dato momento. Questo previene l’attacco ma diminuisce le potenzialità della Smart Card perché non si possono utilizzare le applicazioni multiple. • “one private key usage per PIN entry”: l’utente deve inserire il proprio PIN ogni volta in cui la chiave privata sta per essere usata, perciò il software nascosto non può avere accesso alla chiave. E’ forse il metodo migliore. ▸ Un’altra tecnica di attacco non invasivo è la "Differential Power Analysis" (DPA), attraverso la quale è possibile sfruttare le caratteristiche della logica dei transistor e del software che gira sui sistemi di autenticazione per interpretare i dati segreti memorizzati su Smart Card a partire dalle fluttuazioni nel consumo di corrente elettrica dei microprocessori contenuti nei lettori hardware. Il problema è grave perché un cracker che abbia accesso ad una Smart Card potrebbe essere in grado, attraverso l'analisi dell'attività elettrica e all'applicazione di metodi statistici, di interpretare la chiave o il PIN segreti memorizzati sul dispositivo di autenticazione. 17 ▸ GSM usa le SIM-CARD. ▸ Comunicazione a terra (digitale o analogica) non criptata. ▸ Ogni volta che utilizziamo un cellulare GSM la nostra chiamata viene digitalizzata, cifrata e inviata alla centrale ricevente più vicina. Nella stazione ricevente la chiamata verrà decifrata e inviata in chiaro al numero telefonico corrispondente. Quindi tutte le comunicazioni via etere sono criptate, ma nessuno ci assicura che un malintenzionato non intercetti le telefonate a terra. 18 ▸ Il sistema di comunicazione GSM si avvale di alcuni algoritmi crittografici di tipo simmetrico, chiamati A3, A5 e A8. ▸ Questi algoritmi vengono utilizzati per le procedure di autenticazione e mascheramento dei messaggi. ▸ In particolare gli algoritmi A3 e A8 sono utilizzati in fase di autenticazione della chiamata e della trasmissione, mentre l’algoritmo A5 per la cifratura della comunicazione e quindi questo è l’algoritmo che un malintenzionato dovrebbe effettivamente violare per poter decifrare la comunicazione. Questo algoritmo essendo così importante è quindi riservato. ▸ Comunque rimane importantissima anche l’autenticazione in quanto oltre a proteggere il contenuto della mia telefonata è importante per garantire che effettivamente sia io a chiamare e non un malintenzionato che abbia clonato il mio GSM. 19 La sicurezza nel GSM è basata sostanzialmente su 3 punti: ▸ La scheda Smart Card inserita fisicamente nel cellulare, SIM (Subscriber Identity Module). ▸ Il cellulare (Mobile Station o Terminal Mobile). ▸ La rete GSM, BTS (base transceiver station). Nella SIM sono memorizzate le seguenti informazioni: ▸ Il codice IMSI. ▸ La chiave personale di autenticazione Ki. ▸ L’algoritmo A8 che genera la chiave temporanea Kc. ▸ L’algoritmo A3 di autenticazione. ▸ Il codice PIN personale. Nel cellulare è memorizzato l’algoritmo A5 di cifratura per i dati relativi alla comunicazione e l’algoritmo A3 di Autenticazione. Nelle BTS sono memorizzati l’algoritmo A5 per la decifrazione dei messaggi e la chiave temporanea Kc. Il processo legato ad una chiamata telefonica si compone di due fasi: La fase di autenticazione. La fase di cifratura. 20 ▸ Avviene tra i moduli SIM e il centro di autenticazione AuC (Authentication Center) presente nella stazione BTS. ▸ La rete invia al MS un numero casuale di 128 bit (RAND) generato da AuC. ▸ ▸ MS calcola la risposta (SRES di 32 bit) in base all’algoritmo A3 utilizzando RAND e la chiave personale Ki, chiave memorizzata sia nella SIM che in AuC. MS spedisce SRES alla rete. ▸ L’AuC per mezzo del RAND e della stessa chiave Ki genera a sua volta l’SRES. ▸ Confronta il suo risultato con l’SRES ricevuto dalla stazione mobile. ▸ Se i valori coincidono la procedura di autenticazione è andata a buon fine altrimenti viene negato l’accesso alla rete GSM. ▸ L’AuC è in possesso della chiave Ki dell’utente sin dall’inizio poiché i dati dell’utente sono memorizzati nell’HLR (Home Location Register), cioè in un database apposito relativo alla rete di appartenenza dell’utente. ▸ A questo punto, se l’autenticazione è andata a buon fine, viene calcolata la chiave Kc, che servirà per cifrare la comunicazione. ▸ All’inizio della fase di autenticazione l’MS utilizza, per farsi identificare, il codice IMSI dell’utente. Per evitare che questo codice continui a viaggiare nel canale, appena eseguita l’autenticazione dell’utente viene utilizzato per il resto delle operazioni un codice temporaneo TMSI per garantire così maggiore sicurezza. 21 ▸ L’algoritmo A5 è un codificatore di tipo “stream chiper” ossia un algoritmo che opera su singoli bit cifrandoli uno alla volta. ▸ Questo algoritmo viene utilizzato per la cifratura/decifratura dei messaggi tramite l’utilizzo di una chiave Kc. ▸ La chiave Kc viene calcolata per mezzo dell’algoritmo A8 fornendogli in input il RAND e la chiave Ki. ▸ La chiave Kc è diversa per ogni comunicazione anche dello stesso utente poiché è una chiave temporanea utilizzata per l’identificazione della stazione base con il dispositivo mobile e quindi viene generata ad ogni comunicazione in modo tale da garantire la riservatezza e la non tracciabilità del chiamante. ▸ Non c’è scambio della chiave nel canale e quindi anche se si dovesse riuscire a superare la procedura di autenticazione non si potrebbe comunicare. ▸ Ascoltare le nostre conversazioni è molto semplice poiché l’architettura GSM prevede, come detto in precedenza, che la conversazione sia cifrata dal telefono alla cella, la BTS, ma da questo punto in poi il traffico viaggia in chiaro. Lo scopo di questo meccanismo così debole è appunto il poter rendere accessibile il contenuto della rete ad operatori e autorità competenti. 22 Invece di utilizzare due algoritmi distinti, A3 ed A8, la maggior parte degli operatori GSM utilizza un unico algoritmo, chiamato COMP128. L’algoritmo consiste nel creare un’array di 96 bit dei quali: ▸ I primi 32 rappresentano SRES. ▸ Gli altri 64 (di cui gli ultimi 10 sono sempre posti uguali a zero) rappresentano la chiave kc. In generale questo algoritmo utilizzato dal GSM è debole, proprio perché gli ultimi 10 bit della chiave di sessione kc sono posti uguali a zero. Quindi lo spazio delle chiavi si riduce da 264 a 254 . Il COMP128 è considerato debole anche perché è stato violato tramite un attacco di tipo fisico alla SIM Card. È un algoritmo debole voluto dal governo per intercettare le comunicazioni. 23 ▸ ▸ ▸ ▸ ▸ ▸ Negli ultimi 20 anni si è andata sempre più diffondendo la pirateria satellitare che permette di creare delle schede pirata da inserire nel decoder per vedere abusivamente programmi trasmessi via satellite a pagamento. Per poter fare questo gli "hacker" devono poter acquisire le informazioni tecniche necessarie ad ottenere i codici di segnale protetto che poi mettono a disposizione di tutti attraverso internet. Da vari siti vi è la possibilità di scaricare diversi software che permettono di programmare e quindi “innestare” questi codici nella memoria delle Smart Card. Il segnale criptato viene trasmesso dai gestori, sotto forma di onde radio, al satellite che le ritrasmette alle antenne paraboliche sul territorio. L'abbonato riceve il segnale e a sua volta lo invia al ricevitore satellitare (decoder). Quest'ultimo, interfacciato ad una Smart Card fornita dal gestore e contraddistinta da un numero seriale associato all’abbonato, permette la visione in chiaro. 24 ▸ Il decoder e la Smart Card devono assicurarsi che i dati che si scambiano siano protetti da intrusioni esterne, e che tale procedura non venga aggirata. ▸ In fase di autenticazione è importante attuare un processo di checksum, ovvero verifica dell'integrità dei dati. ▸ Il processo di checksum utilizzato è il MAC (Message Authentication Code). ▸ Affinchè il processo di autorizzazione vada a buon fine, ciascun utente deve essere identificato univocamente per mezzo di una chiave unica, detta Master Private Key MPK o Secret Key. ▸ Tali chiavi vengono raggruppate e trasmesse in pacchetti che permettono al gestore di interagire con ogni singola Smart Card mediante l'invio di due tipi di pacchetti: • ECM (Entitlement Control Message): porta con sé le informazioni per decodificare un canale criptato che tramite le Control Word, è indirizzato a tutte le Smart Card e viene generato circa ogni 2 secondi. • EMM (Entitlement Management Message): sono dei messaggi di gestione che i provider inviano alle card per impostarne e aggiornarne alcuni valori, come ad esempio la data, aggiornare le key etc. Gli EMM possono essere indirizzati ad una singola Smart Card o ad un gruppo. 25 Per la decodifica dello stream criptato e la relativa messa in chiaro della trasmissione si deve avere: ▸ Un decoder digitale ovvero ricevitore IRD ▸ Un Modulo di Accesso Condizionato (CAM) che, dopo aver effettuato con successo la procedura di autenticazione della Smart Card attraverso un continuo colloquio con essa, ne permette la visione. ▸ SMART CARD. Vengono conservati i dati che identificano un abbonato e vengono consegnate dai gestori al momento della sottoscrizione del contratto. 26 ▸ Attacco di tipo clone. La tecnica più comune per accedere abusivamente alle TV a pagamento è quella di “clonare” la Smart Card. Viene realizzata una Smart Card, chiamata trick card, con architettura hardware (processore e memorie) diversa da quella originaria, ma in grado di emularla in quasi tutte le sue funzioni. Sulla trick card vengono caricati il sistema operativo per la sua gestione, il software di emulazione della codifica e le ServiceKey in chiaro. Sono state sviluppate anche trick card capaci di autoaggiornare le chiavi, periodicamente modificate dalle televisioni, o in grado di resistere agli Electronic Counter Measure (ECM), comandi inviati dalle emittenti nel tentativo di mettere fuori uso le trick card, e consistenti in un cambio di chiavi imprevisto o nella cancellazione della EEPROM. ▸ Deactivation Blocker Hack. Il blocker, interposto tra la Smart Card e il CAM, impedisce la corretta gestione (disattivazione, rimappatura,etc.) della Smart Card da parte del Service Provider. In più fornisce informazioni arbitrarie al CAM (impersonando la Smart Card) e filtra i messaggi inviati alla Smart Card. Lo scopo e quello di filtrare tutti i segnali destinati alla disabilitazione dei canali ed impedendo la riprogrammazione della card. 27 ▸ McCormack Hack. Permette la visione dei programmi a più utenti con una sola Smart Card valida. La Smart Card valida fornisce in chiaro le Control Word al CAM; il season intercetta le Control Word, che la Smart Card valida fornisce al CAM, e le invia ai CAM degli altri utenti che, pur non avendo una Smart Card, ottengono le Control Word in chiaro e accedono quindi alla corretta visione dei programmi. 28 ▸ DUAL CARD O BLOCKER. Interfaccia usata tra Smart Card e decoder. E’ costituita da un microchip posto sulla sua superficie che analizza i segnali scambiati tra la CAM e la Smart Card. ▸ TITANIUM CARD. Smart Card in grado di sostituire (correttamente programmata) qualsiasi carta in circolazione ad oggi. ▸ SMART MOUSE. E' il più diffuso programmatore di Smart Card, da collegare ad un computer attraverso cavo seriale. Utilizzando appositi programmi unitamente a file ".BIN" opportuni, consente di “resuscitare” card con abbonamenti scaduti e di programmare le Wafer Card. ▸ SEASON. Interfaccia utilizzata per monitorare il dialogo tra il sistema d'accesso condizionato (CAM) e la Smart Card, al fine di individuare: • • ▸ I comandi di abilitazione e disabilitazione; Le chiavi per la programmazione. WAFER CARD. E' un circuito elettronico che deve essere inserito nel decoder. E' costituito da una scheda rigida, da una memoria (EEPROM) dove sono contenute le informazioni per far funzionare il circuito e un microprocessore (PIC) che consente di elaborare le informazioni contenute nella EEPROM per mettere in chiaro il segnale criptato. 29 ▸ http://www.sirse.net/esy/objects/docs/89706/03_le_smart_card_dalle_origini.pdf ▸ http://www.partnerdata.it/sc-info.htm ▸ ftp://ftp.ge.cnr.it/pub/Sicurezza2004-05/smartcard_ferrara2.pdf ▸ http://www.dia.uniroma3.it/~dispense/merola/critto/tesine/smartcard2.pdf ▸ http://it.wikipedia.org/wiki/Smart_card ▸ http://www.sirse.net/esy/objects/docs/90545/05_smart_card_e_aspetti_di_sicurezza.pdf ▸ http://www.dia.unisa.it/~ads/corso-security/www/CORSO-319900/smartcard/_pages/cap3.htm ▸ http://punto-informatico.it/p.aspx?i=245181 ▸ http://www.gsmworld.it/ ▸ http://www.dia.unisa.it/~ads/corso-security/www/CORSO-0304/TV_Satellitare/ ▸ Tesi di Roberto Farabegoli. Impiego della tecnologia Smart Card in applicazioni di commercio elettronico basate sullo scambio di denaro digitale. A.A. 1999-2000 ▸ Tesi di Fabio Panzavolta. Utilizzo di Smart Card nell’ambito di protocolli di comunicazione sicura e di firma digitale. A.A. 1999-2000 ▸ Tesi di Andrea Patrignani. Utilizzo della Smart Card per la protezione del software. A.A. 1999-2000 30