richiesta d'informazioni

Firma Digitale

 

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:

  1. La registrazione dell’utente presso una Autorità di Certificazione (AC).
  2. La generazione di una coppia di chiavi (Ks, Kp).
  3. La certificazione della chiave pubblica Kp.
  4. La registrazione ed, eventuale, pubblicazione della chiave pubblica Kp.
  5. 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:

  1. generazione dell’impronta del documento da firmare (algoritmo di hashing),
  2. generazione della firma mediante cifratura dell’impronta,
  3. 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:

  1. Il documento iniziale.
  2. La firma (hash del documento iniziale codificato con la chiave privata).
  3. 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à:

  1. 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”).
     
  2. 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