Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么要签署Git标签?_Git_Security_Gnupg_Git Tag - Fatal编程技术网

为什么要签署Git标签?

为什么要签署Git标签?,git,security,gnupg,git-tag,Git,Security,Gnupg,Git Tag,Git提供了使用GPG私钥对带注释的标记进行签名的选项,但是仅仅接受标记的声明来源有什么错呢?当一个伪造的标记不改变提交时,它会造成什么损害 仅仅接受标签声称的来源有什么不对 如果你不能保证它是正确的,你就必须信任每一个有权获得回购协议的人(无论授权与否),不要虚假地创建标签。签名保证(至少是GPG能提供的)创建标签的人就是你认为的那个人 当一个伪造的标记不改变提交时,它会造成什么损害 没有。你似乎把两个不同的想法搞混了。标记和提交是完全独立的对象—标记指向提交,但标记不是提交。因此,标记永远不

Git提供了使用GPG私钥对带注释的标记进行签名的选项,但是仅仅接受标记的声明来源有什么错呢?当一个伪造的标记不改变提交时,它会造成什么损害

仅仅接受标签声称的来源有什么不对

如果你不能保证它是正确的,你就必须信任每一个有权获得回购协议的人(无论授权与否),不要虚假地创建标签。签名保证(至少是GPG能提供的)创建标签的人就是你认为的那个人

当一个伪造的标记不改变提交时,它会造成什么损害


没有。你似乎把两个不同的想法搞混了。标记和提交是完全独立的对象—标记指向提交,但标记不是提交。因此,标记永远不会改变提交。这可能是更危险的地方:伪造的标记不会意外地更改提交历史记录,并且更容易被忽略。

我认为有趣的一点实际上是:既然提交没有签名,那么签名标记有什么意义?我们可以验证标记者是谁,但我们无法验证提交者,那有什么意义呢?@stacy你似乎试图声称我们不应该签署标记,因为我们不能签署提交,这没有多大意义。为什么仅仅因为某个功能在其他地方不存在就删除它。不管怎样,我们假设签名的标记是一位权威人士,他在提交时检查了代码的状态,并保证代码的可靠性。@slacy,更重要的是,签名的标记指向代码库的特定不可变版本。提交没有签名,但提交哈希本身是加密安全的。如果您写下提交哈希的40个十六进制数字,或者能够完全记住它们,那么您将永远不需要标记(有符号或无符号)。这是否回答了您的问题?