什么是签名提交?
What is a signed commit?
在 Git 中签署提交是什么意思?即使在 reading the documentation 之后,我仍然对它的工作原理有些困惑。
如果提交已签名,是否意味着我们可以判断提交上的作者姓名和电子邮件是否准确?
从技术上讲,它仅意味着相应私钥的持有者签署了提交。在实践中可以推断 1) 所述密钥的持有者是具有可验证声誉的人,2) 该人声称是代码的作者,以及 3) 代码在他们签名后没有改变。我对 GPG 密钥持有者如何与他人建立身份的了解非常有限,但这是一般的想法。
您为什么要检查所有这些?如果有问题的软件对某种类型的安全至关重要,攻击者可能会通过用损坏的软件替换您认为正在获得的软件来危及您,例如带有您无法轻易识别的后门的东西。毕竟,您需要一些代码,然后单击 "download",并且您 相信 通过线路到达的内容就是按钮上所写的内容。但是,理想情况下,攻击者无法模仿真正作者的签名,因为他们没有作者的私钥。而且他们不能只更改代码而单独留下签名,因为它涉及代码本身的哈希。
请参阅维基百科 Code Signing。
在 Git 中签署提交是什么意思?即使在 reading the documentation 之后,我仍然对它的工作原理有些困惑。
如果提交已签名,是否意味着我们可以判断提交上的作者姓名和电子邮件是否准确?
从技术上讲,它仅意味着相应私钥的持有者签署了提交。在实践中可以推断 1) 所述密钥的持有者是具有可验证声誉的人,2) 该人声称是代码的作者,以及 3) 代码在他们签名后没有改变。我对 GPG 密钥持有者如何与他人建立身份的了解非常有限,但这是一般的想法。
您为什么要检查所有这些?如果有问题的软件对某种类型的安全至关重要,攻击者可能会通过用损坏的软件替换您认为正在获得的软件来危及您,例如带有您无法轻易识别的后门的东西。毕竟,您需要一些代码,然后单击 "download",并且您 相信 通过线路到达的内容就是按钮上所写的内容。但是,理想情况下,攻击者无法模仿真正作者的签名,因为他们没有作者的私钥。而且他们不能只更改代码而单独留下签名,因为它涉及代码本身的哈希。
请参阅维基百科 Code Signing。