Firma digitale nella pratica: certificati, PEC, SPID e file .p7m
Scopri come funziona la firma digitale nella pratica: certificati digitali, chiave privata, PDF firmati, file .p7m, PEC, SPID, CIE e verifica con OpenSSL.
Nel primo approfondimento su come funziona la firma digitale abbiamo visto il meccanismo tecnico di base: documento, hash, chiave privata, chiave pubblica e verifica.
Abbiamo capito che una firma digitale non è l’immagine della nostra firma dentro un PDF. Non è una firma scannerizzata, non è un disegno, non è un timbro grafico.
È un processo tecnico basato su alcuni elementi fondamentali:
- il documento;
- l’hash del documento;
- la chiave privata;
- la chiave pubblica;
- la verifica della firma.
In quel modello, il documento produce una sua impronta. Quell’impronta viene firmata con la chiave privata. Chi riceve il documento può verificare la firma usando la chiave pubblica.
Ma nella vita reale manca ancora una domanda importante.
Come faccio a sapere che quella chiave pubblica appartiene davvero a una certa persona?
È qui che la firma digitale diventa qualcosa di più concreto.
Entrano in gioco i certificati digitali, le autorità di certificazione, i formati dei documenti firmati, i file .p7m, i PDF firmati, la PEC, SPID, CIE e tutti quegli strumenti che incontriamo quando dobbiamo firmare o verificare un documento digitale.
Questo articolo serve proprio a mettere ordine.
Il problema non è solo firmare: è fidarsi
La crittografia ci permette di fare una cosa molto potente: verificare che una firma corrisponda a una certa chiave pubblica.
Ma questo, da solo, non basta.
Immaginiamo una situazione semplice.
Alice firma un documento. Bob riceve il documento, la firma e una chiave pubblica. Tecnicamente Bob può verificare che quella firma sia compatibile con quella chiave pubblica.
Ma come fa Bob a sapere che quella chiave pubblica appartiene davvero ad Alice?
Questo è il punto.
La matematica può dirci che una firma corrisponde a una chiave. Ma per sapere a chi appartiene quella chiave serve un sistema di fiducia.
Nel mondo reale questo sistema passa attraverso i certificati digitali.
Che cos’è un certificato digitale
Un certificato digitale può essere visto come una carta d’identità tecnica.
Non è una carta d’identità nel senso tradizionale, ma svolge una funzione simile: collega un’identità a una chiave pubblica.
Un certificato digitale contiene informazioni come:
- il titolare del certificato;
- la chiave pubblica associata;
- il periodo di validità;
- l’autorità che ha rilasciato il certificato;
- eventuali informazioni sulla revoca o sullo stato del certificato.
Il certificato, in sostanza, dice:
questa chiave pubblica è associata a questo soggetto, secondo le verifiche fatte da un’autorità competente.
Questo cambia completamente il valore della verifica.
Senza certificato avremmo una verifica tecnica.
Con il certificato possiamo collegare quella verifica a una identità.
Il ruolo delle Certification Authority
Una Certification Authority, spesso abbreviata in CA, è un soggetto che rilascia certificati digitali.
Il suo compito è verificare l’identità del titolare e rilasciare un certificato che colleghi quella identità a una chiave pubblica.
Quando un software verifica una firma digitale, quindi, non si limita a controllare se la firma “torna” dal punto di vista matematico.
Controlla anche altre cose:
- il certificato è valido?
- il certificato è scaduto?
- il certificato è stato revocato?
- l’autorità che lo ha rilasciato è riconosciuta?
- la catena di fiducia è corretta?
- il documento è stato modificato dopo la firma?
Questi controlli servono a trasformare una verifica tecnica in una verifica utile nella vita reale.
Non ci interessa solo sapere che una firma corrisponde a una chiave. Ci interessa sapere se quella firma è riconducibile a una persona, a un professionista, a un’azienda o a un ente.
La chiave privata è il punto più delicato
La firma digitale si basa su una distinzione fondamentale:
- la chiave privata serve a firmare;
- la chiave pubblica serve a verificare.
La chiave pubblica può essere distribuita. La chiave privata, invece, deve restare sotto il controllo del titolare.
Questo è essenziale.
Se qualcuno potesse usare la nostra chiave privata senza autorizzazione, potrebbe produrre firme tecnicamente valide. Per questo la protezione della chiave privata è uno dei punti più importanti di tutto il sistema.
Nella pratica la chiave privata può essere custodita in modi diversi:
- smart card;
- token USB;
- dispositivo sicuro;
- firma remota;
- servizi gestiti da un prestatore qualificato;
- sistemi protetti da PIN, password o codici temporanei.
Quando un sistema di firma ci chiede un PIN o una conferma, non lo fa per complicarci la vita.
Lo fa perché sta proteggendo l’uso della chiave privata.
La firma digitale ha senso solo se la chiave privata resta sotto il controllo del titolare.
PDF firmato e file .p7m: perché li incontriamo così spesso
Quando parliamo di documenti firmati digitalmente, nella pratica incontriamo spesso due casi.
Il primo è il PDF firmato.
In questo caso il documento resta un PDF. Possiamo aprirlo con un lettore compatibile, leggere il contenuto e vedere le informazioni sulla firma.
Il secondo caso è il file .p7m.
Un nome tipico può essere:
contratto.pdf.p7m
Molte persone si confondono davanti a questi file.
Provano ad aprirli come normali PDF, il visualizzatore non li legge, e pensano che il file sia corrotto o sospetto.
In realtà non è necessariamente così.
Un file .p7m è spesso una busta di firma. Contiene il documento e le informazioni necessarie per verificare la firma.
Il documento può essere un PDF, ma il file finale non è più semplicemente un PDF. È un contenitore firmato.
Per questo serve un software adatto per aprirlo, estrarre il contenuto e verificare la firma.
Il punto importante è questo:
non basta riuscire ad aprire un documento. Bisogna anche verificare la firma.
Un file può essere leggibile ma avere una firma non valida. Oppure può essere correttamente firmato, ma richiedere un programma specifico per essere aperto e verificato.
Firma digitale, PEC, SPID e CIE non sono la stessa cosa
Una delle confusioni più comuni riguarda il rapporto tra firma digitale, PEC, SPID e CIE.
Sono tutti strumenti importanti della vita digitale, ma non fanno la stessa cosa.
La firma digitale serve a firmare un documento.
Il suo scopo è collegare un documento a un firmatario e permettere di verificare che il contenuto non sia stato modificato dopo la firma.
La PEC, invece, serve a inviare comunicazioni con valore legale legato alla trasmissione.
Con la PEC possiamo dimostrare l’invio, la ricezione e le ricevute associate a una comunicazione.
SPID e CIE servono invece a identificarsi verso servizi digitali.
Li usiamo per accedere a un portale, entrare in un servizio pubblico, autenticarci come cittadini o come utenti.
Possiamo riassumere così:
| Strumento | A cosa serve |
|---|---|
| Firma digitale | Firmare un documento |
| PEC | Inviare una comunicazione con ricevute |
| SPID | Identificarsi verso servizi digitali |
| CIE | Identificarsi verso servizi digitali |
Naturalmente questi strumenti possono essere usati insieme.
Posso firmare digitalmente un documento e poi inviarlo via PEC.
Posso accedere con SPID a un portale e caricare un documento firmato.
Posso usare la CIE per identificarmi verso un servizio online.
Ma non sono sinonimi.
Dire “ho mandato una PEC” non significa automaticamente “ho firmato digitalmente il documento”.
Dire “ho SPID” non significa automaticamente “ho una firma digitale qualificata”.
Ogni strumento risponde a una domanda diversa.
Chi sei? SPID o CIE.
Hai inviato una comunicazione? PEC.
Hai firmato quel documento e il documento è rimasto integro? Firma digitale.
Un esempio concreto: inviare un contratto firmato
Facciamo un esempio semplice.
Devi inviare un contratto firmato.
Una possibilità è stampare il documento, firmarlo a penna, scannerizzarlo e inviarlo via email. Oppure potresti inserire l’immagine della tua firma dentro il PDF.
Questa soluzione può sembrare comoda, ma dal punto di vista tecnico è debole.
La firma può essere copiata. Il documento può essere modificato. Chi riceve il file deve fidarsi del contesto, della mail, della relazione tra le parti o di altri elementi esterni.
Con la firma digitale il ragionamento cambia.
Il documento viene legato a una firma. La firma viene prodotta usando una chiave privata. La chiave pubblica permette la verifica. Il certificato collega la chiave pubblica all’identità del firmatario.
Se il documento cambia, la verifica non torna più.
Questo è il salto di qualità.
Non stiamo più dicendo:
sul documento c’è qualcosa che somiglia a una firma.
Stiamo dicendo:
questo documento è collegato a una firma verificabile, associata a una chiave e a un certificato, e il contenuto non risulta modificato dopo la firma.
È una frase più lunga, ma è molto più forte.
Il ciclo completo della firma digitale
Possiamo riassumere il ciclo della firma digitale così:
Documento
↓
Hash del documento
↓
Firma dell'hash con chiave privata
↓
Documento firmato
↓
Verifica con chiave pubblica
↓
Controllo del certificato
↓
Esito: valido / non valido
Questo schema ci aiuta a non perdere il filo.
Il documento produce un’impronta.
L’impronta viene firmata con la chiave privata.
Chi riceve il documento usa la chiave pubblica per verificare la firma.
Il certificato permette di collegare la chiave pubblica a una identità.
Il software di verifica controlla anche validità, scadenza, revoca e catena di fiducia.
Alla fine otteniamo un esito.
Valido non significa “il contenuto è giusto”.
Valido significa che i controlli previsti sono andati a buon fine.
Perché OpenSSL è utile per capire
Nel video facciamo anche una demo con OpenSSL.
È importante chiarire subito una cosa: una demo con OpenSSL non sostituisce una firma digitale qualificata.
Non stiamo creando una firma da usare per firmare un contratto reale. Stiamo solo guardando il principio tecnico.
Con OpenSSL possiamo:
- generare una chiave privata;
- ricavare una chiave pubblica;
- creare un file;
- firmarlo;
- verificarlo;
- modificare il file;
- vedere che la verifica fallisce.
Il comando di verifica che restituisce:
Verified OK
ci dice che la firma è coerente con quel documento e con quella chiave pubblica.
Se poi modifichiamo il documento e rilanciamo la verifica, otteniamo un errore.
Questo rende visibile il concetto più importante: la firma digitale è legata al contenuto.
Non posso cambiare il documento e pretendere che la firma resti valida.
La firma digitale lega identità e contenuto
A questo punto possiamo sintetizzare tutto in una frase.
La firma digitale lega identità e contenuto.
Da una parte c’è il soggetto che firma.
Dall’altra parte c’è il documento.
In mezzo ci sono hash, chiavi, certificati e verifiche.
Quando verifichiamo una firma digitale vogliamo rispondere a due domande:
- chi ha firmato?
- che cosa ha firmato?
La prima domanda riguarda l’identità.
La seconda riguarda il contenuto.
Il certificato ci aiuta sulla prima domanda.
L’hash del documento ci aiuta sulla seconda.
Se il documento cambia, cambia l’hash. Se cambia l’hash, la firma non torna più.
Per questo la firma digitale non è una decorazione del documento.
È un legame tecnico tra un firmatario e un contenuto specifico.
Cosa non fa la firma digitale
Dopo aver capito quanto è importante, bisogna evitare un errore: pensare che la firma digitale risolva tutto.
Non è così.
La firma digitale non significa automaticamente che il contenuto del documento sia vero.
Se firmo una dichiarazione falsa, la firma può essere valida, ma il contenuto resta falso.
La firma digitale non significa che il documento sia conveniente.
Se firmo un contratto svantaggioso, la firma non lo rende migliore.
La firma digitale non significa che il firmatario abbia letto con attenzione.
Si può firmare senza leggere anche nel mondo digitale.
La firma digitale non significa che il file sia segreto.
Un documento firmato può essere leggibile da chiunque lo possieda. Se voglio riservatezza, devo parlare di cifratura.
La firma digitale non impedisce al file di essere copiato.
Posso copiare un file firmato su più dispositivi. La firma riguarda integrità e autenticità, non l’impossibilità di copia.
Quindi cosa dice davvero una firma digitale?
Dice che quel documento è stato firmato da quel soggetto, o comunque tramite la chiave privata associata a quel certificato, e che il contenuto non risulta modificato dopo la firma.
È già moltissimo.
Ma non è tutto.
Perché è importante capirla
La firma digitale è uno degli strumenti fondamentali della vita digitale.
È importante perché permette di dare valore a documenti che non vivono più sulla carta, ma dentro file.
Nel mondo fisico siamo abituati a carta, penna, timbri, firme autografe e originali.
Nel mondo digitale un file può essere copiato, modificato e inviato in pochi secondi.
Per questo abbiamo bisogno di strumenti che non si basino sull’apparenza, ma sulla verifica.
La firma digitale non ci chiede di guardare un documento e dire “sembra firmato”.
Ci permette di dire: la verifica è coerente con questo documento, con questa chiave e con questo certificato.
Questo cambia il modo di pensare.
Più i processi diventano digitali, più diventa importante capire questi concetti.
Non per diventare esperti di crittografia.
Ma per usare meglio gli strumenti che incontriamo ogni giorno: documenti firmati, file .p7m, PDF con firma, PEC, portali pubblici, SPID, CIE, software di verifica e servizi di firma remota.
Conclusione
La firma digitale non è magia.
Non è un timbro misterioso.
Non è una firma scannerizzata più elegante.
È un meccanismo tecnico costruito su hash, chiavi, certificati e verifiche.
Il suo valore sta nel collegare una identità a un contenuto e nel permettere di verificare se quel contenuto è rimasto integro dopo la firma.
La frase da ricordare è questa:
la firma digitale non protegge il documento perché lo nasconde, ma perché rende verificabile chi lo ha firmato e se è stato modificato.
Questo è il cuore del meccanismo.
Ed è anche il motivo per cui vale la pena capirlo, anche senza essere specialisti di sicurezza informatica.
Prossimi approfondimenti
Da questo argomento partono molti collegamenti interessanti:
- hash e impronte digitali dei file;
- certificati digitali;
- HTTPS;
- crittografia simmetrica e asimmetrica;
- PEC, SPID, CIE e identità digitale;
- strumenti open source per firmare e verificare file.
Se vuoi capire davvero la sicurezza informatica, non partire dagli strumenti.
Parti dai concetti.