[英]Handling signed git commits with revoked GPG key
我已经用GPG键“ A”签署了git commit一段时间了。 一段时间后,我决定撤销该键,并开始使用GPG键“ B”。 我还继续用键“ B”签署新的git commits。
我仍将两个密钥(已撤销的密钥“ A”和新密钥“ B”)保留在本地。 新的提交是可以的,但是我现在遇到的问题是,当使用git log --show-signature
查看时,所有用撤销的键“ A”签名的旧git提交都显示红色警告。
这是此警告在git日志中的显示方式(大多数警告是红色的):
commit 39a53e42c8856278f481b9035e54eb90d8d2a0b7
gpg: Signature made Sat Aug 1 22:24:38 2015 CEST using RSA key ID 2F7EF26C
gpg: Good signature from "My Name <email1>" [ultimate]
gpg: aka "My Name <email2>" [ultimate]
gpg: WARNING: This key has been revoked by its owner!
gpg: This could mean that the signature is forged.
gpg: reason for revocation: Key is superseded
gpg: revocation comment: New GPG key is used.
gpg: revocation comment: New key fingerprint: C464 17C1 4F7B D54E A082 7090 CAFA 7B1B 2914 ED81
gpg: revocation comment: New key id: 2914ED81
Author: My name <email1>
Date: Sat Aug 1 22:24:38 2015 +0200
Improve test helper
有没有可以告诉git或gpg的设置,该密钥仍然“确定”且可信任,只是我不再使用它了? (我想保留这个旧密钥)
如果gpg(或git)“温和”地表示密钥未使用,而不是建议伪造的提交,我将不胜感激。 是否可以设置安全性或信任设置来实现此目的?
使用Git 2.11更新2016年第四季度:
git log
为ERRSIG
, EXPSIG
, EXPKEYSIG
和REVKEYSIG
引入了其他状态代码E
, X
, Y
和R
,以便%G?
的用户使用%G?
获取更多信息。
请参阅验证已签名的git commit?
您的情况似乎没有什么可做的。
在2010年进行了辩论 ,其中包括一个有趣的想法作为最佳实践:
当然,每个密钥可以有一个以上的电子邮件地址,但是每个电子邮件都不应具有多个。
实际上这很普遍。
至少,如果人们试图在较旧的密钥与较新的密钥之间进行转换,例如,如果他们试图从安全性较低的加密算法过渡到安全性更高的加密算法,则至少会发生这种情况。据我了解,管理此类事物的最佳方法是使用子项。 您可以更改子密钥的到期时间,然后最终可以撤销它,同时始终保留一个主公钥以进行签名 。
确实,定期更改子密钥并使旧密钥失效是个好主意。
OpenPGP进一步支持子密钥,该子密钥与普通密钥一样,只不过它们已绑定到主密钥对。 子项可用于签名或加密。
子密钥真正有用的部分是,它们可以独立于主密钥而撤销,也可以与主密钥分开存储。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.