MINISTERO DELLO SVILUPPO ECONOMICO DIPARTIMENTO PER LE COMUNICAZIONI Istituto Superiore FORUM PA 2011 delle Comunicazioni e Tecnologie dell’Informazione OFFICINA – Il progetto SESAMO (Sistemi di Fondazione Bordoni pagamento mobili eUgo smart card: aspetti di sicurezza) Ing. Tiziano Inzerilli Istituto Superiore delle Comunicazioni Progetto e delle Tecnologie dell’Informazione Ing. Franco Guida Fondazione Ugo Bordoni XXXXXX Progetto SESAMO Le smart-card: generalità Settori di utilizzo Telefonia mobile: SIM/USIM Settore bancario: carte di credito Trasporti: tessere abbonamento mensile E-government: passaporti, CIE ….. Interfaccia Carte a Contatto: sono carte caratterizzate da una interfaccia che supporta solo il contatto fisico con il terminale (std ISO 7816). Carte Contactless: sono carte caratterizzate da una interfaccia dotata di ricetrasmettitore che supporta solo la trasmissione RF (std ISO 14443). Tecnologie Carte a memoria (Memory Card): semplice memoria permanente per immagazzinare dati. Carte a microprocessore integrato: con sistema operativo e maggiori potenzialità. Progetto SESAMO Le smart-card: memory card Tipologie si smart-card Carte a memoria (Memory Card): • contiene una memoria permanente (generalmente EEPROM), che permette alla carta di mantenere i dati anche dopo che la fonte di alimentazione viene rimossa. • Non ha capacità d'elaborazione ma contengono solo circuiti elettronici per memorizzare dati e per comunicare con il dispositivo di lettura. • meccanismi di sicurezza con funzioni crittografiche molto semplici basati su un codice PIN per proteggere i dati in lettura o scrittura. • Sono utilizzate semplicemente per contenere credito telefonico, biglietti per il trasporto pubblico o denaro elettronico. Memory card “Secure”: Logica statica per impedire cancellazione o scrittura dati Progetto SESAMO Le smart-card: card con microprocessore Carte a microprocessore integrato. • 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 • idonee ad elaborare informazioni in maniera indipendente. • gestione efficiente e sicura dei dati, strutturati in file e directory; • utilizzano dei PIN per l'accesso alle informazioni, con funzionalità di sicurezza più evolute. Progetto SESAMO Le smart-card: architettura a livelli Livello hardware: tipicamente può contenere un sistema di elaborazione digitale dei dati costituito da un microcontrollore, una RAM (memoria ad accesso casuale), una ROM (memoria di sola lettura) e una EEPROM (una ROM riscrivibile elettricamente), un coprocessore e un’interfaccia di input/output. Questo livello è totalmente trasparente all’utente e quindi inaccessibile. Livello del sistema operativo: qui risiede il sistema operativo che ha lo scopo di gestire in maniera efficiente le risorse della smart card, disponibili al livello hardware, implementando anche un file system. Esso viene cablato in una memoria ROM presente nel livello stesso. Livello applicativo: in esso vi sono memorizzate, in una memoria EEPROM, le applicazioni principali della smart card, direttamente accessibili all’utente. Progetto SESAMO Le smart-card: generalità sulla sicurezza Con riferimento all’architettura a livelli delle smart-card, tra le componenti necessarie per la sicurezza fisica e logica di una smart-card vi sono la sicurezza hardware, la sicurezza del sistema operativo, e la sicurezza delle applicazioni. Esse cooperano allo scopo di proteggere dati e programmi presenti nel microcontrollore. A queste si aggiunge, la sicurezza del supporto della smart card, nel quale è integrato il microcontrollore. Il modo più completo per rendere sicuro l’IC di una smart card è fornire una modalità di protezione multidimensionale unendo contromisure di tipo hardware e software supervisionate dal controllo del sistema operativo Esistono in commercio microcontrollori per smart card progettati per funzionare in ambienti cosiddetti “ostili”, rafforzati con meccanismi realizzati opportunamente per resistere a tentativi di estrazione di dati confidenziali che l'IC tenta di proteggere. Nelle fasi di progetto e di sviluppo di un sistema che fa uso di smart card devono essere adottate ulteriori misure di sicurezza “pratiche”. Progetto SESAMO Le smart-card: gli attaccanti Un sistema che fa uso di smart card può essere attaccato principalmente per avidità economica, come avviene da parte di operatori concorrenti, dipendenti infedeli (insider) o veri e propri criminali, o per il desiderio di prestigio in un ambito specifico, come avviene da parte di pirati informatici (hacker) o istituzioni accademiche. In particolare, esistono tre principali categorie di attaccanti: Amatori: gli amatori sono semplicemente delle persone curiose che si occupano di progettare attacchi solo per verificare se si riesce a violare un sistema. Esperti: in genere i loro attacchi vengono realizzati a vantaggio di istituti scientifici o università che studiano le tecnologie integrate. Professionisti: i loro attacchi sono finalizzati per eseguire frodi finanziarie o per ottenere dati sensibili compromettendo così il sistema. Progetto SESAMO Le smart-card: gli attacchi (1/2) Gli attacchi al livello sociale sono rivolti alle persone che interagiscono con le smart card (per esempio progettisti o, in una fase successiva, utenti) e sono in genere contrastati da misure organizzative più che da tecnologia ICT. Gli attacchi al livello fisico sono quelli la cui esecuzione comprende una qualche forma di accesso al microcontrollore. L’attaccante deve quindi disporre di strumentazione adeguata per la rilevazione di grandezze fisiche. Gli attacchi al livello fisico si dividono ulteriormente in dinamici e statici a seconda che, il microcontrollore sia in funzione o meno durante l’attacco. Gli attacchi al livello logico sono quelli che possono essere eseguiti senza dover accedere al microcontrollore, anche se possono fare uso di risultati ottenuti da precedenti attacchi al livello fisico. Esempi di attacchi al livello logico sono la crittanalisi classica, lo sfruttamento di difetti noti del sistema operativo, l’inserimento di cavalli di Troia nel codice eseguibile delle applicazioni. Progetto SESAMO Le smart-card: gli attacchi (2/2) Invasivi (o attivi): attacco fisico in cui l’attaccante fa uso di tutta una serie di metodologie intrusive, per accedere alle informazioni dell’IC, che comportano la distruzione totale o parziale dell’hardware • Il microprobing manuale. • L’uso di un fascio di ioni concentrati (focused ion beam, FIB): • La reingegnerizzazione (reverse engineering): Non invasivi (o passivi): non comportano in generale la distruzione della carta e, in alcuni casi, non è neppure necessaria la sottrazione di essa al proprietario • analisi elettrica del circuito • attacchi via software Semi-invasivi: operano andando a leggere i segnali analogici prodotti dal chip, senza però compromettere fisicamente il chip. • fault attack (induzione di un errore) • side-channel attack Progetto SESAMO Le smart-card: esempio di attacco fisico 1. ESTRAZIONE: riscaldare la carta finché non diventa morbida e flessibile per ammorbidire la colla che unisce il chip all’involucro e, quindi, esso può poi essere facilmente rimosso piegando la carta ed estraendolo dalla plastica. 2. BAGNO di acido nitrico: una volta portato fuori dal package di plastica, il modulo del chip viene coperto con 20 – 50 ml di acido nitrico riscaldato a circa 60°°C e si attende che la resina epossidica di color nero che incapsula il dado di silicio si sciolga completamente. 3. LAVAGGIO: Il chip viene quindi lavato con dell’acetone in un bagno ad ultrasuoni, seguito in maniera opzionale da un breve bagno in acqua deionizzata e alcol isopropilico. Quindi si rimuovono i rimanenti fili di incollaggio con una pinzetta 4. MONTAGGIO su nuovo supporto: si incolla il chip in un package di prova e si collegano i suoi pad manualmente sui pin del package. l’ATTACCO dovrà superare misure di protezione passive (es. tecniche di fabbricazione) ed attive (sensori) Progetto SESAMO Le smart-card: misure di protezione in fase di produzione PROTEZIONI ATTIVE: realizzate inserendo nel semiconduttore ulteriori circuiti appositi quali sensori di diversa natura, che sono controllati dal software della smart card • Controllo dello strato di passivazione • Controllo della tensione • Controllo della frequenza •… PROTEZIONI PASSIVE: tutte le opzioni che le tecniche di fabbricazione dei semiconduttori offrono per proteggere le memorie e le altre componenti funzionali del chip da vari tipi di analisi • miniaturizzazione dell’IC • strutture fittizie (dummy structures) • protezione dei bus • ion-implanted ROM (non leggibile con microscopio ottico) • strati protettivi (schermature) • cifratura della memoria … Progetto SESAMO Le smart-card: microcontrollore “Secure” Progetto SESAMO GRAZIE per l’attenzione Tiziano Inzerilli: Franco Guida: [email protected] [email protected]