L'ID dell'impronta digitale e della chiave lunga e breve sono correlati
Ogni chiave OpenPGP ha un fingerprint allegato, calcolato principalmente dal suo pacchetto di chiavi pubbliche che contiene anche il tempo di creazione. Il calcolo è definito in RFC 4880, OpenPGP, 12.2. ID chiave e impronte digitali .
Esistono ID di chiavi brevi e lunghe, che assomigliano ai 32 bit inferiori dell'impronta digitale. Ad esempio, guardando gli ID della mia chiave OpenPGP:
fingerprint: 0D69 E11F 12BD BA07 7B37 26AB 4E1F 799A A4FF 2279
long id: 4E1F 799A A4FF 2279
short id: A4FF 2279
Le impronte digitali e gli ID delle chiavi sono usati, poiché la condivisione e il confronto di un'intera chiave con solitamente 1024-8096 bit (aggiungendo un po 'di più per intestazioni come la data di creazione) è molto poco pratico.
Utilizzo degli ID tasti lunghi
Ogni volta che si specificano le chiavi OpenPGP, non si possono passare solo ID di chiavi corte, ma anche ID di chiavi lunghe e persino impronte digitali intere. Invece di passare l'ID della chiave breve
gpg --recv-keys A4FF2279
puoi sempre scrivere l'ID della chiave lunga
gpg --recv-keys 4E1F799AA4FF2279
o anche l'impronta digitale completa (consigliata per lo scripting e scopi simili)
gpg --recv-keys 0D69E11F12BDBA077B3726AB4E1F799AA4FF2279
Stampa di ID chiave lunga
Ma da dove prendere l'ID della chiave lunga? Se qualcuno ha passato il suo breve ID, non puoi fare altro che provare a recuperare tutte le chiavi per quell'ID e vedere se c'è una collisione (e spero che nessuno ti nasconda la vera chiave e che passi solo quella falsa).
Quindi ogni volta che si consegna l'ID della chiave OpenPGP, annuncia l'ID lungo! Puoi facilmente fare a GnuPG stampare questo aggiungendo l'opzione --keyid-format long
:
gpg --keyid-format long --list-keys [email protected]
Questa opzione accetta valori short
o 0xshort
per ID chiave breve (senza o con 0x
prefisso per indicare che si tratta di un numero esadecimale) e long
o 0xlong
per ID chiave lunghi.
Configurazione degli ID tasti lunghi come predefiniti
Per assicurarti che GnuPG sia sempre che stampa l'ID della chiave lunga, aggiungi l'opzione al tuo file ~/.gnupg/gpg.conf
togliendo --
. Ad esempio, ho configurato GnuPG per stampare sempre l'ID della chiave lunga 0x
-prefixed aggiungendo una riga
keyid-format 0xlong
Stampa dell'impronta digitale
Purtroppo, non è possibile impostare GnuPG in modo che stampi l'intera impronta digitale in questo modo, probabilmente perché interromperà il formato di output di GnuPG per quasi tutte le dimensioni dello schermo. Invece, richiedilo eseguendo
gpg --fingerprint 4E1F799AA4FF2279
che scaricherà qualcosa come
pub 8192R/0x4E1F799AA4FF2279 2012-12-25
Key fingerprint = 0D69 E11F 12BD BA07 7B37 26AB 4E1F 799A A4FF 2279
Poiché questo ha lo svantaggio di contenere spazi (cosa brutta per utilizzarlo nello scripting), potresti usare invece l'output leggibile dal computer delimitato da due punti:
gpg --with-colons --fingerprint 4E1F799AA4FF2279
Per filtrare tutto tranne l'impronta digitale, utilizza inoltre grep
e cut
:
gpg --with-colons --fingerprint 4E1F799AA4FF2279 | grep fpr | cut -d ':' -f 10