如何使用gpg更新过期的密钥对


82

更新gpg密钥对过期的最佳方法是什么,该方法的原因是什么?

密钥对已经被许多用户签名并且可以在公共服务器上使用。

  • 新密钥应该是过期私钥的子密钥吗?

  • 它应该由旧的签名吗(我可以尝试编辑密钥并将到期日期更改为明天)?

  • 新钥匙应该在旧钥匙上签名吗?

Answers:


95

私钥永不过期。只有公钥可以。否则,世界将永远不会注意到过期,因为(希望)世界永远不会看到私钥。

对于重要部分,只有一种方法,这样可以省去有关优缺点的讨论。

您必须扩展主键的有效性:

gpg --edit-key 0x12345678
gpg> expire
...
gpg> save

您必须就扩展与替换子项的有效性进行决策。替换它们会给您有限的前向安全性(限于相当长的时间范围)。如果这对您很重要,则您应该具有用于​​加密和签名的(单独的)子项(默认值是仅用于加密的子项)。

gpg --edit-key 0x12345678
gpg> key 1
gpg> expire
...
gpg> key 1
gpg> key 2
gpg> expire
...
gpg> save

您需要key 1两次选择和取消选择,因为您一次只能扩展一个键的有效性。

您也可以决定扩展有效性,除非您有理由认为密钥已被盗用。仅当您具有脱机主密钥时,才可以将整个证书扔掉(只有恕我直言,这才是使用OpenPGP的唯一合理方法)。

证书的用户无论如何都必须获取其更新版本(对于新的密钥签名或新的密钥)。更换会使密钥更大,但这不是问题。

如果您使用智能卡(或计划这样做),则拥有更多(加密)密钥会带来一定的不便(带有新密钥的卡无法解密旧数据)。


我碰到了这个:有什么gpg> expire Need the secret key to do this. 想法可以解决这个问题吗?
菲利克斯(Felix)

7
@Felix您不需要私钥。这是PK密码学的基础。
Hauke Laging,

8
具有讽刺意味的是,密钥已用“过期”更新
David Costa

2
我相信该expire命令实际上会指导您设置密钥的到期时间,所以也许您通过仅设置将来的到期时间来“更新”密钥?
维克多·哈格
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.