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:
[email protected]
Scarica

slides - Itapac.net