Firma
digitale ed autenticazione (top)
Firma digitale è una
informazione che viene aggiunta ad un documento informatico al fine
di garantirne integrità e provenienza. La firma digitale consente
di autenticare, nella sua interezza, una qualunque sequenza di
simboli binari, indipendentemente dal suo significato.
La principale differenza tra
firma autografa e firma digitale sta nel fatto che la prima è
direttamente riconducibile all’identità di colui che la appone,
poiché la calligrafia è un elemento ritenuto sufficiente ad
identificare la persona, mentre la seconda non possiede questa
proprietà. Nel caso della firma digitale, in genere, si ricorre ad
un’autorità di certificazione, il cui compito è quello di
stabilire, garantire e pubblicare l’associazione tra firma
digitale e soggetto che l’ha apposta.
Inoltre, mentre l’associazione
tra testo di un documento e la firma autografa è ottenuta
esclusivamente attraverso il supporto cartaceo, la firma digitale è
intrinsecamente legata al testo a cui è apposta, tanto che i due
oggetti possono essere fisicamente separati senza che per questo
venga meno il legame esistente tra loro. Una volta apposta la firma
digitale il documento non è più alterabile. Conseguenza di ciò è
l’unicità della firma digitale, nel senso che a testi diversi
corrispondono firme diverse e quindi, nonostante la sua perfetta
replicabilità, è impossibile trasferirla da un testo ad un altro.
Il processo di firma digitale
richiede una serie di azioni preliminari necessarie alla
predisposizione delle chiavi utilizzate dal sistema di crittografia
su cui il meccanismo di firma si basa; in particolare occorre:
- La registrazione dell’utente
presso una Autorità di Certificazione (AC).
- La generazione di una coppia di
chiavi (Ks, Kp).
- La certificazione della chiave
pubblica Kp.
- La registrazione ed, eventuale,
pubblicazione della chiave pubblica Kp.
- Il rilascio di una smartcard
contenente la coppia di chiavi (Ks, Kp).
Una volta espletate tali
operazioni l’utente è in grado di firmare elettronicamente un
numero qualunque di documenti, sfruttando la sua chiave segreta Ks,
durante il periodo di validità della certificazione della
corrispondente chiave pubblica. Tale periodo può essere interrotto,
prima del suo naturale termine, dalla revoca della certificazione
della chiave pubblica, che di norma viene effettuata su richiesta
del proprietario nel caso in cui questi ritenga che la segretezza
della sua chiave privata sia stata compromessa.
La firma viene apposta, con il
processo schematicamente mostrato nella Figura 1, mediante una
sequenza di tre operazioni:
- generazione dell’impronta del
documento da firmare (algoritmo di hashing),
- generazione della firma mediante
cifratura dell’impronta,
- apposizione della firma al
documento.

figura 1: generazione
delle firma digitale
L’utilità dell’uso dell’impronta
è duplice, in primo luogo consente di evitare che per la
generazione della firma sia necessario applicare l’algoritmo di
cifratura, che è intrinsecamente inefficiente, all’intero testo
che può essere molto lungo. Inoltre consente l’autenticazione, da
parte di una terza parte fidata, della sottoscrizione di un
documento senza che questa venga a conoscenza del suo contenuto. Un’altra
tipica situazione in cui si sfruttano tali caratteristiche dell’impronta
è la marcatura temporale (time stamping) che verrà discussa più
avanti.
Verrà ora fornito qualche
dettaglio riguardo le operazioni necessarie per la sottoscrizione di
ciascun documento, descrivendo in sequenza le singole operazioni
svolte da ciascun elemento componente il sistema.
|
Generazione
a apposizione della firma digitale
(top) |
UTENTE |
COMPUTER
CLIENT |
SMARTCARD
UTENTE |
L’utente
seleziona il file da firmare digitalmente. |
|
|
|
Il client calcola l’hash
di quel particolare file/documento e chiede all’utente d’inserire
il PIN per eseguire l’operazione di firma. |
|
L’utente
inserisce il PIN relativo all’operazione di firma digitale. |
|
|
|
Il computer
trasmette il PIN e l’hash precedentemente calcolato alla
smartcard |
|
|
|
La smartcard riceve
il PIN e l’hash del documento.
1. Se il PIN è giusto: la
smartcard cripta l’hash secondo l’algoritmo RSA in
funzione della chiave segreta Ks. Tale crittogramma (la firma
digitale) viene trasferito al computer client.
2. Se il PIN è errato: la
Smart Card rifiuta di eseguire l’operazione, producendo un
codice di errore che sarà trasmesso al computer client.
|
|
1. se il PIN è
giusto: il computer client riceve il crittogramma (la firma
digitale) e la appone alla fine del documento. Insieme alla
firma digitale, viene allegato al documento il certificato da
cui è possibile recuperare il valore della chiave pubblica.
Inoltre il computer avverte l’utente del buon esito dell’operazione.
2. Se il PIN è errato: il
computer trasmette un messaggio di errore. Inoltre avverte l’utente
sulle responsabilità civili e penali che comporta l’operazione
di falsificazione di firma digitale. |
|
La presentazione di un PIN per
accedere alle funzioni della Smart Card è un meccanismo
generalmente adottato per prevenire un uso illecito della carta in
caso di smarrimento o in assenza del possessore. Eventuali tentativi
errati e consecutivi nella presentazione del PIN determina il blocco
irreversibile e definitivo della carta stessa.
Riepilogando, il documento firmato
digitalmente è quindi composto da:
- Il documento iniziale.
- La firma (hash del documento
iniziale codificato con la chiave privata).
- Il certificato contenente la
chiave pubblica.
Per garantire la riservatezza
durante la fase di trasmissione, il documento firmato (costituito da
a,b,c) deve essere codificato. L’operazione di codifica off-line
potrà avvenire opzionalmente seguendo uno schema di codifica
simmetrico oppure seguendo uno schema di codifica asimmetrico. Nel
primo caso scelta una chiave di codifica di sessione si procede alla
crittografazione secondo un algoritmo simmetrico (IDEA, DES, …)
del documento firmato; inoltre si crittografa la chiave di sessione
secondo l’algoritmo RSA utilizzando la chiave pubblica del
destinatario. Nel secondo caso si procede alla crittografazione del
documento firmato utilizzando direttamente l’algoritmo RSA con la
chiave pubblica del destinatario.
Questo “plico informatico”
può essere inviato ad un destinatario con una delle seguenti
modalità:
- Asincrona utilizzando un client di
posta elettronica nel quale saranno implementate ed integrate
tutte le funzioni su menzionate. In questo caso il destinatario
può essere un altro client di posta elettronica (ad esempio per
l’apposizione, sullo stesso documento, di una seconda firma
congiunta), o un server (ad esempio un “server di
registrazione di atti o documenti”).
- Sincrona utilizzando un’applicazione
WEB oriented e solo nel caso in cui il destinatario è
costituito da un server di registrazione di atti o documenti.
|
Firma
digitale e smartcard (top)
Le funzioni di firma e
codifica sono basate su standard tecnologici e de-facto consolidati
e diffusi (RSA, PKCS#1 …. PKCS#11, X509 …). La firma viene
apposta con l’inserimento di una smartcard, rilasciata all’utente
da un ’autorità’ o da un centro servizi delegato, in un
apposito lettore. Tale Smart Card e’ caratterizzata da notevoli
capacità di calcolo grazie alla presenza di un coprocessore
matematico capace di implementare in maniera efficiente l’algoritmo
di crittografazione RSA con chiavi a lunghezza pari a 1024 bit.
La chiave privata e’
memorizzata in una locazione di memoria sicura all’interno della
carta stessa, e deve essere generata all’interno della smartcard.
In nessun modo e’ possibile accedere a questa locazione dall’esterno.
L’operazione di firma digitale viene effettuata attraverso una
sessione di comunicazione fornendo alla carta la copia (hash) del
documento. La smartcard elabora l’algoritmo di crittografia al
proprio interno e fornisce come output l’hash crittografato con la
chiave privata (firma digitale).
Il “plico informatico”
inviato è così strutturato: ( Sul server sono eseguite le seguenti
operazioni )

figura 2: plico informatico
Decodifica: Attraverso
le operazioni complementari alla precedente fase di codifica.
|
Verifica
della firma digitale (top)
L’operazione di verifica
della firma digitale, mostrata schematicamente in figura
sottostante, viene effettuata ricalcolando, con la medesima funzione
di hash usata nella fase di sottoscrizione, il valore del documento
e controllando che questo valore coincida con quello ottenuto per
decodifica della firma digitale stessa.
In linea di principio non
sarebbe necessario allegare alla firma digitale il certificato
rilasciato dalla CA, poiché il destinatario può in ogni modo
recuperarlo nei cataloghi, tuttavia la sua presenza semplifica
l'operazione di verifica, rendendo più efficiente l'accesso ai
cataloghi, e limitando la ricerca alle liste dei certificati
revocati e/o sospesi.

figura 3: verifica della firma digitale
|