TITANIUM CARD & AT90SC3232C OVERVIEW - By Duolabs Srl - Italy - Titanium Card - Overview
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Titanium Card - Overview www.duolabs.com – tutti i diritti sono riservati. TITANIUM CARD & AT90SC3232C OVERVIEW By Duolabs Srl - Italy
Titanium Card - Overview www.duolabs.com – tutti i diritti sono riservati. Sommario: 1. Introduzione 2. Cos'è un Secure Microcontroller? ... Famiglia AT90SC 3. Perchè si chiama Titanium Card e come si trasforma una AT90SC3232C vergine in Titanium. (Programmazione del Sistema Operativo). ... Struttura dell'ATR (Answer To Reset) quando la Smartd è vergine. ... Cos'è il Transport Code? ... Come funziona il Bootloader? 4. F.A.Q. ... Quale differenza c’è tra le Titanium Card? Colore etc. ... Come cercare di evitare che una Tianium Card si danneggi. ... Cosa si può fare qualora una Titanium Card sia danneggiata. ... Cosa succede quando la Card si danneggia? 5. Disclaimer.
Titanium Card - Overview www.duolabs.com – tutti i diritti sono riservati. 1.Introduzione Questa breve guida è stata scritta per spiegare il funzionamento tecnico delle Titanium Card e delle Smartcard basate su Atmel AT90SC. Inizieremo una breve descrizione sui Secure Microcontroller e il motivo perché essi esistono, spiegheremo quali sono le caratteristiche tecniche così come enunciate dal produttore, spiegheremo come trasformare una AT90SC3232C vergine in una Titanium (nella teoria). Finiremo inoltre con una piccola appendice inerente alle domande più frequenti relative a questa Smartcard. Teniamo a precisare che tutte le informazioni contenute di questo documento sono proprietà intellettuale dell'autore. Non vengono menzionate alcune informazioni relative ad eventuali NDA. Tutti i marchi riportati in questa documentazione sono di proprietà dei relativi detentori. Si ricorda a tal proposito che il produttore non divulga informazioni specifiche relative ai propri microcontrollori e determinate informazioni possono essere reperite solamente siglando determinati accordi di non divulgazione. 2.Cos'è un Secure Microcontroller? Un Secure Microcontroller è un microcontrollore che rispecchia alcune caratteristiche fondamentali di costituzione interna tali da renderlo particolarmente sicuro dagli attacchi mirati all'estrazione del codice in esso contenuto effettuati in maniera intrusiva o non intrusiva. Molti microncotrollori commerciali per ragioni produttive e tecnologiche, non possono essere classificati “Secure” in quanto non sono provvisti di determinate caratteristiche. Gli attacchi non intrusivi, che normalmente vengono effettuati sui microcontrollori al fine di estrarre il codice sorgente, sono svolti applicando picchi di tensione sull'alimentazione oppure sfasando il clock. In tale maniera si tenta di porre il microcontrollore in una situazione non prevista dal costruttore e renderlo così vulnerabile per poter estrarre il codice sorgente al suo interno. Lavorando fuori specifiche avviene (soprattutto per dei microcontrolleri di vecchia concezione) che essi lascino involontariamente la possibilità di leggere alcune aree di memoria o addirittura tutto il loro contenuto, sia esso relativo alla memoria programma, alla EEprom o ad un'eventuale area OTP. Gli attacchi di tipo intrusivo avvengono direttamente mediante il “de-packaging” del Chip, cercando di comprendere la struttura interna del microcontrollore al fine, una volta trovate le varie aree, di poter agire più liberamente avendo accesso diretto ai bus indirizzi e dati della memoria interna. Così facendo si possono by-passare certe misure di protezione poste dal costruttore ed arrivare all'estrazione del codice sorgente. Questa breve descrizione molto sommaria e spicciola rende noto quanto sia importante proteggere dei dati particolarmente sensibili ed importanti da eventuali intrusioni. Le applicazioni soggette a maggiore rischio in merito, sono proprio le applicazioni sviluppate su Smartcard in quanto i volumi usualmente sviluppati sono molto elevati (basti pensare alle Smartcard GSM, Pay-TV etc.). Quanto più ampio e cospicuo è il numero di Smartcard utilizzate per una applicazione tanto maggiore è lo standard di sicurezza richiesto. A tal proposito alcune aziende tra le quali Atmel, Siemens (Infineon) hanno introdotto nel mercato alcuni prodotti definiti “Secure Microcontroller”. Tale sicurezza è data da alcuni dei seguenti fattori: - Scarsità di informazioni tecniche precise circolanti in merito alla struttura interna del dispositivo. Vedi la mappatura della ROM, CPU, Bus etc. - Sistemi di rilevazione e protezione in caso di Power Glitch o Clock Glitch. Qualora venissero rilevati dei picchi particolarmente sensibili il dispositivo dispone in auto-protezione.
Titanium Card - Overview www.duolabs.com – tutti i diritti sono riservati. - Protezione interna della mera struttura del silicio, tramite layer sovrapposti in maniera da garantire la massima sicurezza in caso di intrusioni dall'esterno. In tale maniera tentando la rimozione dei layer oppure tentando di resettare alcuni bit si compromette definitivamente il funzionamento del dispositivo stesso rendendolo così inservibile. Famiglia AT90SC. Per quanto riguarda la serie AT90SC, classificata come Secure Microcontroller, abbiamo le seguenti versioni come riportate nei datasheet: Dispositivo Program Memory Flash EEProm Ram Processore Crypto Porte I/O AT90SC1616C 16K 16K 1K Yes 2 AT90SC3232 32K 32K 1K5 No 1 AT90SC3232C 32K 32K 1K Yes 1 AT90SC6464C 64K 64K 2K5 Yes 2 Ecco alcune caratteristiche salienti di questa famiglia di microcontrollori: • Low-power 8-bit AVR® Enhanced RISC Architecture. – Set composto da 120 Istruzioni. – Most Single Clock Cycle Execution Commento: Classica struttura AVR per la programmazione compatibile con alcuni compilatori C molto comuni come lo IAR. • Fino a 64K bytes di memoria programma Flash. –- 10,000 clicli di scrittura e cancellazione. Fino a 64K bytes di memoria EEPROM. – 100,000 clicli di scrittura e cancellazione. Commento: La versione AT90SC3232C possiede 32Kbytes di memoria programma e 32Kbyte di Eeprom. • Fino a 2.5K bytes di RAM. • Cryptoprocessor – Co-Processore Cryptocrafico. – Funzioni pre-programmate per la cryptografia e l'autenticazione. Commento: Il processore enunciato come Crypto è tipico di questi dispositivi che, per le loro mansioni più classiche, necessitano di performare un algoritmo. Per non rubare cicli macchina nell'elaborazione dell'algoritmo viene utilizzato un co-processore detto appunto Crypto che si occupa autonomamente di questa funzione e restituisce alla CPU l'elaborato dell'algoritmo. Questa differenza che si tramuta sostanzialmente in maggiore velocità di elaborazione distingue un Secure Microcontroller così ideato e progettata da un semplice microcontrollore adattato ad una Smartcard (vedi PIC16F876, PIC16F85, At90C8515 etc). • Modalità Supervisor. • ISO 7816 I/O Port Commento: Porte dedicate per lo standard ISO 7816-4 • Generatore di numeri casuali. Partendo dal numero di serie del chip vengono generati dei numeri casuali. Questa funzione può a volte risultare molto importante.
Titanium Card - Overview www.duolabs.com – tutti i diritti sono riservati. • Timer a 16-bit. • 2-level, 5-vector Interrupt Controller • Security Features – Power-down Protection – Low-frequency Protection – High-frequency Filter – Logical Scrambling on Program Code Commento: Protezione in caso di aumento o diminuzione dell'alimentazione o della frequenza del Clock. Protezione interna con lo Scrambling attraverso i BUS della memoria programma. • Low-power Idle and Power-down Modes • VCC: 3.0V to 5.0V 3.Perchè si chiama Titanium Card e come si trasforma una AT90SC3232C vergine in Titanium. (Programmazione del Sistema Operativo). Questo nome di fantasia è stato dato inizialmente dalla prima azienda che ha iniziato a commercializzare di questo dispositivo. Il microcontrollore contenuto in questa Smartcard è di tipo AT90SC3232C. In realtà ciò che distingue una AT90SC3232C da una Titanium Card è solamente il Sistema Operativo che viene caricato all'interno della Smartcard stessa. Inizialmente la Smartcard viene fornita blank, per procedere alla programmazione si necessita di un programmatore di Smartcard. Essendo questa Smartcard particolamente sensibile, per i motivi sopra spiegati, agli sbalzi di tensione nonché alle imprecisioni del Clock etc. si consiglia l'utilizzo di un programmatore che riesca a controllare il livello dei segnali di Reset, VCC, Clock e DATA IN e DATA OUT. Normalmente gli sviluppatori utilizzano e suggeriscono un programmatore PC/SC compatibile. In alternativa si può utilizzare un programmatore dei più classici quale lo SmartMouse/Phoenix però è altamente sconsigliato questo genere di prodotto perché di natura prettamente artigianale e non professionale. Potrebbe accadere infatti, a seconda del programmatore che si utilizza, che nell'inserimento della Smartcard (non essendo l'alimentazione VCC controllata da un microprocessore) che si verifichino dei picchi di qualche natura anche solo per qualche nanosecondo in grado di danneggiare permanentemente la Smartcard senza dare più la possibilità di ripristinarla. Stiamo lavorando per la realizzazione di un dispositivo microcontrollato che riesca a fornire una maggiore affidabilità durante la programmazione e contemporaneamente che mantenga la compatibilità con tutti i software attualmente esistenti. Inoltre un problema che abbiamo riscontrato nella maggior parte dei casi è relativo alla fase di “ Erase” della Smartcard. Una volta programmato il Sistema Operativo utilizzando il software dedicato per le Titanium viene effettuato il Reset molte volte al fine ottenere il “Bootstrap” detto anche “Trapcode”. Effettuando l’ATR molte volte è probabile che la carta si possa danneggiare irreparabilmente. A tal fine, dopo alcune prove fatte con il nuovo adattatore per il Cas Interface 2 il cui schema è pubblico ( http://www.cellularcenter.it/duolabs/cas2phoenix.zip), siamo riusciti a cancellare la scheda facendo un solo ATR conseguentemente a diminuire sensibilmente il numero di cicli necessari per la cancellazione del contenuto della Smartcard. Una volta individuato il programmatore di Smartcard più idoneo la procedura necessaria per programmare il Sistema Operativo è anzitutto performare il reset.
Titanium Card - Overview www.duolabs.com – tutti i diritti sono riservati. Struttura dell'ATR (Answer To Reset) quando la Smartcard è vergine. Performando l'ATR della scheda vengono rivelati altri dati molto importanti relativi allo stato della scheda. Tali dati racchiudono il numero di serie che identifica il tipo di microcontrollore (AT90SC3232C/CS, AT90SC6464C), l'anno di costruzione, un riferimento relativo al costruttore (assemblatore), il numero del lotto, il numero del Wafer ed un numero univoco del chip stesso. Inoltre è possibile sempre mediate la decifrazione dell'ATR capire se le tre aree della Smartcard : Flash, EEPROM e OTP sono vergini oppure no. Inoltre è possibile capire se il tipo di Reset della scheda è di tipo diretto o invertito e la velocità massima della Smartcard. A questo punto lo sviluppatore deve presentare il Transport Code. Cos'è il Transport Code? Il Transport Code è un codice univoco di 8 Byte che viene consegnato dal produttore al cliente per permettergli di programmare la prima applicazione a bordo meglio nota come Sistema Operativo. Mediante una sequenza di comandi verrà “presentato” il Transport Code alla Smartcard la quale, verificatane la correttezza, permetterà di poter installare il Sistema Operativo mediante l'utilizzo di un Bootloader. Attenzione il Transport Code funziona come il PIN di una Smartcard GSM. Qualora venisse introdotto erroneamente per 3 volte la Smartcard stessa andrebbe in autoprotezione non lasciando successivamente programmare più nulla al suo interno. A quel punto risulta praticamente inservibile. Qualora voleste cimentarvi in questa procedura assicuratevi di possedere il Transport Code corretto. Come funziona il Bootloader? La AT90SC3232C viene consegnata dal produttore con un Bootloader residente in grado di scaricare e programmare una applicazione in una memoria non-volatile. Nel corso dello sviluppo di questo dispositivo, Atmel, ha rilasciato diverse versioni di Bootloader pre-programmati. Dalla struttura iniziale dell'ATR (Answer To Reset) quando la carta risulta ancora vergine si può ricavare la versione del Bootloader. A questo punto attraverso alcuni comandi sarà possibile caricare il Sistema Operativo all'interno della Smartcard stessa. Questa procedura potrebbe richiedere qualche minuto a seconda di quanto lungo è il Sistema Operativo e della velocità di trasmissione da Computer e Smartcard. Al temine di questa operazione facendo nuovamente il Reset della Smartcard essa ritornerà l'ATR vero e proprio del Sistema Operativo così sviluppato. A questo punto se tutta la procedura và a buon fine potrete avere una vera e propria Titanium. Non chiedeteci quali sono i comandi o di spiegare più accuratamente delle procedure per svolgere quanto sopra. Questo documento è solo a scopo educativo per poter dare un'infarinatura a chi non sapesse quali potessero essere le caratteristiche di questo dispositivo. 4. F.A.Q Quale differenza c’è tra le Titanium Card? Colore etc. Se avete letto attentamente quanto sopra capirete che potenzialmente ogni Smartcard AT90SC3232C può essere trasformata in una Titanium Card, di conseguenza non esiste alcuna differenza visiva quale colore della Smartcard, serigrafia, ologrammi o altro. Il vero segreto è il Sistema Operativo. Da considerarsi che vista la non facile reperibilità di questo materiale alcuni rivenditori hanno provveduto a utilizzare altri supporti quali AT90SC3232CS oppure AT90SC6464C nonché a
Titanium Card - Overview www.duolabs.com – tutti i diritti sono riservati. riscrivere il Sistema Operativo in maniera da renderlo compatibile con quello della Titanium. La non piena compatibilità potrebbe generare talvolta dei problemi con i firmware caricati all'interno della Smartcard. Qualora il firmware non sia corretto per il tipo di Smartcard che si sta utilizzando si può incorrere nel rischio di danneggiare permanentemente la Smartcard. Certi registri interni della CPU variano da chip a chip anche tra le versioni AT90SC3232C e AT90SC3232CS pur avendo caratteristiche simili non sono assolutamente compatibili tra loro. Un'erronea programmazione potrebbe realmente creare danni irreversibili. Come cercare di evitare che una Tianium Card sia danneggiata. Anzitutto controllare che il venditore che vi fornisce la Smartcard sia a conoscenza precisamente di che Sistema Operativo c’è a bordo delle scheda prima di venderla. Come detto sopra una errata programmazione potrebbe causare l’impossibilità permanente di utilizzare la Smartcard. Fondamentale in ogni caso per non creare successivamente problemi alla Smartcard in fase di programmazione del Sistema Operativo è prestare estrema attenzione al tipo di programmatore che si utilizza. Un programmatore artigianale o di basso costo potrebbe danneggiare la Smartcard in maniera irreversibile. Questo genere di Smartcard non è adatta agli hobbisti in quanto risulta essere molto delicata e la programmazione della stessa dovrebbe avvenire con sistemi testati e controllati. A differenza della Smartcard per hobbisti con microprocessori riprogrammabili (vedi PIC) la famiglia AT90SC ed Infineon sono dedicate quasi esclusivamente a produzioni di massa di sistemi richiedenti un elevato grado di sicurezza. Cosa succede quando la Card si danneggia? Quando la Smartcard si danneggia normalmente perde l’ATR. Quando si effettua il Reset la Smartcard non risponde più con l’ATR del Sistema Operativo. Attualmente stiamo lavorando ad un software per tentare di recuperare l’ATR. Purtroppo è molto difficile operare quando non si ha il pieno controllo del Sistema Operativo. Cosa si può fare qualora una Titanium Card si danneggi. Teoricamente conoscendo la procedura corretta si può ripristinare il Bootloader rimettendo quello originale. Conoscendo il Transport Code si potrebbe ripristinare il Sistema Operativo originale qualora si possegga. Ricordiamo comunque che tutte queste operazioni richiedono la massima cautela nell'esecuzione in quanto questo genere di Smartcard è un dispositivo molto sensibile e complesso. Ad oggi stiamo tentando di capire quali possano essere i fattori scatenanti la rottura nonché tentare di ripristinare la Smartcard e il relativo Sistema Operativo.
Titanium Card - Overview www.duolabs.com – tutti i diritti sono riservati. 5. Disclaimer Sperando di aver allietato la vostra lettura vi raccomandiamo di visitare il nostro sito Web www.duolabs.com Alcune release software verranno rilasciate per programmare la Titanium Card con la nostra Cas Interface 2. Inoltre potrete sottoscrivere il nostro forum e ricevere notizie ed aggiornamenti in merito. Tutte le informazioni contenute in questo documento sono opera esclusiva dell’autore e sono a puro carattere educativo e non verranno date spiegazioni o delucidazioni dettagliate in merito alla programmazione vera e propria della Titanium Card. Ogni riproduzione anche parziale in qualsiasi forma di questo documento è espressamente vietata. Duolabs Srl Riccardo Alessi Duolabs Srl Via Molini 39 36055 Nove (Vicenza) Italy Tel. +39-0424-828355 Fax. +39-0424-598665 Web: www.duolabs.com www.cellularcenter.it Email: info@duolabs.com
Puoi anche leggere