La firma digitale: cosa c’è sotto
La firma digitale funziona grazie alla crittografia asimmetrica. La crittografia consente, attraverso l’applicazione di un algoritmo [1]Sequenza determinata di operazioni elementari ben definite che porta a un risultato in un tempo finito., di rendere incomprensibile (cifrare) un messaggio se non a chi è in possesso della chiave per interpretarlo (decifrarlo). Nel mondo digitale, ricordiamo, ogni messaggio – espresso come sequenza di bit, cioè di 0 e 1 – è un numero: per questo si usano algoritmi matematici per cifrare e decifrare. In definitiva, la firma digitale è una questione matematica.
Nella crittografia asimmetrica sono coinvolte due chiavi distinte[2]Qui non ci interessa come si ottengono le chiavi (di solito sono metodi che riguardano la fattorizzazione in numeri primi di numeri molto ma molto grandi), né cosa rende un sistema crittografico e … Continue reading, ciascuna delle quali è in grado di cifrare un messaggio e decifrare il messaggio cifrato con l’altra chiave.
Nei meccanismi di firma digitale una delle due chiavi è privata, l’altra è pubblica. Per questo si parla anche di crittografia a chiave pubblica. La chiave privata è custodita gelosamente dal suo proprietario, quella pubblica è tendenzialmente nota a tutti o, quanto meno, ai possibili destinatari del messaggio. La chiave pubblica, con opportuni accorgimenti, può essere trasmessa insieme al messaggio cifrato.
Nella firma digitale non si cifra l’intero messaggio (file) ma la sua impronta digitale, che è una stringa di lunghezza fissa estratta dal messaggio che, di fatto, è unica per ogni messaggio[3]A rigore matematico non è esattamente così. I messaggi possibili sono infiniti, mentre le possibili stringhe di lunghezza finita sono evidentemente in numero finito, ma in numero sufficiente grande … Continue reading.
La chiave privata, custodita dal firmatario (nella smart card, nella chiavetta USB o nel server di firma remota), cifra quindi l’impronta del file da firmare. L’impronta cifrata è inserita in un pacchetto insieme al file originale e alla chiave pubblica per decifrare il messaggio unita ai dati anagrafici (nome e cognome) del firmatario. Poiché alla fine chiunque può generare coppie di chiavi crittografiche e associare a messaggi firmati un nome e un cognome qualsiasi, nella firma digitale entrano in gioco i certificatori[4]Nel linguaggio normativo attuale si chiamano “prestatori di servizi fiduciari qualificati”. In gergo digitale si chiamano anche certification authority (CA). Il certificatore appone a sua volta una firma alla chiave pubblica associata ai dati anagrafici del firmatario: in questo modo è un soggetto terzo e autorevole che assicura sull’identità di chi detiene la chiave privata per la firma[5]Le chiavi pubbliche per “validare” la firma dei certificatori sono custodite e rese totalmente pubbliche in appositi registri detenuti da un’autorità riconosciuta universalmente … Continue reading. Chi riceve il messaggio, quindi, tramite il software di verifica:
- estrae la chiave pubblica dal messaggio verificando che sia garantita da un certificatore;
- estrae il file originale e ne calcola l’impronta;
- applica la chiave pubblica all’impronta cifrata e verifica che coincida con l’impronta calcolata.
Se tutto torna, la firma è valida e si raggiungono due risultati: certezza della provenienza (autore) e integrità del documento firmato, cioè che questo non si è alterato durante la trasmissione, altrimenti l’impronta calcolata dal destinatario non coinciderebbe con quella comunicata dal mittente.
Ci sono poi ulteriori accorgimenti normativi e organizzativi che conferiscono affidabilità al sistema di firma digitale. Per esempio, la chiave privata non può essere estratta dal dispositivo di firma (la cifratura dell’impronta avviene nel chip della smart card), a garanzia del fatto che resti sempre sotto la custodia del suo titolare.
La crittografia asimmetrica si può usare anche nel verso opposto: cifrare con la chiave pubblica e decifrare con la chiave privata. In questo modo chiunque può cifrare il messaggio ma solo chi detiene la chiave privata può leggerlo. Questo consente quindi di garantire la riservatezza del messaggio. Si possono combinare anche le due operazioni e applicare prima la propria chiave privata e poi la chiave pubblica del destinatario: si garantiscono così insieme riservatezza, provenienza e integrità del messaggio.
Per ulteriori dettagli tecnici (ma non troppo) e spunti matematici per orientarsi nella pratica, si rimanda a un post di approfondimento.
Immagine di mohamed Hassan da Pixabay
Note
↑1 | Sequenza determinata di operazioni elementari ben definite che porta a un risultato in un tempo finito. |
---|---|
↑2 | Qui non ci interessa come si ottengono le chiavi (di solito sono metodi che riguardano la fattorizzazione in numeri primi di numeri molto ma molto grandi), né cosa rende un sistema crittografico e una coppia di chiavi sicuri (la sicurezza consiste, fra l’altro, nel valutare quanto sia difficile risalire a una chiave conoscendo l’altra). |
↑3 | A rigore matematico non è esattamente così. I messaggi possibili sono infiniti, mentre le possibili stringhe di lunghezza finita sono evidentemente in numero finito, ma in numero sufficiente grande da evitare collisioni, cioè che messaggi distinti – soprattutto se sensati – abbiano stessa impronta. |
↑4 | Nel linguaggio normativo attuale si chiamano “prestatori di servizi fiduciari qualificati”. In gergo digitale si chiamano anche certification authority (CA). |
↑5 | Le chiavi pubbliche per “validare” la firma dei certificatori sono custodite e rese totalmente pubbliche in appositi registri detenuti da un’autorità riconosciuta universalmente degna di fiducia, in Italia l’Agenzia per l’Italia Digitale – AgID. In sintesi il sistema di firma digitale funziona perché mette insieme l’assolutamente segreto (la chiave privata del firmatario) e l’assolutamente conosciuto (il registro delle chiavi pubbliche dei certificatori). |