创建撤销证书-“无密钥”

创建撤销证书-“无密钥”

我有一个 GPG 密钥,我可以验证我是否拥有该密钥并打印出其内容:

 $ gpg --list-secret-keys 
/home/user/.gnupg/pubring.kbx
------------------------------
sec#  rsa2048 2019-07-11 [SC]
      9EEBCEAD0915834DFCE24B11A738D3C1E6BFA616
uid           [ultimate] My Name <my.email@email>
ssb   rsa2048 2019-07-11 [E]

我可以使用打印出来

$ gpg --export-secret-keys -a
-----BEGIN PGP PRIVATE KEY BLOCK-----
....
-----END PGP PRIVATE KEY BLOCK-----

但是,当我尝试创建撤销证书时,我收到:

$ gpg --gen-revoke 9EEBCEAD0915834DFCE24B11A738D3C1E6BFA616
gpg: secret keys "9EEBCEAD0915834DFCE24B11A738D3C1E6BFA616" not found: No secret key

为什么会发生这种情况?系统肯定可以访问密钥,并使用该密钥生成撤销证书。

答案1

我可以验证我是否有密钥

不,你不需要。这#意味着主密钥的私有部分缺失。GnuPG 仍然显示整个条目,只是因为你拥有一些子密钥

每个 PGP 密钥实际上都是由几个独立的 RSA/DSA/EdDSA 密钥组成的捆绑包:一个密钥对用于签名密钥 [C];有时有一个单独的密钥对用于签名消息 [S];并且始终有一个单独的密钥对用于解密消息 [E]。

由于这些密钥对的用途不同,需要的安全级别也不同,有些人会故意将部分 PGP 密钥导出到不太可信的机器中。因此,如果有人偷了笔记本电脑,他们就能阅读旧电子邮件,但不会能够使用 PGP 冒充您。

这里你的机器也缺少 [SC] 密钥的私钥部分,这意味着它可以解密收到的电子邮件和文件,但无法签署任何内容。而且由于编辑或撤销自己的密钥需要用自己签名,因此如果没有 [C] 私钥,这也是不可能的。

相关内容