【问题标题】:Handling signed git commits with revoked GPG key使用撤销的 GPG 密钥处理签名的 git 提交
【发布时间】:2016-04-21 03:00:12
【问题描述】:

我已经用 GPG 密钥“A”签署了一段时间的 git 提交。过了一会儿,我决定撤销该密钥并开始使用 GPG 密钥“B”。我还继续使用密钥“B”签署新的 git 提交。

我仍然在本地保留两个密钥(撤销的密钥“A”和新的密钥“B”)。新的提交没问题,但我现在遇到的问题是,当使用git log --show-signature 查看时,所有使用撤销密钥“A”签名的旧 git 提交都会显示红色警告。

下面是这个警告在 git log 中的样子(大部分都是红色的):

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 gnupg


【解决方案1】:

使用 Git 2.11 更新 2016 年第四季度:

git logERRSIGEXPSIGEXPKEYSIGREVKEYSIG 引入了额外的状态码EXYR,以便REVKEYSIG 的用户@ 获取更多信息。
Verifying signed git commits?


你的情况似乎没什么可做的。

was debated in 2010,包括一个有趣的想法作为最佳实践:

当然,每个密钥可以有多个电子邮件地址,但每封电子邮件决不能有多个密钥。

这其实很常见。
至少,如果人们试图在旧密钥和新密钥之间转换,就会发生这种情况——例如,如果他们试图从不太安全的加密算法转移到更安全的加密算法。

据我了解,管理此类事情的最佳方法是 使用子键。您可以更改子键的过期时间,然后 最终你可以撤销它,同时保留你的一个主 用于签名的公钥
事实上,定期更改您的子密钥并使旧的子密钥过期是一个好主意。

看看你是否可以使用subkeys(例如this tutorialthis one):

OpenPGP 进一步支持子密钥,这些子密钥与普通密钥类似,只是它们绑定到一个主密钥对。子密钥可用于签名或加密。
子密钥真正有用的部分是它们可以独立于主密钥被撤销,也可以与它们分开存储。

猜你喜欢
  • 1970-01-01
  • 2022-12-16
  • 1970-01-01
  • 2021-06-24
  • 2021-12-18
  • 2016-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多