3. LA SICUREZZA DELLE SMARTCARDS
Le smartcards dispongono di una protezione fisica costituito da uno strato isolante dielettrico che copre il chip per resistere a eventuali attacchi atti a manomettere le funzioni di output. Lo strato isolante protegge il chip dalle impurità e dalla polvere, e impedisce il passaggio di radiazioni associate alla sonda, che utilizza un fascio di elettroni microscopico. Lo schema è capace di reagire alla luce, alla temperatura e alle scariche elettriche indicando al chip che lo strato isolante è stato rotto e che la sicurezza dei dati è compromessa. Vi sono anche meccanismi per proteggere la memoria fisica, incluso il sovraccarico di memoria, che possono scombussolare i disegni tecnici più difficili e impediscono un attacco che cerca di cancellare un preciso dato selezionato nella memoria.
Figura 3.1
Le smartcards possono essere costruite con vari livelli di sicurezza fisica, con costi sempre più alti man mano che aumenta il livello di sicurezza stesso. La Figura 3.1 mostra lo schema di una smartcard e le sue varie componenti che la compongono. Gli acquirenti possono valutare con il venditore il livello di sicurezza fisica appropriato alle loro applicazioni. Le tecniche di sicurezza impiegate nella progettazione delle smartcards e nelle procedure di autenticazione/trasmissione di questi dati verso i terminali d'interfaccia riguardano essenzialmente 3 settori:
Integrità dei dati
Autenticazione
Irriproducibilità e Riservatezza.
Per integrità
dei dati si intende la corretta trasmissione dei dati tra la sorgente (smartcard)
e destinatario (terminale di sevizio) senza nessun tipo di alterazione dell'informazione.
Questa funzionalità può essere un requisito esplicito dell'applicazione
in cui i dati da preservare sono limitati e in cui si deve garantire la possibilità
di recupero di una transazione. L'integrità fisica dei dati è
basata in genere sul calcolo di una checksum su un insieme logico di dati (record,
partizioni, file, ecc.) memorizzata insieme ad essi. In genere questa funzionalità
è realizzata con l'uso di algoritmi one-way hashing e in particolare
il più utilizzato è il Secure Hash Algorithm (SHA-1). L'SHA-1
produce una firma di 160 bit per un insieme informativo di valori numerici di
264 bit di lunghezza al massimo. Un'altra funzione hash molto utilizzata è
la Message Digest 5 (MD5) che produce una firma inferiore a quella dell' SHA-1,
solo 128 bit e quindi 16 caratteri.
Il sistema operativo garantisce l'integrità del messaggio scambiato dalla
carta con il mondo esterno, inserendo dopo il campo dati del comando o della
risposta il Codice di Autenticazione del Messaggio (MAC) in modalità
cifrata. La cifratura del MAC definisce una sorta di firma digitale del messaggio
scambiato realizzata con algoritmi di crittografia simmetrici (DES, RC5).
La funzionalità
di autenticazione permette il riconoscimento reciproco tra la smartcard e il
mondo esterno rappresentato, tipicamente, dal terminale che interagisce con
la carta.
Secondo quanto specificato dagli standard ISO relativamente alla sicurezza logica,
esistono essenzialmente tre tipi di autenticazione, interna, esterna e reciproca,
a seconda di chi effettua la verifica dell'identità (il mondo esterno,
la carta, entrambi). Il principio generale su cui si basa l'autenticazione è
che, tra i due soggetti, vengono scambiate quantità casuali, ovvero di
validità temporanea (autenticazione dinamica), che vengono crittografate,
in modo simmetrico, con le stesse chiavi e con gli stessi algoritmi.
Le procedure di autenticazione sono solitamente gestite secondo lo standard
ISO 9798/2.
Ad esempio la funzionalità di autenticazione della carta da parte del
mondo esterno, consente ad un'applicazione di sincerarsi della "validità"
della carta con cui desidera interfacciarsi (Internal Authenticate). A questo
scopo il sistema operativo genera un Response verso l'esterno a partire dalla
quantità random (Challenge) ricevuto e dalla indicazione della chiave
di cifratura da utilizzare. L'applicazione esterna andrà a confrontare
il Response ricevuto con quanto ottenuto dalla esecuzione dell'algoritmo di
autenticazione che usa lo stesso Challenge e la propria chiave di verifica.
La Figura 3.2 descrive invece una autenticazione di tipo esterna (External
Authenticate)
che consente ad una carta di sincerarsi della "validità" del
terminale con cui si interfaccia.
Normalmente è usato il DES per cifrare la quantità random, con
una chiave di autenticazione generata di volta in volta mentre il calcolo delle
firme viene fatto con il Triplo-DES.
Qualora dovesse essere presente sulla carta un coprocessore crittografico che
permette di realizzare algoritmi di cifratura asimmetrici (RSA, DSA), è
anche possibile realizzare delle autenticazioni statiche tramite l'utilizzo
di una firma applicata ad una quantità fissa (es. card ID).
Figura
3.2
3.3 Irriproducibilità e Riservatezza
Bisogna in qualche modo garantire che la firma digitale non possa essere copiata per consentire l'utilizzo non autorizzato. Questo è uno degli aspetti cruciali della sicurezza in ambito elettronico. Chiunque con un minimo di attrezzatura è in grado di copiare il contenuto informativo di un dispositivo digitale e la copia risultante sarà indistinguibile dall'originale. Inoltre l'obiettivo è di evitare che un intruso possa catturare e decifrare le operazioni interpretando di conseguenza il contenuto informativo delle cards.
La progettazione
di un sistema sufficientemente sicuro è un compito difficile da parte
delle aziende che operano nel settore. Spesso i pareri sono molto differenti
tra loro per cui esistono approcci diversi alla scelta degli algoritmi crittografici
e alla loro implementazione nei microcontroller. Ad esempio, nel settembre '97
sono state registrate violente polemiche sul nuovo chip H8/3109 sviluppato dalla
Hitachi per conto della Mondex International, ditta leader del settore del commercio
elettronico tramite smartcard. Durante l'Eurocrypt '97, la più importante
conferenza del settore, molti esperti si sono scagliati contro l'enorme investimento
della Mondex nella progettazione delle nuove smartcards, che apparentemente non
rispecchiano gli standard moderni di sicurezza offerti dai nuovi algoritmi crittografici.
Ross Anderson della Cambridge University affermò: "si stanno sviluppando
troppe nuove tecniche di attacco verso questi tipi di sistemi; se un sistema
viene rilasciato oggi, la sua sicurezza può durare al massimo tre mesi".
Questa affermazione era dovuta al consapevole limite delle smartcards a livello
fisico. Con appositi strumenti è infatti possibile modificare strutturalmente
la card in modo da poter leggere/scrivere e interpretarne il contenuto informativo.
Si è dimostrato durante una conferenza dell'Eurocrypt come si possa "cortocircuitare"
una smartcard in modo da poterla collegare tramite comunicazione seriale ad
un qualsiasi personal computer e quindi decifrare ogni valore memorizzato.
Naturalmente le azienda produttrici (Mondex in testa) si sono difese argomentando
che nessun sistema è perfetto e che il punto fondamentale è riuscire
ad aumentare i costi necessari per una eventuale manomissione del chip in questione.
Alcuni accademici, tra i quali il prof. John Orloff dell'università del
Maryland, affermano che in realtà i costi per una eventuale manomissione
non sono molto elevati. Esistono in circolazione diversi tipi di lettori di
smartcards provenienti dai più famosi gruppi hackers, e quindi interessanti
perché autocostruiti, totalmente trasparenti nell'utilizzo e soprattutto
facili da realizzare anche dal punto di vista economico. Un altro luogo comune
da sfatare è quello - sostenuto dalle aziende leader nel settore - secondo
il quale la violazione di smartcards sarebbe un evento raro e difficile da realizzare.
A riprova del contrario, nel maggio 98 in Germania la rivista Focus riportava
un articolo nel quale spiegava come alcuni pirati informatici (probabilmente
olandesi) erano riusciti a impartire una severa lezione al colosso delle telecomunicazioni
tedesche Deutsche Telekom, con un danno di circa 34 milioni di dollari causato
dal ricarico abusivo delle card prepagate per la telefonia. Le smartcards utilizzate
dalla Deutsche Telekom utilizzano un chip EEPROM sviluppato dalla Siemens, che
detrae il valore della card a seconda dei minuti di conversazione telefonica
consumati. Quando il valore memorizzato diventa nullo si è costretti
a ricaricare la card pagando appunto la ricarica. Questo gruppo di pirati è
riuscito a capire il modo di raggirare la fase di azzeramento della card riuscendo
a ricaricarla senza nessun danno fisico o manipolazione della stessa, per cui
l'aspetto esterno di una card ricaricata abusivamente e identico a quello di
una card ricaricata ufficialmente. Con questo metodo i pirati sono riusciti
a rivendere le card ricaricate a costi inferiori rispetto alle ricariche ufficiali,
con profitti illegali molto elevati.
Il 1° novembre 1999 è stata la data della presentazione di un importante
documento riguardo la sicurezza delle smartcards, lo "Smart Card Protection
Profile", o semplicemente PP. Questo profilo è stato sviluppato
per identificare e stabilire una comprensiva lista di requisiti riguardanti
la sicurezza delle smartcards basato sullo standard ISO 15408 detto "Common
Criteria" (http://csrc.nist.gov/cc/sc/sclist.htm).
È stato prodotto dallo sforzo dello SmartCard Security User Group (SCSUG),
un gruppo formato espressamente per rappresentare i requisiti di sicurezza.
Attualmente fanno parte del SCSUG:
American Express
Europay International
MasterCard International
Mondex International
Visa International
National Institute of Standards and Technology (United States of America)
National Security Agency (United States of America)
Dato che i primi
tipi di smartcards richiedevano tempi lunghi (15/20 sec) per elaborare pesanti
algoritmi asimmetrici, in realtà si preferiva diminuire il livello di
sicurezza dell'algoritmo per garantire una maggiore velocità nelle operazioni.
Questa valutazione è basata anche sulla reale aspettativa di inviolabilità
del sistema. In pratica i sistemi venivano progettati non tanto per essere inviolabili
al 100%, ma per garantire una soglia minima di inviolabilità. Fortunatamente
il miglioramento della tecnologia strutturale delle smartcards consente di applicare
efficacemente gli algoritmi moderni ritenuti molto più sicuri. Con la
tecnologia CPU Risc inserite nelle card e con una gestione efficiente dei calcoli
in virgola mobile si riescono a ottenere risultati notevoli anche in tempi brevissimi.
La tendenza dell'ultimo anno è quella che segue il principio di Kerckhoff
(1883) secondo il quale la sicurezza di un crittosistema non dipende dalla segretezza
dell'algoritmo (metodo) usato, ma solo dalla segretezza della chiave.