Crittografia e firma digitale per le email: guida a Thunderbird

Con la crittografia a chiave pubblica è possibile criptare e firmare (firma digitale) le proprie email, aumentando il livello di sicurezza e privacy delle nostre comunicazioni.

Abbiamo già pubblicato una guida su cifratura e firma digitale delle email con Thunderbird, il noto client di posta elettronica; abbiamo introdotto concetti quali la firma digitale, mostrando come creare e gestire le chiavi pubbliche e private.

Il rilascio di una nuova versione di Thunderbird ha introdotto alcuni cambiamenti alla procedura illustrata e questo ci da' l'occasione di pubblicare una guida aggiornata su crittografia ed email.

Con la nostra precedente guida su come cifrare e firmare le email con Thunderbird abbiamo visto come utilizzare la crittografia a chiave pubblica per rendere più sicure le comunicazioni via email, secondo uno standard elevato di sicurezza e privacy. Abbiamo visto i passaggi necessari per cifrare, decifrare e firmare le email per mezzo di Thunderbird, un noto client di posta elettronica, e una estensione chiamata Enigmail.

Successivamente alla pubblicazione della guida, il rilascio di Thunderbird 78 ha reso obsoleta Enigmail, ora non più installabile. Adesso Thunderbird 78 non ha più bisogno di componenti aggiuntivi per l'implementazione della crittografia asimmetrica o a chiave pubblica: a ciò provvede autonomamente con delle nuove funzionalità.

Da un punto di vista operativo, le differenze con la precedente versione sono poche e i passaggi sono più o meno gli stessi, trattandosi degli step propri alla crittografia a chiave pubblica.

Pertanto, la nostra precedente guida su crittografia ed email risulta da un lato superata, essendo uscita di scena Enigmail; allo stesso tempo, risulta ancora utile dal momento che introduce concetti come chiavi pubbliche e private, firma digitale e hash, che riprenderemo con questa nuova guida.

In ogni caso, è consigliato l'aggiornamento a Thunderbird 78: la precedente versione (68) non riceve più aggiornamenti di sicurezza dal Settembre 2020.

Prima di cominciare, è necessaria una breve premessa sulla crittografia asimmetrica o a chiave pubblica.



La crittografia a chiave pubblica

Per cifrare le email Thunderbird fa' uso della crittografia a chiave pubblica: abbiamo introdotto l'argomento nel nostro articolo Chiavi pubbliche e private: Bitcoin e la crittografia a chiave pubblica.
Qui ci limitiamo a delinearne gli aspetti fondamentali.

Abbiamo visto che la crittografia a chiave pubblica consente di :

  • cifrare
  • decifrare
  • firmare

un messaggio email.

Per far questo, è necessario avere una coppia di chiavi:

  • una privata, da tenere segreta
  • una pubblica, da far avere a chi vorremo consentire di inviarci un messaggio cifrato.

Una chiave è nient'altro che un numero molto grande.

La chiave privata è un numero generato a caso e va tenuta segreta; da questa, un algoritmo crea la chiave pubblica.

Le due chiavi sono dunque "sorelle" e tra loro sussiste una relazione matematica, definita dall'algoritmo, che consente di ricavare la pubblica dalla privata, ma non il contrario.

Ecco perché la chiave pubblica può essere comunicata: da questa non è possibile risalire a quella privata che l'ha generata e che deve rimanere sempre segreta.

Cifrare e decifrare un messaggio

Con la chiave pubblica il mittente cifra un messaggio: questo sarà decifrabile solo da chi possiede la corrispondente chiave privata (il destinatario).

In sintesi:

Intendo comunicare con un mio amico in maniera sicura e gli faccio avere la mia chiave pubblica; il mio amico cifra con questa il messaggio che vuole inviarmi. Solo io potrò decifrare il messaggio per mezzo della chiave privata "sorella" di quella pubblica con la quale il messaggio è stato cifrato.

Firma digitale email

Lo scopo della firma digitale è provare che un messaggio:

  1. provenga effettivamente da chi sembra esserne l'autore;
  2. non sia stato alterato dopo il suo invio.

Con la firma digitale entra in gioco un secondo algoritmo: l'algoritmo di hash.

Un efficace algoritmo di hash traduce un determinato input in un codice univoco: ove l'input cambi anche di una virgola, il codice prodotto, detto appunto hash, sarà diverso e lo sarà in maniera non prevedibile.

Pertanto, con la firma digitale:

  • il mittente:
    1. genera l'hash del messaggio che intende inviare: il messaggio diventa l'input per l'algoritmo di hash che lo traduce in un codice (l'hash)
    2. cifra l'hash così ottenuto con la propria chiave privata
    3. infine: allega l'hash cifrato (la "firma") al messaggio e li invia insieme
  • il destinatario:
    1. produce l'hash del messaggio ricevuto con lo stesso algoritmo usato dal mittente
    2. decritta l'hash cifrato ricevuto con la chiave pubblica del mittente.
    3. infine: confronta l'hash decrittato così ottenuto con l'hash "firma" allegata al messaggio dal mittente. Ove i due hash coincidano, è provata:
      • la provenienza: solo il titolare della chiave privata poteva cifrare l'hash in maniera che io con la corrisponente chiave pubblica potessi decifrarlo;
      • l'originalità : se il messaggio venisse intercettato e modificato, il procedimento di verifica effettuato dal destinatario produrrebbe un hash diverso da quello prodotto dal mittente.

Passiamo adesso a Thunderbird e agli utilizzi pratici della crittografia a chiave pubblica.


Guida a Thunderbird e OpenPGP

La guida parte dall'ABC: illustra tutti i passaggi necessari ad un utente che per la prima volta utilizza le funzionalità di Thunderbird che consentono di cifrare, decifrare firmare le email.

NOTA BENE: la guida presuppone che l'utente abbia già impostato un account di posta elettronica su Thunderbird; in caso contrario, è consigliata la consultazione del supporto ufficiale a Thunderbird.

L'utente che ha seguito la nostra precedente guida e che ha già utilizzato Enigmail con precedenti versioni di Thunderbird può saltare a Come migrare le impostazioni di Enigmail.

Se invece già si possiedono delle chiavi: Come importare le chiavi.


Creazione chiavi

Il primo step consiste nel creare una coppia di chiavi ed associarla ad un account di posta elettronica.

Aprendo Thunderbird, a sinistra, sotto Posta in arrivo selezionare l'account di posta che vogliamo associare alle chiavi che andiamo a creare.

Crea chiavi OpenPGP con Thunderbird

In alto, Modifica > Impostazioni account.

Impostazioni account email

Si apre pagina con le impostazioni dell'account selezionato.

seleziona account email openPgp

Selezionare Crittografia end-to-end.

Dobbiamo creare la coppia di chiavi da associare a questo indirizzo di posta elettronica. Vedremo in seguito come fare se abbiamo già una coppia di chiavi e la vogliamo importare.

Per creare la coppia di chiavi, selezionare Aggiungi Chiave.

Crittografia end-to-end-Thunderbird Crea nuova chiave OpenPGP Impostazioni chiavi OpenPGP

Scadenza chiave

È possibile impostare una scadenza per la chiave: una chiave scaduta non è più utilizzabile. Cosa comporta questo? Ci sono due scenari:

Scenario A: perdo la chiave privata, ma questa non cade in "mani sbagliate". La chiave pubblica sarà ancora in possesso di chi la utilizzerà per cifrare i messaggi da inviarmi: non avendo la chiave privata, la sola che può decifrare i messaggi cifrati con la corrispondente chiave pubblica, non potrò mai decifrare quei messaggi; tale inconveniente durerà fintanto la chiave non scade: una volta scaduta, la chiave pubblica non è più utilizzabile per cifrare.

Scenario B: la chiave privata cade nelle mani sbagliate. L'aver previsto un termine di durata per la chiave non è di nessuna utilità. Chi ha accesso alla chiave privata può anche prolungarne la durata.

Il consiglio è quello di non contare sulla durata limitata della chiave come misura di sicurezza: come abbiamo visto, nello scenario A non impedisce che fintantoché la chiave è valida ci vengano inviati messaggi cifrati che non possiamo decifrare, mentre nello scenario B chi ha la chiave può cambiarne la durata (continuando a decifrare messaggi diretti al titolare della chiave).

Inoltre, prevedendo una data di scadenza, prima che la chiave scada bisogna ricordarsi di modificare la data di scadenza.

Pertanto: si può scegliere o meno di prevedere una scadenza per la chiave, ma questo non ci assolve dal compito di custordirla con cura, creare copie di backup e, in breve, usarla responsabilmente.

Algoritmo e dimensione chiave

Algoritmo con cui creare la chiave. Al momento, a disposizione abbiamo RSA e ECC (crittografia a curva ellittica). In estrema sintesi, ECC produce chiavi di dimensioni minori garantendo il medesimo standard di sicurezza.

RSA è la scelta di default e lo è da tempo, mentre il supporto per ECC da parte di OpenPGP (lo standard seguito da Thunderbird) è più recente. Possiamo optare per RSA.

La dimensione della chiave incide sulla sicurezza. Sempre in estrema sintesi, possiamo dire che una chiave lunga è più sicura, per quanto richieda più risorse ogniqualvolta viene utilizzata. Possiamo selezionare 4096 (bit).

Genera chiave OpenPGP Chiave personale OpenPGP

Gestione delle chiavi

Abbiamo creato la nostra chiave, o meglio la nostra coppia di chiavi. Vediamo come gestirla.

Dal menu in alto andiamo su Strumenti > Gestore delle chiavi OpenPGP.

Gestore chiavi OpenPGP

Esportare chiavi

Aperta la finestra del Gestore delle chiavi, vedremo elencate le nostre chiavi: tanto quelle pubbliche di altre persone già importate, tanto le nostre coppie di chiavi. Per adesso visualizziamo solo le nostre chiavi; vedremo in seguito come importare le chiavi pubbliche di persone con cui corrispondere.

Selezioniamo la nostra chiave, poi dal menu in alto del Gestore: File.

Esporta chiavi PGP

Le operazioni che riguardano la nostra coppia di chiavi sono le 3 che abbiamo evidenziato in rosso. Con queste, è possibile:

  • esportare la chiave pubblica in un file;
  • inviarla direttamente via mail come allegato;
  • fare una copia di backup della chiave privata da conservare con cura: ALTAMENTE CONSIGLIATO.

Backup chiave privata

È fortemente raccomandato creare una copia di backup della chiave privata e conservarla su un supporto diverso dal computer sul quale la usiamo. In tal modo, in caso di furto del computer, o se questo divenisse inservibile, avremo ancora la chiave per decifrare i messaggi che verranno cifrati con la corrispondente chiave pubblica.

Al momento di creare la copia di backup dobbiamo impostare una password: se poi dimentichiamo la password non potremo utilizzare la copia di backup, ad esempio per importarla su un'altra installazione di Thundebird.

Fai attenzione:

La copia di backup della chiave richiede una password: se dimentichi la password non potrai utilizzare la copia di backup della chiave quando ne avrai bisogno.

Backup chiave segreta PGP

Importare chiavi

Attraverso il gestore delle chiavi, con le prime tre opzioni è possibile:

  • Importare le chiavi pubbliche: potremo utilizzare queste chiavi per inviare messaggi cifrati ai loro titolari (di nuovo: a chi detiene le corrispondenti chiavi private).
  • importare chiavi segrete: è possibile che una chiave privata sia protetta da una password, impostata al momento della creazione; questa ci verrà richiesta al momento di importarla.
  • importare un certificato di revoca: del certificato di revoca abbiamo parlato nella precedente guida.

Generare una nuova coppia di chiavi

Un metodo alternativo a quello fin qui visto per la creazione della coppia di chiavi: dal menu del Gestore delle chiavi andare su Genera > Nuova coppia di chiavi. Si apre una finestra simile a quella vista in predenza.

Nota bene: bisogna selezionare a quale account email associare le chiavi che andiamo a creare.

Aggiungi chiave PGP

Migrazione da Enigmail

Se avete usato le precedenti versioni di Thunderbird con Enigmail come illustrato nella nostra precedente guida, con l'aggiornamento a Thunderbird 78 dovrete importare le chiavi e le impostazioni da Enigmail. Vediamo come.

Strumenti > Migra le impostazioni di Enigmail

Si aprirà la pagina Arrivederci da Enigmail; cliccare su Avvia Migrazione Adesso.

Migrazione da Enigmail a Thunderbird 78

Avvia Migrazione

Avvia migrazione Enigmail a Thunderbird 78

Usare le chiavi

A questo punto dovrebbe essere chiaro che se vogliamo mandare una mail cifrata a qualcuno, dobbiamo avere la chiave pubblica di questo qualcuno. Abbiamo appena visto come importare le chiavi pubbliche.

Circa l'importazione delle chiavi pubbliche, si pone un problema.

Accettare le chiavi

Ricevo una chiave pubblica che ritengo appartenere ad un mio amico; mi servirò dunque di questa chiave per inviargli messaggi cifrati. Ma chi mi dice che la chiave appartenga veramente al mio amico?

Sarebbe possibile per qualcuno creare un indirizzo di posta elettronica con il nome del mio amico e inviarmi una chiave pubblica spacciandosi per il mio amico: io scriverò a questo indirizzo, cifrando le mail con la chiave pubblica inviatami e crederò falsamente di comunicare in maniera sicura con il mio amico...mentre invece sarà qualcun'altro a ricevere e decifrare i messaggi da me inviati.

Fai attenzione:

È fondamentale accertarsi della effettiva titolarità delle chiavi pubbliche che importiamo.

A tal fine, ogniqualvolta riceviamo una chiave, è buona norma incontrarsi con la persona che riteniamo essere titolare della chiave pubblica, e chiedergli di leggere l'impronta digitale della sua chiave. Se questa corrisponde a quella della chiave pubblica che abbiamo ricevuto, possiamo essere sicuri che la chiave gli appartenga.

Come ricavare l'impronta digitale di una chiave pubblica inviataci? Possiamo farlo al momento in cui la importiamo: ci viene mostrata l'impronta della chiave, l'indirizzo email al quale è associata e ci viene chiesto se ne abbiamo verificato la titolarità.

Importare chiavi PGP in Thunderbird 78

Se non possiamo verificare la chiave al momento, possiamo importarla senza accettarla e farlo in un secondo momento attraverso il Gestore delle chiavi.

Andiamo su Strumenti > Gestore delle chiavi OpenPGP > Proprietà Chiave ; tasto destro sulla chiave e poi Proprietà chiave:

Proprietà chiave OpenPGP Impronta digitale chiave PGP

Ricorda:

per poter usare una chiave pubblica dobbiamo averla accettata.

Invio di una mail cifrata

Utilizzando l'account al quale abbiamo associato il nostro paio di chiavi, comporre un messaggio indirizzato ad un destinatario di cui abbiamo la chiave pubblica.

In alto se clicchiamo su : Sicurezza | , Thunderbird ci fa' sapere che per il destinatario selezionato abbiamo la chiave pubblica.

Disponibilità chiave pubblica destinatario Thunderbird

Se invece clicchiamo su : Sicurezza | possiamo scegliere se:

Invia mail cifrata

Se seleziono Richiedi crittografia e invio il messaggio cifrato, questo è quello che visualizza il destinatario:

Invio email criptata con OpenPGP

La scritta OpenPGP a destra con il segno verde di spunta ci dice che la mail è stata correttamente decifrata. Se clicchiamo visualizziamo il messaggio che ci indica l'ID della chiave che abbiamo utilizzato per decifrare il messaggio. Tutto ok.

sicurezza messaggio OpenPGP

A questo punto, c'è da osservare: possiamo leggere il messaggio perché questo è stato decifrato da Thunderbird, sul nostro computer. Cosa è effettivamente salvato sul server del nostro fornitore di posta? Se effettuo il login e provo a leggere la mail, questo è quello che vedo:

Messaggio email cifrato

Questo vuol dire che:

Chiunque dovesse avere accesso al mio account di posta non potrebbe leggere il testo del messaggio cifrato inviatomi: questo viene salvato criptato sul server e decifrato solo sul mio computer, dove ho ho salvato anche le mie chiavi.

Firma digitale di una mail

Come abbiamo visto, possiamo apporre la nostra firma digitale alla mail, scegliendo se cifrare anche il messaggio oppure no.

Ricordiamo che:

La mail viene firmata con la chiave privata del mittente, sarà il destinatario a verificare la firma attraverso la chiave pubblica del mittente di cui deve essere già in possesso. Lo abbiamo visto all'inizio della nostra guida.

Una mail firmata, la cui firma è stata verificata, al destinatario si presenta così:

Email firma digitale

Invio di una mail cifrata e firmata

Finora abbiamo esposto cifratura e firma in maniera distinta, ma possiamo fare entrambe le cose: inviare una mail cifrata e firmata. Al destinatario si presenta così:

Invio di una mail criptata e firma digitale

Considerazioni

Niente password?

Per chi ha usato in passato Thunderbird con Enigmail, ricorderà che ogni chiave era protetta da una password, decisa al momento di creare la chiave: ad ogni uso della chiave era necessario inserire la password che la sbloccava.

Adesso, al momento di importare le chiavi create in precedenza, viene chiesta la password per ciascuna chiave privata che si importa. In seguito, non è più necessario; Thunderbird provvede autonomamente a creare una password casuale e la usa ogni volta che una chiave privata viene usata.

Questo vuol dire che chiunque ha accesso al nostro computer può usare Thunderbird e le nostre chiavi. Come proteggere le chiavi allora?

Creazione Master Password

È possibile proteggere la propria installazione di Thunderbird con una unica password, chiamata Master Password. Ad ogni avvio vi verrà chiesta la password: questo non protegge solo le vostre chiavi ma anche l'accesso ai vostri account di posta. Senza password, non è possibile usare Thunderbird.

Per impostare la Master Password, dal menu in alto: Modifica > Preferenze :

Master password Thunderbird Crea master password con Thunderbird

Conclusioni

Se avete seguito la guida fin qui, dovreste essere ora pronti a mettere in pratica quanto imparato; direi di provare.

Potete scaricare da qui la mia chiave pubblica e scrivermi a Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo..

Vi invito a scaricare la mia chiave ed utilizzarla come mostrato nella guida per mandarmi un messaggio cifrato.

Sarei contento di ricevere anche commenti e suggerimenti su come migliorare la guida, o chiarire quanto dovesse risultare poco chiaro.

Grazie per l'attenzione.


Vincenzo Lalli

Vincenzo Lalli

Di formazione legale, appassionato da sempre di tecnologia ed informatica; esperienza professionale acquisita a cavallo tra i due mondi, finora piuttosto lontani tra loro. Mi dedico ad esplorare le crescenti interazioni tra il Diritto e la tecnologia, e a dare il mio contributo alla causa dell'innovazione nel settore legale; a tal fine, ho dato vita ad Avvocloud.net.

Contatti


Creative Commons License
Leggi anche

Tecnologia

Come indicizzare un sito internet? Introduzione a Google Search Console
Mag 24, 2022
Un avvocato che si dedica ad un blog fa' un investimento, perlomeno in termini di tempo. ...
Che cos'è un token?
Mag 27, 2021
Una delle attualmente più discusse applicazioni della blockchain attiene agli NFT, acronimo di non ...
Come funziona Bitcoin?
Apr 30, 2021
Tutti ormai ne hanno sentito parlare, ma come funziona Bitcoin?Per cominciare, possiamo dire che ...