Keysigning
Visto che è possibile incontrare molti sviluppatori, fiere e conferenze rappresentano una buona occasione per farsi firmare la propria chiave OpenPGP e migliorare la rete della fiducia. Specialmente per chi è nuovo nel progetto, firmare le chiavi e conoscere altri sviluppatori è molto interessante.
Questo documento vuole aiutarvi a organizzare una sessione di firma
delle chiavi. Si noti che tutti gli esempi usano
keyring.debian.org
come keyserver: se la chiave in
questione non è nel portachiavi Debian, sostituite
keyring.debian.org
con un keyserver pubblico come
keys.openpgp.org
(un server di validazione chiavi).
Una chiave andrebbe firmata solo se sussistono almeno due condizioni:
- Il proprietario della chiave convince il firmatario che quella indicata nell'UID della chiave è davvero la propria identità, usando qualunque mezzo di prova che il firmatario accetti come convincente. Di solito questo significa che il proprietario della chiave deve mostrare un documento di identità rilasciato da un autorità statale, che contenga una fotografia e informazioni che identifichino il proprietario della chiave. Alcune persone sanno che i documenti d'identità prodotti dagli stati sono facilmente falsificabili e che il grado di fiducia delle autorità che li emettono è spesso sospetto, quindi potrebbero richiedere documenti di identità aggiuntivi e/o alternativi.
- Il proprietario della chiave verifica che l'impronta digitale e la lunghezza della chiave che sta per essere firmata è davvero la sua.
La cosa più importante è che se il proprietario della chiave non partecipa attivamente allo scambio, non è possibile soddisfare nessuno dei due requisiti visti sopra. Per quanto riguarda il primo requisito, nessuno può completare la parte spettante al proprietario della chiave al suo posto, altrimenti chiunque rubi un documento di identità potrebbe facilmente farsi firmare una chiave OpenPGP facendosi passare per un delegato del proprietario. Per quanto riguarda il secondo requisito, nessuno può completare la parte spettante al proprietario della chiave, altrimenti il delegato potrebbe sostituire l'impronta digitale con quella di una nuova chiave OpenPGP che riporta il nome del proprietario, inducendo così a firmare una chiave sbagliata.
- Occorrente: copie stampate dell'impronta digitale e della lunghezza della chiave OpenPGP e un documento per provare la vostra identità (passaporto, patente, o simili).
- Le impronte digitali e le indicazioni sulla lunghezza della chiave vanno distribuite alle altre persone, che firmeranno la vostra chiave dopo l'incontro.
- Se non avete ancora una chiave OpenPGP, createla con
gpg --gen-key
. - Firmate una chiave solo dopo aver verificato l'identità del proprietario.
- Dopo l'incontro, dovrete scaricare la chiave OpenPGP per firmarla.
Potete usare questo comando:
gpg --keyserver keyring.debian.org --recv-keys 0xDEADBEEF
Nota: per specificare una chiave è anche possibile usare le ultime otto cifre esadecimali della sua impronta digitale. Inoltre lo 0x all'inizio è facoltativo.
- Per firmare la chiave, entrate nel menu edit con
gpg --edit-key 0xDEADBEEF
- In GnuPG selezionate tutti gli UID da firmare con
uid n
, doven
è il numero dell'UID mostrato nel menu. Potete anche premere invio per firmare tutti gli UID. - Per firmare una chiave, scrivete
sign
. Vi verrà mostrata l'impronta digitale e la lunghezza della chiave, da confrontare con quella che vi ha consegnato il proprietario della chiave. - Alla richiesta del livello di attenzione con cui avete controllato l'autenticità della chiave, scegliete "(2) L'ho controllata superficialmente".
- Uscite da GnuPG con
quit
- Per verificare di aver firmato correttamente la chiave, potete usare:
gpg --list-sigs 0xDEADBEEF
Dovreste vedere il vostro nome e la vostra impronta digitale (in forma breve) nella lista.
- Se tutto è a posto, potete spedire la chiave firmata al
proprietario, con il comando:
gpg --export -a 0xDEADBEEF > chiave_di_tizio.key
L'opzione
-a
esporta la chiave in formato ASCII, in modo che possa essere spedita per e-mail senza rischi di danneggiamento. - Se qualcuno firma la vostra chiave, potete aggiungerla al
portachiavi Debian con:
gpg --import --import-options merge-only mia_chiave_firmata.key gpg --keyserver keyring.debian.org --send-keys <il vostro key-id>
I curatori del portachiavi potrebbero impiegare un po' di tempo ad aggiornare la vostra chiave, quindi siate pazienti. Dovreste anche caricare la vostra chiave aggiornata sui keyserver pubblici.
Il pacchetto Debian signing-party fornisce alcuni strumenti utili per questa procedura. gpg-key2ps trasforma una chiave OpenPGP in un file PostScript, in modo da poter stampare delle strisce di carta con la propria impronta digitale, mentre gpg-mailkeys spedisce una chiave firmata al suo proprietario. Il pacchetto contiene anche caff, uno strumento più avanzato. Si veda la documentazione del pacchetto per maggiori informazioni.
Cosa non dovreste fare
Non dovreste mai firmare la chiave di qualcuno che non avete incontrato di persona. Firmare una chiave basandosi su qualsiasi cosa all'infuori della conoscenza diretta distrugge l'utilità della rete della fiducia. Se un amico si presenta ad altri sviluppatori portando la vostra carta d'identità e la vostra impronta digitale, ma voi non siete lì a verificare che l'impronta digitale appartenga proprio a voi, come possono gli altri sviluppatori collegare l'impronta digitale con l'identità? Hanno solo la parola dell'amico e le altre firme presenti sulla vostra chiave: sarebbe come voler firmare la vostra chiave solo perché altre persone l'hanno già firmata!
È bello avere molte firme sulla propria chiave e potreste essere tentati di sveltire un po' le procedure. Ma avere firme di cui ci si può fidare è più importante che avere molte firme, per questo è molto importante che il processo di firma delle chiavi sia il più rigoroso possibile. Firmando la chiave di qualcuno dichiarate formalmente che avete prove di prima mano sulla sua identità: se lo fate quando non ne siete sicuri, la rete della fiducia non è più degna di fiducia.