Warum druckt gpg --list-keys manchmal Unterschlüssel, manchmal nicht?

7

Diese Frage tauchte in den Kommentaren von " Wie zeige ich die Verwendungsflags für meine Verschlüsselungsschlüssel weniger hackisch an? msgstr "" "und scheint es wert zu sein, in einer Frage - und - Antwort - Form beantwortet zu werden, da die Antwort eigentlich nicht offensichtlich ist.

Zum Anzeigen von Torvalds OpenPGP-Schlüssel 449FA3AB verwende ich gpg2 --list-keys 449FA3AB, welche Ausgänge

$ gpg2 --list-keys 449FA3AB
pub   1024D/449FA3AB 1999-10-05 [expired: 2001-10-04]
uid       [ expired] Linus Torvalds <[email protected]>

In der Regel werden mit diesem Befehl auch Unterschlüssel aufgelistet, für Torvalds Schlüssel werden jedoch keine Unterschlüssel gedruckt. Wenn Sie jedoch eine Stapelausgabe anfordern, ist eine enthalten.

$ gpg2 --with-colons --list-keys 449FA3AB
tru::1:1414619239:1414879758:3:1:5
pub:e:1024:17:956EB7BF449FA3AB:939086351:1002158351::-:::sca:
uid:e::::939086351::81A3799583B9B1B391E4C428112F302FF2ADF462::Linus Torvalds <[email protected]>:
sub:e:2048:16:71CE8207BFF491C5:939086545:1002158545:::::e:

Dieser Torvalds-Schlüssel scheint eine Besonderheit zu haben, die den Unterschlüssel verbirgt. Was ist hier passiert?

Jens Erat
quelle

Antworten:

11

Abgelaufene Schlüssel

Dies ist keine Besonderheit, aber Torvalds Primärschlüssel ist längst abgelaufen und folglich auch der Unterschlüssel. Die Antwort ist in GnuPGs versteckt --list-options Abschnitt der Manpages, da standardmäßig abgelaufene Unterschlüssel ausgeblendet sind. Von man gpg2:

show-unusable-subkeys
        Show revoked and expired subkeys in key listings. Defaults to no.

Durch Angabe dieses Arguments wird der Unterschlüssel angezeigt:

$ gpg2 --list-options show-unusable-subkeys --list-keys 449FA3AB
pub   1024D/449FA3AB 1999-10-05 [expired: 2001-10-04]
uid       [ expired] Linus Torvalds <[email protected]>
sub   2048g/BFF491C5 1999-10-05 [expired: 2001-10-04]

In die Vergangenheit reisen

Sie können dies auch mit dem Hilfsmittel überprüfen faketime Programm, um die Systemzeit für GnuPG um einige Jahre zurückzusetzen. Wenn Sie zu einem Zeitpunkt zurückreisen, an dem Torvalds Schlüssel gültig war, wird der Unterschlüssel erneut angezeigt:

$ faketime 2001-01-01 gpg2 --list-keys 449FA3AB
pub   1024D/449FA3AB 1999-10-05 [expires: 2001-10-04]
uid       [ unknown] Linus Torvalds <[email protected]>
sub   2048g/BFF491C5 1999-10-05 [expires: 2001-10-04]
Jens Erat
quelle
1
Es scheint, dass die Kleinbuchstaben auf dem Primärschlüssel in der --with-colons Die Ausgabe (und einige andere Stellen) geben möglicherweise einen Hinweis auf das Ablaufdatum - ich habe nur Dokumentation darüber in Bibliotheksdokumenten wie gefunden diese Perl lib soweit (suche usage_flags ), aber Großbuchstaben scheinen anzuzeigen verwendbar Fähigkeiten, d. h. nicht durch abgelaufene oder widerrufene Schlüssel übermittelt.
ches
2
Die gesuchte Dokumentation ist in gespeichert /usr/share/doc/gnupg/DETAILS.gz (Pfad kann für verschiedene Distributionen unterschiedlich sein) und ist auch verfügbar im GnuPG-Git-Repository . Lesen Sie "Feld 12 - Hauptfunktionen".
Jens Erat