Introduzione alle 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 delluso si utilizzano tipi di smartcard differenti
Premesse alluso La smartcard è univoca, inviolabile e associata ad unentità 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 dallinterfaccia 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 lutente
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à LI/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 lhardware: ISO7816 Nessuno standard per la struttura interna della componentistica Vari invece gli standard software: –GSM –ETSI –…
Comunicazione low level (1) Definita dallo standard ISO La APDU contiene –CLA: Classe dellistruzione –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 linesistenza dellistruzione 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 allinterno della smartcard Prevede fino a 256 files organizzati in vari livelli Laccesso ad alcuni file può determinare operazioni interne trasparenti allutente 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 allesterno 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