我已经向自己发送了一封加密的电子邮件和一份抄送,也是加密的,使用 Thunderbird 作为电子邮件客户端并使用 hotmail SMTP 服务器进行传送。
然后我收到了电子邮件,起初 Thunderbird 说它坏了,但后来修复并解密了它。然后我将消息保存到本地文件夹,现在 Thunderbird 无法再解密它。它显示一条错误消息:
Enigmail Security Info Error - no matching private/secret key found
to decrypt message gpg: decryption failed: No secret key Note:
The message is encrypted for the following User ID's / Keys: ...,
0x ... (Name <address>)
邮件中提到的私钥位于我的 gpg 数据库中,并且与正确的电子邮件地址相关联。它与我用来加密邮件的密钥对相同。
问题可能是什么原因造成的?可能是因为 hotmail SMTP 或 POP 服务器损坏了 gpg 加密的消息,导致其无法读取?
答案1
如果您使用的 gpg 版本早于 2.1.0,问题可能出在密码算法 CAST5 上,该算法会生成不受 MDC 保护的消息。
从 2.0.4 版本开始,Enigmail 无法解密此类电子邮件: https://addons.mozilla.org/en-US/thunderbird/addon/enigmail/versions/
解决方案是升级 gpg。要阅读旧邮件,请在 Enigmail 首选项(高级选项卡)中使用参数 --no-mdc-warning 作为“GnuPG 的附加参数”。
编辑:从 Enigmail 2.0.5 开始,此解决方法不再有效。有关最新消息,请查看 Enigmail 论坛(例如,如果公钥太旧,如何修复它): https://sourceforge.net/p/enigmail/forum/support/thread/03ebee57/