TITANIUM CARD & AT90SC3232C OVERVIEW - By Duolabs Srl - Italy - Titanium Card - Overview

Pagina creata da Sabrina Maggi
 
CONTINUA A LEGGERE
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