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