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