我有一个旧的 PGP 密钥,我不再知道它的秘密,也没有撤销证书,而且当我创建密钥时,没有设置到期日期。
所以我知道,我必须继续前进,所以我就这么做了。我创建了一个新密钥。现在我想以某种方式在密钥服务器中显示旧密钥不应使用。我读到,为此目的有几种方法:
- 创建一个带有 UID 的密钥,该 UID 会警告弃用情况,并使用该密钥签署旧密钥。
- 即使没有指定撤销者,也可以指定撤销将旧密钥授予新密钥。
- 使用新密钥对旧密钥进行签名,然后撤销签名。
如果有的话,哪一个是最正确的行动方案,我该怎么做?我想做 #2,但它给了我一个错误,没有找到撤销密钥,我猜可能是因为我不是指定的撤销者?
答案1
这种情况目前还没有很好的解决办法。
- 创建一个带有 UID 的密钥,该 UID 会警告弃用情况,并使用该密钥签署旧密钥。
这会导致错误端的可见性:任何拥有旧密钥(或首先找到它)的人都不会知道旧密钥已被(可能)取代。
另一方面,对于拥有正确密钥的用户,这些信息总是会突出显示。它读起来有点像“嘿,我失去了对旧密钥的控制权,不要再使用它了,下次我会做得更好。”
- 即使没有指定撤销者,也可以指定撤销将旧密钥授予新密钥。
由于缺少撤销者授权,撤销将无效。根据所用的软件,至少会向用户显示一些消息,告知他有些事情不对劲。
在我看来,无论如何,这是你能做的最好的事情了。我确信我曾经为了测试目的这样做过——但我再也无法重现它了。要么是 GnuPG 中添加了一些保护措施,要么是我过去遇到了一些错误,要么是其他问题。不过,你也许能够破解 GnuPG 的源代码或使用其他实现来执行此操作,而无需此保护措施。
- 使用新密钥对旧密钥进行签名,然后撤销签名。
再次强调,这不会真正撤销密钥,而只会为用户提供一些信息以供解读。大多数用户在搜索密钥时看不到这些信息,但您甚至可以添加一条文本消息。从语义上讲,您撤销的不是密钥,而是用户 ID(因此,如果您有多个用户 ID,请对所有用户 ID 重复此操作)。
一般来说,所有这些都不会真正撤销您的密钥。确保您的新密钥很好地集成到信任网络中:请您的朋友和同事签名,参加密钥签名派对。如果您的新密钥在信任网络中集成得更深并且更新,希望其他人会使用它。
并预先创建撤销证书。将其放在安全的地方,以防丢失。将其交给朋友或其他可信赖的人。他只能撤销您的密钥,但不能用它做任何其他事情。