Alla Rete Internet si collegano, quotidianamente, centinaia di milioni di persone in tutto il mondo. Una così vasta schiera di utenti pone evidenti problemi di sicurezza: ad Internet, infatti, si collegano anche malintenzionati interessati ad impadronirsi di informazioni importanti. Le comunicazioni scambiate in Rete, inoltre, sono sempre più delicate: si pensi, per esempio, ad applicazioni commerciali, bancarie o fiscali.
Quattro sono le proprietà fondamentali che una comunicazione, definibile come “sicura”, deve avere: segretezza (protezione da letture da parte di utenti non autorizzati, interessati a “spiare” il contenuto dei messaggi scambiati); integrità (protezione da modifiche non autorizzate); autenticazione (certezza sull’identità della persona con la quale si sta comunicando); non ripudio (certezza che chi trasmette non possa negare di aver inviato un messaggio).
Per effettuare comunicazioni sicure, la soluzione consiste nel crittografare i messaggi in modo da renderli incomprensibili a tutti tranne che al reale destinatario.
L’algoritmo di codifica è conosciuto a tutti quindi, potenzialmente, anche ad un malintenzionato. Per garantire che il messaggio sia decifrabile solo dalle persone autorizzate, è necessario che queste conoscano una “chiave” segreta per l’operazione di decodifica.
Gli algoritmi crittografici sono classificabili entro due grandi famiglie: algoritmi a chiave simmetrica e algoritmi a chiave pubblica.
Negli algoritmi a chiave simmetrica, le chiavi necessarie per la codifica e la decodifica sono identiche e debbono, ovviamente, essere mantenute segrete.
L’utilizzo di una soluzione a chiave simmetrica è eccellente quando si vogliono proteggere informazioni memorizzate sul proprio computer od in rete locale. Chi ha l’esigenza di inviare documenti importanti via Internet (lo scenario più comunque è attraverso la posta elettronica) è bene percorra un’altra strada: utilizzando una soluzione basata su chiave simmetrica si dovrebbe infatti inviare, insieme con il documento crittografato, anche la password per decodificarlo. Così facendo la comunicazione sarebbe assolutamente insicura.
La tecnica che evita di dover inviare una password ai destinatari, unitamente con il documento codificato, si chiama crittografia a chiave pubblica.
GnuPG è un software open source che, per crittografare i dati, utilizza la soluzione a chiave pubblica (asimmetrica). Il programma può essere quindi considerato il successore del software commerciale PGP, utilizzabile, quindi, anche per l’invio di e-mail cifrate. L’utilizzo di GnuPG è completamente libero da restrizioni: in questo modo è possibile adottare il software anche in ambito aziendale senza la necessità di dover sborsare alcunché.
GnuPG offre molteplici possibilità tra le quali ricordiamo la cifratura di intere e-mail, la firma di messaggi di posta elettronica o documenti, verificare o certificare l’integrità di file eseguibili, attestare la propria identità in Rete. Di per sé, GnuPG è uno strumento che può essere utilizzato solo da riga di comando. Ciò significa che per dialogare con il programma è necessario, per come è stato concepito, portarsi al prompt dei comandi ed effettuare tutte le operazioni da questo ambiente. GnuPG è il “motore di cifratura” vero e proprio che può essere sfruttato da altre applicazioni. La scomodità di dover usare il software dal prompt dei comandi ha portato alla nascita di apposite interfacce grafiche che ne facilitano enormemente l’uso.
Per facilitare l’utilizzo di GnuPG, la comunità opensource si è attivata nello sviluppare apposite interfacce grafiche che consentano di fruire delle potenzialità del software in maniera visuale.
Tra le migliori c’è sicuramente Gpg4Win, un pacchetto che contiene il materiale seguente:
GnuPG: il “motore” vero e proprio
WinPT: un’interfaccia/key manager
GPA: un “key manager” alternativo
GPGol: plug-in per Outlook 2003 (crittografia dei messaggi di posta elettronica)
GPGee: plug-in per la shell di Windows (crittografia di file e cartelle)
Sylpheed-Claws: un client di posta completo che integra il plug-in per GnuPG
Al momento dell’installazione di Gpg4Win si può decidere quali componenti si desidera installare sul sistema, a seconda delle proprie esigenze. Eseguendo il file d’installazione, è possibile configurare, in un unico passo, tutti i programmi che vi permetteranno, da subito, di scambiare messaggi cifrati con tutto il mondo.
Il setup andrebbe eseguito preferibilmente con i diritti di amministratore: in questo modo non sarà necessario, successivamente, modificare il percorso della cartella ove verranno memorizzati i dati “di servizio” di GnuPG e di WinPT.
WinPT è una delle migliori interfacce per GnuPG. Al primo avvio, il programma richiede di generare od importare una coppia di chiavi personali (una privata ed una pubblica).
Cliccando su Generate a GnuPG key pair, il software vi chiederà di inserire il vostro nome (Real name), indirizzo e-mail ed una parola chiave (passphrase) che verrà usata per impedire ad altri utenti che facciano uso del vostro personal computer, di sfruttare la vostra chiave segreta. Consigliamo di scegliere una passphrase complessa (preferibilmente una stringa alfanumerica contenente anche caratteri speciali).
La procedura di generazione delle chiavi personali potrà impiegare diversi secondi: al termine dell’operazione sarà visualizzato il messaggio “Key generation completed”.
Come ultimo passo, Gpg4Win fa presente che è cosa caldamente consigliata creare una copia di backup delle chiavi che si sono generate. Sarebbe opportuno memorizzarle su di un’altra unità, protetta da accessi da parte di persone non autorizzate o meglio, in un archivio cifrato oppure in un’unità virtuale crittografata (creata e gestita, per esempio, con il software TrueCrypt).
Al termine della procedura di generazione delle vostre chiavi pubblica e privata, facendo doppio clic sull’icona di WinPT – minimizzata nella traybar di Windows – si accede al Key manager, la finestra contenente le vostre chiavi private e tutte quelle pubbliche (le proprie e quelle dei contatti con i quali si desidera colloquiare in modo sicuro).
Dopo la generazione delle proprie chiavi, queste saranno immediatamente elencate nella finestra principale del programma. In corrispondenza della colonna Type troverete la dizione pub/sec
: ciò significa che si dispone sia della chiave pubblica (quella che verrà utilizzata dalle persone che desiderano scambiare messaggi sicuri con noi) sia di quella privata (sec
= secret), necessaria per decodificare i documenti crittografati a voi indirizzati.
Per aggiungere le chiavi pubbliche di altre persone è possibile agire in tre differenti modi: importandole da file, copiandole dagli Appunti (clipboard) di Windows oppure facendo riferimento ad un keyserver (server appositi collegati alla Rete che ospitano le chiavi pubbliche degli utenti di tutto il mondo).
Per aggiungere la chiave pubblica di un utente, basta cliccare sul menù Keyserver e selezionare un server dall’elenco. A questo punto, inserendo nella casella in calce alla finestra il nome del contatto da ricercare quindi premendo Search è possibile trovare chi ci interessa. In alternativa, se si conosce l’indirizzo e-mail della persona cercata, è sufficiente inserirlo nell’apposita casella quindi premere Receive.
Nel caso in cui si disponga di una chiave pubblica altrui memorizzata in un file (per esempio, un file .asc allegato ad una e-mail crittografata), è sufficiente cliccare sul menù Key, Import di WinPT e selezionare il file contenente la chiave da importare. Se la chiave pubblica, invece, è all’interno di un documento o di una qualsiasi pagina web, basta selezionarla quindi ricorrere alla funzione Modifica, Copia: potrà poi essere importata nell’elenco di WinPT cliccando col tasto destro del mouse sull’icona del programma visualizzata nella traybar quindi scegliendo la voce Clipboard, Decrypt/Verify.
La propria chiave pubblica deve essere inviata a tutte le persone con le quali vogliamo scambiare messaggi cifrati. Per esportarla sotto forma di file testuale (da allegare, ad esempio, ad una e-mail) basta selezionare la propria chiave quindi selezionare l’opzione Export dal menù Key.
Per firmare un testo è sufficiente selezionarlo da un qualunque programma, copiarlo negli Appunti (Modifica, Copia) quindi scegliere il comando Clipboard, Sign dal menù che compare cliccando sull’icona di WinPT, visualizzata nella traybar di Windows:
Dopo l’inserimento della passphrase, l’area degli Appunti di Windows conterrà il testo unitamente alla propria firma digitale: incollatelo altrove usando la combinazione di tasti CTRL+V.
Per inviare ad una persona un documento cifrato è sufficiente selezionarne il testo, copiarlo negli Appunti (CTRL+C), usare il comando Clipboard, Encrypt e scegliere la chiave pubblica dell’interlocutore.
Anche in questo caso, nell’area degli Appunti verrà inserito in testo cifrato: basterà incollarlo nel messaggio da trasmettere premendo la combinazione di tasti CTRL+V.
Se desiderate decifrare un documento a voi indirizzato, è sufficiente selezionarlo, copiarlo negli Appunti (CTRL+C) e scegliere Decrypt/Verify dal menù di WinPT.
Nell’area degli Appunti di Windows verrà così ora collocato il testo decifrato (CTRL+V per incollarlo). Analoga procedura può essere applicata per verificare la firma applicata ad un testo.
La voce Current window consente di criptare o decifrare documenti presenti nella finestra attiva.
Il “key manager” alternativo GPA (GNU Privacy Assistant), avviabile dallo stesso gruppo di avvio di “Ggp4Win” consente di cifrare, verificare, firmare e decifrare direttamente qualunque file crittografato. Il programma è capace di gestire ed interfacciarsi con le chiavi importate mediante WinPT.
La codifica o la decodifica di file è effettuabile cliccando sul pulsante Files quindi facendo riferimento alle varie possibilità (Sign, Verify, Encrypt e Decrypt) offerte dalla barra degli strumenti del software.