Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

27
Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi

Transcript of Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

Page 1: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

Introduzione alle smartcard

@ Webbit 2003

by

Alessio Orlandi

Page 2: 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

Page 3: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

Possibili usi

Autenticazione Crittografia Storage

A seconda dell’uso si utilizzano tipi di

smartcard differenti

Page 4: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

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

Page 5: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

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

Page 6: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

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

Page 7: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

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

Page 8: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

Interfacciamento (schema)

Richiesta dall’interfaccia

Risposta

Page 9: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

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

Page 10: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

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

Page 11: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

Una smartcard è…

Un corpo in plastica Una serie di componenti elettronici nascosti Un gruppo di contatti per la comunicazione

con il CAD

Page 12: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

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

Page 13: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

Standard

Unico lo standard per l’hardware: ISO7816 Nessuno standard per la struttura interna

della componentistica Vari invece gli standard software:

– GSM– ETSI– …

Page 14: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

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

Page 15: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

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

Page 16: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

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)

Page 17: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

Pro e contro

Univocità del token di autenticazioneAlta standardizzazioneFacile gestioneCosto intrinseco proporzionale al numero di

utenzeNecessità di hardware dedicatoMi sono perso la smartcard…

Page 18: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

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

Page 19: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

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

Page 20: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

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

Page 21: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

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

Page 22: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

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

Page 23: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

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

Page 24: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

Principali PoF

Dati contenuti nella EEPROM Programma del microprocessore Struttura del microprocessore Comunicazione con il CAD

Il problema più grave è la duplicazione

delle smartcard

Page 25: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

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

Page 26: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

Un esempio pratico

OpenSSH JavaCard Applet di OpenSSH per JavaCard SecTok library

Smartcard filesystem con le chiavi necessarie

per la comunicazione.

Page 27: Introduzione alle smartcard @ Webbit 2003 by Alessio Orlandi.

Domande?

Si, le slide saranno disponibili a breve

su http://nail.itapac.net/

E-mail: [email protected]