Questo è la continuazione del precedente articolo “Cosa è la firma digitale – prima parte” . Se non l’hai ancora letto, ti consiglio di farlo adesso, così ti sarà più chiaro quanto segue.
La firma viene apposta, con il processo schematicamente mostrato nell’immagine sottostante, 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.
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.
Generazione ed apposizione della firma digitale |
||
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 determinano 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 1, 2, 3) 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 ora 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.