Guida a GnuPG programma libero da restrizioni per crittografare: generare una nuova coppia di chiavi.

gnupg-logoGNU Privacy Guard (GnuPG o GPG), rilasciato sotto la licenza GNU GPL, è un programma progettato per sostituire la suite crittografica PGP.

GPG è completamente compatibile con gli standard OpenPGP dell'IETF ed è sostenuto dal governo tedesco.

Fa parte del software sviluppato dalla Free Software Foundation.

E' importante specificare che GnuPG è un programma  libero da restrizioni, potete usarlo anche in azienda.

Il progetto GnuPG va avanti grazie anche a finanziamenti concessi dal Ministero tedesco per l'Economia e la Tecnologia.

Principale autore del progetto è Werner Koch.

GnuPG vi permette di crittografare e/o firmare documenti e email, è indispensabile per proteggere la privacy ma anche per certificare la propria identità in Internet o anche per assicurare l'integrità di programmi scaricabili (eseguibili firmati)

Se siete una banca, un azienda ma anche semplicemente un privato  potreste prima o poi sentire l'esigenza di un programma simile, siamo nell'era digitale e delle telecomunicazioni ma quella della sicurezza informatica è ancora molto lontana...

Vi ricordo che dal Gennaio 2004 in Italia  è in vigore la legge (196/03)  Decreto Legislativo del 30 Giugno 2003

"Codice in materia di protezione dei dati personali" dove all'articolo 34 punto h potete leggere proprio : "adozione di tecniche di cifratura o di codici identificativi per determinati trattamenti di dati idonei a rivelare lo stato di salute o la vita sessuale effettuati da organismi sanitari"

Quindi se siete un organo istituzionale, un azienda o un semplice studio medico potete ottemperare agli obblighi di legge usando il programma GnuPG a costo zero per conservare al sicuro i dati o farli viaggiare cifrati per  email.

GPG è un programma stabile e maturo, ed è distribuito con parecchi sistemi operativi liberi come FreeBSD, OpenBSD, e NetBSD, oltre che, ovviamente, con tutte le distribuzioni GNU/Linux. È disponibile anche per le varie versioni dei sistemi operativi proprietari Microsoft Windows e Mac OS X, e grazie alla sua portabilità ed alla disponibilità del codice sorgente è possibile crearne una versione per qualsiasi OS.

Nonostante la versione di base di GPG fornisca un'interfaccia a riga di comando completa, sono state sviluppate parecchie interfacce grafiche, Seahorse per GNOME, KGPG per KDE, o metodi per integrarlo all'interno di programmi di posta elettronica, come KMail, Evolution (i client e-mail di default per, rispettivamente, KDE e GNOME). Un plug-in apposito, Enigmail, permette l'integrazione con Thunderbird, semplificando l'utilizzo di GPG (per la posta) sotto Microsoft Windows, GNU/Linux ed altri sistemi operativi. Parecchi client e-mail testuali, tra cui Mutt, supportano la gestione delle mail firmate o cifrate con GPG (o PGP, la configurazione è abbastanza simile per entrambi).

gnupg_prefs-001
Si deve sempre tenere in mente che, poiché quei sistemi di plugin non fanno parte del progetto GPG né dello standard OpenPGP e che gli sviluppatori di GPG e di OpenPGP non hanno preso parte alla progettazione di tali sistemi, potrebbe accadere che la sicurezza fornita da GPG venga abbassata o addirittura compromessa dall'utilizzo di tali interfacce.

GPG può essere compilato sotto altre piattaforme come Mac OS X e Windows. Per Windows un software che può esser considerato l'erede del commerciale PGP, è Gpg4win, mentre Mac OS X esiste un port chiamato MacGPG. In particolare questo software è stato adattato per usare l'interfaccia utente di OS X e le sue funzioni native. La cross-compilazione non è un lavoro semplice, anche solo per il fatto che i sistemi operativi provvedono ai requisiti di sicurezza in modalità molto diverse (anche da una versione all'altra) ed è spesso complesso adattare a queste modalità il programma per mantenere identici livelli qualitativi sui vari sistemi.

GnuPG utilizza la crittografia a chiave pubblica per permettere a coloro che lo utilizzano di comunicare in sicurezza. In un sistema a chiave pubblica ogni utente ha una coppia di chiavi consistenti in una chiave privata e una chiave pubblica. La chiave privata di una persona viene tenuta segreta; non deve mai essere rivelata. La chiave pubblica può essere data a tutti coloro con i quali l'utente vuole comunicare. GnuPG utilizza uno schema in qualche modo più sofisticato per il quale un utente possiede una coppia di chiavi primaria e zero o più coppie di chiavi subordinate addizionali. La coppia di chiavi primaria e quelle subordinate sono raggruppate assieme per facilitare la gestione delle chiavi e il mazzo così ottenuto può spesso essere considerato semplicemente come un'unica coppia di chiavi.

Generare una nuova coppia di chiavi.


L'opzione a linea di comando --gen-key è utilizzata per creare una nuova coppia di chiavi primaria.
alice% gpg --gen-key
gpg (GnuPG) 0.9.4; Copyright (C) 1999 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.
Per favore scegli che tipo di chiave vuoi:
   (1) DSA e ElGamal (default)
   (2) DSA (firma solo)
   (4) ElGamal (firma e cifra)
Cosa scegli?
     
GnuPG è in grado di creare diversi tipi di coppie di chiavi, ma una chiave primaria deve essere capace di fare firme. Ci sono pertanto solo tre opzioni. L'opzione 1 crea in realtà due coppie di chiavi: una coppia di chiavi di tipo DSA che rappresenta la coppia di chiavi primaria ed è utilizzabile solo per firmare; una coppia di chiavi subordinata di tipo ElGamal, usata per criptare. L'opzione 2 è simile alla precedente ma crea solo una coppia di chiavi DSA. L'opzione 4[1]crea una singola coppia di chiavi ElGamal utilizzabile sia per firmare che per criptare. In tutti i casi è possibile in un secondo momento creare sotto-chiavi addizionali per cifrature e firme.
gnupg_prefs-002
È necessario anche scegliere la dimensione della chiave. La dimensione di una chiave DSA deve essere compresa fra 512 e 1024 bit mentre una chiave ElGamal può essere di qualsiasi dimensione. GnuPG, però, richiede che le chiavi non siano più piccole di 768 bit. Accade quindi che, se si è scelta l'opzione 1 e successivamente si sceglie una dimensione per la chiave maggiore di 1024 bit, la chiave ElGamal avrà la dimensione richiesta, mentre la chiave DSA sarà di 1024 bit.
Sto per generare una nuova coppia di chiavi ELG-E.
               la dimensione minima è  768 bit
          la dimensione predefinita è 1024 bit
  la dimensione massima consigliata è 2048 bit
Di che dimensioni vuoi la chiave? (1024)
     
Più lunga è la chiave maggiore è la sicurezza contro attacchi a forza bruta, anche se in pratica per un utilizzo comune la dimensione di default della chiave è adeguata. Con una chiave lunga, infatti, diventa più economico aggirare la cifratura piuttosto che provare a romperla. Inoltre cifratura e decifratura sono più lente e una dimensione maggiore della chiave può influenzare negativamente la lunghezza della firma. Una volta scelta, la dimensione della chiave non può più essere modificata.

Infine è necessario scegliere una data di scadenza. Se è stata scelta l'opzione 1, la data di scadenza verrà utilizzata sia per la coppia di chiavi ElGamal che per quella DSA.
Per favore specifica per quanto la chiave sarà valida.
         0 = la chiave non scadrà
      <n>  = la chiave scadrà dopo n giorni
      <n>w = la chiave scadrà dopo n settimane
      <n>m = la chiave scadrà dopo n mesi
      <n>y = la chiave scadrà dopo n anni
Chiave valida per? (0)
     
Per la maggior parte degli utenti una chiave che non scade risulta adeguata. Il tempo di scadenza, in caso contrario, dovrebbe essere scelto con cura in quanto, anche se è possibile cambiare la data di scadenza dopo che la chiave è stata creata, potrebbe risultare dificile comunicare un cambiamento alle persone che possiedono quella chiave pubblica.

È necessario fornire un identificativo utente[2] in aggiunta ai parametri della chiave. Lo User ID viene utilizzato per associare la chiave che si sta creando ad una persona reale.

Ti serve uno User ID per identificare la tua chiave; il software costruisce l'user id a partire da Nome e Cognome, Commento e Indirizzo di Email indicati in questa forma:
    "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"
Nome e Cognome:
gnupg_prefs-003
     
Solamente uno User ID viene creato nel momento in cui si genera una nuova chiave. È comunque possibile aggiungere ulteriori User ID in seguito nel caso in cui si desiderasse utilizzare la chiave in due o più contesti diversi, come ad esempio sul lavoro e all'interno della propria sezione di partito. Uno User ID deve essere creato con cura in quanto non può più essere modificato.

GnuPG necessita di una ``frase d'ordine''[3] per proteggere le chiavi primarie e subordinate che si possiedono.

Ti serve una passphrase per proteggere la tua chiave segreta.
Inserisci la passphrase:
     
Non ci sono limiti alla lunghezza della passphrase, la quale dovrebbe essere scelta con attenzione. Dal punto di vista della sicurezza, la passphrase usata per sbloccare la chiave privata è uno dei punti più deboli di GnuPG (così come di altri sistema di crittografia a chiave pubblica), in quanto è l'unica protezione che si possiede nel caso in cui un'altra persona entri in possesso della propria chiave privata. Idealmente la passphrase non dovrebbe utilizzare parole prese da un dizionario e dovrebbe usare tanto caratteri minuscoli e minuscoli quanto caratteri non-alfabetici. Una buona passphrase è cruciale per un uso sicuro di GnuPG.

Generare un certificato di revoca.
Una volta che la propria coppia di chiavi è stata creata, si dovrebbe immediatamente generare un certificato di revoca per la chiave pubblica primaria utilizzando l'opzione --gen-revoke. Se ci si dimentica la passphrase o se la propria chiave privata viene compromessa o persa, questo certificato di revoca può essere pubblicato per segnalare ad altri che la chiave pubblica non deve più essere usata. Una chiave pubblica revocata può comunque ancora essere utilizzata per verificare firme fatte in passato, ma non può più essere usata per cifrare futuri messaggi. Inoltre la revoca non influisce sulla propria capacità di decifrare messaggi spediti in passato, se si possiede ancora l'accesso alla chiave privata.
alice% gpg --output revoca.asc --gen-revoke mia_chiave
[...]
   
L'argomento mia_chiave deve essere uno specificatore di chiave, cioè o l'ID della propria coppia primaria di chiavi o una qualsiasi altra parte dello User ID che identifica la propria coppia di chiavi. Il certificato generato verrà riposto nel file revoca.asc. Se l'opzione --output è omessa, il risultato verrà stampato sullo standard output. Poiché il certificato è breve, si può pensare di stamparne una copia e tenerlo al sicuro da qualche parte, ad esempio nella propria cassetta di sicurezza. Il certificato non dovrebbe venir riposto in luoghi dove altri possono aver accesso in quanto chiunque può pubblicare il certificato di revoca e rendere la chiave pubblica corrispondente inutile.

Note:
[1]    L'opzione 3 serve a generare una coppia di chiavi ElGamal che non è utilizzabile per fare firme.
[2]    D'ora in poi User ID per rispettare la traduzione del programma.
[3]    D'ora in poi passphrase come nel testo originale.

Ricerca personalizzata


Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:


Commenti

Post popolari in questo blog

Rilasciano BlenderBot v3, un chatbot che utilizza il loro modello OPT e aprono la demo per testarlo

Componenti aggiuntivi di Google Workspace

Come rimuovere il virus che trasforma le cartelle in collegamenti nella tua pendrive.