GnuPG: differenze tra le versioni

4 027 byte aggiunti ,  1 dic 2015
m
(nuova pagina)
 
 
(5 versioni intermedie di uno stesso utente non sono mostrate)
Riga 6: Riga 6:
}}
}}
== Introduzione ==
== Introduzione ==
GPG (GnuPG) fa parte del progetto GNU e si pone come una alternativa completamente open a PGP. Inoltre è completamente aderente allo standard OpenPGP per cui è compatibile con tutti i programmi che ne fanno uso.<br/>
GnuPG (Gnu Privacy Guard o, in breve, GPG) fa parte del progetto GNU e si pone come una alternativa completamente open a PGP. Inoltre è totalmente aderente allo standard OpenPGP per cui è compatibile con tutti i programmi che ne fanno uso.<br/>
GnuPG consente di cifrare attraverso ciò che viene definita "crittografia asimmetrica", ossia una cifratura dei messaggi utilizzando una coppia di chiavi: la chiave privata e la chiave pubblica.<br/>
GnuPG consente due operazioni distinte:
Da qui anche il nome di "crittografia a chiavi asimmetriche" e "crittografia a chiavi simmetriche".
* Cifrare un dato
* Firmare un dato
 
A differenza di un sistema di cifratura a chiave simmetrica, in cui l'algoritmo di decodifica utilizza la stessa chiave privata per cifrare e decifrare i messaggi da proteggere, GnuPG utilizza un sistema a chiave asimmetrica in cui viene utilizzata una coppia di chiavi: pubblica e privata. Con la chiave pubblica del destinatario si cifra un messaggio. Il destinatario lo decifrerà con la propria chiave privata.
 
In maniera simile avviene il processo di firma di un dato (file di testo, file binario, email, etc.). Il mittente appone la propria firma di un dato utilizzando la propria chiave privata e il destinatario controllerà la firma attraverso la chiave pubblica del mittente.
 
Si tenga ben presente che:
# Le procedure di cifratura e firma sono distinte: si può scegliere di eseguire una, l'altra o entrambe. Ad esempio si può cifrare un dato senza firmarlo, firmare un dato e trasmetterlo in chiaro oppure cifrare e firmare contemporaneamente.
# La cifratura impedisce che una terza persona possa interpretare il dato (questo sarà conosciuto solo dal mittente e dal destinatario) mentre la firma garantisce che il destinatario possa essere certo dell'identità della persona che ha trasmesso un dato. In quest'ultimo caso, il dato potrà essere cifrato o meno: questo dipende dal grado di importanza che gli si assegna.
# La scelta di firmare e/o cifrare un dato dipende dalle persone che si trovano ai capi del canale comunicativo ma, soprattutto, dal tipo di canale, dalla natura dei dati e dal grado di "fiducia" che si attribuisce alla persona con cui si scambiano le informazioni.<br/>Scegliete con cura e ponderazione tanto maggiori quanto più importanti sono i dati che volete trasmettere!


Il sistema a chiave simmetrica prevede che l'algoritmo di decodifica utilizzi la stessa chiave privata per cifrare e decifrare i messaggi da proteggere.<br/>
Il sistema a chiave asimmetrica, invece, prevede l'utilizzo di una coppia di chiavi: pubblica e privata. Con la chiave pubblica del destinatario si cifra un messaggio. Il destinatario lo decifrerà con la propria chiave privata.<br/>
Questi concetti verranno ripresi ed ampliati nel corso della guida.
Questi concetti verranno ripresi ed ampliati nel corso della guida.


== Installazione ==
== Installazione ==
Apriamo il nostro terminale e installiamo GPG:
Apriamo il nostro terminale e installiamo GnuPG. È sufficiente un:
<pre># apt-get install gnupg</pre>
<pre># apt-get install gnupg</pre>
Procediamo poi con la creazione della chiavi.<br/>
 
Sempre da terminale, ad installazione completata ma come utente comune, digitiamo:
== Creazione delle chiavi ==
Procediamo adesso con la creazione della chiavi.<br/>
Sempre da terminale, ad installazione completata ma come <u>utente comune</u>, digitiamo:
<pre>$ gpg --gen-key</pre>
<pre>$ gpg --gen-key</pre>
per accedere al pannello di creazione delle chiavi. Davanti a noi si presenteranno 4
per accedere ad un menù di scelta attraverso cui <code>gpg</code> ci chiederà alcune informazioni per generare le chiavi.
opzioni:
 
=== Scelta dell'algoritmo ===
La prima richiesta da parte di <code>gpg</code> riguarda l'algoritmo (o gli algoritmi) da utilizzare. Davanti a noi si presenteranno quattro opzioni:
<pre>
<pre>
Per favore scegli che tipo di chiave vuoi:
Per favore scegli che tipo di chiave vuoi:
Riga 30: Riga 42:
(4) RSA (firma solo)
(4) RSA (firma solo)
</pre>
</pre>
Notare che con le opzioni (1) e (2) in realtà verranno create ''due coppie di chiavi'':
; master keypair: la coppia di chiavi principale che verrà utilizzata per creare firme digitali
; subordinate keypair: la coppia di chiavi subordinata (spesso la troverete con il nome di '''subkey''') utilizzata per cifrare i dati.
{{Box|Nota|La chiave pubblica e la chiave privata vengono create internamente da GnuPG in base a queste due coppie di chiavi. In particolare  la chiave pubblica è rappresentata:
* da una parte della master keypair
* da una parte della subordinate keypair (e delle eventuali subkey aggiunte successivamente)
* dagli identificativi (UID)
mentre la chiave privata è formata:
* da una parte della master keypair
* da una parte della subordinate keypair (e delle eventuali subkey aggiunte successivamente)
Nonostante la leggera complicazione della struttura, per comodità, si fa sempre riferimento ad un'unica coppia di chiavi: la chiave pubblica e la chiave privata.
Si tenga presente, inoltre, che successivamente è possibile creare ulteriori chiavi subordinate sia per la firma che per la cifratura.}}


Scegliamo l'opzione (1) per la creazione delle chiavi [[RSA]]. Successivamente, ci verrà richiesta la lunghezza della chiave da creare: l'inserimento di 1024 può andare più che bene; ovviamente maggiore è la lunghezza, maggiore sarà la sicurezza ma i tempi di cifratura e decifrazione saranno più lunghi.
Le opzioni sono:
;RSA and RSA (default): verrà creata una chiave principale per le firme digitali e una chiave secondaria per la cifratura; in entrambi i casi verrà utilizzato l'algoritmo [[RSA]]. Questa è la scelta di default.
;DSA and Elgamal: verrà creata una chiave principale DSA per le firme digitali e una chiave Elgamal secondaria per la cifratura.
;RSA (firma solo): verrà creata solo la chiave principale RSA per le firme digitali.
;DSA (firma solo): verrà creata solo la chiave principale DSA per le firme digitali.
 
Le opzioni (3) e (4) sono utili se:
* Si vuole soltanto creare firme digitali e non si è interessati a cifrare i dati.
* Si vogliono creare successivamente una o più coppie di chiavi subordinate con diversa lunghezza o diversa data di scadenza rispetto alla coppia di chiavi principale.
 
=== Creare chiave principale e subordinata ===
Scegliamo l'opzione (1) per iniziare a creare chiavi RSA.
<pre>
Per favore scegli che tipo di chiave vuoi:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (firma solo)
(4) RSA (firma solo)
Cosa scegli? 1
</pre>
 
=== Lunghezza della chiave ===
La successiva domanda riguarda la lunghezza in bit della chiave da creare:
<pre>
<pre>
RSA keys may be between 1024 and 4096 bits long.
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 1024
What keysize do you want? (2048)
</pre>
</pre>
il valore di default (2048 bit) può andare più che bene; ovviamente maggiore è la lunghezza, maggiore sarà la sicurezza ma i tempi di cifratura e decifrazione saranno più lunghi.<br/>
Sono ammessi tutti i valori tra 1024 e 4096, premendo [Invio] si accetta il consiglio di <code>gpg</code> per creare chiavi di 2048 bit.
Se non avete problemi di velocità computazionale o se, soprattutto, la sicurezza è un fattore assolutamente essenziale e preponderante, la scelta deve ricadere sulla massima lunghezza consentita: 4096 bit.<br/>
La lunghezza, una volta stabilita, non potrà più essere modificata.
Digitiamo "2048" (o premiamo semplicemente [Invio]) per accettare al scelta predefinita e proseguiamo.


Dopo aver inserito la lunghezza della chiave RSA, procediamo premendo "invio". Nella schermata successiva, ci verrà chiesto per quanti giorni la chiave deve valere: le opzioni sono molte e noi sceglieremo la numero 0, ovvero nessuna scadenza:
=== Durata della chiave ===
Adesso ci verrà chiesto per quanti giorni la chiave deve valere: le opzioni sono molte e noi sceglieremo la numero 0, ovvero nessuna scadenza:
<pre>
<pre>
Per favore specifica per quanto tempo la chiave sarà valida.
Per favore specifica per quanto tempo la chiave sarà valida.
Riga 95: Riga 150:
gpg: key 20ACD5A1 marked as ultimately trusted
gpg: key 20ACD5A1 marked as ultimately trusted
chiavi pubbliche e segrete create e firmate.
chiavi pubbliche e segrete create e firmate.
86 Tips & Tricks
gpg: controllo il trustdb
gpg: controllo il trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
6 999

contributi