Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Sicurezza/GnuPg"
Differenze tra le versioni 29 e 58 (in 29 versioni)
Versione 29 del 02/10/2007 20.15.01
Dimensione: 13136
Autore: AldoLatino
Commento: Corretti errori di battitura.
Versione 58 del 18/05/2024 08.18.41
Dimensione: 18048
Commento: Piccole modifiche
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
## page was renamed from Sicurezza/GnuPG
Linea 3: Linea 4:
[[BR]]
||<tablestyle="float:right; font-size: 0.9em; width:35%; background:#F1F1ED; margin: 0 0 1em 1em;"style="padding:0.5em;">'''Indice'''[[BR]] [[TableOfContents(2)]]||
<<Indice(depth=2)>>
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=385070"; rilasci="20.04 18.04")>>
Linea 8: Linea 9:
||<tablestyle="text-align: justify; width:65%; " style="border:none;" 5%> attachment:logo_piccolo.png ||<style="border:none"> In questa pagina viene presentato '''Gnu``Pg''', il sistema di crittografia predefinito di Ubuntu. Oltre al comando '''gpg''' verrà illustrato l'uso delle più comuni interfacce grafiche. ||

[[BR]][[BR]]
 ||<tablestyle="text-align: justify; width:65%; " style="border-width:0px;" 5%>''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.'' ||
||<tablestyle="text-align: right; width:65%; " style="border-width:0px;" 5%> (Estratto dal [http://www.gnupg.org/gph/it/index.html Manuale di GNUPG])||

= Interfacce grafiche =

Esistono diversi programmi che forniscono un'interfaccia grafica al sottosistema '''gpg'''. Di seguito ne vengono descritte alcuni di essi.

== Seahorse ==

'''Seahorse''' è lo strumento di gestione delle chiavi predefinito di Ubuntu.

Per installare il programma è sufficiente digitare il seguente comando:
{{{
sudo apt-get install seahorse
}}}

== GNU Privacy Assistant ==

Per gli utenti '''GNOME''', '''gpa''' è una valida alternativa a '''seahorse''', nel caso si riscontrino problemi con quest'ultimo.

Per installare il programma è sufficiente digitare il seguente comando:
{{{
sudo apt-get install gpa
}}}

== Kgpg ==

L'applicazione '''kgpg''' è un'interfaccia per '''KDE''', utile agli utenti di [:Kubuntu:]

Per installare il programma è sufficiente digitare il seguente comando:
{{{
sudo apt-get install kgpg
}}}

È possibile anche utilizzare questi programmi per generare delle chiavi.

= Generare una chiave a riga di comando =

Digitare il seguente comando in una finestra di terminale:
{{{
gpg --gen-key
}}}

Apparirà una schermata di selezione con le seguenti opzioni:
{{{
Please select what kind of key you want:
   (1) DSA and Elgamal (default)
   (2) DSA (sign only)
   (5) RSA (sign only)
}}}

La scelta predefinita «(1)» è la migliore, in quanto le altre non possono essere utilizzate per criptare.

Verrà chiesto di scegliere una dimensione per la chiave:
{{{
What keysize do you want? (2048)
}}}

È consigliato lasciare l'impostazione predefinita.

Dopodichè sarà possibile scegliere se impostare una data di scadenza:
{{{
In questa pagina viene presentato '''!GnuPg''', il sistema di crittografia da [[AmministrazioneSistema/Terminale|riga di comando]] predefinito di Ubuntu.

<<BR>>
||<tablestyle="text-align: justify; width:62%; " style="border-width:0px;" 5%>''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 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.'' ||
||<tablestyle="text-align: right; width:62%; " style="border-width:0px;" 5%> (Estratto dal [[http://www.gnupg.org/gph/it/index.html|Manuale di GNUPG]])||
<<BR>>

Esistono diversi programmi che forniscono un'interfaccia grafica al sottosistema '''gpg'''. I programmi seguenti, possono essere utilizzati per generare le chiavi GPG:
 * '''Password e chiavi''': conosciuto come '''Seahorse''', è lo strumento di gestione delle chiavi predefinito di Ubuntu. Per informazioni sull'uso dell'applicazione fare riferimento al manuale ufficiale di '''Seahorse''' disponibile nel menù '''''Aiuto → Sommario''''' del programma.
 * '''kgpg''': è un'interfaccia per '''KDE''', utile agli utenti '''Kubuntu'''. Per installare il programma è sufficiente [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://kgpg|kgpg]].

<<Anchor(generarechiave)>>
= Generare una chiave =

 0. Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il comando seguente: {{{
gpg --full-gen-key
}}}

 0. Apparirà una schermata di selezione con le seguenti opzioni: {{{
Selezionare il tipo di chiave desiderato:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (solo firma)
   (4) RSA (solo firma)
}}} La scelta predefinita '''(1)''' è la migliore, in quanto fornisce una maggiore robustezza della chiave.

 0. Verrà chiesto di scegliere una dimensione per la chiave: {{{
La lunghezza delle chiavi RSA è compresa tra 1024 e 4096 bit.
Dimensione chiave desiderata? (2048)
}}} È possibile lasciare l'impostazione predefinita.

 {{{#!wiki note
Nel caso si necessiti di una chiave per firmare dei pacchetti Debian, o se si ha intenzione di far parte del [[GruppoSviluppo|GruppoSviluppo]] in futuro, considerare di creare una chiave da 4096 bit.}}}

 0. Verrà chiesto di impostare una data di scadenza: {{{
Linea 74: Linea 45:
}}}

Molte persone creano le proprie chiavi senza scadenza. Se si effettua tale scelta bisogna ricordarsi di revocare la chiave quando non la si usa più. Premere «'''Y'''» per continuare con il processo di configurazione. Il prossimo passaggio riguarda la creazione dell'identificativo:
{{{
You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
    "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

Real name: Dennis Kaarsemaker
Email address: dennis@kaarsemaker.net
Comment: Tutorial key
You selected this USER-ID:
    "Dennis Kaarsemaker (Tutorial key) <dennis@kaarsemaker.net>"
}}}

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Successivamente sarà possibile aggiungere ulteriori indirizzi email alla propria firma.'' ||

Una volta verificata la correttezza delle informazioni inserire, premere «'''O'''» per generare la chiave. Verrà chiesto di inserire una ''frase d'ordine'':
{{{
You need a Passphrase to protect your secret key.
}}}

L'ideale sarebbe scegliere una breve frase difficile da indovinare. A differenza di una ''password'', una ''passphrase'' può contenere anche degli spazi bianchi.

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5% ^>[[Immagine(Icone/Piccole/warning.png,,center)]] ||<style="padding:0.5em; border:none;">'''Dimenticare la propria passphrase comporta la perdita della chiave.''' ||

Una volta inserita la ''passphrase'' verrà avviato il processo di creazione della chiave . Seguire le istruzioni a video finché non si raggiunge una schermata simile alla seguente:
{{{
}}} Molte persone creano le proprie chiavi senza scadenza. Se si effettua tale scelta bisogna ricordarsi di revocare la chiave quando non la si usa più. Premere '''Y''' per continuare con il processo di configurazione.

 0. Il passaggio successivo riguarda la creazione dell'identificativo:
  * Inserire il proprio nome reale
  * Inserire il proprio indirizzo email
  * Inserire a scelta un commento per qualificare la chiave.

 {{{#!wiki note
Successivamente sarà possibile aggiungere ulteriori indirizzi email alla propria firma.}}}

 0. Una volta verificata la correttezza delle informazioni inserite, premere '''o''' per generare la chiave. Verrà chiesto di inserire una ''passphrase'': {{{
È necessaria una passphrase per proteggere la propria chiave segreta.
}}} L'ideale sarebbe scegliere una breve frase difficile da indovinare. A differenza di una ''password'', una ''passphrase'' può contenere anche degli spazi bianchi.

 {{{#!wiki important
Dimenticare la propria passphrase comporta la perdita della chiave.}}}

 0. Una volta inserita la ''passphrase'' verrà avviato il processo di creazione della chiave. Questo verrà annunciato dal seguente messaggio: {{{
Dobbiamo generare un mucchio di byte casuali. È una buona idea eseguire
qualche altra azione (scrivere sulla tastiera, muovere il mouse, usare i
dischi) durante la generazione dei numeri primi; questo da al generatore di
numeri casuali migliori possibilità di raccogliere abbastanza entropia.
}}}

 0. Al termine, si raggiungerà una schermata simile alla seguente: {{{
gpg: key D8FC66D2 marked as ultimately trusted
chiavi pubbliche e segrete create e firmate.

pub 1024D/D8FC66D2 2011-04-07
      Key fingerprint = 95BD 8377 2644 DD4F 28B5 2C37 0F6E 4CA6 D8FC 66D2
uid Mario Rossi <mario@rossi.it>
sub 2048g/389AA63E 2011-04-07
Linea 104: Linea 80:

pub 1024
D/D8FC66D2 2005-09-08
      Key fingerprint = 95BD 8377 2644 DD4F 28B5 2C37 0F6E 4CA6 D8FC 66D2
uid Dennis Kaarsemaker (Tutorial key) <dennis@kaarsemaker.net>
sub 2048g/389AA63E 2005-09-08
}}}


L'ID della chiave nell'esempio è «'''D8FC66D2'''».

È buona norma configurare questa chiave come la chiave predefinita all'interno del file `~/.bashrc`, in modo tale da specificare come automatico l'utilizzo di essa con le altre applicazioni che fanno uso del sistema '''Gnu``Pg'''. Per fare ciò basta inserire nel file `~/.bashrc` la riga:
{{{
}}} L' '''ID''' della chiave nell'esempio è '''D8FC66D2'''.

 0. È buona norma configurare questa chiave come la chiave predefinita all'interno del file `~/.bashrc`, in modo tale da specificare come automatico l'utilizzo di essa con le altre applicazioni che fanno uso del sistema '''!GnuPg'''. Per fare ciò basta inserire nel file `~/.bashrc` la riga: {{{
Linea 116: Linea 84:
}}}

La dicitura «'''D8FC66D2'' va sostituita con il proprio ID.

Ora è necessario riavviare il servizio per la cifratura. A seconda del sistema in uso potrebbe essere necessario terminare uno dei due seguenti processi:

* '''gpg-agent''': {{{
}}} La dicitura ''D8FC66D2'' va sostituita con il proprio ID.

 0. Ora è necessario riavviare il servizio per la cifratura. A seconda del sistema in uso potrebbe essere necessario terminare uno dei due seguenti processi:
  * '''seahorse-agent''': {{{
killall -q seahorse-agent
eval $(seahorse-agent --daemon)
}}}
  * '''gpg-agent''': {{{
Linea 127: Linea 96:
 * '''seahorse-agent''': {{{
killall -q seahorse-agent
eval $(seahorse-agent --daemon)
}}}

Infine, eseguire questo comando: {{{
 0. Infine, eseguire questo comando: {{{
Linea 140: Linea 104:
Per creare un certificato di revoca, da terminale digitare: {{{
gpg --output revoke.asc --gen-revoke <KEY-ID>
}}}

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/warning.png,,center)]] ||<style="padding:0.5em; border:none;">'''Il certificato deve essere stampato e conservato con cura. Chiunque abbia accesso al certificato di revoca può rendere la chiave pubblica inutilizzabile.''' ||

= Caricare una chiave =

Questa sezione contiene le istruzioni per inviare la propria chiave ad un server di chiavi in modo che tutti possano scaricarla. Una volta caricata su un server, dopo un breve periodo di tempo, tutti gli altri ''keyserver'' avranno la propria firma. È possibile velocizzare questo procedimento spedendo la propria chiave a più server.

== Inviare un chiave ad un server con GnuPG ==

{{{
gpg --send-keys --keyserver keyserver.ubuntu.com <KEY-ID>
}}}
Per creare un certificato di revoca, digitare nel [[AmministrazioneSistema/Terminale|terminale]]: {{{
gpg --output revoke.asc --gen-revoke KEY-ID
}}}

Al posto di ''KEY- ID'' bisogna inserire l' '''ID''' della propria chiave.

{{{#!wiki important
Il certificato deve essere stampato e conservato con cura. Chiunque abbia accesso al certificato di revoca può rendere la chiave pubblica inutilizzabile.}}}

= Importare una chiave =

'''GnuPG''' consente di aggiungere al proprio portachiavi anche chiavi non generate dall'utente, sia pubbliche che private.

{{{#!wiki important
Per importare una qualsiasi chiave con gpg, è fondamentale essere già in possesso di una copia di essa salvata in locale. Quindi, se si vuole importare la chiave "D8FC66D2" salvata su "www.example.org/key.asc", bisogna prima copiarla o scaricarla sul proprio PC.}}}

== Importare una chiave pubblica ==

Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando: {{{
gpg --import file_chiave_pubblica.gpg
}}} dove ''file_chiave_pubblica'' è il percorso del file contenente i dati della chiave pubblica da importare.
Una volta fatto ciò, dovrebbero apparire varie righe sul terminale e la prima dovrebbe essere simile a questa: {{{
gpg: chiave <ID>: chiave pubblica "Nome Cognome (utente) <email>" importata
}}} Significa che la chiave pubblica è stata importata con successo e che è adesso utilizzabile.

== Importare una chiave privata ==

Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando: {{{
gpg --allow-secret-key-import --import file_chiave_privata.gpg
}}} dove ''file_chiave_privata'' è il percorso del file che contiene i dati della chiave privata da importare.
Nel caso l'importazione della chiave segreta finisca correttamente, dovrebbe venir stampata a schermo la seguente riga: {{{
gpg: chiave <ID>: chiave segreta importata
}}}

= Inviare una chiave a un server =

Questa sezione contiene le istruzioni per inviare la propria chiave a un server di chiavi in modo che tutti possano scaricarla. Una volta caricata su un server, dopo un breve periodo di tempo, tutti gli altri server di chiavi avranno la propria firma. È possibile velocizzare questo procedimento spedendo la propria chiave a più server.

== Inviare una chiave da riga di comando ==

Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando: {{{
gpg --send-keys --keyserver keyserver.ubuntu.com KEY-ID
}}}

Al posto di ''KEY- ID'' bisogna inserire l' '''ID''' della propria chiave.
Linea 158: Linea 152:
Per esportare la propia chiave è sufficiente digitare il seguente comando:
{{{
 0. Esportare la propria chiave digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando : {{{
Linea 161: Linea 154:
}}}

Verrà creato un file {{{public.key}}} contenente la propria chiave pubblica.
Ora aprire una finestra del browser e visitare [http://pgp.mit.edu questo] indirizzo. Incollare il contenuto del file `public.key` nella casella sotto la scritta «'''Submit a key'''», dunque fare clic su «'''Submit this key to the keyserver'''».
}}} Verrà creato un file `public.key` contenente la propria chiave pubblica.
 0. Aprire una browser e andare al seguente indirizzo: [[http://keyserver.ubuntu.com:11371/]]
 0. Incollare il contenuto del file `public.key` nella casella sotto la scritta '''Submit a key''', dunque fare clic su '''Submit this key to the keyserver!'''.
Linea 168: Linea 160:
Il sistema di firma delle chiavi di '''gpg''' consente di creare una rete di fiducia. Firmare la chiave di una persona significa aver controllato l'identità di quest'ultima e essersi assicurati che essa sia in pieno controllo della propria chiave privata. In questo modo si può creare una rete di individui che si ''fidano'' l'uno degli altri. Questa rete è definita come un ''insieme fortemente connesso'', ulteriori informazioni a riguardo si possono trovare a [http://www.cs.uu.nl/people/henkp/henkp/pgp/pathfinder/ questo] indirizzo. Il sistema di firma delle chiavi di '''gpg''' consente di creare una rete di fiducia. Firmare la chiave di una persona significa aver controllato l'identità di quest'ultima ed essersi assicurati che essa sia in pieno controllo della propria chiave privata. In questo modo si può creare una rete di individui che si ''fidano'' l'uno degli altri. Questa rete è definita come un ''insieme fortemente connesso'', ulteriori informazioni a riguardo si possono trovare a [[http://www.cs.uu.nl/people/henkp/henkp/pgp/pathfinder/|questo]] indirizzo.
Linea 172: Linea 164:
 0. Durante l'incontro è necessario scambiarsi i ''fingerprint'' delle rispettive chiavi e almeno un documento identificativo (con una fotografia all'interno). Tali ''fingerprint'' vengono solitamente distribuiti su dei foglietti, creati da degli script come '''gpgkey2ps''' (pacchetto ''signing-party'').  0. Durante l'incontro è necessario scambiarsi i ''fingerprint'' delle rispettive chiavi e almeno un documento identificativo (con una fotografia all'interno). Tali ''fingerprint'' vengono solitamente distribuiti su dei foglietti, creati da script come ''gpg-key2ps'', fornito dal pacchetto [[apt://signing-party|signing-party]].
Linea 178: Linea 170:
}}} Ora basta eseguire il seguente comando, sostituendo la dicitura «id_della_chiave» con l'ID della chiave che si vuole verificare e firmare: {{{ }}} Ora basta eseguire il seguente comando, sostituendo la dicitura ''id_della_chiave'' con l' '''ID''' della chiave che si vuole verificare e firmare: {{{
Linea 180: Linea 172:
 0. Quando si ricevono chiavi firmate, si ricevono come allegati: salvarli e importarli con '''gpg'''. Ora è possibile inviare queste chiavi ad un server delle chiavi.  0. Quando si ricevono chiavi firmate, si ricevono come allegati: salvarli e importarli con '''gpg'''. Ora è possibile inviare queste chiavi a un server delle chiavi.

= Cifrare i dati =

La cifratura dei dati è un'operazione molto importante per garantirne la sicurezza.
'''GnuPG''' mette a disposizione due metodi:

 * [[https://it.wikipedia.org/wiki/Crittografia_asimmetrica|asimmetrico]] (usato per impostazione predefinita);
 * [[https://it.wikipedia.org/wiki/Crittografia_simmetrica|simmetrico]].

== Cifratura asimmetrica ==

{{{#!wiki important
Per poter cifrare un file con la propria chiave ''è necessario essere già in possesso di una coppia di chiavi'', se così non fosse, bisogna [[#generarechiave | generarla]].}}}

 0. Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando: {{{
gpg -o file_cifrato -ea file_da_cifrare
}}} dove ''file_cifrato'' è il percorso del file che conterrà i dati cifrati e ''file_da_cifrare'' il percorso del file che contiene i dati da cifrare.
 0. A questo punto dovrebbe apparire una schermata simile alla seguente: {{{
Non è stato specificato un ID utente (è possibile usare "-r").

Destinatari attuali:

Inserire l'ID utente, termina con una riga vuota:

}}} Inserire il nome del possessore della chiave pubblica con cui si intende cifrare (il destinatario del messaggio), oppure la sua email, e cliccare '''Invio''' una volta fatto. È possibile specificare anche altri destinatari nello stesso modo, ma per farlo bisogna essere in possesso delle loro chiavi pubbliche. Nel caso gli ID utente da specificare siano finiti, cliccare '''Invio''' con una riga vuota.

Se l'operazione nel [[AmministrazioneSistema/Terminale|terminale]], termina senza lasciare messaggi, vuol dire che la cifratura dei dati selezionati è riuscita correttamente.

== Cifratura simmetrica ==

 0. Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando: {{{
gpg -o file_cifrato -ca file_da_cifrare
}}} dove ''file_cifrato'' è il percorso del file che conterrà i dati cifrati, mentre ''file_da_cifrare'' il percorso del file contenente i dati originali.
 0. Inserire la ''passphrase'' scelta nella finestra che apparirà e premere '''Invio''' sulla tastiera o cliccare sul pulsante '''Sblocca'''.
 0. A questo punto apparirà una schermata che chiederà di ripetere la ''passphrase''. Ripetere il passaggio precedente.

 {{{#!wiki note
Se si clicca su '''Annulla''' nella schermata per inserire la passphrase, verrà chiesto di inserire quest'ultima nel terminale. Farlo senza preoccuparsi del fatto che sembri non venire digitata.}}}

Se l'operazione nel [[AmministrazioneSistema/Terminale|terminale]], termina senza lasciare messaggi, vuol dire che la cifratura è andata a buon fine.

{{{#!wiki important
La perdita della passphrase comporta la perdita definitiva della possibilità di decifrare il file cifrato.}}}

= Decifrare i dati =

 0. Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando: {{{
gpg --decrypt percorso_del_file
}}} Sostituire ''percorso_del_file'' con il percorso del file contenente i dati da decifrare.
  * Nel caso in cui il file sia stato cifrato asimmetricamente e non si sia in possesso della chiave privata apparirà il seguente messaggio: {{{
gpg: de-cifratura non riuscita: la chiave segreta non è disponibile
}}}
  * Se il file è stato cifrato simmetricamente, verrà richiesta la passphrase per decifrarlo e, nel caso in cui essa sia errata, verrà stampato questo messaggio: {{{
gpg: de-cifratura non riuscita: chiave errata
}}}

 0. Nel caso l'operazione termini senza errori, il comando stamperà a video il messaggio decifrato.
Linea 186: Linea 235:
[[Anchor(codicecondotta)]] <<Anchor(codicecondotta)>>
Linea 189: Linea 238:
Prima di firmare il «'''Codice di condotta'''» di Ubuntu è necessario aggiornare il proprio account inserendovi, fra le varie informazioni, la chiave '''gpg''' che si desidera utilizzare per tale operazione. Prima di firmare il '''Codice di condotta''' di Ubuntu è necessario aggiornare il proprio account inserendovi, fra le varie informazioni, la chiave '''gpg''' che si desidera utilizzare per tale operazione.
Linea 193: Linea 242:
Una volta fatto il login in Launchpad, fare clic sul proprio nome in alto a destra e poi su «'''Edit OpenPGP keys'''». Copiare il ''fingerprint'' della propria chiave all'interno della casella di testo «'''Key Fingerprint'''».

Launchpad spedirà, all'indirizzo specificato, una email contenente del testo cifrato con la nuova chiave. Per procedere con l'operazione di decifratura è sufficiente salvare il testo in un file all'interno della propria '''Home''', aprire una finestra di terminale, dunque digitare il seguente comando al suo interno:
{{{
 0. Eseguire l'accesso in [[https://launchpad.net/|Launchpad]].
 0. F
are clic sul proprio nome in alto a destra e poi su '''Edit OpenPGP keys'''.
 0
. Copiare il ''fingerprint'' della propria chiave all'interno della casella di testo '''Key Fingerprint'''.
 0. Launchpad spedirà, all'indirizzo specificato, un'email contenente del testo cifrato con la nuova chiave. Per procedere con l'operazione di ''decifratura'' è sufficiente salvare il testo in un file all'interno della propria '''Home''', aprire una finestra di terminale e digitare il seguente comando: {{{
Linea 199: Linea 248:

Una volta inserita la ''passphrase'' comparirà in chiaro il testo del messaggio, il quale conterrà link da inserire nella barra degli indirizzi del proprio browser per convalidare la chiave.
 0. Una volta inserita la ''passphrase'' comparirà in chiaro il testo del messaggio, il quale conterrà un collegamento da inserire nella barra degli indirizzi del proprio browser per convalidare la chiave.
Linea 204: Linea 252:
Per firmare il «'''Codice di condotta'''» di Ubuntu bastano tre semplici passi:
 0. Scaricare il «'''Codice di condotta'''» da [https://launchpad.net/codeofconduct/1.0.1 launchpad.net questo] indirizzo.
Per firmare il '''Codice di condotta''' di Ubuntu bastano tre semplici passi:
 0. Scaricare il '''Codice di condotta''' da questo indirizzo : [[https://launchpad.net/codeofconduct/2.0/+download]]
Linea 207: Linea 255:
gpg --clearsign UbuntuCodeofConduct-1.0.1.txt}}}.
 0. Copiare il contenuto del file appena creato `UbuntuCodeofConduct-1.0.1.txt.asc` nel relativo campo presente a [https://launchpad.net/codeofconduct/1.0.1/+sign questo] indirizzo.

== Firmare e criptare email ==

Questa sezione vi aiuterà a configurare '''Evolution''' e '''Thunderbird''' per firmare e criptare email.
gpg --clearsign UbuntuCodeofConduct-2.0.txt}}}
 0. Copiare il contenuto del file appena creato `UbuntuCodeofConduct-2.0.txt.asc` nel relativo campo presente a [[https://launchpad.net/codeofconduct/2.0/+sign|questo indirizzo]].
 0. Se l'operazione si è conclusa correttamente, sul proprio profilo Launchpad, nella sezione '''Signed Ubuntu Code of Conduct:''' comparirà la voce '''Yes'''
.

== Firmare e cifrare email ==

Questa sezione vi aiuterà a configurare '''Evolution''' e '''Thunderbird''' per firmare e cifrare le email.
Linea 216: Linea 265:
 * Aprire '''Evolution''' e fare clic su '''''Modifica -> Preferenze'''''
 * Scegliere il proprio account email e poi fare clic su «'''Modifica'''»
 * Fare clic sulla linguetta «'''Sicurezza'''»
 * Nella casella di testo «'''ID della chiave PGP/GPG'''» copiare il vostro `KEY-ID`
 * Fare clic su «'''OK'''» e poi «'''Chiudi'''»

Se si desidera utilizzare la chiave in ogni nuova mail, fare clic sul menù «'''Sicurezza'''» in un nuovo messaggio e poi su «'''Firma PGP'''».
 * Aprire '''Evolution''' e fare clic su '''''Modifica → Preferenze'''''.
 * Scegliere il proprio account email e poi fare clic su '''Modifica'''.
 * Fare clic sulla linguetta '''Sicurezza'''.
 * Nella casella di testo '''ID della chiave PGP/GPG''' copiare il proprio `KEY-ID`.
 * Fare clic su '''OK''' e poi '''Chiudi'''.

Se si desidera utilizzare la chiave in ogni nuova mail, fare clic sul menù '''Sicurezza''' in un nuovo messaggio e poi su '''Firma PGP'''.
Linea 226: Linea 275:
Installare il plugin '''Enigmail''': {{{
sudo apt-get install mozilla-thunderbird-enigmail
}}}

In alternativa è possibile scaricare il plugin da [http://enigmail.mozdev.org/ mozdev] per poi installarlo manualmente.

Configurare '''gpg''' in '''Thunderbird''' in '''''OpenPGP -> Preferences''''' e nella casella di testo «'''GnuPG executable path'''» aggiungere `/usr/bin/gpg`.
 * Installare il plugin '''Enigmail''' installando il pacchetto [[apt://enigmail | enigmail]].
 * In Thunderbird, scegliere il proprio account email da '''''Modifica → Impostazioni account'''''.
 * Alla voce '''Open PGP''' inserire nella casella di testo il proprio `KEY-ID` anteponendo `0x`. Per esempio: {{{
0xKEY-ID
}}}
 * Fare clic su '''OK'''.
Linea 236: Linea 284:
 * [http://www.gnupg.org/gph/it/index.html Manuale di GnuPG]
 * [http://people.via.ecp.fr/~clem/nist/gpg-enigmail-howto GPG-Enigmail Howto]
 * [http://www.biglumber.com biglumber Un servizio utile per creare una rete di fiducia]
 * [http://itis.olografix.org/gpg.swf GnuPG Guida per GnuPG in Flash]
 * [http://seahorse.sourceforge.net/ Sito ufficiale di Seahorse]
 * [wiki:Ubuntu/GPGKeyOnUSBDrive GPGKeyOnUSBDrive] (in inglese)
 * [wiki:Ubuntu/UnsignedGpgKey UnsignedGpgKey] (in inglese)
 * [wiki:Ubuntu/GPGsigningforSSHHowTo GPGsigningforSSHHowTo] (in inglese)
 * [[http://www.gnupg.org/gph/it/index.html|Manuale di GnuPG]]
 * [[http://library.gnome.org/users/seahorse|Manuale di Seahorse]]
 * [[http://docs.kde.org/stable/it/kdeutils/kgpg/|Manuale di kgpg]]
 * [[Ubuntu:GPGKeyOnUSBDrive|GPGKeyOnUSBDrive]]
 * [[Ubuntu:UnsignedGpgKey|UnsignedGpgKey]]
 * [[Ubuntu:GPGsigningforSSHHowTo|GPGsigningforSSHHowTo]]

Guida verificata con Ubuntu: 20.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

In questa pagina viene presentato GnuPg, il sistema di crittografia da riga di comando predefinito di Ubuntu.


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

(Estratto dal Manuale di GNUPG)


Esistono diversi programmi che forniscono un'interfaccia grafica al sottosistema gpg. I programmi seguenti, possono essere utilizzati per generare le chiavi GPG:

  • Password e chiavi: conosciuto come Seahorse, è lo strumento di gestione delle chiavi predefinito di Ubuntu. Per informazioni sull'uso dell'applicazione fare riferimento al manuale ufficiale di Seahorse disponibile nel menù Aiuto → Sommario del programma.

  • kgpg: è un'interfaccia per KDE, utile agli utenti Kubuntu. Per installare il programma è sufficiente installare il pacchetto kgpg.

Generare una chiave

  1. Digitare nel terminale il comando seguente:

    gpg --full-gen-key
  2. Apparirà una schermata di selezione con le seguenti opzioni:

    Selezionare il tipo di chiave desiderato:
       (1) RSA and RSA (default)
       (2) DSA and Elgamal
       (3) DSA (solo firma)
       (4) RSA (solo firma)

    La scelta predefinita (1) è la migliore, in quanto fornisce una maggiore robustezza della chiave.

  3. Verrà chiesto di scegliere una dimensione per la chiave:

    La lunghezza delle chiavi RSA è compresa tra 1024 e 4096 bit.
    Dimensione chiave desiderata? (2048)
    È possibile lasciare l'impostazione predefinita.

    Nel caso si necessiti di una chiave per firmare dei pacchetti Debian, o se si ha intenzione di far parte del GruppoSviluppo in futuro, considerare di creare una chiave da 4096 bit.

  4. Verrà chiesto di impostare una data di scadenza:

    Key is valid for? (0)

    Molte persone creano le proprie chiavi senza scadenza. Se si effettua tale scelta bisogna ricordarsi di revocare la chiave quando non la si usa più. Premere Y per continuare con il processo di configurazione.

  5. Il passaggio successivo riguarda la creazione dell'identificativo:
    • Inserire il proprio nome reale
    • Inserire il proprio indirizzo email
    • Inserire a scelta un commento per qualificare la chiave.

    Successivamente sarà possibile aggiungere ulteriori indirizzi email alla propria firma.

  6. Una volta verificata la correttezza delle informazioni inserite, premere o per generare la chiave. Verrà chiesto di inserire una passphrase:

    È necessaria una passphrase per proteggere la propria chiave segreta.

    L'ideale sarebbe scegliere una breve frase difficile da indovinare. A differenza di una password, una passphrase può contenere anche degli spazi bianchi.

    Dimenticare la propria passphrase comporta la perdita della chiave.

  7. Una volta inserita la passphrase verrà avviato il processo di creazione della chiave. Questo verrà annunciato dal seguente messaggio:

    Dobbiamo generare un mucchio di byte casuali. È una buona idea eseguire
    qualche altra azione (scrivere sulla tastiera, muovere il mouse, usare i
    dischi) durante la generazione dei numeri primi; questo da al generatore di
    numeri casuali migliori possibilità di raccogliere abbastanza entropia.
  8. Al termine, si raggiungerà una schermata simile alla seguente:

    gpg: key D8FC66D2 marked as ultimately trusted
    chiavi pubbliche e segrete create e firmate.
    
    pub   1024D/D8FC66D2 2011-04-07
          Key fingerprint = 95BD 8377 2644 DD4F 28B5  2C37 0F6E 4CA6 D8FC 66D2
    uid                  Mario Rossi <mario@rossi.it>
    sub    2048g/389AA63E 2011-04-07
    
    gpg: key D8FC66D2 marked as ultimately trusted
    public and secret key created and signed.

    L' ID della chiave nell'esempio è D8FC66D2.

  9. È buona norma configurare questa chiave come la chiave predefinita all'interno del file ~/.bashrc, in modo tale da specificare come automatico l'utilizzo di essa con le altre applicazioni che fanno uso del sistema GnuPg. Per fare ciò basta inserire nel file ~/.bashrc la riga:

    export GPGKEY=D8FC66D2

    La dicitura D8FC66D2 va sostituita con il proprio ID.

  10. Ora è necessario riavviare il servizio per la cifratura. A seconda del sistema in uso potrebbe essere necessario terminare uno dei due seguenti processi:
    • seahorse-agent:

      killall -q seahorse-agent
      eval $(seahorse-agent --daemon)
    • gpg-agent:

      killall -q gpg-agent
      eval $(gpg-agent --daemon)
  11. Infine, eseguire questo comando:

    source ~/.bashrc

Certificato di revoca

Un certificato di revoca deve essere generato per consentire la revoca della propria chiave pubblica nel caso in cui la chiave privata sia stata compromessa.

Per creare un certificato di revoca, digitare nel terminale:

gpg --output revoke.asc --gen-revoke KEY-ID

Al posto di KEY- ID bisogna inserire l' ID della propria chiave.

Il certificato deve essere stampato e conservato con cura. Chiunque abbia accesso al certificato di revoca può rendere la chiave pubblica inutilizzabile.

Importare una chiave

GnuPG consente di aggiungere al proprio portachiavi anche chiavi non generate dall'utente, sia pubbliche che private.

Per importare una qualsiasi chiave con gpg, è fondamentale essere già in possesso di una copia di essa salvata in locale. Quindi, se si vuole importare la chiave "D8FC66D2" salvata su "www.example.org/key.asc", bisogna prima copiarla o scaricarla sul proprio PC.

Importare una chiave pubblica

Digitare nel terminale il seguente comando:

gpg --import file_chiave_pubblica.gpg

dove file_chiave_pubblica è il percorso del file contenente i dati della chiave pubblica da importare. Una volta fatto ciò, dovrebbero apparire varie righe sul terminale e la prima dovrebbe essere simile a questa:

gpg: chiave <ID>: chiave pubblica "Nome Cognome (utente) <email>" importata

Significa che la chiave pubblica è stata importata con successo e che è adesso utilizzabile.

Importare una chiave privata

Digitare nel terminale il seguente comando:

gpg --allow-secret-key-import --import file_chiave_privata.gpg

dove file_chiave_privata è il percorso del file che contiene i dati della chiave privata da importare. Nel caso l'importazione della chiave segreta finisca correttamente, dovrebbe venir stampata a schermo la seguente riga:

gpg: chiave <ID>: chiave segreta importata

Inviare una chiave a un server

Questa sezione contiene le istruzioni per inviare la propria chiave a un server di chiavi in modo che tutti possano scaricarla. Una volta caricata su un server, dopo un breve periodo di tempo, tutti gli altri server di chiavi avranno la propria firma. È possibile velocizzare questo procedimento spedendo la propria chiave a più server.

Inviare una chiave da riga di comando

Digitare nel terminale il seguente comando:

gpg --send-keys --keyserver keyserver.ubuntu.com KEY-ID

Al posto di KEY- ID bisogna inserire l' ID della propria chiave.

Inviare una chiave con un browser web

  1. Esportare la propria chiave digitando nel terminale il seguente comando :

    gpg --export -a "Key-ID" > public.key

    Verrà creato un file public.key contenente la propria chiave pubblica.

  2. Aprire una browser e andare al seguente indirizzo: http://keyserver.ubuntu.com:11371/

  3. Incollare il contenuto del file public.key nella casella sotto la scritta Submit a key, dunque fare clic su Submit this key to the keyserver!.

Firmare una chiave

Il sistema di firma delle chiavi di gpg consente di creare una rete di fiducia. Firmare la chiave di una persona significa aver controllato l'identità di quest'ultima ed essersi assicurati che essa sia in pieno controllo della propria chiave privata. In questo modo si può creare una rete di individui che si fidano l'uno degli altri. Questa rete è definita come un insieme fortemente connesso, ulteriori informazioni a riguardo si possono trovare a questo indirizzo.

Dato che firmare una chiave significa aver controllato e verificato che una certa chiave pubblica appartenga a una tale persona che possiede la relativa chiave privata, è necessario seguire questi semplici accorgimenti quando si firma una chiave:

  1. Il procedimento di firma di una chiave è sempre svolto dopo aver incontrato tale persona.

  2. Durante l'incontro è necessario scambiarsi i fingerprint delle rispettive chiavi e almeno un documento identificativo (con una fotografia all'interno). Tali fingerprint vengono solitamente distribuiti su dei foglietti, creati da script come gpg-key2ps, fornito dal pacchetto signing-party.

  3. Controllare che il nome nella chiave corrisponda con quello del documento identificativo.
  4. Dopo questi controlli accertarsi che la persona sia veramente in possesso della chiave privata. Per fare ciò basta rispedire a lei/lui la sua chiave pubblica firmata e criptata con la rispettiva chiave pubblica. Il programma caff facilita tale procedimento. È necessario creare un file .caffrc nella propria cartella Home con i seguenti valori all'interno:

    $CONFIG{owner} = q{Nome e cognome};
    $CONFIG{email} = q{L'indirizzo email della chiave};
    $CONFIG{keyid} = [ qw{Gli ultimi 16 caratteri del fingerprint della chiave} ];

    Ora basta eseguire il seguente comando, sostituendo la dicitura id_della_chiave con l' ID della chiave che si vuole verificare e firmare:

    caff id_della_chiave
  5. Quando si ricevono chiavi firmate, si ricevono come allegati: salvarli e importarli con gpg. Ora è possibile inviare queste chiavi a un server delle chiavi.

Cifrare i dati

La cifratura dei dati è un'operazione molto importante per garantirne la sicurezza. GnuPG mette a disposizione due metodi:

Cifratura asimmetrica

Per poter cifrare un file con la propria chiave è necessario essere già in possesso di una coppia di chiavi, se così non fosse, bisogna generarla.

  1. Digitare nel terminale il seguente comando:

    gpg -o file_cifrato -ea file_da_cifrare

    dove file_cifrato è il percorso del file che conterrà i dati cifrati e file_da_cifrare il percorso del file che contiene i dati da cifrare.

  2. A questo punto dovrebbe apparire una schermata simile alla seguente:

    Non è stato specificato un ID utente (è possibile usare "-r").
    
    Destinatari attuali:
    
    Inserire l'ID utente, termina con una riga vuota: 

    Inserire il nome del possessore della chiave pubblica con cui si intende cifrare (il destinatario del messaggio), oppure la sua email, e cliccare Invio una volta fatto. È possibile specificare anche altri destinatari nello stesso modo, ma per farlo bisogna essere in possesso delle loro chiavi pubbliche. Nel caso gli ID utente da specificare siano finiti, cliccare Invio con una riga vuota.

Se l'operazione nel terminale, termina senza lasciare messaggi, vuol dire che la cifratura dei dati selezionati è riuscita correttamente.

Cifratura simmetrica

  1. Digitare nel terminale il seguente comando:

    gpg -o file_cifrato -ca file_da_cifrare

    dove file_cifrato è il percorso del file che conterrà i dati cifrati, mentre file_da_cifrare il percorso del file contenente i dati originali.

  2. Inserire la passphrase scelta nella finestra che apparirà e premere Invio sulla tastiera o cliccare sul pulsante Sblocca.

  3. A questo punto apparirà una schermata che chiederà di ripetere la passphrase. Ripetere il passaggio precedente.

    Se si clicca su Annulla nella schermata per inserire la passphrase, verrà chiesto di inserire quest'ultima nel terminale. Farlo senza preoccuparsi del fatto che sembri non venire digitata.

Se l'operazione nel terminale, termina senza lasciare messaggi, vuol dire che la cifratura è andata a buon fine.

La perdita della passphrase comporta la perdita definitiva della possibilità di decifrare il file cifrato.

Decifrare i dati

  1. Digitare nel terminale il seguente comando:

    gpg --decrypt percorso_del_file

    Sostituire percorso_del_file con il percorso del file contenente i dati da decifrare.

    • Nel caso in cui il file sia stato cifrato asimmetricamente e non si sia in possesso della chiave privata apparirà il seguente messaggio:

      gpg: de-cifratura non riuscita: la chiave segreta non è disponibile
    • Se il file è stato cifrato simmetricamente, verrà richiesta la passphrase per decifrarlo e, nel caso in cui essa sia errata, verrà stampato questo messaggio:

      gpg: de-cifratura non riuscita: chiave errata
  2. Nel caso l'operazione termini senza errori, il comando stamperà a video il messaggio decifrato.

Firmare i dati

La firma dei dati è utile per verificare l'identità del mittente.

Firma del Codice di condotta di Ubuntu

Prima di firmare il Codice di condotta di Ubuntu è necessario aggiornare il proprio account inserendovi, fra le varie informazioni, la chiave gpg che si desidera utilizzare per tale operazione.

Caricare la chiave in Launchpad

  1. Eseguire l'accesso in Launchpad.

  2. Fare clic sul proprio nome in alto a destra e poi su Edit OpenPGP keys.

  3. Copiare il fingerprint della propria chiave all'interno della casella di testo Key Fingerprint.

  4. Launchpad spedirà, all'indirizzo specificato, un'email contenente del testo cifrato con la nuova chiave. Per procedere con l'operazione di decifratura è sufficiente salvare il testo in un file all'interno della propria Home, aprire una finestra di terminale e digitare il seguente comando:

    gpg --decrypt file.txt
  5. Una volta inserita la passphrase comparirà in chiaro il testo del messaggio, il quale conterrà un collegamento da inserire nella barra degli indirizzi del proprio browser per convalidare la chiave.

Firmare il Codice di condotta

Per firmare il Codice di condotta di Ubuntu bastano tre semplici passi:

  1. Scaricare il Codice di condotta da questo indirizzo : https://launchpad.net/codeofconduct/2.0/+download

  2. Digitare il seguente comando:

    gpg --clearsign UbuntuCodeofConduct-2.0.txt
  3. Copiare il contenuto del file appena creato UbuntuCodeofConduct-2.0.txt.asc nel relativo campo presente a questo indirizzo.

  4. Se l'operazione si è conclusa correttamente, sul proprio profilo Launchpad, nella sezione Signed Ubuntu Code of Conduct: comparirà la voce Yes.

Firmare e cifrare email

Questa sezione vi aiuterà a configurare Evolution e Thunderbird per firmare e cifrare le email.

Evolution

  • Aprire Evolution e fare clic su Modifica → Preferenze.

  • Scegliere il proprio account email e poi fare clic su Modifica.

  • Fare clic sulla linguetta Sicurezza.

  • Nella casella di testo ID della chiave PGP/GPG copiare il proprio KEY-ID.

  • Fare clic su OK e poi Chiudi.

Se si desidera utilizzare la chiave in ogni nuova mail, fare clic sul menù Sicurezza in un nuovo messaggio e poi su Firma PGP.

Mozilla Thunderbird

  • Installare il plugin Enigmail installando il pacchetto enigmail.

  • In Thunderbird, scegliere il proprio account email da Modifica → Impostazioni account.

  • Alla voce Open PGP inserire nella casella di testo il proprio KEY-ID anteponendo 0x. Per esempio:

    0xKEY-ID
  • Fare clic su OK.

Ulteriori risorse


CategorySicurezza