迁移到新子密钥对时弃用旧 OpenPGP 子密钥的最佳实践?

信息安全 加密 公钥基础设施 密钥管理 gnupg 优比键
2021-08-18 03:37:52

一段时间以来,我一直在使用带有离线主 + 在线子项设置的 GnuPG。我所有的电子邮件都使用仅签名子密钥进行签名,并且使用仅加密子密钥完成加密。子密钥为 4096 位。这种设置效果很好,但我想提高安全性,所以我买了一个 Yubikey Neo。

因为 Yubikey 只支持 2048 位密钥,所以我在一台安全机器上生成了另一对子密钥并将它们上传到 Yubikey。现在我的密钥环上有两对加密和签名子密钥。GnuPG 会自动使用最新的合适的子键,所以我之前的那组子键基本上是多余的。

我将所有子密钥保存在我的主要离线钥匙串上,但我不希望它们在我的主要便携式设备(笔记本电脑等)上弄乱钥匙串。我的计划是经常(至少每年一次)更新 Yubikey 的密钥,因此我将不得不处理越来越多的被取代的子密钥。

如果有人向我的旧子密钥之一发送加密数据,我将不得不挖掘离线密钥环才能解密它。这是相当痛苦的,我宁愿避免这样做。

停止使用旧但仍不受影响的子项的最佳策略是什么?撤销他们?设置一个较短的到期日期并等待它们到期?

1个回答

定期交换密钥

如果您打算定期切换子项(例如,按照您的建议,每年),设置到期日期似乎是合理的做法。与过期不同,其他 OpenPGP 用户无论如何都会意识到一个过时的子密钥(这将触发他们更新您的密钥,以寻找新的子密钥)。提前创建新的子密钥可能有助于分发它,密钥服务器需要一些时间来传播更新(在几秒钟到几分钟之间)。

考虑在您的日历中设置提醒,我经常遇到人们忘记创建新子键的情况。使用 Yubikey 等智能卡时,请记住您无法下载在设备上创建的密钥,因此请考虑在本地创建并上传它们。

撤销旧的子密钥

撤销并不一定意味着您的密钥被泄露。有一个标志表明您的(子)密钥已被取代,不应再使用。撤销密钥而不是仅仅忘记它还可以防止可能的攻击者在一段时间后使用泄露的密钥(这可能是您想要不时交换密钥的原因,所以也要撤销旧密钥!)。

请记住,撤销子密钥并不复杂,并且不会对您收到或颁发的证书产生任何负面影响。

删除旧的子键

我认为没有理由不再在您的“日常使用计算机”上存储已撤销和/或过期的加密子密钥。如果这样做,您将无法再阅读旧的加密消息!删除旧的(私有)签名子密钥不是问题,因为验证只需要公钥,无论如何您将不再使用私钥。