Come usare il software GNUpg per cifrare i testi
1. Introduzione
Se si possiedono dati confidenziali come password o altro da comunicare senza che nessun altro oltre al destinatario venga a conoscenza del contenuto della missiva, una maniera per farlo è cifrare il messaggio e fare in modo che solo il destinatario possa decifrarlo.
Il sistema più efficiente adottato è quello della generazione di una coppia di chiavi che mittente e destinatario devono possedere, una pubblica tranquillamente distribuita a tutti e una privata conosciuta solo dal proprietario. Dalla chiave pubblica non si può risalire a quella privata.
Il sistema funziona così:
- Il mittente cifra il testo con la chiave pubblica del destinatario e gliela spedisce (la chiave pubblica serve quindi a scrivere)
- Il destinatario riceve il testo e lo decodifica con la sua chiave privata (la chiave privata serve quindi a leggere ciò che è stato scritto con la chiave pubblica)
2. Firme digitali
Con la cifratura a doppia chiave si garantisce che il testo sia letto solo dal destinatario giusto, in quanto il testo è stato cifrato con la sua chiave pubblica e può essere letto solo con la chiave privata e quindi segreta del proprietario.
Quello che però non può essere garantita è l’identità del mittente, in quanto per esempio un programma può spedire un messaggio contenente un virus cifrato con la chiave pubblica del destinatario e questi potrebbe essere tratto in inganno.
E’ per questo che è stato inventato il concetto di firma digitale che si ottiene dalla combinazione tra la chiave privata e il testo. In questo modo è risolto il sia il problema della confidenza del messaggio sia l’identità di chi l’ha spedito.
3. Fiducia della firma digitale
C’è ancora un problema che rimane fuori: il problema della fiducia riposta in chi spedisce il messaggio. Anche se il testo risulta essere firmato e quindi associato al mittente giusto, sorge il problema della fiducia nel mittente, perchè il mittente potrebbe spacciarsi per qualcun altro con una firma associata giustamente a lui.
Il discorso è simile alla vita reale: se una persona sconosciuta si presenta a noi spacciandosi per qualcun altro, questo potrebbe arrecarci un qualche danno derivante da un cattivo comportamento.
Vi ricordate per esempio i ladri che spacciandosi per esattori del gas riuscivano ad ingannare le persone facendosi pagare degli importi? Bastava telefonare alla compagnia che avrebbe svelato l’inganno.
Diverso quindi è se la persona ci viene presentata da un amico o da un’autorità che garantisca per lui.
Nel caso delle chiavi PGP si è pensato di far firmare le chiavi pubbliche ad altre persone in cui si ha fiducia (il concetto di amico o autorità che presenta la persona) certificando così che la chiave appartenga veramente alla persona che sostiene di esserne il proprietario.
Nasce quindi la fingerprint (impronta digitale della chiave) che certifica che la firma appartiene veramente a quella persona.
4. Sintesi
Riepilogando:
- La cifratura con la coppia di chiavi garantisce al destinatario di essere l’unico a decifrare il testo.
- La firma digitale del testo permette al destinatario di conoscere l’identità del mittente
- La fingerprint garantisce che l’identità del mittente sia proprio quella che egli dichiara
Nei prossimi paragrafi vedremo l’applicazione di tali concetti al software di GNUgp.
5. Software per gestire le cifrature
Il sito dove scaricare il software che ci servirà per generare, importare ed esportare chiavi e per cifrare/decifrare i testi oltre che verificarli e firmarli è http://www.gnupg.org.
Su questo sito si può trovare il software per ogni sistema operativo oltre che documentazione in tutte le lingue.
In questo articolo analizzeremo in particolare il software che gira su windows e su MAC ed effettueremo una simulazione di scambio corrispodenza cifrata tra due utenti.
5.1 Software Windows
Il software per windows si chiama Gpg4win versione attuale 2.1.4 (http://www.gpg4win.org/) e comprende i seguenti programmi
- GPA programma per gestire le chiavi
- Claws-Mail programma per spedire mail cifrate e per decifrare mail ricevute
- Kleopatra programma per cifrare, decifrare e verificare testi. Questo programma gira in memoria
Installiamolo sul PC e lanciamo GPA, apparirà la seguente maschera:
5.2 Generazione chiave con software Windows
Siamo pronti per generare una nuova chiave: clicchiamo sulla voce di menù Keys->New Key:
Impostare i seguenti parametri
- Tipo algoritmo
- Lunghezza della chiave
- Il proprio nome e cognome
- La propria email
- Un commento che aggiunge informazioni (per esempio il nickname)
- Una data di scadenza se necessario
Premendo ok viene richiesta la passphrase.
Per rendere sicura la chiave, la passphrase deve contenere una frase abbastanza lunga e almeno un numero e un carattere speciale.
Se la passphrase non corrisponde alle specifiche di sicurezza l’applicazione avverte ed invita a digitarne un’altra
Dopo aver riconfermato la passphrase, abbiamo finalmente la chiave.
Come si può vedere dalla finestra ci sono tutte le informazioni che caratterizzano la chiave, compresa la Fingerprint che identifica univocamente la nostra chiave e la Key validity che è impostata a Fully Valid in quanto l’abbiamo creata noi; vedremo più avanti che significato può avere la validità di una chiave.
La chiave contiene insieme le sottochiavi pubblica e privata.
5.3 Esportazione chiave con software Windows
Adesso non ci rimane che esportare la chiave pubblica per poterla distribuire. Cliccare su Export:
Impostate l’opzione armor per generare una chiave alfanumerico (estensione asc).
Se l’opzione armor non viene impostata la chiave sarà generata in binario (estensione gpg).
6. Software MAC
Il software per MAC si chiama GPGTools versione 2011.07.11 (http://www.gpgtools.org/)
Specifiche:
Compatibile con OS X Lion (dietro GPGMail).
Tutte le applicazioni sono compatibili a 64-bit.
Integra il prodotto GPGMail (OS X 10.5 to 10.6) per la cifratura delle email
-
Integra il prodotto GPG Keychain Access (OS X 10.5 to 10.7) per la gestione delle chiavi
-
Integra il prodotto GPGServices (OS X 10.5 to 10.6) per la cifratura/decifratura dei testi oltre che la verifica.
Integra il prodotto GPGToolsPreferences (OS X 10.5 to 10.6 Intel) per la gestione delle preferenze.
-
Integra il prodotto MacGPG1 (OS X 10.5 to 10.7) che facilita l’installazione di GnuPG.
-
Integra il prodotto MacGPG2 (OS X 10.5 to 10.7, Intel) he facilita l’installazione di GnuPG.
-
Integra il prodotto Enigmail (Thunderbird 3 and 5).
Installiamolo sul MAC e lanciamo GPG Keychain Access, apparirà la seguente maschera
6.1 Generazione chiave con software MAC
Siamo pronti per generare una nuova chiave: clicchiamo sul tasto New:
Impostare i seguenti parametri
- Tipo algoritmo
- Lunghezza della chiave
- Il proprio nome e cognome
- La propria email
- Un commento che aggiunge informazioni (per esempio il nickname)
- Una data di scadenza se necessario
Premendo Generate key viene richiesta la passphrase.
Per rendere sicura la chiave, la passphrase deve contenere una frase abbastanza lunga e almeno un numero e un carattere speciale.
Se la passphrase non corrisponde alle specifiche di sicurezza l’applicazione avverte ed invita a digitarne un’altra
Dopo aver riconfermato la passphrase, abbiamo finalmente la chiave:
Come si può vedere dalla finestra ci sono tutte le informazioni che caratterizzano la chiave, compresa la Fingerprint che identifica univocamente la nostra chiave e la Key validity che è impostata a Fully Valid in quanto l’abbiamo creata noi.
La chiave contiene insieme le sottochiavi pubblica e privata.
6.2 Esportazione chiave con software MAC
Adesso non ci rimane che esportare la chiave pubblica. Cliccare sul tasto Export
Impostate il formato ASCII per generare una chiave alfanumerico (estensione asc).
Impostate il formato bynary per generare una chiave binaria (estensione gpg).
Attenzione a non cliccare su Allow secret key export perché altrimenti viene esportata anche la chiave privata.
Premendo su Save si salva la chiave:
7. Scambio corrispondenza cifrata tra un utente Windows e un utente MAC
Adesso prendiamo la chiave pubblica che l’utente Mario (sistema operativo Windows) aveva spedito all’utente Daniela (sistema operativo OS X di MAC) e cerchiamo di importarla.
Dall’applicazione GPG Keychain Access clicchiamo quindi sul tasto Import, selezioniamo il file chiavepubblicamario.asc e clicchiamo su Open
Ora che abbiamo la chiave pubblica di Mario possiamo cifrare del testo con questa chiave
Aprire Textedit e digitare una frase per esempio Ciao Mario come stai?. Salvare nel file testopermario.txt
Nella finestra Finder posizionarsi sul file, cliccare con il tasto destro e poi sulla voce di menù Servizi->OpenPGP: Encrypt
Scegliere la chiave pubblica di mario con la quale si intende cifrare il testo
Spuntando Sign si aggiunge una firma digitale al testo utilizzando la propria chiave privata.
Selezioniamo la chiave pubblica di mario con la quale vogliamo cifrare il testo e clicchiamo su OK e verrà generato il file testopermario.txt.gpg in binario.
Faremo la prova sia con un testo firmato (testopermariofirmato.txt.gpg con sign spuntato) che con uno non firmato (testopermario.txt.gpgcon sign non spuntato ).
A questo punto passiamo dalla parte dell’utente Mario che dovrà decifrare il testo.
Sul sistema operativo Windows e da file system selezioniamo il file non firmato testopermario.txt.gpg e con il tasto destro selezionare la voce di menù Decrypt and verify
Cliccando su Decrypt\Verify viene richiesta la passphrase della chiave privata di Mario
Alla fine viene creato il file testopermario.txt contenente il messaggio Ciao Mario come stai?
Se però cerchiamo di decifrare l’atro testo firmato, otteniamo lo stesso risultato ma con l’avvertimento che la firma non può essere decifrata in quanto non possediamo la chiave di chi l’ha cifrata.
Allora importiamo la chiave pubblica di chi ha firmato il testo e ce lo ha spedito.
Apriamo l’applicazione GPA e importiamo la chiave pubblica di daniela cliccando sul tasto Import
Selezioniamo il file e clicchiamo su Open
Ora se osserviamo la chiave importata ci accorgiamo che la Validity impostata a Unknown che sta ad indicare che nessuno ha certificato questa chiave.
Infatti se proviamo a decifrare il testo firmato questa volta avremo un avvertimento diverso, cioè che non può essere garantita la validità della firma anche se la chiave pubblica è stata trovata
Allora se noi siamo assolutamente certi dell’identità della persona che ci ha spedito il testo, possiamo certificarla noi, selezionando la chiave e cliccando con il tasto destro sulla voce di menù Sign Keys:
Viene richiesta di nuova la passphrase di Mario e poi la Validity viene imposta a Fully Valid
Ora cercando di decifrare il testo la firma è riconosciuta
Il meccanismo di risposta dell’utente Mario verso l’utente Daniela è molto simile tranne che qui si dovrà usare la funzione More GpgEX options->Encrypt o More GpgEX options->Sign and Encrypt su Windows e sul MAC il servizio OpenPGP Decrypt e OpenPGP Validate
8. Cifrare e decifrare su MAC in formato ASCII tramite combinazione di tasti.
Invece di cifrare in formato binario è possibile anche cifrare in formato ascii.
Aprire con Textedit il file che si vuole cifrare e selezionare Preferenze servizi… dal menù
Verificare che le voci OpenPGP: Decrypt e OpenPGP: Encrypt relativamente al menù Testo siano spuntate e associate ad una combinazioni di chiavi della tastiera, e tornare al testo.
A questo punto selezionare il testo e premere la combinazione della tastiera per cifrare il testo.
Verrà richiesta la chave con la quale cifrare il testo e alla fine otterremo questo:
Salviamo a questo punto il testo con estensione asc.
Possiamo fare lo stesso se vogliamo decifrare il testo ASCII digitando i tasti previsti da Prefereze servizi e in questo caso ci verrà richiesta la passphrase e il testo verrà decifrato istantaneamente.
9. Conclusione
In questo articolo abbiamo analizzato solo alcune funzionalità di due software, ma esiste la possibilità di far girare software GNUpg su tutte le macchine Unix sotto tutti gli shell di sistema e di utilizzarlo facilmente su molti client di posta. Se volete approfondire: http://www.gnupg.org
Buon divertimento!
Daniela
Author Profile
Latest entries
Uncategorized2013.04.28Digital Mass #8 Come ti programmo l’oggetto, con java e ruby
Digital Mass2013.03.29Digital Mass #7 Android: da Hello World all’interazione con un robot in sole 4 ore
Uncategorized2013.03.06Digital Mass #5: Programming Ruby
Uncategorized2013.01.14Digital Mass #3: Lejos- Un progetto opensource per l’unione tra Lego Mindstorms e Java – 20 Gennaio 2013
Tags: articolo, cifratura MAC, cifratura Windows, doppia chiave, fingerprint, firma, GNUpg, gpg, jilda, pgp, pgp signing party, she-ninux
August 15th, 2011 at 11:00 am
Grandissima! Questo articolo ci sarà molto utile.
August 15th, 2011 at 12:33 pm
Ma per chi usa Linux ?
August 15th, 2011 at 1:57 pm
Grazie Daniela, bellissimo e utilissimo articolo!!
August 15th, 2011 at 11:32 pm
a quando un key-signing party?
August 17th, 2011 at 12:02 pm
Finalmente una firma femminile su questo blog credo sia la prima volta in tutta la storia di Ninux!
Era ora!!!
Questo a parer mio è un altro traguardo raggiunto!
Libertà totale per tutte le donne Ninuxiane!!!
August 19th, 2011 at 8:12 pm
Ti do’un’imbeccata. Prova da shell, lasciando perdere gui ed alchimie varie a fare gpg –genkey –expert, ti dara’ la possibilita’ di generare chiavi rsa pubbliche e privatea che abbiano la possibilita’ di fare qualsiasi cosa, a 4096 bit
April 16th, 2012 at 4:33 pm
Uè! Per Linux avevo iniziato a buttar giù questa guida: http://wiki.eigenlab.org/index.php/PGP
May 10th, 2015 at 5:17 pm
Grandissimo articolo!
Mi sei stata davvero utilissima… grazie 🙂