Как определяются флаги использования GPG в списке ключевых деталей?

58

Когда я перечисляю детали ключа, я получаю вывод, как это:

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

Или даже usage: SCAна другой ключ (часть мастер-ключа).

Что означают эти сокращения в поле использования?

Я могу вывести это:

S -> for signing
E -> for encrypting

Но как насчет Cи A?

И есть ли еще?

И где искать такие вещи?

maxschlepzig
источник

Ответы:

59

Хорошо, руководство gpg, кажется, не упоминает эти сокращения. Таким образом, нужно смотреть на источник.

Например, в 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`

Из кода можно вывести следующую таблицу:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Постоянный персонаж
───────────────────────────────
PUBKEY_USAGE_SIG S
PUBKEY_USAGE_CERT C
PUBKEY_USAGE_ENC E
PUBKEY_USAGE_AUTH A
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Таким образом, например, usage: SCAозначает, что подраздел может использоваться для подписи, для создания сертификата и в целях аутентификации.

maxschlepzig
источник
7
действительно где-нибудь в документах?
Хайме Хаблутцель
@JaimeHablutzel, ты нашел хорошую документацию по этому поводу?
Эрик Фейл
Нет, извините, но источник, кажется, хорошее место для начала
Хайме Хаблуцель
15

Расположение --edit-keyлистинга не задокументировано (не то чтобы я все равно смог найти). Тем не менее, сокращения, которые вы упоминаете, находятся где-то на информационных страницах ( info gpg).

Я искал S:и обнаружил, что я действительно хотел искать usage:.

В «Опции, связанные с ключом GPG»:

4.2.1 Как изменить конфигурацию

Эти параметры используются для изменения конфигурации и обычно находятся в файле параметров.

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

Итак, выполнение gpg -k --list-options show-usage 1A3ABKEYпокажет вам что-то вроде этого:

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]

Некоторая дополнительная информация найдена в "Необслуживаемом использовании GPG"

Key-Usage: USAGE-LIST

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

Так что, хотя это и не сразу видно, информация есть где-то в вашей системе. Если manне поможет, попробуйте man -kи / или info.

jeroentbt
источник
Я могу видеть это на странице руководства для gpg 1.4.18, однако в руководстве для gpg 2.0.28 оно отсутствует. Кроме того, в обеих версиях команда "gpg -k --list-options show-Использование 1A3ABKEY" выводит "gpg: неизвестная
опция`
@YoungFrog. Спасибо за комментарий. Я уточнил, что нашел информацию на информационных страницах. Что касается команды, не работающей, для меня это работает на gpg (2.1.8). Когда я пробую gpg1 (1.4.19), я тоже получаю, gpg: unknown option 'show-usage' gpg: invalid list optionsхотя его использование описано на информационных страницах
gpg1
5

Эти ключевые флаги определены в спецификации OpenPGP

5.2.3.21. Ключевые флаги

(N октетов флагов)

Этот подпакет содержит список двоичных флагов, которые содержат информацию о ключе. Это строка октетов, и реализация НЕ ДОЛЖНА принимать фиксированный размер. Это так, что он может расти со временем. Если список короче, чем ожидает реализация, неустановленные флаги считаются равными нулю. Определены следующие флаги:

   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
источник
5
Это похоже на полезную ссылку, но на самом деле не отвечает на вопрос.
G-Man говорит: «Восстановите Монику»
2

Похоронен глубоко в списке рассылки GnuPG ...

Что означают буквы справа от слова «использование»?
(S, C, A, E) Я могу только догадываться | S | ign, | E | ncrypt, ....

(S) ign: подписать некоторые данные (например, файл)
(C) ertify: подписать ключ (это называется сертификацией)
(A) uthenticate: аутентифицировать себя на компьютере (например, войти в систему)
(E) ncrypt: encrypt данные

elboulangero
источник
2

Другая информация источник является ПОДРОБНОСТИ файл в распределении GnuPG .

Раздел «Поле 12 - Ключевые возможности» гласит

Определенные возможности:

е
шифровать
s
Подписать
с
Certify

Аутентификация
?
Неизвестная способность

Ключ может иметь любую их комбинацию в любом порядке. 
В дополнение к этим буквам первичный ключ имеет заглавные буквы 
версии букв для обозначения используемых возможностей всего 
ключ и потенциальная буква «D» для обозначения отключенного ключа.
Клавдий Б
источник