如何限制 OpenPGP 证书中主密钥对的使用标志?

aef*_*aef 5 certificate pgp gnupg

我不止一次阅读建议,在我的 OpenPGP 证书中使用主密钥对仅用于签署子密钥对而不用于一般日常使用(甚至将私钥存储在未启用网络的 PC 上以供额外使用)安全)。我最近注意到我的证书中的每个密钥对都有一些标志,这些标志定义了它必须专门用于什么目的。据我目前了解(无法找到文档),签署子密钥对的过程将通过A(用于身份验证)描述。

在我新生成的证书中,我的主密钥对具有使用标志SC(签名和认证)。现在使用 GnuPG 命令行工具更改子键的这些标志非常容易,但我找不到任何方法来修改主键对的使用标志。

我希望能够做的是将主密钥对限制为只能在我的证书中签署和撤销其他子密钥对。谁能告诉我这是否可能以及如何做到这一点?

Jen*_*rat 6

您需要使用标志 certify C,这是 OpenPGP 规范所要求的。验证A很少使用,这意味着您可以对自己进行身份验证(类似于基于 SSH 密钥的身份验证)。

然而,在 GnuPG 中改变使用标志是不可能的(但是通过修改代码)。来自Resul Cetin在该邮件列表线程上的一条消息

好的,这很容易做到(不干净,但可以以一种快速而骇人的方式完成)。刚刚搜索gnupg-1.4.9/g10/getkey.c:parse_key_usage并更改pnon-const并始终设置(*p) &=~2;。之后,我开始了我新编译的 hackish-gpg --edit-key并设置了我的主密钥的过期时间。在此过程之后,我只设置了 Cert 标志。谢谢克里斯托夫 - 你是我今天的个人英雄:)