270 likes | 445 Views
Introduzione alle smartcard. @ Webbit 2003 by Alessio Orlandi. Cos’è una smartcard?. Uno strumento elettronico altamente confidenziale Un contenitore di informazioni Una blackbox Un dispositivo soggetto a standard internazionali. Possibili usi. Autenticazione Crittografia Storage
E N D
Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi
Cos’è una smartcard? • Uno strumento elettronico altamente confidenziale • Un contenitore di informazioni • Una blackbox • Un dispositivo soggetto a standard internazionali
Possibili usi • Autenticazione • Crittografia • Storage A seconda dell’uso si utilizzano tipi di smartcard differenti
Premesse all’uso • La smartcard è univoca, inviolabile e associata ad un’entità da rappresentare (“La mia smartcard è il mio passaporto”) • La smartcard può effettuare soltanto le operazioni per cui è stata programmata e tali operazioni vengono svolte solo al suo interno
Utilizzo nel mondo moderno • Carte di credito • Token di autenticazione • Private Key • Tessere di raccolta punti • Accesso alle TV satellitari • Registrazione di accesso fisico Possono sostituire completamente i badge
Tipi principali di smartcard • Intelligenti • Contengono un microprocessore in grado di effettuare operazioni di qualsiasi tipo • Possono contenere addirittura un coprocessore crittografico • Non intelligenti Tutti le smartcard contengono ovviamente delle EEPROM per lo storage dei dati
Interfacciamento • La smartcard necessita di un CAD (Card Acceptance Device) • La smartcard si limita a rispondere alle richieste inviate dal CAD effettuando le necessarie operazioni interne • Nel caso di smartcard non intelligenti il CAD ha completo accesso ai dati contenuti sulla EPROM
Interfacciamento (schema) Richiesta dall’interfaccia Risposta
Passwords vs. Smartcards • Posso rubare una password senza privarne il proprietario • Posso copiare una password cifrata • Posso “crackare” una password (bruteforce) • … Insomma posso impersonare l’utente
Cosa c’è dentro le smartcard? • Informazioni di autenticazione • Informazioni biometriche • Certificati digitali • Semplici password • Informazioni da trasportare • Contatori • Log di utilizzo della smartcard stessa Tali informazioni sono quasi sempre cifrate
Una smartcard è… • Un corpo in plastica • Una serie di componenti elettronici nascosti • Un gruppo di contatti per la comunicazione con il CAD
Particolarità • L’I/O è asincrono e avviene su un solo pin • Il costo deve essere il più contenuto possibile • Il processore deve essere write-only • La EEPROM può essere auto-cifrante • La velocità di comunicazione è solitamente non superiore a 9600bps
Standard • Unico lo standard per l’hardware: ISO7816 • Nessuno standard per la struttura interna della componentistica • Vari invece gli standard software: • GSM • ETSI • …
Comunicazione low level (1) • Definita dallo standard ISO7816-4 • La APDU contiene • CLA: Classe dell’istruzione • INS: Istruzione • P1: Parametro 1 • P2: Parametro 2 • LEN: Lunghezza dei dati seguenti
Comunicazione low level (2) • Due byte di ritorno: SW1, SW2 • Possono indicare l’inesistenza dell’istruzione richiesta • Possono indicare la lunghezza di una eventuale successiva trasmissione dei dati di ritorno
Esempio INS: 01 (PIN WRITE) P1: NULL, P2: NULL, LEN: 4 [pin] SW1: 00 (OK)/01 (KO) SW2: NULL INS: 02 (PIN CHANGE) P1: NULL, P2: xor(newpin), LEN: 9 [oldpin, newpin] SW1: 00 (OK), 01 (KO) SW2: XOR(newpin)
Pro e contro • Univocità del token di autenticazione • Alta standardizzazione • Facile gestione • Costo intrinseco proporzionale al numero di utenze • Necessità di hardware dedicato • Mi sono perso la smartcard…
Java Cards • Sono un tipo di smartcard molto comuni • Sono microprogrammate e in grado di interpretare bytecode Java • Hanno controlli runtime aggiuntivi • Il framework è estremamente portabili • E’ disponibile una buona documentazione anche per i principianti
Smartcard FileSystem (1) • E’ largamente utilizzato per organizzare i dati all’interno della smartcard • Prevede fino a 256 files organizzati in vari livelli • L’accesso ad alcuni file può determinare operazioni interne trasparenti all’utente stesso • Detto anche EID (Electronic ID) profile
Smartcard FileSystem (2) • Prevede un sistema di mandatory ACL che associa utenti e permessi (validi sul FS in toto) • Utenti disponibili: • 2 livelli CHV (CardHolder Verification): PIN • 4 livelli AUT (Management): 56bit DES key • Permessi: Read, Write, Execute, Invalidate, Rehabilitate
PKCS #15 • Definito dagli RSA Labs • E’ costruito sullo Smartcard Filesystem • Definisce 2 operazioni: autorizzazione/cifratura e non ripudiabilità • Per ogni operazione un PIN sblocca una RSA private key presente sulla carta convalidata a sua volta da un certificato X509
Ma c’è da fidarsi ? • Smartcard non duplicabile • Microprocessore non influenzabile • Impossibilità di reverse-engineering del software della smartcard • EEPROM non alterabile o leggibile • Comunicazioni con il CAD affidabile • Smartcard facilmente revocabile
Attacchi più comuni • Trielinaggio o simili per raggiungere la EEPROM e forzarne il dump • Utilizzo di raggi UV • Interfacciamento con logger • Analisi differenziale per il reverse engineering del processore • Eavesdropping dei componenti interni
Principali PoF • Dati contenuti nella EEPROM • Programma del microprocessore • Struttura del microprocessore • Comunicazione con il CAD Il problema più grave è la duplicazione delle smartcard
Quindi… • Smartcard affidabili dal punto di vista fisico • Checksum dei dati sulla EEPROM • Processore write-only • Nessuna esportazione completa dei dati all’esterno della smartcard • Se proprio è necessario usare controllo a campione dei dati contenuti nella EEPROM • Selfchecking del programma
Un esempio pratico • OpenSSH • JavaCard • Applet di OpenSSH per JavaCard • SecTok library Smartcard filesystem con le chiavi necessarie per la comunicazione.
Domande? Si, le slide saranno disponibili a breve su http://nail.itapac.net/ E-mail: alessio.orlandi@lamortenera.it