git - 什么是签名提交?

标签 git git-sign

在 Git 中签署提交是什么意思?即使在 reading the documentation 之后, 我对它的工作原理仍然有点困惑。

如果提交已签名,是否意味着我们可以判断提交上的作者姓名和电子邮件是否准确?

最佳答案

从技术上讲,它仅意味着相应私钥的持有者签署了提交。在实践中可以推断 1) 所述 key 的持有者是具有可验证声誉的人,2) 该人声称是代码的作者,以及 3) 代码在他们签名后没有改变。我对 GPG key 持有者如何与他人建立身份的了解非常有限,但这是一般的想法。

您为什么要检查所有这些?如果有问题的软件对某种类型的安全至关重要,攻击者可能会通过用损坏的软件替换您认为正在获得的软件来危及您,例如带有您无法轻易识别的后门的东西。毕竟,您需要一些代码,单击“下载”,并且您相信通过线路到达的就是按钮上所写的内容。但是,理想情况下,攻击者无法模仿真正作者的签名,因为他们没有作者的私钥。他们不能只更改代码而不管签名,因为它涉及代码本身的哈希。

参见 Code Signing在维基百科上。

关于git - 什么是签名提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43623633/

相关文章:

python - 版本控制历史是如何存储和计算的?

git - 在 Windows 上使用 sourcetree 提交签名

windows - 在 PowerShell 中使用 Git for Windows 时使用插入符号 (^)

git - lntelliJ IDEA EAP 12 和 Bitbucket(Git 或 Mercurial)

Git 签署以前的提交?

git - git commit -S 和 -s 有什么区别?

git - 在远程 VSCode session 上签署 Git 提交

git - 使 gh-pages 与 master 的最新提交保持同步

git svn 克隆失败