如何使用过期的 OpenPGP 密钥向用户发送加密消息?

Afr*_*Afr 6 encryption thunderbird pgp expired-key gnupg

我有一个朋友,他有一个 OpenPGP 密钥,我很高兴有人给我写加密邮件。然而,3 年后,他的密钥上个月刚刚过期,现在 Thunderbird(带有 Enigmail 插件)不允许我再加密邮件。

我想知道:技术上,使用过期的密钥来加密消息应该没有问题吗?

我已经通知他他的密钥已过期,但他最近得到了他的第一个儿子,并告诉我他目前没有时间更新他的密钥(你知道,伪造主密钥,启动安全的实时系统等。pp.)。我完全理解这可能需要一些时间,直到他找到时间来做这件事。

但是,现在 Thunderbird 不允许我再加密消息,因为他的密钥已过期。我想知道,更糟糕的是,过期的密钥还是未加密的邮件?

是否可以使用过期的 OpenPGP 密钥向用户发送加密消息?

Jen*_*rat 6

GnuPG 无论如何都没有使用“不可用”键的选项(即那些被撤销或过期的键)。正如已经提出的那样,您将不得不摆弄系统时间。

使用 GnuPG 调试选项伪造时间

GnuPG 甚至有一个选项(读取 unix epoch 时间戳或 ISO 日期值,如 --faked-system-time 2010-12-24T180000),但这仅在使用调试标志编译时启用。

假时间工具

对于 Linux 系统(可能还有其他 unixoid 操作系统),有一个方便的faketime工具,它允许使用伪造的系统时间运行另一个程序(以及一些其他功能,例如加快被调用的应用程序的时间):

faketime 2010-12-24 gpg --recipient your-recipient --encrypt
Run Code Online (Sandbox Code Playgroud)

我没有Thrunderbird尝试:您可能需要使用此选项启动Thunderbird或手动启动gpg-agent --daemonfaketime. 使用伪造的系统时间启动 Thunderbird 可能会导致一系列其他问题,例如 TLS 连接的无效 X.509 证书。但是对于一些消息,可能手动编写加密消息,然后将 ASCII 装甲内容作为“内联 PGP”粘贴到 Thunderbird 应该没问题。

更改系统时间

作为最后的手段,您将不得不更改系统时间,这将适用于所有操作系统(但共享 X.509 证书的问题尚未有效,但适用于所有应用程序)。