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ì:

  1. Il mittente cifra il testo con la chiave pubblica del destinatario e gliela spedisce (la chiave pubblica serve quindi a scrivere)
  2. 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:

  1. La cifratura con la coppia di chiavi garantisce al destinatario di essere l’unico a decifrare il testo.
  2. La firma digitale del testo permette al destinatario di conoscere l’identità del mittente
  3. 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

  1. GPA programma per gestire le chiavi
  2. Claws-Mail programma per spedire mail cifrate e per decifrare mail ricevute
  3. Kleopatra programma per cifrare, decifrare e verificare testi. Questo programma gira in memoria

Installiamolo sul PC e lanciamo GPA, apparirà la seguente maschera:

La maschera dell'applicazione GPA

 

5.2 Generazione chiave con software Windows

Siamo pronti per generare una nuova chiave: clicchiamo sulla voce di menù Keys->New Key:

Creazione nuova chiave su GPA

Inserimento dati per creazione nuova chiave su GPA

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.

Richiesta d inserimento 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.

La finestra mostra la chiave generata con GPA

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:

La finestra mostra il file system dove esportare la chiave con GPA

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).

La finestra mostra la chiave generata con GPA

 

Il contenuto del file ASCII contenente la chiave

 

6. Software MAC

Il software per MAC si chiama GPGTools versione 2011.07.11 (http://www.gpgtools.org/)

Specifiche:

  • Compatibilità con OS X LionCompatibile con OS X Lion (dietro GPGMail).
  • Compatibilità con applicazioni a 64-bitTutte le applicazioni sono compatibili a 64-bit.
  • Integrazione con il prodotto GPGMail Integra il prodotto GPGMail (OS X 10.5 to 10.6) per la cifratura delle email
  •  Integrazione con il prodotto GPG Keychain Access Integra il prodotto GPG Keychain Access (OS X 10.5 to 10.7) per la gestione delle chiavi
  •  Integrazione con il prodotto GPGServicesIntegra il prodotto GPGServices (OS X 10.5 to 10.6) per la cifratura/decifratura dei testi oltre che la verifica.
  • Integrazione con il prodotto GPGToolsPreferences Integra il prodotto GPGToolsPreferences (OS X 10.5 to 10.6 Intel) per la gestione delle preferenze.
  •  Integrazione con il prodotto MACGPG1Integra il prodotto MacGPG1 (OS X 10.5 to 10.7) che facilita l’installazione di GnuPG.
  •  Integrazione con il prodotto MACGPG2Integra il prodotto MacGPG2 (OS X 10.5 to 10.7, Intel) he facilita l’installazione di GnuPG.
  •  Integrazione con il prodotto EnigmailIntegra il prodotto Enigmail (Thunderbird 3 and 5).

Installiamolo sul MAC e lanciamo GPG Keychain Access, apparirà la seguente maschera

Appicazione GPG Key Access su MAC

 

6.1  Generazione chiave con software MAC

Siamo pronti per generare una nuova chiave: clicchiamo sul tasto New:

Maschera per la creazione di chiave con GPG Key Access

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.

Richiesta d inserimento 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:

La finestra mostra la chiave generata con GPG Key Access

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

La finestra mostra il file system dove esportare la chiave con GPG Key Access

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:

Il contenuto del file ASCII contenente 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

 La finestra mostra il file system dove importare la chiave con GPG Key Access

La finestra mostra la fine dell'importazione chiave

La finestra mostra l'elenco delle chiavi

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

La finestra mostra il file system dove selezionare il file da cifrare su MAC

Scegliere la chiave pubblica di mario con la quale si intende cifrare il testo

La finestra richiede la scelta della chiave pubblica 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.

La finestra mostra la fine della cifratura su MAC

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

L'immagine la scelta su Windows di decifrare/verificare il testo contenuto nel file selezionato

La finestra mostra le opzoni di cifratura con Kleopatra

Cliccando su Decrypt\Verify viene richiesta la passphrase della chiave privata di Mario

Richiesta d inserimento passphrase per decifrare con Kleopatra

La finesta mostra la fine della decifratura con Kleopatra

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.

La finestra mostra l'avvertimento che non ha trovato la chiave che ha firmato il testo

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

La finestra mostra il file system dove importare la chiave con GPA

Selezioniamo il file e clicchiamo su Open

La finestra mostra la fine dell'importazione chiave 

Ora se osserviamo la chiave importata ci accorgiamo che la Validity impostata a Unknown che sta ad indicare che nessuno ha certificato questa chiave.

La finestra mostra la chiave importata con l'opzione Validity impostata ad Unknown

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

La finestra mostra l'avvertimento che la chiave che ha firmato il testo non risulta fidata

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:

Menù per firmare la chiave selezionata 

Richiesta di conferma firma della chiave con GPA

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

Firma riconosciuta con Kleopatra

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ù

La finestra mostra come trovare il menù Preferenze servizi da Textedi

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.

La finestra di Preferenze servizi su MAC mostra le impostazioni per cifrare/decifrare

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:

Testo cifrato in ASCII su MAC

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

Tags: , , , , , , , , , , ,

8 Responses to “Come usare il software GNUpg per cifrare i testi”

  1. Nemesis Says:

    Grandissima! Questo articolo ci sarà molto utile.

  2. ZioPRoTo Says:

    Ma per chi usa Linux ?

  3. Massimo Gori Says:

    Grazie Daniela, bellissimo e utilissimo articolo!!

  4. Tux Says:

    a quando un key-signing party?

  5. Fish Says:

    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!!!

  6. paride Says:

    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

  7. Ilario Says:

    Uè! Per Linux avevo iniziato a buttar giù questa guida: http://wiki.eigenlab.org/index.php/PGP

  8. Alessio Says:

    Grandissimo articolo!
    Mi sei stata davvero utilissima… grazie 🙂