Upload
giuliana-caruso
View
218
Download
1
Embed Size (px)
Citation preview
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 autenticazioneAlta standardizzazioneFacile gestioneCosto intrinseco proporzionale al numero di
utenzeNecessità di hardware dedicatoMi 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: [email protected]