如何使用子密钥进行 Enigmail 加密和签名?

信息安全 密钥管理 gnupg enigmail
2021-08-11 13:49:56

我遇到了 Enigmail 的问题。这是一个突出我的问题的例子。

Alice 和 Bob 希望使用 Enigmail 进行安全通信。为了提高安全性,他们都决定使用 --expert 标志创建密钥,并使他们的主密钥仅具有验证功能。然后 Alice 和 Bob 各自生成两个子密钥——一个用于签名,一个用于加密。最后,Alice 和 Bob 从密钥环中取出主密钥,并将密钥记录到外部媒体以供妥善保管在我看来,Alice 和 Bob 现在各有5 个密钥,即 2 和 1/2 密钥对。

AliceBob各有:

  1. 主公钥
  2. 公共加密子密钥
  3. 公共签名子密钥
  4. 秘密加密子密钥
  5. 秘密签名子密钥
  6. ~~(MISSING) 主密钥~~

关于 stackexchange 有很多问题可以解释为什么人们可能希望以这种方式管理他们的密钥,尤其是这篇文章

无论如何,每当 Alice 尝试使用 Enigmail 向 Bob 发送电子邮件时,Enigmail 都会抱怨“找不到密钥或无效。(子)密钥可能已过期。” 我生成的所有密钥都不会过期。

我认为 Enigmail 假设 Alice 的主密钥用于签名,并且当它尝试使用不存在的密钥时发送电子邮件失败。正如我所解释的,不仅 Alice 的主密钥丢失了,而且它也没有签名的能力。但是,存在子项。是否可以让 Enigmail 使用子键?

1个回答

值得注意的是,上述问题中描述的配置目前是不可能的。这是因为 Enigmail 开发人员拒绝添加自定义密钥选择功能——请参阅此处此处——声称没有理由让最终用户接触这种“高级配置”。这真的很不幸。

无论如何,我运行 Debian,所以我自然认为所有 Enigmail 依赖项都会与 Enigmail 一起安装,但事实并非如此。修复错误的解决方案是安装 pinentry-qt4 包,它有如下描述:

pinentry-qt4 -“GnuPG 的基于 Qt-4 的 PIN 或密码短语输入对话框。”

错误消息“找不到密钥或无效...”让我偏离了轨道。

同样,此解决方案仅修复错误,而不是我在问题中描述的情况。