Installazione e utilizzo di Enigmail
Scopo di questo articolo è illustrare l’utilizzo di Enigmail, il componente aggiuntivo disponibile per Thunderbird, il quale permette di firmare e criptare/decriptare digitalmente il contenuto di ogni email, e volendo anche degli allegati.
Sorvoliamo quindi le motivazioni per scegliere di utilizzare o meno Enigmail, così come i complessi aspetti matematici che stanno dietro a questa tecnologia: si accennerà solamente al fatto che verrà utilizzato un sistema di crittografia a chiave asimmetrica, basato quindi sull’utilizzo di una chiave pubblica e una privata (anche se una parte del processo prevede una cifratura simmetrica).
Prima di cominciare, è doveroso specificare che:
- nell’articolo si utilizzerà indifferentemente le parole criptare, cifrare o crittare, mentre per crittografia si intende l’intero processo che comprende anche la procedura opposta.
- Al momento sul sito web del supporto internazionale di Mozilla esiste una guida piuttosto incompleta. Si è in attesa di conoscere le nuove linee guida per contribuire ad ampliarla e localizzarla nella maniera più corretta possibile.
L’installazione
La procedura è la medesima di qualsiasi altro componente aggiuntivo. Mentre l’installazione di Enigmail procede, questa provvederà a richiamare ulteriori file necessari per il sistema, come GPG (una variante libera dello standard OpenPGP), programma che viene materialmente eseguito durante tutto il processo, di cui Enigmail è solo un’interfaccia grafica. Su Linux verrà installato GnuPG, su macOS GpgTools e su Windows Gpg4Win.
L’articolo prenderà in considerazione le versioni disponibili a inizio 2017, ovvero la 2.1 per il programma e la 1.9.6.1 per il componente aggiuntivo.
Vi preghiamo di controllare sempre le proprie versioni qualora si riscontrassero delle difformità con i contenuti di questo articolo.
A installazione complessivamente completata, partirà la procedura guidata che consente di creare una coppia di chiavi. Il tempo richiesto per crearle è solitamente poco (qualche minuto circa), lasso durante il quale comparirà un messaggio che consiglia all’utente di continuare a utilizzare normalmente il proprio PC. Ai più curiosi possiamo dire che le chiavi vengono create con algoritmo RSA a 4096 bit della durata di un anno, ma quest’ultima è modificabile successivamente nel menu Gestione delle chiavi → Modifica.
Nel menu di Thunderbird comparirà una nuova voce, Enigmail. Da ora in poi quando si parlerà di menu ci si riferirà sempre a essa. Inoltre, nella finestra di composizione dei messaggi comparirà la barra degli strumenti del nuovo componente aggiuntivo.
La procedura può essere portata a termine in modalità standard, estesa o manuale. A meno di avere già un backup di chiavi precedentemente create, si potrà scegliere di seguire la procedura standard. Successivamente si potranno comunque abilitare le opzioni avanzate che appartengono alle altre procedure.
Creato il mazzo di chiavi, viene poi chiesto di pubblicare la chiave pubblica su un apposito server web, il keyserver: ne vengono indicati alcuni ma non occorre preoccuparsi di quale scegliere poiché essi nel tempo si scambieranno le chiavi tra di loro.
Preme sottolineare che, sebbene pubblicare la propria chiave non sia strettamente necessario (dato che è possibile anche allegarla), è tuttavia consigliato per tre buoni motivi:
- facilitarne il reperimento da parte altrui,
- possibilità del riconoscimento della propria identità tramite la firma altrui,
- possibilità di revoca.
Verrà infine richiesta una ”passphrase” che servirà a proteggere il mazzo di chiavi.
La passphrase, rispetto alla password, può (dovrebbe, ndr) anche contenere degli spazi ed essere molto più lunga, si parla generalmente di non meno di 20 caratteri. La passphrase, inoltre, è da memorizzare e custodire molto più che bene, perché il sistema la richiederà ogni volta che sarà necessario leggere un contenuto cifrato (secondo il comportamento standard, viene richiesta dopo 5 minuti dallo sblocco precedente, impostazione anch’essa modificabile nel menu “Preferenze“).
Seppur sia possibile cancellarla dall’apposita voce del menu, è fortemente sconsigliato poiché Enigmail non fornisce strumenti per eseguirne il backup.
A partire da questo momento i messaggi salvati nelle bozze vengono criptati. Per modificarne l’impostazione occorrerà spostarsi nelle impostazioni dell’account (clic destro sul nome dell’account) e selezionare la nuova voce OpenPGP.
Il menu di Enigmail
La parte forse più importante del nuovo menu è sicuramente quella relativa alla “Gestione delle chiavi”. Dal menu Gestione delle chiavi → File è possibile esportare o importare le proprie chiavi. Otterrete dei file di testo con estensione asc, seguito da un numero tra due parentesi, il cosiddetto “ID”.
Se si è soliti firmare la propria corrispondenza –il classico testo a seguito del doppio trattino al termine del corpo mail– è buona norma aggiungervi questo ID, così da informare l’interlocutore che si possiede un sistema di crittografia. Questo numero è presente anche nella parte finale della “fingerprint” (o impronta digitale) che è possibile visualizzare andando nel menu Gestione delle chiavi → Visualizza → Proprietà della chiave.
Mentre l’ID non può essere univoco, lo è invece la fingerprint: nulla vieta di mettere nella propria firma la fingerprint al posto dell’ID.
Sempre all’interno di questo menu sarà possibile richiamare la creazione di un certificato di revoca nel caso si venga a scoprire che ci è stata sottratta la chiave privata (per esempio, nel caso di furto del PC): per farlo basterà selezionare la voce Gestione delle chiavi → Genera → Certificato di revoca.
Le tre funzioni di Enigmail/PGP (utilizzabili anche singolarmente)
- Criptare il proprio messaggio utilizzando la chiave pubblica del destinatario. Così facendo, il destinatario sarà l’unico a poter leggere il messaggio di posta elettronica, poiché è lui il proprietario della relativa chiave privata in grado di decriptarlo.
- Firmare un messaggio utilizzando la propria chiave privata. Questo assicura che il messaggio inviato, anche in chiaro, non venga alterato durante il suo tragitto fino al destinatario.
- Firmare una chiave pubblica utilizzando la propria chiave privata. Questa procedura serve a confermare l’identità della persona che ha generato la chiave pubblica.
Il protocollo da utilizzare: in linea o MIME?
La criptazione può essere eseguita con l’aiuto di due protocolli: PGP in linea o PGP/MIME
In maniera predefinita è selezionato PGP/MIME, un protocollo che cripta contemporaneamente oggetto, contenuto e allegati della mail inviata, non compatibile con tutti i client di posta. Nell’eventualità dovesse esistere un allegato all’interno dell’email, questo non sarà visibile fino a quando non verrà inserita la passphrase.
Il protocollo “in linea” è invece compatibile con tutti i client, ma non cripta l’oggetto della mail. Inoltre, il corpo della mail potrà essere formattato esclusivamente in puro testo. Se il messaggio contenesse codice HTML, comparirebbe una finestra riportante l’avviso di necessaria riformattazione del testo (vedere dicitura nelle impostazioni avanzate).
Con questo protocollo è possibile lasciare gli allegati in chiaro oppure criptarli, in questo caso ai file allegati verrà aggiunta l’estensione gpg.
Nota: nel caso di protocollo MIME è possibile impostare una preferenza per far comparire un proprio testo come oggetto della mail: extensions.enigmail.protectedSubjectText. Chiaramente l’oggetto verrà sostituito da quello vero quando il messaggio verrà decifrato dal destinatario.
Prima funzione: la cifratura
La cifratura utilizza la chiave pubblica del destinatario a cui è indirizzata la propria email.
Per questo motivo, prima di scrivere una mail cifrata si dovrà importare nel proprio mazzo la chiave pubblica del proprio interlocutore, o più chiavi pubbliche se la mail è indirizzata a più persone contemporaneamente.
Per farlo, aprire il menu Gestione delle chiavi → Server → Ricerca chiavi. Sebbene sia possibile importare una chiave con altri metodi (per esempio recuperandola da un allegato che ci è arrivato), questo rimane il metodo migliore.
La ricerca può avvenire indicando l’ID, l’indirizzo mail o il cognome del destinatario.
Una volta trovata e importata, si avrà la possibilità di cifrare la mail con la semplice pressione dell’apposito tasto che compare nella barra degli strumenti di Enigmail.
Il destinatario, una volta ricevuta la mail cifrata, dovrà solo inserire la passphrase e il suo sistema provvederà a recuperare la chiave privata per decifrare il messaggio.
Nota: è possibile che alcuni server inseriscano nell’oggetto del messaggio la scritta ***UNCHECKED*** poiché il loro antivirus non ha potuto scansionare il messaggio.
Seconda funzione: la firma digitale
Anche per firmare digitalmente una mail è sufficiente fare clic sull’apposito tasto presente nella barra strumenti di Enigmail. L’operazione effettua una combinazione tra la propria chiave privata –o meglio, la sottochiave privata– e l’hash del corpo del messaggio.
Chi riceve una mail firmata digitalmente vedrà comparire –nel riquadro d’anteprima– una busta: facendo clic su di essa, si ottengono le informazioni sulla sicurezza e sulla fiducia.
Da notare che il componente aggiuntivo Enigmail, come comportamento predefinito, scarica automaticamente le chiavi del mittente se la mail è firmata. Questa impostazione è modificabile: attivare dapprima nella scheda Base il pulsante Visualizza impostazioni e menu avanzate e poi selezionare la voce di menu Preferenze → Server delle chiavi.
Terza funzione: la firma digitale di una chiave pubblica
Questo metodo serve a fornire un riscontro sull’identità del proprietario di una chiave pubblica.
Ovviamente quante più firme possiede una chiave pubblica, maggiore è la certezza che questa appartenga effettivamente al suo proprietario. Per firmare una chiave pubblica occorre aprire il menu Gestione delle chiavi, selezionare un nome, farci clic sopra con il tasto destro e scegliere dal menu contestuale l’opzione Firma chiave.
Apparirà una finestra che chiederà se è già stata verificata l’identità del proprietario, proponendo quattro opzioni:
- Non rispondo
- Non ho controllato affatto
- Ho controllato superficialmente
- Ho controllato con grande accuratezza
Dato che è possibile attribuire vari livelli di fiducia alle chiavi, crediamo sia il caso di introdurre il concetto di “rete della fiducia” (in inglese “Web of Trust”).
Web of Trust
Poiché è auspicabile il riconoscimento della propria chiave pubblica da parte di quante più persone possibili, non è consigliabile rimandare la creazione del proprio mazzo di chiavi nel momento esatto in cui se ne sentirà il bisogno.
È ovvio che appena creato il proprio mazzo nessuno ne sarà a conoscenza, e quindi nessuno potrà confermare che la propria chiave pubblica appartenga effettivamente a noi: questo dovrebbe far comprendere che è buona norma crearle e far sapere che sono state create con mesi di anticipo rispetto al loro utilizzo.
Per rendere certa la propria identità collegata alla propria chiave pubblica ci sono due metodi: farsi autenticare da un’autorità, oppure da certificatori durante un keyparty; in quest’ultimo caso il numero di persone che riconoscono la chiave pubblica di un utente costituiscono la cosiddetta catena o rete della fiducia.
Il Key_signing_party o keyparty consiste in un incontro pubblico di persone intente a scambiarsi le chiavi pubbliche, mentre le autorità possono essere sia aziende pubbliche che private.
Per attribuire la fiducia di una chiave importata occorrerà aprire il menu Gestione delle chiavi, selezionare un nome, fare clic destro e scegliere dal menu contestuale l’opzione Imposta fiducia nel proprietario.
Compariranno così cinque opzioni:
- non lo so
- NON mi fido
- mi fido marginalmente
- mi fido completamente
- mi fido definitivamente
Se la fiducia è impostata dal primo al quarto livello, sulla busta di una email firmata compare un punto interrogativo, con il quinto livello sulla busta compare la “chiusura con la ceralacca“.
Nel caso ci si dimenticasse la passphrase, il sistema non riuscirà a decifrare le mail ricevute. Per questo motivo, se le email arrivano codificate in MIME risulteranno vuote, mentre se codificate “in linea” lasceranno intravedere una serie di caratteri come quelli nell’immagine seguente.
Nel caso inoltrassimo una email criptata senza criptarla ulteriormente, otterremmo un contenuto misto: in questo caso Enigmail inserisce all’interno del corpo delle righe con i riferimenti alle parti di mail criptate in precedenza, come da immagine di seguito:
….testo del messaggio…
Qualche osservazione conclusiva
Alcuni utenti Debian con DE Mate hanno riscontrato e lamentato problemi con la versione del componente aggiuntivo presente su AMO: consigliamo quindi di utilizzare la versione dei repository.
Al momento attuale ci sono un paio di cose che ci lasciano perplessi: la possibilità di salvare sui server pubblici tutte le chiavi in nostro possesso e la possibilità di cancellare la frase segreta.
Per quanto riguarda la prima possiamo dire che sì, si tratta di chiavi pubbliche, ma se il proprietario ce le aveva fornite come allegato, queste saranno trattabili come se fossero le nostre.
In merito al secondo punto, si tratta di una possibilità che crea solo confusione, poiché il passaggio non richiede conferma prima di essere portato a termine, diventando quindi molto pericoloso. Va detto che la passphrase non viene cancellata del tutto, ma Enigmail non fornisce uno strumento per poterla eventualmente recuperare.
Grazie
Grazie per aver letto questo approfondimento fino a qui. L’intero articolo è farina del sacco di un gruppo di persone che frequentano il forum di Mozilla Italia e che quotidianamente offrono il loro supporto a chi più è in difficoltà. Grazie a WinFox, promotore e autore principale dell’articolo, ma anche a chi ha collaborato con lui per la stesura della procedura: Deckard, Max1210, Miki64, Selky, Belleromoz.
Revisione del testo: Giovanni Francesco ‘Gioxx‘ Solone.