![Thunderbird 的新 OpenPGP 集成无法识别已删除签名子项的私钥](https://linux22.com/image/1633077/Thunderbird%20%E7%9A%84%E6%96%B0%20OpenPGP%20%E9%9B%86%E6%88%90%E6%97%A0%E6%B3%95%E8%AF%86%E5%88%AB%E5%B7%B2%E5%88%A0%E9%99%A4%E7%AD%BE%E5%90%8D%E5%AD%90%E9%A1%B9%E7%9A%84%E7%A7%81%E9%92%A5.png)
我刚刚从使用 Enigmail 的 Thunderbird 68 升级到 Thunderbird 78,并拥有其原生的 OpenPGP 功能。但是,从 Enigmail 迁移失败,无法将我的密钥环中的密钥与我的电子邮件帐户关联。
我第一次升级时,Enigmail 弹出一个带有“迁移”按钮的选项卡。起初它不起作用——它一直抱怨 Thunderbird 的 OpenPGP 基础设施未初始化——但关闭并再次打开它让我解决了这个问题。
当我成功开始迁移时,它开始要求我输入密钥的密码。我认为它只是试图验证它们。然而,它开始要求我输入已撤销密钥的密码。我很确定我输入的密码是正确的——尽管它在 2016 年被撤销了,所以我不能确定——但它只是不断地循环。最后,我取消了它,Enigmail 完成了,并警告说无法导入此密钥。没关系;就像我说的,它被撤销了。
现在,在“帐户设置”>“帐户”>“端到端加密”中,无法将我的密钥与我的帐户关联。我假设它根据与帐户电子邮件地址匹配的密钥身份执行此操作。我的主密钥与许多身份相关联(一个用于我的个人电子邮件,一个用于工作等),这是导致关联失败的原因吗?(顺便说一句,我的密钥确实正确显示在 Thunderbird 的 OpenPGP 密钥管理器中。)
看到这不起作用,我尝试导出我的密钥并将gnupg
其导入 Thunderbird。导入时,它正确识别了密钥,但随后它又开始要求输入已撤销密钥的密码!我不知道该密钥与我的新密钥有什么关系,除了它们具有相同的身份。
如果我不做任何事情——即假设它会奇迹般地工作——当我尝试发送签名或加密的电子邮件时,它会抱怨找不到我身份密钥的密钥。所以,它做过奇迹般地工作,因为它正确地确定了它应该使用的签名/加密密钥——而不是被撤销的密钥——但由于某种原因,它无法找到密钥。发生了什么事!?
Thunderbird 是否在后台运行gnupg
,或者它是否包含自己的实现和自己的密钥环?如果是后者,那可以解释这一点,但如果它确实以这种方式工作,我对密钥环的“分叉”感到不满。这意味着我必须维护另一套密钥环。
答案1
花了一段时间才让 Thunderbird 再次支持 GnuPG(通过邮件帐户的对等加密设置使用第三个选项“通过 GnuPG 使用外部密钥”)。在我们的案例中,我们和您一样拥有没有签名密钥的私钥来运行加密邮件列表,其中只有列表管理员拥有签名密钥,因此普通列表成员无法通过撤销密钥等方式来干扰密钥。
我们还没有对邮件列表上的所有 Thunderbird 用户重新启用加密,但我们了解到了两件事:
- 在 GNU/Linux 上,我们必须用 pinentry-gtk-2 替换 pinentry-qt 才能再次工作。
- 在 Windows 安装中,当尝试使用已删除签名密钥的密钥解密消息时,Thunderbird 实际上会崩溃,直到我们打开 gpgme 登录并使用调试级别 7(使用
setx GPGME_DEBUG 7;C:\ProgramData\Temp\gpgme.log
cmd shell 中的命令)。
希望这能帮助其他使用仅加密 OpenPGP 密钥的人。我们在 OSX 上仍然遇到问题,希望我们能尽快修复它。否则我们需要考虑替代方案,例如设置 Matrix 服务器。