我已经创建了用于代码签名的 GPG 密钥,并且还创建了撤销证书。据我所知,如果密钥被泄露,那么我可以使用撤销证书撤销密钥。
有人能建议我如何使用撤销证书撤销我的密钥吗?还有一个疑问是,撤销密钥后我应该上传到任何 GPG 密钥服务器吗?这样使用我的密钥验证代码签名的人可以在使用我的代码签名文件之前检查密钥是否被撤销。
如果不需要上传密钥服务器,那么我的客户如何检查密钥是否被撤销?
答案1
这是根据文章对撤销步骤的总结
GPG:撤销你的公钥并通知密钥服务器. 以下假设密钥服务器是pgp.mit.edu
。
列出键
gpg --list-keys
撤销你的密钥
gpg --output revoke.asc --gen-revoke key-ID
将撤销证书导入到你的密钥环中
gpg --import revoke.asc
在密钥服务器上搜索你的密钥
gpg --keyserver pgp.mit.edu --search-keys key-ID
将撤销的密钥发送到密钥服务器
gpg --keyserver pgp.mit.edu --send-keys key-ID
答案2
据我所知,如果密钥被泄露,那么我可以使用吊销证书来吊销密钥。
是的,但只要您有实际的私钥(如果它被泄露但未被销毁),您就可以随时使用它来撤销自身。也就是说,它始终可以“即时”生成新的撤销证书。
相反,预生成的撤销证书适用于私钥被彻底迷失,而不仅仅是当它被破解时。它是存储在朋友家里的 USB 记忆棒上的东西。
(当然,你也应该始终在异地保存私钥的备份。但最大的区别是,私钥的备份更加敏感,因为如果被盗,它可以被用来做任何事物以您的名义,而“撤销证书”只能用于做一件非常具体的事情。)
有人可以建议我如何使用撤销证书撤销我的密钥吗?
这应该足够了进口将 revcert 放入您的 PGP 密钥环中 – 它本质上只是一个密钥签名(GnuPG 中的“自我认证”),它以与其他人签署您的密钥并导入这些签名完全相同的方式附加到您的主公钥上。
一旦导入,程序应该显示密钥已被撤销,并且您应该在标准位置(密钥服务器等)发布更新的公钥。
还有一个疑问是,撤销密钥后我应该上传到任何 GPG 密钥服务器吗?
是的,你应该这么做。发布密钥(和密钥更新)是密钥服务器的用途。
如果不需要上传密钥服务器,那么我的客户如何检查密钥是否被撤销?
您可以手动(重新)将撤销的密钥导出到文件并直接交给他们(或者将其发布在 Keybase 或您的网站上 - 如果您希望客户每天重新检查它...)但他们肯定不会神奇地知道您的计算机内部发生了什么。这就是密钥服务器存在的原因。