Wie sind die GPG-Verwendungsflags in der Liste der Schlüsseldetails definiert?

58

Wenn ich die Details eines Schlüssels aufführe, erhalte ich folgende Ausgabe:

$ gpg --edit-key SOMEID
pub [..] created: [..] expires: [..]   usage:SC
[..]
sub [..] created: [..] expires: [..]   usage: E

Oder sogar usage: SCAauf einem anderen Schlüssel (dem Hauptschlüsselteil).

Was bedeuten diese Abkürzungen im Verwendungsfeld?

Das kann ich ableiten:

S -> for signing
E -> for encrypting

Aber was ist mit Cund A?

Und gibt es noch mehr?

Und wo kann man so etwas nachschlagen?

maxschlepzig
quelle

Antworten:

59

Ok, das gpg-Handbuch scheint diese Abkürzungen nicht zu erwähnen. Man muss sich also die Quelle ansehen.

Zum Beispiel unter Debian / Ubuntu:

$ apt-get source gnupg2
$ cd gnupg2-2.0.17
$ cscope -bR
$ grep 'usage: %' . -r --exclude '*po*'
$ vim g10/keyedit.c
jump to usage: %
jump to definition of `usagestr_from_pk`

Aus dem Code kann man folgende Tabelle ableiten:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Konstanter Charakter
───────────────────────────────
PUBKEY_USAGE_SIG S
PUBKEY_USAGE_CERT C
PUBKEY_USAGE_ENC E
PUBKEY_USAGE_AUTH A
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Dies usage: SCAbedeutet beispielsweise, dass der Unterschlüssel zum Signieren, zum Erstellen eines Zertifikats und zu Authentifizierungszwecken verwendet werden kann.

maxschlepzig
quelle
7
Wirklich irgendwo in den Dokumenten?
Jaime Hablutzel
@JaimeHablutzel, hast du eine gute Dokumentation dazu gefunden?
Eric Fail
Nein, tut mir leid, aber die Quelle scheint ein guter Ausgangspunkt zu sein
Jaime Hablutzel,
15

Das Layout der --edit-keyAuflistung ist nicht dokumentiert (nicht das ich es trotzdem finden könnte). Die Abkürzungen, die Sie erwähnen, befinden sich jedoch irgendwo auf den Infoseiten ( info gpg).

Ich habe gesucht S:und festgestellt, dass ich eigentlich suchen wollte usage:.

In "GPG-Schlüssel bezogene Optionen":

4.2.1 So ändern Sie die Konfiguration

Diese Optionen werden zum Ändern der Konfiguration verwendet und befinden sich normalerweise in der Optionsdatei.

'--list-options parameters'

 show-usage

      Show usage information for keys and subkeys in the standard
      key listing.  This is a list of letters indicating the allowed
      usage for a key ('E'=encryption, 'S'=signing,
      'C'=certification, 'A'=authentication).  Defaults to no.

Wenn gpg -k --list-options show-usage 1A3ABKEYSie dies tun , sehen Sie Folgendes:

pub   rsa4096/1A3ABKEY 2015-01-25 [SC]
uid         [ultimate] Some Key
sub   rsa4096/4B907KEY 2015-09-19 [S]
sub   rsa4096/F9A41KET 2015-09-19 [E]

Weitere Informationen finden Sie unter "Unbeaufsichtigte Verwendung von GPG".

Schlüsselverwendung: VERWENDUNGSLISTE

 Space or comma delimited list of key usages.  Allowed values are
 'encrypt', 'sign', and 'auth'.  This is used to generate the key
 flags.  Please make sure that the algorithm is capable of this
 usage.  Note that OpenPGP requires that all primary keys are
 capable of certification, so no matter what usage is given here,
 the 'cert' flag will be on.  If no 'Key-Usage' is specified and the
 'Key-Type' is not 'default', all allowed usages for that particular
 algorithm are used; if it is not given but 'default' is used the
 usage will be 'sign'.

Obwohl dies nicht sofort ersichtlich ist, befinden sich die Informationen irgendwo auf Ihrem System. Wenn mandir das nicht hilft, versuche man -kund / oder info.

jeroentbt
quelle
Ich kann das auf der Manpage für gpg 1.4.18 sehen, aber es scheint nicht im Handbuch für gpg 2.0.28 zu stehen. Außerdem gibt der Befehl "gpg -k --list-options show-usage 1A3ABKEY" in beiden Versionen "gpg: unknown
option`
@YoungFrog. Danke für den Kommentar. Ich habe klargestellt, dass ich die Informationen auf den Infoseiten gefunden habe. Was den Befehl betrifft, der nicht funktioniert, so funktioniert er für gpg (2.1.8). Wenn ich gpg1 (1.4.19) versuche, bekomme ich auch, gpg: unknown option 'show-usage' gpg: invalid list optionsobwohl seine Verwendung in den gpg1-Infoseiten dokumentiert ist ...
jeroentbt
5

Diese Schlüsselflags sind in der OpenPGP-Spezifikation definiert

5.2.3.21. Key Flags

(N Oktette von Flags)

Dieses Unterpaket enthält eine Liste von Binärflags, die Informationen zu einem Schlüssel enthalten. Es ist eine Folge von Oktetten, und eine Implementierung DARF KEINE feste Größe annehmen. Dies ist so, dass es im Laufe der Zeit wachsen kann. Wenn eine Liste kürzer ist als von einer Implementierung erwartet, werden die nicht angegebenen Flags als Null betrachtet. Die definierten Flags lauten wie folgt:

   First octet:

   0x01 - This key may be used to certify other keys.

   0x02 - This key may be used to sign data.

   0x04 - This key may be used to encrypt communications.

   0x08 - This key may be used to encrypt storage.

   0x10 - The private component of this key may have been split
          by a secret-sharing mechanism.

   0x20 - This key may be used for authentication.

   0x80 - The private component of this key may be in the
          possession of more than one person.
AccidentalOps
quelle
5
Dies scheint eine nützliche Referenz zu sein, aber es beantwortet die Frage nicht wirklich.
G-Man
2

Tief in der GnuPG-Mailingliste vergraben ...

Was bedeuten die Buchstaben rechts von den Wörtern "usage"?
(S, C, A, E) Ich kann nur raten, | S | ign, | E | ncrypt, ....

(S) ign: einige Daten signieren (wie eine Datei)
(C) ertify: einen Schlüssel signieren (dies wird als Zertifizierung bezeichnet)
(A) uthenticate: sich bei einem Computer authentifizieren (z. B.
anmelden ) (E) ncrypt: verschlüsseln Daten

Elboulangero
quelle
2

Eine weitere Informationsquelle ist die DETAILS- Datei in der GnuPG-Distribution .

Im Abschnitt "Feld 12 - Schlüsselfähigkeiten" heißt es

Die definierten Fähigkeiten sind:

e
Verschlüsseln
s
Schild
c
Bestätigen
ein
Authentifizierung
?
Unbekannte Fähigkeit

Ein Schlüssel kann eine beliebige Kombination in beliebiger Reihenfolge haben. 
Zusätzlich zu diesen Buchstaben hat der Primärschlüssel Großbuchstaben 
Versionen der Buchstaben, um die verwendbaren Fähigkeiten des Ganzen zu bezeichnen 
Schlüssel und ein möglicher Buchstabe 'D', um einen deaktivierten Schlüssel anzuzeigen.
Claudius B
quelle