暴露 git sha1 提交哈希有什么危险吗?

信息安全 加密 密码学 逆向工程
2021-09-05 18:10:40

对于非公共存储库,共享 git 提交哈希是否存在任何潜在的安全问题?例如,当我发布一个涉及来自私人仓库的 git 提交的 git 相关 stackoverflow 问题时,我会出于偏执而稍微更改哈希值。

或者,一个网站可能会在标题中提供一个 git commit 哈希,以向内部开发人员显示该网站正在运行的代码版本。

继续思考,是否有关于攻击者访问顺序sha1 哈希的任何担忧?

2个回答

正如那里所解释的,SHA-1 哈希是存储对象的标识符,包括提交——它们是根据对象内容确定性地计算出来的。里面没有秘密。虽然 SHA-1 名义上是单向的,但理论上这将允许想要猜测对象内容的攻击者验证他的猜测是否正确。这需要准确地猜测,直到最后一点,包括时间戳和其他类似的东西。

如果您的对象包含一些可以被暴力破解的秘密数据(例如密码,受到字典攻击),那么攻击者可能会使用 SHA-1 哈希作为测试。这似乎很难,因为正确猜测其他所有内容的条件,但可能性是存在的。因此,如果您的提交包含这样的秘密数据,那么您更改哈希值是正确的——但在这种情况下,请不要稍微更改它,因为准匹配与哈希值的精确匹配一样好,因为攻击者。完全改变哈希值:用 40 个随机十六进制字符的序列替换其中的每一个。

请注意,知道哈希值不会授予攻击者任何其他额外的权力;特别是,他们不允许他访问存储库。

对于非公共存储库,共享 git 提交哈希是否存在任何潜在的安全问题?

绝对不是。绝对无法将 git 提交的 SHA 1 哈希与提交的实际内容相关联。

继续思考,是否有关于攻击者访问顺序 sha1 哈希的任何担忧?

顺序 SHA 1 哈希到底是什么意思?