Per criptare le mail aziendali è possibile servirsi di Thunderbird, il noto client di posta elettronica. Cifrare le email aumenta il livello di sicurezza delle comunicazioni: la criptazione delle email è una esigenza spesso avvertita dalle aziende, in particolare per quei rapporti commerciali o transazioni che richiedono un elevato grado di riservatezza. In questo articolo vediamo come cifrare le email; tratteremo anche della firma digitale. Prima però, è necessaria una breve introduzione sulla crittografia a chiave pubblica, la tecnologia impiegata per la cifratura delle email.
Nota bene
Con la nostra precedente guida su come cifrare e firmare le email con Thunderbird abbiamo visto i passaggi necessari per cifrare, decifrare e firmare le email per mezzo di Thunderbird, il 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.
Indice
La crittografia a chiave pubblica
Per cifrare le email Thunderbird fa' uso della crittografia a chiave pubblica: abbiamo introdotto la crittografia a chiave pubblica o asimmetrica nel nostro articolo Chiavi pubbliche e private: Bitcoin e la crittografia a chiave pubblica e anche con Come funziona Bitcoin. 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. Per questo motivo 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).
Ad esempio:
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.
Come funziona la firma digitale
La firma digitale consente di provare la provenienza di un messaggio, ossia che questo sia stato effettivamente inviato da chi sembra esserne l'autore o si presenta come tale, e che il messaggio non sia stato alterato dopo il suo invio.
Per spiegare come funziona la firma digitale, dobbiamo introdurre l'algoritmo di hash
Algoritmo di hash
Con la firma digitale entra in gioco un secondo algoritmo: l'algoritmo di hash: un 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:
- 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)
- cifra l'hash così ottenuto con la propria chiave privata
- infine: allega l'hash cifrato (la "firma") al messaggio e li invia insieme
- il destinatario:
- produce l'hash del messaggio ricevuto con lo stesso algoritmo usato dal mittente
- decritta l'hash cifrato ricevuto con la chiave pubblica del mittente.
- 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 agli utilizzi pratici della crittografia a chiave pubblica e vediamo come cifrare e firmare le email con Thunderbird.
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.
In alto, Modifica > Impostazioni account.
Si apre pagina con le impostazioni dell'account selezionato.
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.
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).
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.
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.
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.
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.
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.
Avvia Migrazione
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à.
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:
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.
Se invece clicchiamo su : Sicurezza | possiamo scegliere se:
Se seleziono Richiedi crittografia e invio il messaggio cifrato, questo è quello che visualizza il destinatario:
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.
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:
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ì:
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ì:
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 :
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
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
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.