W jaki sposób zdefiniowane są flagi użycia GPG na liście kluczowych szczegółów?


58

Kiedy wymieniam szczegóły klucza, otrzymuję dane wyjściowe w następujący sposób:

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

Lub nawet usage: SCAna innym kluczu (część klucza głównego).

Co oznaczają te skróty w polu użytkowania?

Mogę wywnioskować, że:

S -> for signing
E -> for encrypting

Ale co Ci A?

A czy jest coś więcej?

A gdzie szukać takich rzeczy?

Odpowiedzi:


59

Ok, instrukcja gpg nie wydaje się wymieniać tych skrótów. Dlatego trzeba spojrzeć na źródło.

Na przykład pod 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`

Z kodu można uzyskać następującą tabelę:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Stała postać
───────────────────────────────
PUBKEY_USAGE_SIG S
PUBKEY_USAGE_CERT C
PUBKEY_USAGE_ENC E
PUBKEY_USAGE_AUTH A
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Oznacza to na przykład, usage: SCAże podklucz może być używany do podpisywania, tworzenia certyfikatu i celów uwierzytelniania.


7
naprawdę gdziekolwiek w dokumentach?
Jaime Hablutzel

@JaimeHablutzel, czy znalazłeś na to dobrą dokumentację?
Eric Fail

Nie, przepraszam, ale źródło wydaje się dobrym miejscem do rozpoczęcia
Jaime Hablutzel

15

Układ --edit-keyaukcji nie jest udokumentowany (i tak nie mogłem go znaleźć). Skróty, o których wspominasz, znajdują się jednak gdzieś na stronach informacyjnych ( info gpg).

Szukałem S:i znalazłem, że tak naprawdę chciałem szukać usage:.

W „Opcjach związanych z kluczem GPG”:

4.2.1 Jak zmienić konfigurację

Opcje te służą do zmiany konfiguracji i zwykle znajdują się w pliku opcji.

'--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.

Więc robienie gpg -k --list-options show-usage 1A3ABKEYpokaże ci coś takiego:

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]

Więcej informacji można znaleźć w „Nienadzorowanym korzystaniu z GPG”

Użycie klucza: LISTA UŻYTKOWANIA

 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'.

Tak więc, choć nie są od razu widoczne, informacje są gdzieś w twoim systemie. Jeśli ci manto nie pomoże, spróbuj man -ki / lub info.


Widzę to na stronie podręcznika dla gpg 1.4.18, jednak wydaje się, że nie ma go w instrukcji dla gpg 2.0.28. Dodatkowo, w obu wersjach, komenda "-k gpg --list-options show-Wykorzystanie 1A3ABKEY" wyjścia "gpg: nieznana opcja` show-Wykorzystanie '"
YoungFrog

@YoungFrog. Dziękuje za komentarz. Wyjaśniłem, że znalazłem informacje na stronach informacyjnych. Jeśli chodzi o polecenie, które nie działa, dla mnie działa na gpg (2.1.8). Kiedy próbuję gpg1 (1.4.19), dostaję także, gpg: unknown option 'show-usage' gpg: invalid list optionschociaż jego użycie jest udokumentowane na stronach informacyjnych gpg1 ...
jeroentbt

5

Te flagi kluczy są zdefiniowane w specyfikacji OpenPGP

5.2.3.21. Kluczowe flagi

(N oktetów flag)

Ten subpakiet zawiera listę flag binarnych zawierających informacje o kluczu. Jest to ciąg oktetów, a implementacja NIE MOŻE przyjmować stałego rozmiaru. Dzieje się tak, aby z czasem rosnąć. Jeśli lista jest krótsza niż oczekiwana przez implementację, flagi niestacjonarne są uważane za zero. Zdefiniowane flagi są następujące:

   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.

5
To wygląda na przydatne odniesienie, ale tak naprawdę nie odpowiada na pytanie.
G-Man

2

Pochowany głęboko na liście mailingowej GnuPG ...

Co oznaczają litery po prawej stronie słowa „użycie”?
(S, C, A, E) Mogę tylko zgadywać | S | ign, | E | ncrypt, ....

(S) ign: podpisz niektóre dane (np. Plik)
(C) ertify: podpisz klucz (nazywa się to certyfikacją)
(A) uthenticate: uwierzytelnij się na komputerze (na przykład przy logowaniu)
(E) ncrypt: encrypt dane


2

Innym źródłem informacji jest plik DETAILS w dystrybucji GnuPG .

Sekcja „Pole 12 - Kluczowe możliwości” stanowi

Zdefiniowane możliwości to:

mi
Szyfruj
s
Znak
do
Poświadczać
za
Poświadczenie
?
Nieznana zdolność

Klucz może mieć dowolną ich kombinację w dowolnej kolejności. 
Oprócz tych liter klucz podstawowy ma wielkie litery 
wersje liter oznaczające użyteczne możliwości całości 
klawisz i potencjalną literę „D” oznaczającą wyłączony klucz.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.