我可以创建包含自定义创建(开始有效期)日期的 OpenPGP 证书吗?
我今天需要创建一个 OpenPGP 证书,但使其仅从下周开始有效(例如)。
使用“Kleopatra”之类的工具,我只能设置“到期日期”。
答案1
密钥和证书
首先,OpenPGP 的表述与 X.509 不同。您所描述的证书在 OpenPGP 中通常称为“密钥”,而其他密钥上的签名才称为认证。
“之前无效”
此外,没有定义“在此之前无效”参数。有创建时间戳,但没有定义未来日期的行为——OpenPGP 的实现可能会发出警告、完全拒绝使用密钥或完全忽略这一事实。
伪造创建时间
GnuPG 不知道设置创建时间的选项,而是使用系统时间。最简单、最通用的方法是将系统时间更改为所需的日期。
对于 Linux,有一个非常有用的工具faketime
(github 上的源代码),它可以用来启动具有任意日期的其他命令:
faketime -f '2008-12-24 08:15:42' gpg2 --gen-key
gpg-agent
如果它没有看到(但使用)伪造的时间,您可能必须终止以便重新启动它。
GnuPG 也有一个--faketime
参数,但它只有在设置时才有效--debug
,这需要一些并不总是应用于生产版本的编译选项。