Introduzione alle smart card

  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.

Cos'è una smart card?

  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.


All'interno delle smart card

  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.


Il file system

  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.