L'espressione "firma digitale" viene spesso usata in modo improprio, per indicare anche la semplice immagine di una firma incollata in un documento. In senso tecnico, invece, una firma digitale è un'operazione crittografica precisa, che lega in modo verificabile un documento a una chiave privata. Vediamo cosa succede davvero, passo dopo passo.
Cosa deve garantire una firma
Una firma digitale ben fatta offre tre garanzie:
- autenticità: il documento proviene dal titolare della chiave privata;
- integrità: il documento non è stato modificato dopo la firma, nemmeno di una virgola;
- non ripudio: il firmatario non può sostenere in modo credibile di non aver firmato, a patto che la sua chiave privata fosse sotto il suo esclusivo controllo.
Un'immagine della firma autografa inserita in un PDF non garantisce nessuna di queste cose: chiunque può copiarla e incollarla altrove, e il documento può essere modificato dopo senza lasciare traccia.
Il procedimento di firma
La firma digitale si basa sulla crittografia asimmetrica. Il firmatario possiede una coppia di chiavi: una privata, custodita solo da lui, e una pubblica, nota a tutti.
- Calcolo dell'impronta: il software calcola l'hash del documento, per esempio con SHA-256. Si ottiene un valore breve che rappresenta in modo univoco quel contenuto.
- Firma dell'impronta: l'hash viene elaborato con la chiave privata del firmatario, usando un algoritmo di firma come RSA-PSS, ECDSA o EdDSA. Il risultato è la firma.
- Confezionamento: la firma viene unita al documento, insieme al certificato del firmatario, in un formato standard.
La chiave privata, nei dispositivi di firma più seri, non esce mai da una smart card, da un token USB o da un modulo hardware remoto. Il documento, o meglio la sua impronta, viene inviato al dispositivo, che restituisce soltanto la firma.
Il procedimento di verifica
Chi riceve il documento firmato compie l'operazione inversa:
- ricalcola l'hash del documento ricevuto;
- usa la chiave pubblica del firmatario per verificare che la firma corrisponda a quell'hash;
- controlla il certificato, cioè che la chiave pubblica appartenga davvero alla persona indicata, che il certificato sia stato emesso da un'autorità affidabile e che non fosse scaduto o revocato al momento della firma.
Se anche un solo byte del documento è cambiato, l'hash ricalcolato sarà diverso e la verifica fallirà. Se la firma è stata prodotta con un'altra chiave, la verifica fallirà comunque.
Il ruolo del certificato
La matematica, da sola, dimostra che una firma è stata prodotta da una certa chiave privata. Non dice di chi sia quella chiave. Questo collegamento lo stabilisce il certificato digitale, un documento elettronico firmato da un'autorità di certificazione che attesta: "questa chiave pubblica appartiene a questa persona".
Senza un certificato affidabile, chiunque potrebbe generare una coppia di chiavi a nome di un altro. È per questo che la firma digitale con valore legale richiede che l'identità del titolare sia verificata prima del rilascio del certificato.
I formati più comuni
In Europa i formati di firma avanzata sono standardizzati. I più diffusi sono:
| Formato | Come si presenta | Caratteristica |
|---|---|---|
| CAdES | File con estensione .p7m | Busta che contiene documento e firma; serve un software per aprirla |
| PAdES | PDF firmato | La firma è dentro il PDF e si vede con un normale lettore |
| XAdES | File XML firmato | Usato per dati strutturati, come le fatture elettroniche |
Il formato .p7m spiazza spesso chi lo riceve per la prima volta: non è un documento danneggiato, ma una busta che contiene l'originale. Un programma di verifica la apre, controlla la firma ed estrae il file.
Firme e tempo
Un certificato ha una scadenza e può essere revocato, per esempio se la smart card viene smarrita. Questo solleva una domanda: come si dimostra che un documento è stato firmato quando il certificato era ancora valido?
La risposta è la marca temporale: un'autorità fidata firma l'hash del documento insieme a data e ora, attestando che quel contenuto esisteva in quel momento. Gli standard di firma prevedono anche profili per la conservazione a lungo termine, che includono le informazioni di revoca e le marche temporali necessarie a verificare la firma anche dopo molti anni.
Gli errori più frequenti
- Confondere firma digitale e firma grafica: una firma scansionata non prova nulla dal punto di vista crittografico.
- Prestare il dispositivo di firma o comunicare il PIN a collaboratori: ciò che firma la tua chiave viene attribuito a te.
- Modificare un PDF dopo la firma e aspettarsi che resti valida: qualsiasi modifica invalida la firma, a meno che non sia prevista dallo standard, come l'aggiunta di firme successive.
- Fidarsi dell'icona verde senza leggere chi è il firmatario indicato nel certificato.
In sintesi
- La firma digitale lega un documento a una chiave privata e garantisce autenticità, integrità e non ripudio.
- Si firma l'hash del documento con la chiave privata; la verifica usa la chiave pubblica.
- Il certificato collega la chiave pubblica all'identità del firmatario.
- I formati principali sono CAdES (.p7m), PAdES (PDF) e XAdES (XML).
- Le marche temporali permettono di verificare la firma anche dopo la scadenza del certificato.