在密钥详细信息列表中如何定义GPG使用标志?


58

当我列出密钥的详细信息时,我将得到如下输出:

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

甚至usage: SCA在另一个键上(主键部分)。

用法字段中的这些缩写是什么意思?

我可以得出:

S -> for signing
E -> for encrypting

但是,我们CA

还有更多吗?

在哪里看起来像这样?

Answers:


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意味着子密钥可用于签名,创建证书和认证目的。


7
真的在文档中的任何地方?
Jaime Hablutzel 2014年

@JaimeHablutzel,您是否找到了与此相关的任何文档?
Eric Fail 2014年

不,抱歉,但消息来源似乎是一个很好的起点
Jaime Hablutzel 2014年

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使用情况”中可以找到更多信息

按键用法: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


我可以在gpg 1.4.18的手册页上看到此内容,但是gpg 2.0.28的手册中似乎没有此内容。另外,在两个版本上,命令“ gpg -k --list-options show-usage 1A3ABKEY”输出“ gpg:未知选项'show-usage'”
YoungFrog 2015年

@YoungFrog。感谢您的评论。我澄清说我在信息页面中找到了信息。至于命令不起作用,对我来说,它适用于gpg(2.1.8)。当我尝试gpg1(1.4.19)时,我也得到了gpg: unknown option 'show-usage' gpg: invalid list options尽管gpg1信息页中记录了它的用法...
jeroentbt

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.

5
这看起来像是一个有用的参考,但是并不能真正回答问题。
G-Man

2

深入GnuPG邮件列表 ...

“用法”一词右边的字母是什么意思?
(S,C,A,E)我只能猜测| S | ign,| E | ncrypt...。

(S)ign:对某些数据(例如文件)
签名(C)ertify:对密钥(称为证书)签名
(A)验证:对计算机进行身份验证(例如登录)
(E)ncrypt:加密数据


1

另一个信息源是GnuPG发行版中DETAILS文件。

“现场12 -关键功能”状态

定义的功能是:

Ë
加密
s
标志
C
证明
一种
认证方式
?
未知功能

键可以以任何顺序将它们组合在一起。 
除这些字母外,主键还具有大写字母 
字母的版本以表示整个组件的可用功能 
键和可能的字母“ D”表示禁用的键。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.