SHA-1碰撞可以打破SVN代码存储库
最近宣布的SHA-1碰撞攻击有可能破坏使用Subversion(SVN)修订控制系统的代码存储库。第一个受害者是WebKit浏览器引擎的存储库,该引擎被损坏后,在某人致力于具有相同的SHA-1哈希的两个不同的PDF文件之后。
从荷兰的谷歌和Centrum Wiskunde&Informatica(CWI)的研究人员发生了几个小时的事件,宣布了周四对SHA-1哈希职能的第一个实际碰撞攻击。他们的演示包括创建两个具有相同SHA-1摘要的不同内容的PDF文件。
这证明是毫无疑问,SHA-1正在密码破损,因为哈希函数应该始终为不同的数据或文件产生不同的摘要(哈希)。SHA-1是用于计算用于文件或数据的加密表示的字母数字字符串的散列函数。
WebKit Developer希望构建一个测试以证明所示的碰撞可以在WebKit的磁盘缓存重复数据删除功能中依赖于SHA-1的WebKit的上下文中的Cache中毒。为此,他上传了CWI和Google生成的两个PDF文件到WebKit SVN,然后开始发出错误。
似乎即使在删除文件后,仍然存在一些问题,需要进一步的手动干预来解决它们。
该问题不是特定于WebKit的存储库,而是对所有基于SVN的存储库。Subversion开发人员发布了一个脚本,即SVN管理员可以用于阻止SHA-1碰撞文件致电其存储库。与此同时,为更永久的修复工作正在进行中。
Git,竞争和更受欢迎的版本控制系统,也在内部使用SHA-1,根据CWI和谷歌研究人员,理论上易受伤害。
“与同一头脑提交哈希和不同内容创建两个Git存储库,说出良性源代码和一个后门,”研究人员在他们的破碎网站上表示。“攻击者可能会选择性地为目标用户提供服务库。”
这种攻击需要攻击者来计算自己的碰撞,此时需要大量资源。它花了谷歌超过九个千兆的SHA-1计算,相当于110 GPU或6,500 CPU的连续计算一年。
Linus Torvalds是Linux和Git的创始人,并不似乎担心攻击的影响,部分原因是通过添加一些简单的检查,可以轻松阻止,这将使攻击不值得。
“与一些”签署PDF“攻击不同,GIT不会从根本上取决于SHA1作为某种绝对安全性,”Torvalds在Git邮寄名单讨论中表示。“如果我们在Git中拥有最小的机器只是注意到攻击,那么攻击就基本上消失了。攻击者可以浪费无限量的CPU时间,如果我们要注意到它的便宜,它完全解除了所有攻击工作的武装。“
后来在同一讨论中,Git开发人员决定使用CWI研究人员提供的碰撞检测码来构建一些保护。与此同时,正在讨论将Git移动到另一个哈希函数,作为目标,而SHA3似乎是所选的候选人,因为它具有比SHA2更好的性能。
“我怀疑天空正在落下Git作为源控制管理工具,”Torvalds在他的一封电子邮件中得出结论。“我们想迁移到另一个哈希吗?是的。像人们想说的sha1是“比赛”是什么?可能不会。
即使它已经众所周知,SHA-1在理论上易受碰撞攻击的理论上易受攻击,尚未看到对文件同步,重复数据删除和备份系统的实际攻击的真实攻击。在90天内,谷歌和CWI研究人员计划披露他们用于生成碰撞PDF文件的代码,如果它们具有必要的计算资源,则允许其他人创建类似的冲突。