强大的加密哈希使冲突不太可能发生。许多加密协议都建立在这一事实之上。但是 Git 使用SHA-1哈希作为对象标识符。因此,在 Web 的公共 Git 存储库中有很多已经计算好的哈希值,以及如何重现它们的详细信息。
是否有一些已知的攻击可能会被利用的某些协议?类似“好吧,如果我将这个未知的纯文本替换为具有相同 SHA-1 哈希值的其他纯文本,我会做一些邪恶的事情,所以我不会计算冲突,而是用谷歌搜索它。” 当然,Git 提交还远远没有覆盖所有哈希的空间,但是,我猜所有的 Git 提交可能相当于计算 SHA-1 哈希的相当多的 CPU 小时。不过,我不确定这种猜测是否合理。
据我所知,这种攻击只有在散列可见的情况下才有效,生成它的纯文本不可见,但生成的一些密码文本是可见的,并且也可以加密不同的文本。所以这看起来可能适用于一些基于公钥的协议,您可以在其中加密但不能解密。此外,您无法控制冲突的纯文本,因此将您自己的名字作为某些金融交易的受益人之类的显而易见的事情是行不通的。在任何情况下,这样的众包哈希冲突可能会以不可忽略的概率造成严重问题吗?