***~~TUTTOSAT~~*** Tutto quello che volete sapere o dire...

Titanium Doc

  • Posts
  • Doromi
    00 9/29/2004 5:09 PM
    Cominciamo a popolare la sezione con documenti utili per gli utenti che non sanno molte cose su codesta card.

    • Introduzione

    Questo documento è uno scritto per spiegare il funzionamento tecnico della SmartCard basata su microprocessore Atmel serie AT90SC3232 dette poi Titanium Card.

    Partiremo con una breve descrizione sui Secure Microcontroller e il motivo per cui esistono, spiegheremo come trasformare un microcontrollore AT90SC3232 vergine in una Titanium (nella teoria), spiegheremo quali sono le caratteristiche tecniche che il produttore fornisce tramite i datasheet, termineremo con un’appendice inerente alle domande più frequenti relative a questa SmartCard.

    I marchi riportati in questo documento sono di proprietà dei relativi detentori.
    Non sarà riportata nessuna informazione relativa ad eventuali NDA. Ricordiamo che il produttore fornisce le specifiche tecniche dei propri microcontrollori solo ad aziende specializzate le quali firmano contratti di non divulgazione.
    Precisiamo che le informazioni contenute in questo documento sono Proprietà Intellettuale dell’Autore.


    • Cos’è un Secure Microcontroller

    Un Secure Microcontroller è un microcontrollore che rispetta caratteristiche particolari di “maschera” interna tali da renderlo sicuro dai tentativi mirati alla lettura del codice in esso contenuto effettuati in modo intrusivo o non intrusivo.

    Diverse famiglie di microcontrollori commerciali non sono classificabili “secure” in quanto sprovvisti di Bit di Sicurezza.

    I tentativi di lettura del codice sorgente realizzati in maniera non intrusiva sono svolti applicando picchi di tensione su alcuni pin del microcontrollore oppure sfasando il clock di sistema. In tale maniera si tenta di far lavorare il microcontrollore in una condizione non prevista dal costruttore e renderlo vulnerabile così nella estrazione del codice sorgente che sta al suo interno.
    Lavorando fuori caratteristiche può essere che alcuni microcontrollori, soprattutto le vecchie generazioni, facciano leggere alcune aree di memoria: EEprom, ROM o accedere ad un’eventuale area OTP.

    I tentativi di lettura di tipo intrusivo avvengono direttamente mediate il de-packaging del chip. Conoscendo la maschera che ha permesso la realizzazione del silicio (il circuito interno al microcontrollore), tramite un Been Scanner, è possibile intervenire sul bus dati e indirizzi della memoria interna, bypassando così le misure di protezione poste dal costruttore e arrivare all’estrazione del codice sorgente.
    La descrizione breve e sommaria riportata sopra rende l’idea di quanto sia importante avere dispositivi sicuri quando si devono proteggere codici, tabelle o dati importanti e sensibili.

    Con l’avvento dei microcontrollori in formato Die (quelli montati su SmartCard) è esploso il mercato delle pay-tv, GSM ecc., pertanto è pacifico pensare che gli operatori pretendano dai costruttori di silicio microcontrollori con un elevato standard di sicurezza.
    A questo proposito molte aziende tra le quali Atmel, Infineon, Motorola, Siemens, ecc. hanno introdotto sul mercato prodotti definiti “Secure Microcontroller”.

    La sicurezza è data dai seguenti fattori:
    - sistema di protezione e rivelazione in caso di PowerGlitch o ClockGlitch: il dispositivo in presenza di extratensione all’esterno o picchi strani si dispone in stato di protezione;
    - doppio bit di sicurezza corrisponde a doppia protezione: può essere software+hardware o hardware+hardware in modo da rendere poco efficaci tentativi di lettura intrusiva o non intrusiva;
    - tabella di codifica del codice sorgente. Il codice interno viene criptato con una tabella di lunghezza variabile non accessibile dall’esterno;
    - scarsità di informazioni tecniche precise sulla struttura interna del silicio, sulla maschera e sulla mappatura della ROM, CPU, bus e ecc.;
    - struttura interna a layer sovrapposti in maniera da garantire la massima sicurezza in caso di intrusioni dall’esterno. Questo meccanismo fa si che rimuovendo alcuno layer (strati di silicio) o aree di sicurezza si comprometta il dispositivo rendendolo inservibile.


    Riportiamo di seguito alcune caratteristiche salienti del microcontrollore Atmel classificati Secure Microcontroller famiglia AT90SC.

    Componente---Program Memory Flash--EEprom----RAM------Process Crypto---I/O port
    AT90SC161C-----------16K-----------------16K---------1K--------------YES-------------2
    AT90SC3232-----------32K-----------------32K---------1K5--------------NO-------------1
    AT90SC3232C----------32K-----------------32K---------1K--------------YES-------------1
    AT90SC6464-----------64K-----------------64K---------2K5-------------YES-------------2

    - low power 8-bit AVR Enhanced RISC Architecture;
    - set composto da 120 istruzioni;
    - Most Single Clock Cycle Execution;
    - Classica struttura AVR per la programmazione compatibile con alcuni compilatori C
    - Fino a 64k bytes di memoria Programma di tipo Flash (rirpogrammabile): 10.000 cicli di scrittura e cancellazione;
    - fino a 64k bytes di memoria Dati EEprom: 100.000 cicli di scrittura e cancellazione;
    (nota: la versione AT90SC3232C possiede 32K bytes di memoria programma e 32K bytes di EEprom dati);
    - fino a 2,5 K bytes di RAM;
    - Criptoprocessor – Coprocessore Crittografico;
    - Funzioni preprogrammate per la crittografia e l’autenticazione. Il processore denominato Crypto è un tipico in questo dispositivo 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 si tramuta sostanzialmente in maggiore velocità di elaborazione e distingue un Secure Microcontroller da un semplice microcontrollore adattato ad una SmartCard, come i Pic16F876, 16F84, AT90S8515,…
    - modalità Supervisor;
    - ISO 7816 I/O port;
    - Generatore Random di numeri casuali: partendo dal numero di serie dl chip vengono generati dei numeri casuali: questa funzione può a volte risultare molto importante.


    • Come si trasforma un Atmel AT90SC3232C vergine in una SmartCard detta “Titanium”

    Il nome Titanium Card è di fantasia inventato dall’azienda che per prima ha iniziato a commercializzare il prodotto.

    Il microcontrollore posto nella Titanium Card è di tipo AT90SC3232C.
    La differenza che sta tra un AT90SC3232C da una Titanium Card è solamente il sistema operativo che viene caricato all’interno della SmartCard stessa prima di essere venduta.

    La SmartCard viene fornita blank e per procedere alla programmazione è necessario un programmatore di SmartCard, però essendo questo microprocessore particolarmente sensibile per i motivi sopra elencati, agli sbalzi di tensione e alle imprecisioni del clock, si consiglia l’utilizzo di un programmatore che riesca a controllare il livello dei segnali di Reset, Vcc, Clock, DataIN, DataOUT. Il produttore suggerisce un programmatore PC/SC compatibile: è utilizzabile anche uno Smartmouse/Phoenix di qualità.

    Comunque, rimane sempre il rischio di rottura della SmartCard al momento dell’inserimento all’interno del programmatore, dovuto a picchi di tensione che passano dall’alimentatore, che provengono dal PC, magari solo per qualche nano secondo (un miliardesimo di secondo).Questi inconvenienti quando si presentano danneggiano irrimediabilmente la SmartCard senza più dare la possibilità di ripristinarla.

    Il problema più comune che è stato 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 Card viene effettuato il Reset molte volte per ottenere il “BootStrap” detto anche “Trapcode”. Effettuando il Reset ATR più volte è probabile che la SmartCard si possa danneggiare irreparabilmente.

    Una volta attrezzata correttamente la postazione: PC, Programmatore, Cavi, eventuale messa a terra per garantire l’assenza di cariche elettrostatiche ecc., la procedura necessaria per programmare il sistema operativo è anzitutto performare il Reset.


    • Struttura dell'ATR (Answer To Reset) quando la Smartcard è vergine.

    Performando l'ATR (Answer To Reset) della scheda vengono rivelati altri dati molto importanti relativi allo stato della scheda. Tali dati racchiudono le seguenti informazioni: 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 di memoria della Smartcard (Flash, Eeprom e OTP) sono vergini oppure no; capire se il tipo di Reset della scheda è di tipo positivo (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 (OS). 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 codice PIN di una Smartcard GSM. Qualora sia introdotto un codice non corretto per tre volte, la Smartcard va in autoprotezione e non lascia successivamente programmare più nulla al suo interno. A quel punto la Smartcard risulta praticamente inservibile.
    Qualora voleste cimentarvi in questa procedura assicuratevi di possedere il Transport Code corretto.


    • Come funziona il Bootloader?

    Il microcontrollore AT90SC3232C viene consegnato dal produttore con un Bootloader (programma che si avvia automaticamente all’accensione) 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) di una carta ancora vergine si può ricavare la versione del Bootloader.
    A questo punto attraverso alcuni comandi, è possibile caricare il Sistema Operativo all'interno della Smartcard. Questa procedura potrebbe richiedere qualche minuto: il tempo di progrmmazione dipende da quanto lungo è il Sistema Operativo, dal programmatore usato e dalla velocità di trasmissione da Computer e Programmatore.

    Al temine di quest’operazione, dopo un nuovo impulso di Reset, la Smartcard ritornerà l'ATR vero e proprio del Sistema Operativo così sviluppato e caricato.
    A questo punto se tutta la procedura è andata a buon fine potrete avere una vera e propria Titanium Card.



    F.A.Q – Domande più Frequenti

    D - Quale differenza c’è tra le Titanium Card? Colore etc.
    R - Se avete letto attentamente quanto sopra, capirete che potenzialmente ogni Smartcard con a bordo un microprocessore AT90SC3232C può essere trasformata in una Titanium Card: di conseguenza non esiste alcuna
    differenza visiva e non conta il colore della Smartcard, la serigrafia, gli ologrammi o altro.

    D - Il vero segreto è il Sistema Operativo (OS Version).
    R - Da considerarsi che vista la non facile reperibilità di questo materiale alcuni rivenditori hanno provveduto a utilizzare altri supporti quali AT90SC3232CS o AT90SC6464C, e ad adattare, riscrivendolo, il Sistema Operativo in maniera da renderlo compatibile con quello della Titanium originale.
    La non piena o perfetta compatibilità potrebbe generare talvolta dei problemi con i firmware caricati all'interno della Smartcard. Qualora il firmware non sia corretto e adatto 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: per esempio le versioni AT90SC3232C e AT90SC3232CS, pur avendo caratteristiche simili, non sono assolutamente compatibili tra loro.
    Un'erronea programmazione potrebbe realmente creare danni irreversibili.


    D - Come cercare di evitare che una Titanium Card sia danneggiata.
    R - Anzitutto controllare che il venditore che vi fornisce la Smartcard sia a conoscenza precisamente della versione di Sistema Operativo a bordo della scheda prima di venderla. Come detto sopra una errata programmazione potrebbe causare l’impossibilità permanente di utilizzare la Smartcard.
    In ogni caso, per non creare successivamente problemi alla Smartcard in fase di programmazione del Sistema Operativo, bisogna 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 di qualità, testati e controllati. A differenza della Smartcard per hobbisti con microprocessori riprogrammabili (vedi PIC facilmente programmabili con dispositivi faidate), la famiglia AT90SC ed Infineon sono dedicate quasi esclusivamente a produzioni di massa di sistemi richiedenti un elevato grado di sicurezza.

    D - Cosa succede quando la Card si danneggia?
    R - 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.

    D - Cosa si può fare qualora una Titanium Card si danneggi.
    R - 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.


    Se i moderatori ritengono questo documento non idoneo alla politica del forum lo possono cancellare in qualsiasi momento[SM=g27811]

    [Modificato da Doromi 29/09/2004 17.13]

  • OFFLINE
    Krys Rochefort
    Post: 806
    Registered in: 9/18/2004
    Senior User
    00 10/1/2004 4:13 AM
    Complimenti.
    Un DOC scritto da una persona che studia quello che la rete rende disponibile.
    Proviene sicuramente dall'attenta analisi delle recensioni
    effettuate e diffuse da
    Guyle-Studio
    Duo-Labs
    ...e riconosco anche qualche conclusione simile alle mie,a quelle che ho più volte condiviso.
    Devo dire però che, approfondendo la questione ho riscontrato
    alcune inprecisioni, soprattutto nel documento diffuso da Duo-Labs, imprecisioni che, ovviamente, si sono riversate in questo.
    Senza approfondire troppo, puntualizzo la questione più importante:

    tutto ciò che è importante che sappiate è che alcune delle
    caratteristiche indicate nel doc
    NON SONO COMUNI
    a tutti i processori elencati.

    Ecco la parte del doc che contiene le imprecisioni più rilevanti:

    - low power 8-bit AVR Enhanced RISC Architecture;
    - set composto da 120 istruzioni;
    - Most Single Clock Cycle Execution;
    - Classica struttura AVR per la programmazione compatibile con alcuni compilatori C
    - Fino a 64k bytes di memoria Programma di tipo Flash (rirpogrammabile): 10.000 cicli di scrittura e cancellazione;
    - fino a 64k bytes di memoria Dati EEprom: 100.000 cicli di scrittura e cancellazione;
    (nota: la versione AT90SC3232C possiede 32K bytes di memoria programma e 32K bytes di EEprom dati);
    - fino a 2,5 K bytes di RAM;
    - Criptoprocessor – Coprocessore Crittografico;
    - Funzioni preprogrammate per la crittografia e l’autenticazione. Il processore denominato Crypto è un tipico in questo dispositivo 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 si tramuta sostanzialmente in maggiore velocità di elaborazione e distingue un Secure Microcontroller da un semplice microcontrollore adattato ad una SmartCard, come i Pic16F876, 16F84, AT90S8515,…
    - modalità Supervisor;
    - ISO 7816 I/O port;
    - Generatore Random di numeri casuali: partendo dal numero di serie dl chip vengono generati dei numeri casuali: questa funzione può a volte risultare molto importante.



    Magic Mushrooms & Love
  • OFFLINE
    TEOKR
    Post: 4,421
    Registered in: 10/6/2003
    Master User
    00 10/5/2004 5:27 PM
    il documento e' valido ma ricordo di averlo scaricato quasi 1 anno fa.
  • OFFLINE
    studia
    Post: 5,807
    Registered in: 7/2/2004
    Master User
    00 12/3/2004 11:05 PM
    [SM=g27811]
    http://img1.freeforumzone.it/upload1/440761_catav.jpg