Come viene visualizzata questa chiave OpenPGP in un formato non esadecimale?

1

Esaminando un manuale di GnuPG su openskills , ho notato che l'id chiave principale GEBV933F è in un formato diverso dal solito esadecimale ( G non è una cifra esadecimale).

Come è fatto?

    
posta BugHunterUK 25.01.2016 - 21:49
fonte

1 risposta

1

tl; dr: questi sono gli ID delle chiavi di qualcuno che cerca di nascondere le informazioni effettive. Non sono ID di chiavi OpenPGP validi.

ID chiave OpenPGP

seguenti RFC 4880, OpenPGP, 3.3 ID chiave , a

Key ID is an eight-octet scalar that identifies a key.

12.2 ID chiave e impronte digitali specifica ulteriormente il calcolo, ma ancora nessuna rappresentazione di quei 64 bit inferiori da utilizzare. Spesso, in pratica vengono utilizzati valori a 32 bit ("ID chiave breve"). Un esempio descrive abbastanza bene come sono collegati gli ID delle chiavi:

fingerprint: 0D69 E11F 12BD BA07 7B37  26AB 4E1F 799A A4FF 2279 (160 bits)
long id:                                    4E1F 799A A4FF 2279  (64 bits)
short id:                                             A4FF 2279  (32 bits)

XAF476E9 e GEBV933F formano gli ID chiave strani. Non possono essere esadecimali, il che non consentirebbe X e G . Probabilmente stanno usando un intervallo di cifre che corrisponde praticamente a tutte le cifre decimali più le lettere fino a X, il che significa che i numeri a otto cifre consentirebbero di memorizzare circa% bit% di bit - non abbastanza per una rappresentazione più compatta di ID di chiave (lunghi) .

Scavando più in profondità

Bene, non hai davvero bisogno di scavare in profondità. Supponiamo che la documentazione sia stata scritta da qualcuno che usa le chiavi real , che allo stesso tempo cerca di nascondere la sua identità e ha una cattiva comprensione degli ID delle chiavi, o vuole rivelare la manipolazione degli ID delle chiavi occhio esperto.

Il manuale citato fornisce anche esempi di firme codificate. Diamo un'occhiata a quelli! Una stringa ld(36^8) ~= 41 viene firmata, probabilmente usando la chiave dell'autore. E otteniamo anche il risultato quotato, che l'autore ha memorizzato come This is some text. :

The signed version will look something like this:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This is some text.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
Comment: 'Email me for my public key'

iD8DBQE+ycRnF1uP4b67kz8RArZdAJ9e98RkcYICyJktEpah5/RoQX93vgCfUuOh
1I3aTPTGXitruRjhms3Kx7Y=
=ju77
-----END PGP SIGNATURE-----

L'output che mostra gli ID chiave strani in realtà verifica una firma esattamente di questo file:

[you@tiger]$ gpg --verify test.txt.asc 
gpg: Signature made Tue 20 May 2003 04:00:07 PM EST using DSA key ID GEBV933F
gpg: Good signature from "[email protected]"

Ora, cosa succede se lo eseguiamo da soli?

gpg: Signature made Tue May 20 08:00:07 2003 CEST
gpg:                using DSA key BEBB933F
gpg: Good signature from "[uid removed]"
gpg:                 aka "[uid removed]"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 3318 D8EC 1EAD 3771 3B54  2893 175B 8FE1 BEBB 933F

Ho rimosso l'ID utente in quanto l'utente potrebbe aver tentato di rimanere anonimo. Non mi importava della sua chiave ID / impronta digitale, perché in effetti l'ha postata e tutti possono interrogare le informazioni se lo desiderano.

Sorpresi di una corrispondenza ravvicinata degli ID della chiave?

   real key ID: BEBB933F
claimed key ID: GEBV933F

Ovviamente, le due cifre non esadecimali sono state codificate. Ora, che dire di test.txt.asc ?

$ gpg --list-keys BEBB933F
pub   1024D/BEBB933F 2003-04-09
uid                            [uid removed]
uid                            [uid removed]
sub   1024g/CAC476E9 2003-04-09

Una nuova sottochiave! Di nuovo confrontando i tasti:

   real key ID: CAC476E9
claimed key ID: XAF476E9

Ancora una volta, le due cifre differiscono.

    
risposta data 25.01.2016 - 23:32
fonte

Leggi altre domande sui tag