18359 Letture

Gpg4Win 2.0: una soluzione completa per proteggere il contenuto di file ed e-mail

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 GnuPG) che include anche tutta una serie di moduli aggiuntivi e plug-in. 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 in due parole


La storia della crittografia si perde nella notte dei tempi. Il primo utilizzo documentato della crittografia, ossia di metodologie aventi come obiettivo quello di rendere un messaggio incomprensibile da parte delle persone non autorizzate a leggerlo, risale al 1900 a.C. quando uno scriba egizio fece uso, per preparare una iscrizione, di geroglifici “non-standard”.

Alcuni esperti sono però convinti che la crittografia 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 crittografia 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 assolutamente 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).

Nelle moderne comunicazioni, soprattutto quelle afferenti ad applicazioni “delicate”, è quindi necessario che siano sempre rispettati i seguenti requisiti:
- Autenticazione. Il processo che permette di attestare l’identità di ciascun partecipante ad una comunicazione. Le prime forme di autenticazione che si sono usate in Rete erano basate su verifiche operate su nomi o su indirizzi. Entrambi questi controlli non possono essere considerati affidabili.
- Segretezza. E’ indispensabile fare in modo che nessuno possa leggere un messaggio, fatta eccezione per il destinatario desiderato.
- Integrità. La protezione da modifiche non autorizzate operate sul messaggio trasmesso. Il materiale inviato al destinatario non deve poter essere alternato in alcun modo prima di essere consegnato.
- Non ripudio. Un meccanismo atto a fornire la certezza che chi trasmette un messaggio non possa negare di averlo inviato.

Facciamo un paio di esempi di attacchi alla sicurezza.
Un malintenzionato può mettere in atto il cosiddetto “sniffing di pacchetti” ossia può cercare di “spiare” il contenuto dei pacchetti dati in transito alla ricerca di informazioni utili. Questa tipologia di attacco è molto semplice da mettere in atto su reti LAN dato che le schede di rete Ethernet in modalità promiscua leggono tutti i pacchetti dati in transito.
Il “packet sniffing” non è necessariamente un’attività illecita. Un amministratore di rete può servirsene, ad esempio, per monitorare quali protocolli e quindi quali applicazioni vengono impiegate all’interno della LAN e per “smascherare” eventuali operazioni sospette.
Uno tra i migliori “packet sniffer” è l’opensource WireShark: gli abbiamo dedicato un intero articolo.

Un’altra modalità di attacco è lo “spoofing di indirizzi IP” che si concretizza nella generazione di pacchetti IP contenenti, come indirizzo IP del mittente, un indirizzo falso che non corrisponde a quello realmente usato dall’aggressore. Il ricevente non può sapere se l’indirizzo è stato falsificato.

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.
Quando si parla di crittografia, sono essenzialmente tre gli schemi ai quali ci si riferisce: crittografia a chiave simmetrica, crittografia a chiave pubblica (o asimmetrica) ed 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”.


Crittografia a chiave privata (asimmetrica) e funzionamento di GnuPG

Iniziamo col rammentare il significato di crittografia asimmetrica o “a chiave privata” dal momento che GnuPG utilizza tale meccanismo per proteggere il contenuto delle e-mail 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 due 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 “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).


Gpg4Win 2.0: una soluzione completa per proteggere il contenuto di file ed e-mail - IlSoftware.it