Wie erhalte ich mit GPG das Feld „Benutzername“ aus einem öffentlichen Schlüsselblock?

Wie erhalte ich mit GPG das Feld „Benutzername“ aus einem öffentlichen Schlüsselblock?

Die Tatsache, dass ich danach fragen muss, nachdem ich so viele Stunden damit verbracht habe, sagt mir bereits, dass mindestens eine dieser beiden Aussagen wahr ist:

  1. Ich mache etwas furchtbar falsch.
  2. PGP/GPG ist ein einziges Durcheinander, bei dem die Arbeit damit absichtlich so schwierig und verwirrend wie möglich gemacht wird.

Grundsätzlich importiert mein System automatisch alle an mich gesendeten PGP-Public-Key-Blöcke, um Nachrichten beim Aussenden (von mir als Antwort gesendet) automatisch verschlüsseln zu können.

Wenn Sie eine Klartextnachricht mit PGP/GPG verschlüsseln, teilen Sie dem Programm mit, welchen „Empfänger“ es verwenden soll. Dieser verwirrende Begriff bezieht sich eigentlich auf das Feld „vollständiger Name + E-Mail-Adresse“ (das aus irgendeinem Grund „Benutzername“ genannt wird) in einem in GPG gespeicherten öffentlichen Schlüssel.

Wenn ich also einen solchen PGP-Public-Key-Block „importiere“ (was funktioniert), habe ich keine Ahnung, was das Feld „Benutzername“ ist, und wenn ich das nicht weiß, kann ich es eigentlich nicht verwenden, da die Verschlüsselungsfunktion von mir verlangt, auf den richtigen „gespeicherten öffentlichen Schlüssel“ zu verweisen.

Aber wie extrahiere ich eigentlich das Feld „Benutzername“ aus dem öffentlichen Schlüssel? Man würde meinen, dass es dies zurückgibt, wenn man den Befehl --import ausführt, aber soweit ich das beurteilen kann, ist das nicht der Fall. Und ich habe stundenlang im Handbuch gegraben, ohne etwas diesbezüglich zu finden.

Fürs Protokoll: Ich habe diesen StackOverflow-Thread gefunden:https://security.stackexchange.com/questions/50965/extracting-the-gpg-userid-from-the-public-key-file ... aber das ergibt für mich absolut keinen Sinn. Die „Lösung“ kennt bereits eine Art ID und gibt diese an, was den ganzen Sinn zunichte zu machen scheint, da es im Wesentlichen das ist, was wir zu finden versuchen (außer, dass es das Feld „Benutzername“ ist).

Ich habe alle möglichen „allgemeinen/nützlichen PGP/GPG-Befehle“ gesehen und keiner davon erwähnt das überhaupt. Hä? Das ist so ziemlich die grundlegendste und wichtigste Aufgabe... Ich bin sehr verwirrt. Warum gibt mir der Befehl --import keine ID, die ich verwenden kann? Tut er das, aber auf eine verworrene Art und Weise?

Antwort1

Warum erhalte ich mit dem Befehl --import keine ID, die ich verwenden kann? Zwar schon, aber auf eine etwas umständliche Art und Weise?

Das stimmt. Es ist vor allem Ihre Erwartung einer „verwendbaren ID“, die größtenteils falsch ist.

Wenn Sie eine Klartextnachricht mit PGP/GPG verschlüsseln, teilen Sie dem Programm mit, welchen „Empfänger“ es verwenden soll. Dieser verwirrende Begriff bezieht sich eigentlich auf das Feld „vollständiger Name + E-Mail-Adresse“ (das aus irgendeinem Grund „Benutzername“ genannt wird) in einem in GPG gespeicherten öffentlichen Schlüssel.

Das Feld heißt "Benutzer-ID". Es heißt nicht "Benutzername".

Viele Programme (vor allemgpg alle Tools, die diese umschließen)WilleAkzeptieren Sie Empfänger auch nur anhand ihrer E-Mail-Adresse oder einer anderen Teilzeichenfolge, die der Benutzer-ID entspricht, oder des vollständigen 160-Bit-Fingerabdrucks des öffentlichen Schlüssels oder der „Schlüssel-ID“ (abgekürzter 32/64-Bit-Fingerabdruck). Beispiel:

gpg --recipient [email protected] --encrypt
gpg --recipient EA708A76F932CCEAF60D364375F1129BE6E591E4 --encrypt
gpg --recipient "EA70 8A76 F932 CCEA F60D 3643 75F1 129B E6E5 91E4" --encrypt
gpg --recipient fred --encrypt
gpg --recipient 0x75F1129BE6E591E4 --encrypt

(Sie können eine Übereinstimmung testen gpg --list-keys, indem Sie sie beispielsweise an übergeben gpg -k fred.)

Die sicherste Option ist die Angabe des Empfängers per Fingerabdruck. Das Feld „Benutzer-ID“ (ob vollständig oder teilweise) ist nur dann ein sicherer Identifikator, wenn Sie Web of Trust verwenden oder einen echten „Fred Foobar“-Schlüssel auf andere Weise von einem gefälschten „Fred Foobar“-Schlüssel unterscheiden können.

Wenn ich also einen solchen PGP-Public-Key-Block „importiere“ (was funktioniert), habe ich keine Ahnung, was das Feld „Benutzername“ ist, und wenn ich das nicht weiß, kann ich es eigentlich nicht verwenden, da die Verschlüsselungsfunktion von mir verlangt, auf den richtigen „gespeicherten öffentlichen Schlüssel“ zu verweisen.

GnuPG zeigt dieses Feld immer als Teil der gpg --importAusgabe an (zusammen mit der 64-Bit-Schlüssel-ID). Beispiel:

$ gpg --status-fd=2 --import < /tmp/test.key
gpg: Schlüssel75F1129BE6E591E4: Öffentlicher Schlüssel "Testbenutzer <[email geschützt]>" importiert
gpg: Gesamtzahl verarbeiteter Dateien: 1
gpg: importiert: 1

Um dies in einem automatisierten Tool zu verwenden, verwenden Sie , --status-fdwodurch Sie den vollständigen 160-Bit-Fingerabdruck erhalten. Beispiel:

$ gpg --status-fd=2 --import < /tmp/test.key
[GNUPG:]IMPORT_OK 0 EA708A76F932CCEAF60D364375F1129BE6E591E4
[GNUPG:] KEY_CONSIDERED EA708A76F932CCEAF60D364375F1129BE6E591E4 0
[GNUPG:] IMPORT_RES 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0

Wenn Sie eine andere PGP-Software (also nicht GnuPG) verwenden und diese Ihnen keine Informationen zu den gerade importierten Schlüsseln anzeigt, handelt es sich um ein UI-Problem in dieser anderen PGP-Software.

verwandte Informationen