Scambiarsi le chiavi

Per comunicare con altre persone è necessario scambiarsi le chiavi pubbliche. Per elencare le chiavi presenti nel proprio portachiavi pubblico utilizzare l'opzione a linea di comando --list-keys.

alice% gpg --list-keys
/users/alice/.gnupg/pubring.gpg
---------------------------------------
pub  1024D/BB7576AC 1999-06-04 Alice (giudice) <alice@cyb.org>
sub  1024g/78E9A8FA 1999-06-04
    

Esportare una chiave pubblica

Per spedire una chiave pubblica ad un corrispondente è necessario prima esportarla. A questo scopo si usa l'opzione a linea di comando --export. Essa necessita di un ulteriore argomento che identifichi la chiave pubblica da esportare. Così come con l'opzione --gen-revoke, sia l'ID della chiave che ogni altra parte dello User ID possono servire per identificare la chiave da esportare.

alice% gpg --output alice.gpg --export alice@cyb.org
      

La chieve è esportata in un formato binario, ma ciò può risultare sconveniente quando la chiave viene spedita per posta elettronica o pubblicata in una pagina web. GnuPG supporta perciò l'opzione a linea di comando --armor[1] che forza l'output ad essere generato in un formato protetto da un'armatura ASCII[2] simile ai documenti codificati con uuencode. In generale, qualsiasi output di GnuPG, cioè chiavi, documenti cifrati e firme, possono essere ASCII-armored aggiungendo l'opzione --armor.

alice% gpg --armor --export alice@cyb.org
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v0.9.7 (GNU/Linux)
Comment: For info see http://www.gnupg.org

[...]
-----END PGP PUBLIC KEY BLOCK-----
      

Importare una chiave pubblica

Una chiave pubblica può essere aggiunta al proprio mazzo di chiavi mediante l'opzione --import.

alice% gpg --import blake.gpg
gpg: chiave 9E98BC16: chiave pubblica importata
gpg: numero totale esaminato: 1
gpg:               importate: 1
alice% gpg --list-keys
/users/alice/.gnupg/pubring.gpg
---------------------------------------
pub  1024D/BB7576AC 1999-06-04 Alice (giudice) <alice@cyb.org>
sub  1024g/78E9A8FA 1999-06-04

pub  1024D/9E98BC16 1999-06-04 Blake (esecutore) <blake@cyb.org>
sub  1024g/5C8CBD41 1999-06-04
      

Una volta che la chiave è stata importata deve venir convalidata. GnuPG utilizza un potente e flessibile modello basato sulla fiducia che non richiede all'utente di convalidare personalmente ogni chiave che viene importata. Può comunque risultare necessaria la convalida personale di alcune chiavi. Una chiave viene convalidata verificando l'impronta digitale[3] della chiave stessa e successivamente firmando la chiave per certificarla come chiave valida. L'impronta digitale di una chiave può essere velocemente visualizzata con l'opzione a linea di comando --fingerprint, ma, allo scopo di certificare la chiave, è necessario editarla.
alice% gpg --edit-key blake@cyb.org

pub  1024D/9E98BC16  created: 1999-06-04 expires: never      trust: -/q
sub  1024g/5C8CBD41  created: 1999-06-04 expires: never
(1)  Blake (esecutore) <blake@cyb.org>

Comando> fpr
pub  1024D/9E98BC16 1999-06-04 Blake (esecutore) <blake@cyb.org>
             Impronta digitale: 268F 448F CCD7 AF34 183E  52D8 9BDE 1A08 9E98 BC16
	
L'impronta digitale di una chiave va verificata con il possessore di quella chiave. Ciò può essere fatto di persona, per telefono o attraverso un qualsiasi altro mezzo con il quale sia possibile garantire che si sta comunicando con il vero possessore della chiave. Se l'impronta digitale che si riceve è la stessa impronta digitale che il possessore della chiave detiene, allora si può essere sicuri di possedere una corretta copia della chiave.

Dopo aver controllato l'impronta digitale, si può procedere alla firma in modo da convalidarla. Poiché la verifica di una chiave rappresenta un punto debole nella crittografia a chiave pubblica, è necessario essere estremamente attenti è controllare sempre un'impronta digitale di una chiave con il possessore prima di firmare la chiave stessa.

Comando> sign

pub  1024D/9E98BC16  created: 1999-06-04 expires: never      trust: -/q
             Fingerprint: 268F 448F CCD7 AF34 183E  52D8 9BDE 1A08 9E98 BC16

     Blake (esecutore) <blake@cyb.org>

Sei davvero sicuro di volere firmare questa chiave
con la tua chiave: "Alice (giudice) <alice@cyb.org>"

Firmo davvero?
      

Una volta firmato è possibile controllare la chiave listando le firme ad essa applicate e rilevare la firma che si è appena aggiunta. Ogni User ID avrà sulla chiave una o più autofirme e una firma per ogni utente che ha convalidato la chiave.

Comando> check
uid  Blake (esecutore) <blake@cyb.org>
sig!       9E98BC16 1999-06-04   [autofirma]
sig!       BB7576AC 1999-06-04   Alice (giudice) <alice@cyb.org>
      

Note

[1]

Numerose opzioni a linea di comando di uso frequente possono essere impostate in un file di configurazione.

[2]

D'ora in poi ASCII-armored.

[3]

Si noti che qui l'aggettivo digitale può assumere due significati, entrambi validi. Il primo è quello che deriva dalla traduzione della parola inglese originaria fingerprint, impronta delle dita. Il secondo significato è quello di ``prodotto con l'ausilio di un computer'', che è la macchina digitale per eccellenza.