Oggi si sente un gran parlare di firme digitali e di posta elettronica certificata ma, in realtà, queste cose esistono da parecchio tempo nel mondo Linux e nell’informatica in generale. Per le applicazioni “legali” di firma digitale e posta elettronica certificata per i comuni cittadini consiglio l’uso degli strumenti messi a disposizione dal governo italiano. Su www.postacertificata.gov.it è possibile ottenere un indirizzo di posta elettronica certificato ed una rubrica di indirizzi mail certificati della pubblica amministrazione di tutta Italia in modo semplice e gratuito ma è possibile comunicare esclusivamente (a quanto ho capito) con gli enti della PA. La firma digitale invece ha un costo “una tantum” e si può ordinare comodamente dopo aver ottenuto l’indirizzo e-mail.

Qui però vediamo soprattutto come proteggere i nostri documenti sensibili da occhi indiscreti o semplicemente condividerli solo con persone di assoluta fiducia. GnuPG (GNU Privacy Guard) ci mette a disposizione una serie di strumenti utili allo scopo.

Prima di tutto partiamo con un po’ di teoria: tramite questo software è possibile firmare le e-mail, firmare documenti, criptare e decriptare e-mail o documenti. Per farlo bisogna prima di tutto essere in possesso di una “coppia di chiavi elettroniche” di cui una privata che resterà in nostro possesso e una pubblica che dovrà essere comunicata ai nostri interlocutori che, a loro volta, avranno dato a noi la loro chiave pubblica ed avranno sul loro PC la loro chiave privata. Le chiavi pubbliche e private funzionano assieme per garantire che le informazioni provengano veramente da chi ha firmato la mail o il documento e che vengano viste esclusivamente da chi è autorizzato a farlo. Per maggiore protezione, il destinatario del messaggio o del file firmato o criptato, dovrà comunque utilizzare la password della propria chiave privata per leggerne il contenuto.

Ora veniamo alla pratica: per gli utenti windows consiglio di scaricare il pacchetto GnuPG4win che contiene un porting di GnuPG completo di software per la gestione dei certificati e la crittazione/decrittazione dei files.

Gli utenti MAC potranno installare il loro porting scaricandolo dal sito https://www.gpgtools.org/.

Per Ubuntu  Linux invece basterà installare il pacchetto con il comando:

sudo apt-get install gnupg

Consiglio anche l’installazione di Kleopatra, un gestore di chiavi, che è anche presente nella versione per windows, molto utile per effettuare molte operazioni sui documenti. Pur non essendo integrato al massimo con Ubuntu è comunque molto funzionale. Gli utenti di KUbuntu (o di altre distribuzioni che utilizzano KDE come window manager) ne troveranno maggiori benefici. Utilizzare quindi il comando:

sudo apt-get install kleopatra

per installare anche il gestore.

A questo punto possiamo decidere di usare Kleopatra per generare le nostre coppie di chiavi oppure la linea di comando.

Da linea di comando digitare:

gpg –gen-key

per far partire l’utilità di generazione chiavi. Rispondere alle domande che ci vengono poste:

Selezionare il tipo di chiave desiderato: scegliere l’opzione 1 RSA and RSA
Dimensione della chiave? scegliere 2048
Validità della chiave? scegliere 0 per non dare scadenza  o indicarla seguendo le istruzioni. Ricordarsi che, se si genera una coppia di chiavi senza scadenza, è opportuno generare anche un certificato di revoca qualora non si desideri più usare quelle chiavi o se, per qualche sgradevole episodio, la chiave privata fosse andata in mano a qualcuno.

Procedere con la creazione della coppia di chiavi dando le informazioni personali che ci riguardano, ovvero: il proprio nome reale, l’indirizzo e-mail reale associato alla persona ed un eventuale commento. Verrà poi chiesta una password sicura, che se perderemo renderà inutilizzabili le chiavi, e al termine inizierà la creazione della chiave. Per generare maggiori numeri casuali si consiglia, durante la creazione della chiave, di continuare a lavorare o di muovere il mouse.

Al termine dei giochi apparirà il messaggio di avvenuta creazione della coppia di chiavi. Prendere nota del numero esadecimale di 8 caratteri che appare, nella riga che inizia per pub, dopo la barra “/”.

In linux si può definire tale chiave come predefinita inserendo alla fine del file ~/.bashrc  una riga come questa:

export GPGKEY=0F0F0F0F

dove al posto di 0F0F0F0F bisognerà mettere il numero di cui abbiamo preso nota poco prima.

“Uccidiamo” l’agente gpg  e ricarichiamo il file .bashrc con i seguenti comandi:

sudo killall -q  seahorse-agent
eval $(seahorse-agent –daemon)
source ~/.bashrc

Le operazioni di base sono terminate. Abbiamo a nostra disposizione la coppia di chiavi, la segreta protetta da password e la pubblica, ed abbiamo configurato Ubuntu per utilizzarla come default.

Nel caso in cui si sia deciso di creare una chiave senza scadenza è bene generare un bel certificato di revoca da tenere al sicuro su un disco di backup o semplicemente stampata su un foglio di carta. Il comando da usare sarà:

gpg –output revoca.asc –gen-revoke 0F0F0F0F

Come sempre al posto di 0F0F0F0F mettere il proprio identificativo.

Un’ultima operazione che possiamo effettuare è inviare la nostra chiave pubblica ad un server di chiavi in modo da renderla disponibile più facilmente ai nostri eventuali interlocutori.

Per farlo utilizzare il comando:

gpg –send-keys –keyserver nome.del.server 0F0F0F0F

dove al posto di 0F0F0F0F ci va il nostro identificativo e al posto di nome.del.server uno dei tanti servizi che ci permettono di inviare le chiavi. Kleopatra utilizza il server keys.gnupg.net come default server, oppure si può inviare al keyserver.ubuntu.com o ad altri.

È possibile creare un file contente la nostra chiave anche con il comando:

gpg –export -a “0F0F0F0F” > public.key

Ora abbiamo tutti gli strumenti necessari per iniziare a divertirci.

A questo punto consiglio l’utilizzo di Kleopatra che rende le operazioni più facili da gestire anche a persone che non amano molto la linea di comando.

Prima di tutto dobbiamo procurarci qualche firma digitale di qualche amico/collaboratore per importarla nel nostro computer. Basterà farci mandare la chiave pubblica per e-mail o prenderla dalla chiavetta USB del nostro amico/collaboratore ed importarla con la funzione Import Certificates. Altra possibilità, in caso il nostro interlocutore abbia inviato la propria chiave ad un server pubblico, di importarla tramite la funzione Lookup Certificates on Server. Nel caso in cui il server utilizzato non fosse quello di default basterà farsi dire l’indirizzo ed inserirlo nella configurazione del programma stesso.

Se volessimo firmare e criptare un file basterà, in kleopatra, selezionare il menu File e successivamente la voce Sign/Crypt file e seguire le istruzioni a video: è possibile firmarlo e criptarlo, firmarlo soltanto o criptarlo soltanto, ottenere un file ASCII come output, altrimenti verrà creato un file binario, e anche decidere di rimuovere l’originale dopo l’operazione. Passata questa prima fase verrà chiesto di selezionare le chiavi, presenti nel nostro database, che potranno operare su questo file. È buona norma selezionare, oltre alle chiavi dei destinatari (che possono essere anche più di uno), anche la nostra chiave, altrimenti non saremo più in grado di leggere il file firmato/criptato che verrà generato. Continuando con la fase successiva ci verrà chiesto di confermare l’identità del firmatario (se abbiamo più chiavi private memorizzate nel nostro database). Una volta data la password relativa alla chiave privata utilizzata per la firma, verrà generato il file con estensione gpg se binario o asc se testuale.

Inviando tale file al destinatario (o ai destinatari) questi potranno, tramite kleopatra, decriptarlo e vedere chi ha effettuato la firma e quando. Il destinatario dovrà, per completare l’operazione, digitare la password della propria chiave privata.

In una prossima guida vedremo come configurare i client di posta elettronica per l’utilizzazione delle chiavi GPG per dare una validità ai messaggi tra utentu GPG.

Ricordarsi sempre che nessun sistema di questo tipo è totalmente infallibile e impenetrabile… ma sicuramente inviare dati sensibili in questo modo è più sicuri che farli girare in internet in chiaro.

Alla prossima… e buone ferie a chi le fa!! 🙂
Se non sapete cosa leggere mentre prendete il sole sulla spiaggia consiglio la documentazione ufficiale, disponibile anche in lingua italiana, scaricabile dal sito http://www.gnupg.org/.