Le smart card possono essere considerate a tutti gli effetti evoluzioni delle normali carte magnetiche tradizionali in quanto, oltre ad avere più capacità di memoria, forniscono tutta una serie di servizi aggiuntivi grazie alla presenza di un microprocessore o CPU (Central Processing Unit). Per quest'ultimo motivo le smart card vengono chiamate "carte intelligenti", poiché consentono di effettuare manipolazioni sulle informazioni attraverso l'utilizzo di software aggiornabile in tempo reale.
Il
formato fisico delle smart card è praticamente identico a
quello delle schede magnetiche; l'unica differenza è
costituita dalla presenza di un chip, di solito di forma quadrata e
colore oro, che costituisce il cuore del sistema. In questo singolo
chip vengono memorizzate tutte le informazioni riguardanti i servizi
fruibili dall'utente ed il software (sistema operativo + programmi di
servizio) necessario per l'interscambio e l'aggiornamento dei dati
tra card e terminale di servizio. Le componenti fondamentali sono: la
CPU (architettura ad 8 bit), la memoria
ROM (contenente
il sistema operativo), la
RAM
(per la memorizzazione temporanea dei dati: la cosidetta "area
di lavoro"), una memoria
EEPROM
(Elettrically Erasable and Programmable Read Only Memory, contenente
la struttura delle directory, i file ed i dati riservati relativi a
password e chiavi) ed infine una porta di I/O (per l'interscambio
fisico delle informazioni secondo una serie di contatti ISO).
Per
quanto riguarda la tecnologia di memorizzazione, al posto della
tecnologia EEPROM possiamo trovare delle card dotate di registri. Una
smart card costruita con la prima tecnologia offre la possibilità
di riscrivere in tutta la memoria, mentre nella versione con registri
si ha una gestione differenziata della scrittura dei dati secondo il
metodo abacus. Tale metodo utilizza un numero limitato di registri
per conteggiare il valore informativo rappresentante il dato
inserito; la quantità d'informazione memorizzabile è
spesso inferiore rispetto all'approccio con EEPROM.
Come
abbiamo detto, la differenza essenziale tra queste card e le schede
magnetiche è il microcontroller o CPU. Dato che questo chip
consente di effettuare operazioni elementari quali quelle aritmetiche
ed orientate ai bit, può essere usato come sistema pilota per
l'interscambio delle informazioni memorizzate nella carta e per
l'interpretazione dei comandi presenti nel software di supporto della
carta stessa. In effetti la CPU presente in una smart card di
pochissimi millimetri quadrati è paragonabile alle vecchie CPU
dei computer da tavolo di pochi anni fa: una specie di Commodore 64
tascabile con 3 o 5 Mhz di velocità in piu'. Spesso il
microcontroller può essere affiancato ad un coprocessore
dedicato per operazioni complesse, quali l'utilizzo di algoritmi
crittografici a chiave pubblica o calcoli matematici "pesanti"
necessari in sistemi particolarmente sofisticati e quindi, almeno in
teoria, maggiormente sicuri. Attualmente, la capacità di
memoria di una singola smart card è di circa 64 Kbyte, contro
le poche decine di byte sfruttabili con le carte magnetiche.
Il
costo di produzione di una singola unità si aggira sui 7
dollari con un chip di soli 25 millimetri quadri. Il basso costo,
rispetto alle tradizionali schede magnetiche, deriva dal fatto che le
tecnologie utilizzate sono di tipo semiconduttore e quindi molto
convenienti dal punto di vista economico, grazie all'enorme aumento
della richiesta di questi materiali nel mercato dell'elettronica.
A
questo punto la domanda sorge spontanea: perché la presenza on
board di una CPU rende più sicura una smart card rispetto ad
una normale carta magnetica? Schematicamente, si può dire che
grazie alla struttura "intelligente" delle smart card è
possibile implementare la maggior parte delle tecniche crittografiche
moderne che per operare richiedono una capacità elaborativa
notevole. Vediamo, dunque, di capire meglio cosa sono queste smart
card e come vengono effettivamente sfruttate le tecniche
crittografiche al suo interno.
Tecnologia
della Smart Card
Anche
se il nome Smart Card cattura l'immaginazione, comunque tale termine
è ambiguo ed è usato in molti modi diversi. ISO usa il
termine Circuit Integrated Card (ICC), per includere tutte quelle
apparecchiature dove un circuito integrato è contenuto
all'interno di una card di identificazione ISO ID1, composta da un
polimero plastico. La scheda ha dimensioni standard pari a 85.6mm x
53.98mm x 0.76mm (vedi anche figura).
Le
ICC sono disponibili in due forme, con e senza contatto. La prima è
facile da identificare a causa del suo connettore d'oro. Benchè
l'ISO Standard (7816-2) ha definito otto contatti, solo sei sono
usati davvero per comunicare col mondo esterno. Le card senza
contatto possono contenere una batteria propria, particolarmente nel
caso di una "Super Smart Card" che ha una tastiera
integrata e display LCD. In genere, comunque, l'alimentazione è
fornita alla scheda elettronica senza contatti da un ciclo induttivo
che usa una radiazione a bassa frequenza di tipo
elettronico/magnetica. Il segnale delle comunicazioni può
essere emesso in un modo simile o può usare anche un
collegamento ottico.
La card a contatto è la
ICC più comune in commercio a causa del suo uso esteso in
Francia ed in altre parti dell' Europa come carta telefonica a
pagamento anticipato. La maggior parte delle schede a contatto
contengono un semplice circuito integrato benchè esperimenti
vari hanno preso luogo sull'uso di due chip. Il microcircuito stesso
varia notevolmente tra i vari fabbricanti e per una vasta scelta di
applicazioni. Esaminiamo ora lo scopo dei sei contatti usati
dall'ICC.
Vcc è la tensione dell'alimentazione
che spinge il chip ed è generalmente pari a 5 volt. In futuro
si passerà probabilmente ad una tensione a 3 volt sfruttando
la tecnologia avanzata dei semiconduttori che permettono di abbassare
il consumo di corrente del circuito integrato. Vss è la
tensione della messa a terra, che fa da contropotenziale al
connettore VCC. Reset è la linea di segnale usata per
riiniziare lo stato del circuito integrato dopo l'accensione. Questo
è di per se un processo complesso che descriveremo più
tardi con maggiore dettaglio. Il segnale dell'orologio (clock) è
usato per la cronologia dell'IC ed anche come riferimento per il link
seriale delle comunicazioni. Sono due le velocità di clock
usate di norma, 3,5795 MHz e 4,9152 MHz. La velocità più
bassa è usata più comunemente in Europa, ma questo
potrebbe cambiare in futuro. Qualcuno può chiedersi perchè
siano state scelte frequenze così insolite, invece di un
preciso 5 MHZ. La ragione giace nella disponibilità di
componenti economici usati nel mondo della televisione, in paricolare
quella americana. Il connettore Vpp è usato per il segnale di
alta tensione, necessario per programmare la memoria EPROM. In
ultimo, ma non per questo meno importante, è il connettore
seriale input/output (SIO). Questo è il segnale con cui il
chip riceve i comandi e scambia i dati col mondo esterno. Anche
questa è un'operazione abbastanza complessa e sarà
oggetto di una discussione più particolareggiata dopo che
simboli come T0 e T1 saranno spiegati pienamente.
L'uso
primario della scheda IC è la conservazione portatile e il
recupero dei dati. Quindi il componente fondamentale dell'IC è
il modulo della memoria. L'elenco seguente rappresenta i tipi di
memoria più comuni:
-)
ROM Read
only memory
(mask ROM): memoria a sola lettura;
-) PROM Programmable
read only memory:
memoria a sola lettura programmabile;
-) EPROM Erasable
programmable ROM:
ROM programmabile e cancellabile;
-) EEPROM Electrically
erasable PROM:
ROM programmabile e cancellabile elettricamente;
-) RAM
Random
access memory:
memora ad accesso casuale.
Un chip particolare può
avere uno o più di questi tipi di memoria. Le diverse
caratteristice di tali memorie ne determinano il diverso
funzionamemento. Il contenuto di una memoria ROM, una volta fissato
dalla casa produttrice, non può essere più cambiato. Ha
un basso costo in termini di memoria, poichè occupa uno spazio
minimo sullo strato di silicio. La quantità di silicio usata è
considerata spesso come parametro di convenienza, perché
chiaramente si vuole ottenere il massimo col minore spazio possibile.
L'ostacolo, comunque, resta quello che il contenuto della ROM non può
essere cambiato e richiede molti mesi di produzione per le compagnie
di semiconduttori. D'altra parte, occorre una quantità minima
per coprire le basse spese di costo.
In ordine di
convenienza maggiore segue la memoria PROM. Questa memoria è
programmabile dall'utente attraverso l'uso di collegamenti a
fusibili. Comunque, è richiesta alta tensione per il ciclo di
riprogrammazione e tali apparecchiature non sono normalmente
disponibili per chi usa le schede a circuito integrato.
L'EPROM
è stata estesamente usata in passato ma il suo nome, in questa
applicazione, è fuorviante. Sebbene la memoria sia
cancellabile tramite luce ultravioletta, il pezzo di quarzo
necessario non è disponibile tra i fruitori delle ICC, quindi
la memoria viene usata in realtà come programmabile una volta
sola (OTP).
Più
interessante risulta essere l'EEPROM. Questa memoria è davvero
cancellabile dall'utente e può essere riscritta molte volte
(tra 10.000 e 1.000.000 in una realizzazione tipica). Tutte queste
memorie descritte finora sono non volatili; in altre parole, quando
l'energia viene rimossa mantengono ancora il loro contenuto. La
memoria ad accesso casuale (RAM) è differente, dato che si
tratta di una memoria volatile ed appena l'energia è rimossa i
dati vengono persi. Di fatto, questo tipo di memoria è del
tutto analoga a quella presente su un qualsiasi personal computer.
Occorre fare attenzione al fatto che il costo dello
sviluppo dell'IC è recuperato proporzionalmente all'area
quadrata di silicio usata, tenendo presente inoltre l'affidabilità
rispetto a rotture di tipo meccanico. E' chiaro comunque che
l'obiettivo è minimizzare i costi del chip mantenendo
l'affidabilità e rispondendo alla particolare richiesta del
consumatore.
Sebbene una scheda telefonica può
operare con una memoria EEPROM relativamente piccola (nell'ordine di
128/512 byte) ed un circuito logico, applicazioni più
sofisticate richiedono ROM, EEPROM, RAM ed una CPU per raggiungere lo
scopo. E' l'aggiunta della CPU che da luogo al termine "smart"
(intelligente), benchè tale termine non sia usato rigidamente.
Il controllo logico non deve essere visto solo come necessario per i
protocolli di comunicazione, ma anche come protezione della memoria
contro un uso fraudolento. L'ICC è probabilmente il massimo
per la sicurezza perché, a differenza di molte apparecchiature
elettroniche e dispositivi di memorizzazione, gestisce la protezione
dei dati direttamente dall'interno tramite appositi algoritmi
crittografici.
Così ora possiamo distinguere i
vari tipi di ICC dal loro contenuto:
- Solo memoria;
-
Memoria con dispositivo di sicurezza;
- Memoria con CPU.
Il dispositivo di sicurezza può essere
usato per controllare l'accesso alla memoria da parte dell'utente
autorizzato. Ciò è compiuto di solito da un codice
d'accesso di norma piuttosto grande (64 bit o più).
Chiaramente l'uso di memoria EEPROM deve essere severamente
controllato al fine di evitare vantaggi finanziari derivati da un uso
non autorizzato. Questo vale sia per schede telefoniche che per
applicazioni che usano gli ICC come portatori di chiavi
crittografiche. Il vantaggio in termini di sicurezza nell'uso di CPU
deriva dal fatto che la CPU è capace di implementare algoritmi
crittografici autonomamente.
Nel mondo delle smart
card il termine applicazione è usato per descrivere il
software o programma che utilizza l'ICC. Nel caso più semplice
l'applicazione può essere solo un file manager per gestire il
deposito e ricerca di dati; un'applicazione di questo tipo può
essere totalmente implementata nel chip. Similmente il chip deve
contenere il circuito logico per la comunicazione che accetta comandi
dall'apposito dispositivo, noto come CAD, attraverso cui riceve ed
emette i dati richiesti. Le ICC che contengono una CPU possono
gestire applicazioni più sofisticate o multiple, fino a
operare direttamente sui dati e prendere decisioni autonome sulle
varie azioni che possono essere richieste.
Specifiche
del chip
Ci
sono una quantità di fattori da stabilire nella specifica del
circuito integrato per la smart card. Per lo scopo di questa
discussione considereremo una scheda con CPU, benchè una
memory card sia sostanzialmente un sottoinsieme di quest'ultima. I
parametri chiave per la specifica del chip sono:
-) Tipo di
microcontroller (ad esempio, 6805 e 8051);
-) Dimensione della
maschera ROM;
-) Dimensione della RAM;
-) Tipo di
memoria non volatile (EPROM, EEPROM);
-) Dimensione della
memoria non volatile;
-) Velocità di clock (esterna ed,
a volte, interna);
-) Parametri elettronici (voltaggio e
tensione);
-) Parametri di comunicazione (asincrona o
sincrona, a byte o a blocchi);
-) Meccanismo di reset;
-)
Sleep mode (operazione in standby a bassa corrente);
-)
Co-processori (per crittografia a chiave pubblica).
In
pratica i fabbricanti di semiconduttori hanno una gamma di prodotti
con cui predefinire i parametri precedenti. Il compito del
progettista è perciò concentrato sullo scegliere il
prodotto adatto per l'applicazione specifica. Come menzionato in
precedenza, la sicurezza può essere un problema importante per
l'applicazione richiesta e di conseguenza possono essere necessari
dispositivi addizionali sulla sicurezza fisica e logica offerte da
ogni chip. Conformarsi agli standard ISO puo' rendersi necessario ed
in questa area l'ISO 7816- 3 (segnali elettronici e protocolli di
trasmissione) è il principale standard considerato. Si noti
comunque che l'ETSI (Istituto per lo standard delle telecomunicazioni
europeo) sviluppa attualmente un nuovo standard, il CEN TC224. Questo
standard è più severo di quello descritto dall'ISO. Per
esempio, l'ISO 7816-3 permette che una scheda abbia tensione di
corrente fino a 200mA. ETSI ha raccomandato 20mA per uso normale e
10mA per applicazioni tipo telefoni portabili.
La
maschera ROM contiene il sistema operativo della smart card. E'
ampiamente impiegato nella gestione dei file ma può compiere
anche operazioni addizionali come algoritmi crittografici (ad
esempio, il DES). In realtà, la ROM è un retaggio degli
standard iniziali della smart card, quando quest'ultima veniva usata
estesamente come deposito dati con uso di sicurezza semplice
rappresentata dal codice PIN. La parte inerente dell'ISO standard è
7816-4 (comandi).
I
segnali elettrici
Alla
base del funzionamento delle Smart Card c'è la trasmissione di
segnali elettrici e la definizione dei protocolli di comunicazione.
Gli aspetti principali sono i seguenti:
a)
caratteristiche elettriche;
b)
caratteri di trasmissione;
c)
risposta al segnale di reset(ATR);
d)
protocollo di trasmissione T=0;
e)
protocollo di trasmissione T=1;
f)
selezione del tipo di protocollo(PTS).
Le caretteristiche elettriche riguardano le Card con contatti,8 di cui 6 usati e definiti come segue:
La
corrente necessaria (VCC) al funzionamento delle Smart è
definito tra 4.75 e 5.25 volts con un consumo massimo di corrente di
200mA. La fabbricazione dei chip è orientata sui sottomulipli
del micron, 0.8um è già disponibile in commercio, 0.5um
lo sarà presto. Questi chips possono funzionare con con una
fornitura di corrente di 0.3 volts che determina un più basso
consumo di corrente. Nello standard ETSI è stato anche
definita una modalità a basso consumo in cui il chip può
operare preservando il contenuto della memoria volatile con un
consumo di massimo di corrente di 200um.
Il
clock(CLK)è un circuito che serve al fuzionamento della
logica interna, in quanto emette un segnale regolare su cui si basano
tutte le operazioni. Ciononostante in pratica molti IC chips
utilizzano un clock esterno collegato mediante un'apposita
interfaccia.
L'importanza
del clock è evidenziata dal fatto che la velocità delle
comunicazioni seriali è sulla linea di I/O è definita
dalla frequenza del ciclo di clock. Lo standard ISO ha proposto
l'utilizzo di due frequenze di clock esterno, 3.579545 MHz e 4.9152
MHz. Tali frequenze producono in genere una velocità di
comunicazione seriale di 9600 bits per secondo. Inoltre lo standard
definisce la possibilità di selezionare la frequenza dopo un
reset in base al tipo di protocollo utilizzato.
VPP
è il segnale che fornisce il voltaggio necessario alla
scrittura sulla memoria non volatile che nelle IC è la EEPROM.
Proprio la generazione dell'alto voltaggio viene affidata, nelle IC,
ad un condensatore che sta sul chip, che generalmente produce un
segnale da12.5V o 21V.
Il
segnale di reset (RST) è invece fornito
per inizializzare il programma contenuto nella ROM. Lo standard ISO
ha definito tre modalità di reset: reset interno, reset
basso e attivo e reset attivo alto e asincrono. Molti
microprocessori IC usano il reset basso e attivo. La modalità
sincrona è usata spesso nelle card usate nelle applicazioni
telefoniche.
La
sequenza di operazioni per attivare IC è la seguente:
-
passaggio RST basso;
-
generare VCC;
-
spostare I/O in modalità di ricezione;
-
mettere VPP in modalità inattiva;
-
generare il clock;
-
passaggio RST alto (reset basso e attivo).
Questa sequenza di operazioni è definita per minimizzare la probalità di danneggiare le iC. La sequenza di disattivazione è:
-
passaggio di RST basso;
-
passaggio clock basso;
-
disattivazione VPP;
-
posizionamento I/O nello stato a bassa frequenza;
-
disattivazione VCC.
Per
quanto riguarda la gestione dell’input/output, le IC sono
dotate di un’unica linea per l’interazione con l’esterno,
il che significa che bisogna cambiare direzione della linea a seconda
se si sta trasmettendo o ricevendo.
La
comunicazione con l’esterno avviene su una linea bidirezionale
asincrona il cui utilizzo dipende dal protocollo utilizzato: nel
protocollo di trasmissione T=0 i dati sono trasmessi come sequenze di
bytes mentre nel protocollo T=1 i dati sono organizzati in
blocchi di lunghezza fissa.
Il
formato dei frames trasmessi è il seguente:
-bit
di partenza, usato per la sincronizzazione;
-bit
di parità, usato per l’individuazione di
errori;
-bit
di separazione, usati per individuare i dati.
La linea di trasmissione può comunque essere usata in entrambe le direzioni contemporaneamente.
Finora,
abbiamo descritto le varie componenti delle smart card come entità
separate: approfondiamo ora le relazioni che intercorrono tra le
varie componenti, ossia la sua architettura.
L'unità
centrale, nota anche come Micro Processor Unit,
gestisce direttamente sia la memoria RAM che il sistema operativo,
contenuto invece nella ROM. A sua volta, questo sistema, noto anche
come Card Operating System, opera sulle
altre due componenti, il controller I/O (che è formato dai sei
segnali visti in precedenza) e la memoria EEPROM. In pratica, quando
la card deve svolgere un'operazione, il controller I/O manda un
segnale specifico alla MPU. L'unità centrale esamina il
segnale in ingresso, richiama le istruzioni necessarie dalla memoria
ROM e le manda in esecuzione nella RAM; se richiesto, la MPU richiama
tramite il sistema operativo le informazioni contenute nella EEPROM.
Infine, la MPU manda i dati in risposta al controller I/O tramite le
istruzioni del COS, terminando l'esecuzione del'operazione.
E'
importante sottolineare due cose: il controller I/O è l'unico
punto di comunicazione tra la scheda e l'ambiente esterno; inoltre,
mentre i dati in input giungono direttamente alla MPU, la direzione
opposta (MPU -> I/O) passa per il sistema operativo, che fa da
tramite anche per gli accessi alla EEPROM. Poiché il COS viene
memorizzato nella ROM, esso non è modificabile via software,
quindi non è suscettibile di attacchi o manipolazioni. In
questo modo, il COS non è soltanto il “braccio”
della MPU ma anche la protezione dei dati interni contro le
intrusioni dall'esterno.
Abbiamo
già accennato il fatto che le smart card sono dei veri e
propri microcomputer; ad ulteriore testimonianza di cio', la memoria
EEPROM mantiene i dati al suo interno strutturati in un file system,
proprio come un'unità a disco fisso. La maggior parte delle
card hanno un file system ad albero alla stregua di quello Unix,
quindi con una radice (root), file nelle foglie e cartelle nei
nodi interni.
La
particolarità che contraddistingue questa soluzione è
che i nomi di file e directory sono lunghi esattamente due byte.
Questa scelta è motivata dalla necessità di
miniaturizzare il più possibile i campi informativi allegati
ai dati, visto lo spazio esiguo disponibile. Per motivi di praticità,
i nomi dei file sono espressi in esadecimale (1 simbolo -> 4 bit);
ad esempio, la radice del file system è 3f.00.
Comunicare
con la smart card
Per
poter interfacciarsi con la smart card è necessario utilizzare
l'Application Processing Data Unit.
L'APDU command è un record composto da un header di 5
byte, di cui due per la rappresentazione del comando ed i rimanenti
tre come argomenti, e da un campo dati di massimo 255 byte. La
rappresentazione del comando si divide in due campi di un byte
ciascuno: il primo, class byte (CLA), è unico per ogni
singola applicazione, mentre il secondo, instruction byte
(INS), specifica il tipo di istruzione richiesta. I tre argomenti
sono, di fatto, tre parametri, dei quali i primi due sono parametri
di funzione, mentre il terzo specifica la lunghezza del campo
dati.
Quando il sistema
vuole interfacciarsi con la smart card, manda le istruzioni tramite
APDU command al lettore. La comunicazione nel verso opposto, dalla
card al sistema, avviene tramite APDU response; questa
versione, composta da tre parti, contiene i dati in risposta nel
primo campo, mentre gli altri due sono indicatori di stato.
La
sicurezza delle smart card
Le
tecniche di sicurezza impiegate nella progettazione delle smartcard e
nelle procedure di autenticazione/trasmissione di questi dati verso i
terminali d'interfaccia riguardano essenzialmente quattro settori:
integrità dei dati, autenticazione,
irriproducibilità,
riservatezza.
-)
Integrità dei dati
Per
integrità dei dati si intende la corretta trasmissione dei
dati tra sorgente (smart card) e destinatario (terminale di servizio)
senza nessun tipo di alterazione dell'informazione. L'integrità
dei dati viene garantita da sofisticate tecniche crittografiche
chiamate check digits, ossia "controllo delle cifre"; si
tratta di una procedura matematica che consente di determinare se un
certo insieme di valori numerici, come i bit memorizzati nella card
che rappresentano l'informazione, sono stati alterati o meno. Si
utilizzano a questo scopo procedure chiamate hashing, che vincolano
ad un insieme arbitrario di valori numerici un altro insieme di
valori calcolati sulla base dei primi e di dimensione fissa: tale
insieme è noto come valore hash. Se anche un singolo bit
dell'insieme informativo viene alterato, il valore hash viene
modificato. Esistono diversi algoritmi di hash utilizzati per
garantire l'integrità dei dati per le smart card, ad esempio
il Secure Hash Algorithm (SHA-1). L'SHA-1
produce un valore hash di 160 bit per un insieme informativo di
valori numerici di 2 alla 64 bit di lunghezza al massimo; quindi, con
160/8=20 caratteri riesce a determinare in un insieme di cardinalità
massima pari a 264=1.8*1019 (circa 23 milioni
di miliardi di caratteri) se ci sono state delle alterazioni sui
valori originari. Un'altra funzione hash molto utilizzata è la
Message Digest 5 (MD5), che produce un valore hash
inferiore a quello di SHA-1, per la precisione 128 bit ovvero 16
caratteri.
-)
Autenticazione
Si
tratta di una tecnica simile a quella di hashing vista in precedenza,
che consente di stabilire se un insieme informativo proviene
realmente dalla fonte originaria. In sostanza si aggiungono dei dati,
una sorta di firma digitale, all'insieme informativo da trasmettere
per scongiurare eventuali manomissioni. La firma digitale non è
altro che una scansione particolare del contenuto informativo
dell'insieme dei dati, che può essere utilizzata dal ricevente
come verifica dell'autenticità. Tramite un valore numerico
derivato da una funzione hash con l'aggiunta di una chiave privata
(schema MAC, Message Authentication Code), è possibile
determinare matematicamente l'autenticità di un documento.
Oltre allo schema MAC, vengono usate veri e propri algoritmi di firma
digitale, come il Digital Signature Algorithm
(DSA), che usa chiavi private di lunghezza variabile tra 512 e 1024
bit con scarti di 64 bit, e lo RSA, che utilizza chiavi lunghe fino a
2048 bit. Quest'ultime tecniche di autenticazione utilizzano
algoritmi di cifratura asimmetrici con chiavi pubbliche e
private.
L'autenticazione si basa sulla chiave
pubblica del mittente per verificare che il messaggio sia realmente
stato inviato dalla giusta sorgente; una verifica fatta con
l'algoritmo di testing consente di determinare o meno
l'autenticazione.
-)
Irriproducibilità
Bisogna
in qualche modo garantire che la firma digitale non possa essere
duplicata illegalmente per consentire l'invio di messaggi fasulli
apparentemente autentici. Questo problema è uno degli aspetti
cruciali della sicurezza elettronica. 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. In sostanza la copia e l'originale
risultano identici perché l'informazione, essendo
digitalizzata, viene rappresentata da un insieme di bit che, una
volta duplicati, rappresentano fedelmente la stessa informazione
della sorgente. Ecco perché l'impossibilità di poter
copiare facilmente una firma digitale diventa un'esigenza reale e
fondamentale per la tutela della sicurezza di ogni utente.
-)
Riservatezza
L'obiettivo
è di evitare che un intruso possa catturare e decifrare le
informazioni interpretando di conseguenza il contenuto informativo di
una card. Sebbene su una smart card è possibile implementare
qualsiasi algoritmo crittografico moderno sia simmetrico che
asimmetrico, gli algoritmi asimmetrici recenti richiedono una potenza
di calcolo consistente e di conseguenza i tempi relativi alla loro
elaborazione sono molto elevati sulle CPU a 8 bit presenti sulle
smartcard.
Dato che per elaborare algoritmi asimmetrici abbastanza
pesanti sono richiesti mediamente 10/15 secondi, in realtà si
preferisce diminuire il livello di sicurezza dell'algoritmo per
garantire una maggiore velocità nelle operazioni (minori
iterazioni dell'algoritmo, chiavi più corte). Naturalmente,
bisogna trovare il giusto compromesso tra velocità e
sicurezza, in attesa che la tecnologia ci fornisca card capaci di far
girare più rapidamente gli algoritmi asimmetrici.