Gpg4Win, una soluzione completa per la crittografia in Windows

Guida pratica al software opensource per proteggere il contenuto di file, documenti e messaggi di posta elettronica.

Ottobre 2009 GnuPG è un software opensource distribuito sotto
licenza GNU GPL che si propone come valida alternativa alla celeberrima suite
crittografica PGP, ideata da Phil Zimmermann.

Direttamente supportato, ad esempio, dal governo tedesco, GnuPG consente di
utilizzare una soluzione di cifratura asimmetrica per proteggere, da occhi indiscreti,
il contenuto dei messaggi di posta elettronica scambiati con i propri interlocutori.
Sebbene GnuPG operi essenzialmente da riga di comando, esistono numerose implementazioni
gratuite (front-end) per il programma, compatibili con i vari sistemi operativi.

In questo caso, abbiamo scelto Gpg4Win, un pacchetto distribuito nella forma
di “software libero” (quindi, tra le altre cose, completamente gratuito
sia per utilizzi personali che commerciali), recentemente arrivato alla sua
seconda versione.

Gpg4Win può essere pensato come un'implementazione per Windows
di GnuPG (il funzionamento del software poggia infatti, essenzialmente, proprio
su di esso) che include anche tutta una serie di moduli aggiuntivi e plugin.

Ricorrendo a Gpg4Win, ad esempio, non solo si potrà crittografare il
contenuto dei messaggi di posta elettronica, ma cifrare file e cartelle, interfacciarsi
con Outlook 2003, Outlook 2007 e con l'interfaccia del sistema operativo.

Perché ricorrere alla crittografia
La storia della crittografi a si perde nella notte dei tempi. Alcuni esperti
sono però convinti che la crittografi a sia nata spontaneamente dopo
l'invenzione della scrittura per essere impiegata nelle applicazioni più
disparate: dalla consegna di missive diplomatiche ai piani di battaglia.

Esempi “storici” dell'uso della crittografi a sono il “codice
di Cesare” o “cifrario di Cesare”, un algoritmo che operava
per sostituzione monoalfabetica (ogni lettera del testo di partenza veniva sostituita,
nel testo cifrato, con la lettera che si trova, nell'alfabeto, un certo
numero di posizioni dopo; provate a decifrare il messaggio “FKLHGLDPRULQIRUCL”)
ed il “codice Enigma”, usato dai nazisti durante la Seconda Guerra
Mondiale.

La crittografia è divenuta oggi essenziale nelle telecomunicazioni ed
in molte applicazioni che necessitano la garanzia di un'elevata protezione
dei dati. Su Internet, poi, sono davvero notevoli i rischi che si corrono veicolando
informazioni importanti “in chiaro”, senza impiegare una qualche
forma di cifratura. La possibilità di accedere ad Internet da parte di
chiunque implica notevoli problematiche di sicurezza dal momento che la Rete
è ovviamente utilizzabile anche da parte di malintenzionati e le applicazioni
sono divenute sempre più delicate (si pensi, per esempio, ad applicazioni
commerciali, bancarie e fiscali).

La crittografia non solo protegge i dati trasmessi in Rete evitando che possano
essere alterati o sottratti da parte di aggressori, ma può essere adottata
anche per autenticare un utente.

I tre schemi più diffusi di crittografia
Quando si parla di crittografia, sono essenzialmente tre gli schemi ai quali
ci si riferisce:

• crittografi a a chiave simmetrica
• crittografi a a chiave asimmetrica
• utilizzo di funzioni hash.

In tutti i casi il messaggio di partenza viene definito testo in chiaro o
plaintext. Tale messaggio viene quindi crittografato (ciphertext) in modo tale
da risultare incomprensibile alle persone non autorizzate, infine può
essere decifrato e riportato a plaintext.

Crittografica a chiave asimmetrica
Iniziamo col rammentare il significato di crittografi a asimmetrica o “a
chiave pubblica/privata” dal momento che GnuPG utilizza tale meccanismo
per proteggere il contenuto delle email rendendolo incomprensibile da parte
di qualunque persona non autorizzata.

L'algoritmo di codifica usato per cifrare un testo è pubblico.
Ciò significa che è noto a tutti e quindi, potenzialmente, anche
ad un malintenzionato. La “chiave”, ossia il “segreto”
che permette di decifrare un messaggio e risalire al testo in chiaro non deve
essere invece conosciuta da parte dell'aggressore.

Negli algoritmi a chiave simmetrica, le chiavi sono identiche e segrete, mentre
nel caso degli algoritmi a chiave pubblica, le due chiavi impiegate sono differenti:
una è pubblica e nota a chiunque, l'altra è privata e nota
soltanto al legittimo proprietario.

La caratteristica dei sistemi crittografici asimmetrici consiste nel fatto
che per ogni persona che voglia avviare una comunicazione “sicura”
sono due le chiavi generate: l'una detta “pubblica”, l'altra
“privata”. La chiave “privata” viene impiegata per decodificare
un documento e deve essere mantenuta sempre segreta da parte del proprietario;
la chiave “pubblica”, invece, deve essere distribuita e resa nota.
Quest'ultima servirà ad una qualunque persona per cifrare un'e-mail
o comunque un testo a noi destinato.

Un esempio. Alice vuole inviare a Bob un messaggio impedendone l'eventuale
lettura da parte di malintenzionati. Alice utilizza allora la chiave pubblica
di Bob (precedentemente trasmessale via e-mail, pubblicata sul sito Web di Bob
o su un cosiddetto keyserver) e cifra il testo. Per la decodifica del testo,
Bob dovrà utilizzare la sua chiave privata che è nota esclusivamente
a lui essendo segreta. Chiunque dovesse intercettare il messaggio trasmesso
da Alice a Bob non potrebbe risalire al contenuto dal momento che per riportarlo
in chiaro è necessaria la chiave privata di Bob. Inoltre, rispetto alla
soluzione a chiave simmetrica, quella asimmetrica non implica che i due interlocutori
si debbano incontrare per scambiarsi la chiave segreta (od utilizzino un altro
canale per l'invio della stessa; a tal proposito si creerebbero nuovi
dubbi sulla sicurezza del canale trasmissivo) dal momento che i messaggi sono
sempre crittografabili usando la chiave pubblica dell'altro.

GnuPG provvede a crittografare il contenuto dei messaggi utilizzando le coppie
di chiavi individualmente generate dai due interlocutori. Le chiavi pubbliche
possono essere scambiate utilizzando qualunque canale, anche non sicuro. Va
comunque ben sottolineato come una chiave pubblica non sia di per sé
associata ad una “persona” ma soltanto ad una chiave privata. In
altre parole, non si può avere la garanzia che una chiave pubblica sia
stata effettivamente creata da una certa persona.

Per risolvere questo problema sono nate le Certification Authority (CA) che
si occupano di rilasciare dei certificati digitali che attestano la corrispondenza
di una chiave pubblica con un determinata persona. Le CA si occupano di controllare
l'identità di un utente producendo, dopo le necessarie verifiche,
un certificato che è firmato digitalmente dalla CA stessa (gode della
fiducia delle parti coinvolte nella comunicazione).

I moduli di Gpg4Win Come anticipato nell'introduzione, Gpg4Win -
pur basando il “cuore” del suo funzionamento su GnuPG - integra
tutta una serie di moduli, in grado di assolvere molteplici compiti. I vari
moduli (o componenti) sono attivabili o disattivabili già in fase d'installazione
del prodotto.

La procedura d'installazione di Gpg4Win (in Windows deve essere necessariamente
avviata utilizzando un account utente dotato di diritti amministrativi) propone
i seguenti componenti:

• GnuPG: il "motore" vero e proprio (deve essere sempre installato)
• Kleopatra: un gestore di certificati in grado di supportare OpenPGP
e X.509 (S/MIME)
• GPA: un gestore di certificati alternativo per OpenPGP e X.509 (S/MIME)
• GpgOL: plug-in per Outlook 2003 e 2007 (crittografi a dei messaggi di
posta elettronica)
• GpgEX: plug-in per la shell di Windows (crittografi a di file e cartelle)
• Claws Mail: un client di posta completo che integra il plugin per GnuPG
• manuali (“kompendium” e “novice manual”).

Per impostazione predefinita, il client di posta elettronica Claws Mail non
viene automaticamente installato. Optiamo quindi per le impostazioni di default:
vedremo successivamente come interfacciare Gpg4Win, ad esempio, con Microsoft
Outlook.

Creazione della propria coppia di chiavi
Una coppia di chiavi crittografiche si compone, come detto, di una chiave pubblica
e di una chiave privata o segreta. Aggiungendo informazioni personali come indirizzo
e-mail, user id eccetera è possibile ottenere un certificato personale
contenente, a sua volta, le due chiavi personali.

Suggeriamo di prendere confidenza con il processo di creazione delle chiavi,
ricorrendo a Gpg4Win, fintanto che non si sarà certi di averne ben compreso
il meccanismo.
Per avviare la procedura di generazione della coppia di chiavi utilizziamo Kleopatra,
uno dei componenti integrati nel pacchetto di Gpg4Win. La finestra che comparirà
a video risulterà completamente vuota in quanto non si è al momento
creato od importato alcun certificato. Per creare un nuovo certificato, basta
cliccare sul menu File, New certificate. A questo punto, il
programma invita a scegliere tra la generazione di una coppia di chiavi OpenPGP
o X.509 (S/MIME).

Differenze tra OpenPGP e X.509 (S/MIME) OpenPGP ed X.509 o S/MIME sono due
standard riconosciuti che possono essere impiegati per la creazione e la gestione
di certificati a chiave pubblica.

Sia la coppia di chiavi crittografiche OpenPGP che quella X.509 vengono create
sul sistema locale, ma mentre la prima viene certificata da parte di amici e
conoscenti, la seconda lo è da parte di una Certification Authority.
Le procedure di creazione di una coppia di chiavi OpenPGP od S/MIME sono piuttosto
simili.

In entrambi i casi, è necessario introdurre informazioni generali come
nome e cognome, indirizzo di posta elettronica, un eventuale commento. Lo spazio
per il commento può essere normalmente lasciato vuoto. Tuttavia, se si
sta facendo una prova, sarebbe bene indicare la parola “test”: tale
indicazione sarà pubblicamente visibile.
Nel caso dei certificati S/MIME, Kleopatra richiede di introdurre alcuni dati
aggiuntivi (nome e cognome o common name, indirizzo e-mail, locazione geografica,
organizzazione, codice associato alla nazione: IT nel caso dell'Italia).

Esportazione del certificato
Cliccando sul pulsante Create key verrà avviata la procedura
di generazione delle chiavi. A questo punto, in prima istanza, verrà
richiesto l'inserimento della cosiddetta passphrase. Tale parola chiave
verrà usata per impedire ad altri utenti che facciano uso del vostro
personal computer, di sfruttare la chiave segreta. Consigliamo di scegliere
una passphrase complessa (preferibilmente una stringa alfanumerica contenente
anche caratteri speciali). È bene fare in modo che l'indicatore
Qualità raggiunga il 100% (barra di colore verde).

Dopo aver riconfermato la passphrase scelta, verrà ultimata la generazione
della coppia di chiavi. La speciale “impronta” (fingerprint) mostrata
nella finestra di dialogo finale ha come obiettivo quello di garantire che non
vi siano altre persone ad utilizzare un certificato identico.

Per esportare in locale il certificato contenente chiave pubblica e privata,
si potrà cliccare sul pulsante Make a backup of your certificate
specificando poi il percorso ove deve essere memorizzato. Il certificato può
comunque essere eventualmente esportato anche in seguito ricorrendo al menu
File di Kleopatra.

Cliccando sul pulsante Finish, il certificato OpenPGP appena creato
verrà inserito nella scheda My certificates di Kleopatra e sarà
immediatamente utilizzabile.
Se, invece, si è preferito optare per la creazione di un certificato
S/MIME, si potrà salvare su disco (pulsante Save request to file...;
il file risultante avrà estensione .p10) o inviare tramite email la richiesta
di ratifica da parte di una CA riconosciuta. Il file .p10 dovrà poi essere
manualmente trasmesso a un'organizzazione in grado di rilasciare un certificato
valido (CA).

Facendo doppio clic su uno qualunque dei propri certificati sinora generati
(scheda My certificates) è possibile visualizzarne i dettagli
ed impostarne eventualmente una data di scadenza (Change expiry date...).

Inviare ai propri interlocutori il certificato
OpenPGP

Come primo passo, è necessario esportare la chiave pubblica contenuta
nel certificato in formato .asc o .gpg (il primo può essere agevolmente
letto con un qualunque editor di testo).

Per procedere, è sufficiente selezionare il proprio certificato OpenPGP
dalla scheda My certificates di Kleopatra, quindi cliccare sul menu
File, Export certificates... È bene verificare più
e più volte di aver scelto di esportare la sola chiave pubblica.

Per far ciò, dopo aver cliccato su File, Export certificates...quindi
digitato un nome per il file seguito dall'estensione .asc, suggeriamo
di aprire il file .asc con un qualunque editor di testo (va benissimo anche
il Blocco Note di Windows): si dovrà vedere unicamente l'indicazione
“...pgp public key...”.

Cliccando su File, Export certificates to server, si potrà
esportare la parte pubblica del proprio certificato su un server accessibile
da parte di chiunque. Coloro che desiderano inviarvi e-mail cifrate potranno
così recuperare la vostra chiave pubblica connettendosi al keyserver.
Per default, Kleopatra utilizza il server keys.gnupg.net ma è possibile
inserirne di nuovi cliccando sul menu Settings, Configure Kleopatra,
su Directory services quindi su New.

Cifrare e decifrare le e-mail con Gpg4Win e Microsoft Outlook Kleopatra mette
a disposizione anche l'interfaccia grafica per la gestione delle operazioni
di cifratura e decifratura, sia che si stia crittografando un messaggio di posta
elettronica, sia che ci si accinga a cifrare un file memorizzato sul disco fisso.
Per decifrare un messaggio, Kleopatra richiede l'inserimento della passphrase
specificata a protezione del proprio certificato.

Per cifrare e decifrare le email con Gpg4Win e Kleopatra, gli utenti di Outlook
2003 e 2007 troveranno disponibile, ad installazione completata, il plugin denominato
GpgOL. Scambiare messaggi crittografati con qualunque interlocutore è
semplice perché Kleopatra è capace di conservare nei propri archivi
le chiavi pubbliche necessarie per avviare l'operazione di cifratura dei
testi.

Per importare un certificato altrui basta cliccare, in Kleopatra, sul menu
File, Import certificates... e selezionare il file .asc o
.pgp che si è ricevuto. Inserendo uno o più keyserver nella sezione
Settings, Configure Kleopatra, Directory services,
si potrà ricercare le chiavi pubbliche delle persone d'interesse.

Gli autori di Gpg4Win consigliano i seguenti keyserver:

http://blackhole.pca.dfn.de
http://pks.gpg.cz
http://pgp.cns.ualberta.ca
http://minsky.surfnet.nl
http://keyserver.ubuntu.com
http://keyserver.pramberger.at
http://keyserver.pramberger.at
http://gpg-keyserver.de

Avviando Outlook, dopo l'installazione di Gpg4Win, verrà visualizzata
una finestra di benvenuto che informa circa l'aggiunta del plug-in GpgOL.
Come primo passo, è bene controllare le impostazioni del plug-in cliccando
sul menu Strumenti, Opzioni, GpgOL di Outlook. Per
impostazione predefinita, GpgOL utilizza lo standard OpenPGP: per attivare S/MIME
è necessario spuntare la casella Enable the S/MIME support.

Le altre opzioni sono auto-esplicative e consentono di cifrare o firmare di
default tutti i nuovi messaggi, di impostare OpenPGP o S/MIME come standard
predefinito e così via. In fase di composizione del messaggio, i pulsanti
della barra degli strumenti Encrypt message with GnuPG e Sign message
with GnuPG
consentono, rispettivamente, di crittografare e firmare digitalmente
i messaggi di posta elettronica sfruttando il plug-in GpgOL, Kleopatra ed il
motore GnuPG. Gli stessi comandi sono accessibili anche dal menu Strumenti
di Outlook.

Dopo aver cliccato sul pulsante Invia, comparirà una finestra
di dialogo di Kleopatra attraverso la quale si dovrà provvedere a selezionare
il certificato del destinatario.
Se Kleopatra non mostra automaticamente il certificato dell'interlocutore
a cui è diretto il messaggio, significa che - molto probabilmente
- esso non è mai stato aggiunto tra i certificati disponibili.
Il controllo viene effettuato basandosi sull'indirizzo di posta elettronica
del destinatario.

CONDIVIDI

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here