我有一个朋友有 OpenPGP 密钥,我很高兴有人可以给他写加密邮件。然而,三年过去了,他的密钥上个月刚刚过期,现在 Thunderbird(带有 Enigmail 插件)不再允许我加密邮件。
我想知道:从技术角度来看,使用过期的密钥加密消息应该没有问题吗?
我已经通知他他的密钥已过期,但他最近才生下第一个儿子,并告诉我他目前没有时间更新密钥(你知道,弄好主密钥、启动安全实时系统等)。我完全理解,这可能需要一些时间,直到他有时间做这件事。
但是,现在 Thunderbird 不允许我再加密邮件,因为它的密钥已过期。我想知道,密钥过期和未加密邮件哪个更糟糕?
是否无法向具有过期 OpenPGP 密钥的用户发送加密消息?
答案1
无论如何,GnuPG 没有使用“不可用”密钥的选项(即那些被撤销或过期的密钥)。您必须像已经提议的那样摆弄系统时间。
使用 GnuPG 调试选项伪造时间
GnuPG 甚至有一个这样的选项(读取 unix epoche 时间戳或 ISO 日期值--faked-system-time 2010-12-24T180000
),但是只有在使用调试标志进行编译时才启用该选项。
假时间工具
对于 Linux 系统(可能还有其他 unixoid 操作系统),有一个方便的faketime
工具,它允许使用伪造的系统时间运行另一个程序(以及一些其他功能,如加快被调用应用程序的时间):
faketime 2010-12-24 gpg --recipient your-recipient --encrypt
我没有尝试使用 Thrunderbird:您可能必须使用此选项启动 Thunderbird,或者使用 手动启动gpg-agent --daemon
。faketime
使用伪造的系统时间启动 Thunderbird 可能会导致一系列其他问题,例如 TLS 连接的无效 X.509 证书。但对于一些消息,手动编写加密消息,然后将 ASCII 封装的内容作为“内联 PGP”粘贴到 Thunderbird 应该没问题。
更改系统时间
作为最后的手段,您必须放弃更改系统时间,这将适用于所有操作系统(但共享尚未生效的 X.509 证书问题,但适用于所有应用程序)。
答案2
我刚刚在 GnuPG 的命令行上玩了一下,但没有找到可以说服 GnuPG 使用过期密钥的选项。
您可以调整自己的计算机时钟,但这可能会产生其他问题。
因此唯一的希望是你的朋友创建一个新密钥或延长现有密钥的到期日期。