La firma digitale, bella cosa
ma sconosciuta a chi dovrebbe usarla per legge
In Italia siamo bravi a scrivere leggi quasi quanto a disattenderle. Per furbizia, spesso, ma anche, come in questo caso, per semplice ignoranza o pigrizia.
Noi abbiamo in vigore già dal 2005, con vari aggiornamenti e revisioni successive, una cosa bellissima che si chiama: Codice di Amministrazione Digitale (CAD).
Questo codice, tra le altre cose, include anche il cosiddetto Decreto sulla dematerializzazione, secondo il quale dal dicembre 2016 la carta deve sparire dagli uffici delle pubbliche amministrazioni, scuole e università incluse. Ve ne siete accorti? No. Al più di questa operazione avete percepito e, a volte, sofferto il modo bizantino, surreale e quasi kafkiano con il quale è stato operativamente tradotto.
Ad esempio, la firma. Uno dice: “non c’è problema”. E prende il documento scritto in Word (in formato già digitale in origine, dunque), lo stampa, lo firma con la penna BIC blu (quello che era digitale si trasforma in analogico), quindi lo passa allo scanner ottenendo una versione nuovamente digitale ma come immagine jpg, infine inserisce l’immagine in un nuovo documento word, lo salva in pdf e dice: “ecco il documento in digitale, firmato digitalmente. Legge rispettata!”.
No, non funziona così.
A me capita di frequente di partecipare a bandi scolastici relativi a progetti di formazione. Ci fosse stata una volta, dico una, che il dirigente scolastico mi avesse chiesto di firmare l’incarico digitalmente e non piuttosto con qualche metodo bizzarro (non sempre la scuola era abbastanza vicina per andarci apposta a vergare firma ad inchiostro). Anzi no, tra le varie decine, una sola scuola di Roma lo ha fatto. Una sola. Per tutte le altre, la firma digitale è una sòla (solo i romani possono capire la stupida ironia dell’accento con cui ho voluto alleggerire la narrazione, gli altri pazienza, ndr).
Con la firma digitale, fatta bene, si evitano carte, alle volte lunghi viaggi o spedizioni intricate, scansioni carpiate con avvitamenti, tempo e soldi. Vabbè, non credo di dover star qui a rimarcare i vantaggi di questo sistema con il quale si possono legalmente sottoscrivere contratti, incarichi, compravendite, eccetera. Andiamo oltre.
Vediamo piuttosto cosa è esattamente una firma digitale, come funziona, come averla, come si usa.
La firma digitale è il tipo più completo e sicuro di firma elettronica. Gli altri tipi (semplice, avanzata) non ci interessano, sono palliativi. L’unico tipo davvero valido è la firma elettronica qualificata basata su crittografia asimmetrica a doppia chiave: firma digitale, per gli amici.
Si tratta di una delle tante applicazioni della matematica, disciplina bellissima e preziosa, ingiustamente bistrattata e odiata a scuola. È bella davvero. In particolare, nel campo della crittografia, molto dobbiamo all’altrettanto odiato e bistrattato genio della matematica che ha tra le altre cose posto le basi dell’informatica moderna: Alan Turing.
Vediamo come funziona. Nota bene: tutto si svolge in digitale, niente carta, niente scanner.
Supponiamo che Marco debba avere soldi da Luigi e vuole da Luigi un impegno scritto a riguardo. Luigi apre Word o un qualunque editor testi e scrive: «Luigi deve a Marco 1000 euro». Salva il documento e ora vuole darlo a Marco come prova dell’impegno. Marco dice: «ok, ma voglio la tua firma sul documento». Luigi è un tipo digitale conforme al CAD e dice: «Non c’è problema». Apre un’applicazione per la firma digitale, inserisce la sua password privata e ottiene un file criptato, di solito con estensione .p7m, quindi passa il file a Marco, via mail o come altro preferisce. Marco, ottenuto il file, per aprirlo non può usare un semplice editor di testi tipo Word, non vedrebbe infatti altro che una serie astrusa di simboli, il file è criptato. Deve invece usare un’applicazione specifica che riconosce il tipo di file, capisce che è stato firmato digitalmente, decripta il file grazie alla password pubblica di Luigi (da cui doppia chiave) e ricostruisce il contenuto: «Luigi deve a Marco 1000 euro».
Marco, a questo punto, può anche dimostrare davanti a un giudice che Luigi gli deve 1000 euro, che chi ha firmato è proprio Luigi e che Luigi non può ripudiare quanto ha sottoscritto. Luigi, da parte sua, dimostra che deve dare proprio 1000 euro e non magari 2000 come Marco, se fosse disonesto, potrebbe tentare di far credere aprendo con Word il documento decriptato, cambiando 1000 con 2000.
Cosa serve a Luigi e a Marco per realizzare questo scenario? E come questo sistema è considerato sicuro, robusto e legale al pari e, direi, più della firma autografa su pezzi di carta davanti ad un notaio?
Andiamo più sul tecnico.
Il documento scritto da Luigi deve essere criptato con la chiave privata dello stesso Luigi. Questo è il momento in cui Luigi appone la sua firma digitale al documento. Tecnicamente questo significa che Luigi innanzitutto dispone di una chiave/password privata, segreta, che conosce solo lui insomma e che a quella chiave è associata la sua identità. Vedremo più avanti come in dettaglio si stabilisce questa associazione e chi la certifica.
Per fare questa operazione, Marco usa un’applicazione per la gestione della firma digitale. In genere queste applicazioni vengono usate sia per firmare i documenti sia per aprire/decriptare documenti firmati da altri. Un software gratuito che offre questo servizio, ad esempio, è Dike della InfoCert. Qualunque documento digitale può essere firmato: un file word, un pdf, un excel, eccetera, purché non abbia al suo interno codice o macro eseguibili. Devono essere cioè file di soli dati non contenenti azioni eseguibili alla loro apertura.
Il file che si ottiene, in formato .p7m contiene tre cose:
- il contenuto vero e proprio del documento
- la chiave pubblica di Luigi
- il certificato che attesta che quella chiave appartiene proprio a Luigi
Il programma che appone la firma compie queste azioni per ottenere il file .p7m firmato:
- elabora il contenuto del documento con un particolare algoritmo, detto hash e ottiene a seguito di questa elaborazione una particolare stringa alfanumerica chiamata impronta o anche digest del documento. Insomma, immaginiamo ad esempio che il contenuto: «Luigi deve a Marco 1000 euro», produca l’impronta: x352xv12 (in realtà è più lunga, almeno di 160 bit, ma questa è tecnicaglia di dettaglio che al momento non ci interessa troppo)
- l’impronta viene criptata/cifrata, utilizzando la chiave/password privata di Luigi
- Il documento firmato viene costruito mettendo insieme il contenuto vero e proprio, in chiaro, l’impronta del documento criptata usando la chiave privata di Luigi, la chiave pubblica di Luigi e il certificato di identità di Luigi che garantisce che quella chiave è proprio di Luigi
Quando Marco ottiene il file da Luigi, per aprirlo deve a usa volta utilizzare un software di gestione della firma digitale, può essere lo stesso Dike o un altro qualsiasi, purché conforme agli standard definiti dalla firma digitale. Il software apre il file ed estrae il contenuto vero e proprio. Questo contenuto lo sottopone allo stesso algoritmo di hash per ottenerne l’impronta.
Quindi usa la chiave pubblica di Luigi inserita nel documento per decriptare l’impronta inclusa nel file firmato. Se le due impronte non coincidono, vuol dire che il contenuto è stato illegalmente modificato. Il documento firmato non è valido. Marco, probabilmente, ha voluto fare il furbo, cambiando 1000 euro con 2000 euro, ma il software lo ha sgamato.
Se invece le impronte coincidono, il software procede con il verificare la validità del certificato di identità di Luigi. Se è valido, allora si conclude che quel documento, con quell’esatto contenuto è firmato da Luigi, proprio lui. E Luigi non lo può negare.
Chi fornisce le chiavi pubbliche e private e chi certifica e garantisce l’identità e l’associazione delle chiavi alle rispettive persone? Insomma, chi fa il notaio?
Le Autorità di Certificazione (CA, Certification Authority, in inglese). Queste rilasciano le credenziali per apporre firma digitale, in genere fornendo anche kit fatti di oggetti che sembrano penne USB e che in realtà contengono i certificati di identità.
In definitiva, per avere una firma digitale, basta rivolgersi ad una di queste società accreditate, quali la citata InfoCert, Aruba e altri e seguire le semplici istruzioni fornite.
Un’ultima cosa: chi garantisce che il certificato di identità di Luigi sia stato effettivamente rilasciato da una Autorità di Certificazione e qual è la particolare Autorità che lo ha rilasciato? Insomma, chi è il notaio dell’operazione?

La garanzia è data dal fatto che anche il certificato di identità è sua volta firmato digitalmente, questa volta dall’autorità di certificazione. Il certificato di identità, cioè, è criptato con la chiave privata dell’autorità di certificazione. Il software di Marco userà la chiave pubblica dell’autorità di certificazione per risalire al certificato di Luigi e quindi alla chiave pubblica di Luigi e infine al documento originario firmato da Luigi.
Tutto robusto, immediato, nonostante la macchinosità della spiegazione, semplice e, soprattutto, legale. Perfettamente legale.
Firmate e fate firmare digitalmente i documenti. Le foreste dell’Amazzonia (e non solo quelle) ve ne saranno eternamente grate.

