Come criptare le email con RSA su Linux

 

EmailCriptate

Voi sapete quanto a noi di Tux Maniacs preme la protezione della privacy. Non smettiamo mai di ricordare quanto è importante. Oggi vi proponiamo un metodo facile facile per applicare la firma e criptare le mail che inviate quotidianamente.
Il programma che andremo ad utilizzare per generare la nostra signature – firma digitale – è GnuPG. È uno dei tool migliori per permettere di identificarci anche con persone che non conosciamo.
Una volta generata la signature andremo ad applicarla al nostro client email per poter così inviare e ricevere mail certificate.


Un altro aspetto molto utile di GnuPG è quello di poter ragionevolmente assicurarci dalla modifica non autorizzata di codice o l'intercettamento di conversazioni private.

Ma partiamo da più a monte...

 

 

COME FUNZIONA LO SCAMBIO DI EMAIL
Tutti  sanno che cosa sono le email, quindi non staremo a spiegarvelo. Il suo funzionamento è molto semplice. Praticamente ognuno di noi ha un account di posta elettronica e ognuno di essi è identificato da un indirizzo che normalmente è nella sintassi: nome@dominio. Quando inviamo una mail dal nostro computer, che chiameremo client, lo facciamo attraverso un server di posta che è detto dominio. Quindi il client prima invia la mail al server di dominio, e poi lo stesso lo invierà al server di dominio del destinatario che poi lo recapiterà alla casella mail giusta.

Il problema dove sta? Nel fatto che la nostra lettera elettronica passa, come abbiamo visto da numerosi server. Vi è però la possibilità che la nostra mail debba passare attraverso alcuni server potenzialmente non attendibili, e non c'è modo di sapere se qualche individuo non autorizzato abbia letto il suo contenuto.
Questa spiegazione è un po' fumosa, ce ne rendiamo conto.
Mettiamola così: un'email è un po' come una cartolina piuttosto che una busta chiusa, ergo può essere letta tranquillamente quando viene passata di mano in mano.

 

 

COSA È L'RSA E COME FUNZIONA
La signature è formata da due chiavi: una pubblica e l'altra privata. Per crearla utilizzeremo l'algoritmo RSA.
Esso è un algoritmo di criptazione a doppia chiave asimmetrica. È stato sviluppato da tre ricercatori del MIT.
Come anticipato il sistema si basa su due chiavi. Quella pubblica è utilizzata per criptare i dati che si vogliono inviare e la chiave privata è utilizzata per leggere i dati una volta che sono stati ricevuti.
Detta così ne sapete quanto prima. Facciamo un esempio per capire:

Bill e Steave sono due amici e si vogliono scriversi con delle lettere ma facendo in modo che nessuno le possa leggere.
Un bel giorno Bill deve inviare a Steave una lettera. Allora apre l'elenco telefonico e trova l'indirizzo – la chiave pubblica – di Steave. Scrive così la lettera e la imbuca nella cassetta delle lettere del suo amico. La mattina dopo Steave si sveglia e, grazie alla sua chiave – si esatto, quella privata – apre la sua cassetta e si legge la lettera di Bill. Per rispondere fa la stessa cosa con Bill.

L'RSA è una cifratura a chiave pubblica abbastanza semplice da creare dal un computer comune. Eppure è molto sicuro perché si basa sul fatto che per decifrarla è necessaria una potenza di calcolo molto grande.

Ora che abbiamo capito a grandi linee come funziona procediamo alla creazione della chiave.

 

 

INSTALLAZIONE E CREAZIONE DELLA CHIAVE
Utilizzeremo il programma seahorse che normalmente è preinstallato nel sistema. Se non fosse presente andiamo ad installarlo aprendo il terminale e digitando a seconda di che distribuzione utilizzate:

sudo yum install seahorse

oppure:

sudo apt-get install seahorse

Questa guida vale per tutte le distribuzioni Linux e utilizzeremo Yum come gestore dei pacchetti. Occhio che a seconda della distro che utilizzate cambia.

Una volta installato lo apriamo e clicchiamo su “Nuovo” e poi ancora su “Chiave PGP”. A questo punto dobbiamo inserire la nostra mail e i nostri dati. Cliccando su “Avanzate” è possibile scrivere un breve commento e specificare che tipo di cifratura desideriamo. Noi utilizzeremo la cifratura RSA ma attenzione impostiamo la grandezza della chiave a 2048 bit per avere una maggiore sicurezza.

Li inseriamo con tranquillità, e poi clicchiamo su "Crea".
Ora ci verrà richiesto una password per criptare la chiave. La password deve essere forte, ma fate attenzione che e la dimenticate non sarà più possibile utilizzare la signature che stiamo creando. In un passato post vi abbiamo spiegato come crearne una molto forte ma facile da ricordare, quindi dateci una lettura perchè è molto importante.

 

 

CREAZIONE DA LINEA DI COMANDO
È anche possibile creare una chiave GPG tramite terminale. Vi illustriamo anche questo modo perché da linea di comando è possibile modificare numerose opzioni in più.
Digitiamo quindi:

gpg2 --full-gen-key

oppure se non avete gpg2 possiamo utilizzare il comando gpg:

gpg --gen-key

In ogni caso selezioniamo RSA. Ci verrà chiesta la lunghezza della chiave GPG. Di default è 2048 ma noi consigliamo di 4098.
A questo ci verrà chiesto per quanto tempo dovrà valere la chiave. Di default la chiave non scade ma se volete cambiare l'aging – l'invecchiamento – digitate:

  • N – Per N giorni.
  • Nw – Per N settimane.
  • Nm – Per N mesi.
  • Ny – per N anni.

Ora digitiamo per quanto vogliamo che duri la password e andiamo avanti. Ora dovremo inserire il nostro vero nome, la mail da associare e un commento. Clicchiamo su invio e, se tutto va bene, digitiamo o e invio. A questo punto verrà creata la chiave.

 

 

UTILIZZARE GPG CON EVOLUTION
Il primo programma che affrontiamo per utilizzare la chiave è Evolution.
Per configurarlo, una volta aperto, andiamo su Modifica → Preferenze e selezioniamo la mail. Clicchiamo su "Modifica" e andiamo nella sezione sicurezza.
Nel campo “ID della chiave OpenGPG” inseriamo l'id della chiave (se avete fatto la procedura da interfaccia grafica lo trovate subito) o se avete fatto da terminale, sono le ultime 8 cifre della chiave pub. Se non ve le ricordate apriamo l'interfaccia grafica digitando da terminale:

seahorse &

oppure:

gpg –fingerprint <mail@exemple.com>

Spuntiamo ancora la voce: “Firmare sempre i messaggi in uscita quando si usa questo account” e la voce: “Cifrare sempre per se stessi quando si inviano messaggi cifrati”
La prima mail che invieremo da Evolution con il nostro account ci verrà richiesto la password per la cifratura. La inseriamo e se vogliamo aggiungiamo la spunta di memorizzarla, così da non dover reinserirla tutte le volte.

 

 

UTILIZZARE GPG CON THUNDERBIRD
Uno dei client mail che è più utilizzato nei desktop Linux e non solo è sicuramente Thunderbird. Sviluppato dalla Mozzilla Foundation è uno dei programmi più flessibili grazie anche ai plugin che permettono un'ampia personalizzazione.
Se non lo abbiamo digitiamo:

sudo yum install thunderbird

Fatto questo configuriamo l'account mail con i vostri dati ecc. Poi chiudiamo il programma e apriamo il terminale. Digitiamo:

sudo yum install thunderbird-enigmail

per installare il plugin dedicato. Apriamo il client mail e verrà visualizzata la procedura automatica di configurazione. Selezioniamo la spunta “Configurazioine standard”. Selezioniamo l'account da associare e clicchiamo su “Avanti”.

 

 

QUALI DEI DUE CLIENT SCEGLIERE?
Senza ombra di dubbio Thunderbird. Per numerose ragioni a partire dall'interfaccia più user friendly arrivando alla presenza di numerosi plugin per la personalizzazione.
La cosa che però lo fa vincere nettamente è quella di poter decidere ogni volta se firmare o criptare il proprio messaggio cliccando semplicemente un bottone.

Al prossimo post!

 

FONTI:

Dottore in Informatica. Appassionato di computer fin dal primo PC Olivetti con Windows 95 e la bellezza di 8 MB di RAM.
Utilizzatore Linux da 5 anni, credo profondamente nella filosofia open source.
Dopo tante distro provate sul mio fidato Toshiba, uso Fedora per lo studio e il divertimento.

2 risposte

  1. Meglio generarsi una master key per firmare le altre chiavi, e poi generarsi aottochiavi per firmare, criptare e tutto ciò che viene in mente

    • Non credo di aver capito il problema. Se voglio mandare a Bob una mail cifrata, devo usare la sua chiave pubblica per cifrare il messaggio. Se questa fosse falsa, Bob non riuscirebbe ad aprire il messaggio (ammesso che lo riceva) dato che decriptando con la sua chiave privata Bob avrebbe un messaggio incomprensibile.
      Quindi il problema non si pone in quanto l'attaccante dovrebbe falsificare anche l'indirizzo email di Bob. (ma questo e' tutto un altro paio di maniche)

      Assumiamo per un momento che Alice abbia una Master Key, ha quindi una Master Key pubblica (chiamiamola MK+) e una Master Key privata (chiamiamola MK-). Alice spedisce un tot di chiavi pubbliche ai sui contatti e firma i messaggi con MK. A scanso di equivoci la firma di un messaggio avviene cifrando la checksum del messaggio con MK- di Alice. In questo modo se il messaggio e' modificato la checksum una volta decriprata con MK+ di Alice da Bob, non torna e quindi e' scartato. Questo meccanismo permette a Bob di essere sicuro che il messaggio provenga da Alice.
      A questo punto se il messaggio e' autentico, allora Bob e' sicuro che provenga da Alice, quindi a che serve avere altre chiavi?

      L'ultima questione che ci puo' essere e': come puo' fare Bob a essere sicuro che la chiave pubblica di Alice sia proprio di Alice?
      A quel punto Alice deve far certificare la sua chiave tramite un soggetto terzo. Questa e' la firma elettronica certificata ma non rientra nell'obiettivo del post.

      Saluti

Lascia un commento