首页 >  安全技术

Google宣布第一次SHA1碰撞成功

几维安全 2017-02-28 16:57:10 阅读:1642次

发布者:马克·史蒂文斯(CWI阿姆斯特丹),埃利Bursztein(谷歌),皮埃尔Karpman(CWI阿姆斯特丹),昂热阿尔贝蒂尼(谷歌),Yarik马尔可夫(谷歌),亚历克斯·佩蒂特比安科(谷歌),克莱门特Baisse(谷歌)

加密散列函数如SHA-1是密码学家的瑞士军刀。你会发现哈希在浏览器中扮演着安全的角色,管理代码仓库,甚至用来区分仓库中的重复文件。哈希函数将大量数据压缩成小消息摘要。作为广泛使用的密码,要求在计算上不能找到有相同摘要的两个消息。然而,随着时间的推移,这种要求基于对散列函数的数学基础的攻击或计算能力的增加而宣告失败。

今天,在过去20年后第一次介绍SHA-1,我们宣布了第一个可实际产生SHA-1碰撞的技术。这代表了由阿姆斯特丹CWI研究所和Google 合作开展的两年研究的结果。我们已经总结了如何产生碰撞。作为攻击的证明,我们发布了两个具有相同SHA-1哈希值但具有不同内容的PDF。

对于科技界,我们的发现强调了避免使用SHA-1的重要性。Google多年来一直主张弃用SHA-1,尤其是在签署TLS证书时。早在2014年,Chrome小组宣布将逐步淘汰使用SHA-1。我们希望对SHA-1的实际攻击能巩固该协议不再被安全界认为是安全的。

我们希望对SHA-1的实际攻击将最终说服行业迫切需要使用更安全的替代品,如SHA-256。

什么是加密哈希碰撞?

234462BD-0DF4-4203-9F1E-2224D55097CF.png

当两个不同的数据(文档,二进制或网站的证书)散列时出现了如上所示的相同摘要,就会发生碰撞。实际上,对于安全散列函数不应发生碰撞。然而,如果哈希算法有一些缺陷,如SHA-1,一个资金充足的攻击者即可制造碰撞。攻击者然后可以使用这种SHA1碰撞来欺骗依赖于哈希的系统,接受恶意文件代替对应的正常文件。例如,两个保险合同具有完全不同的术语。

发现SHA-1碰撞

2013年,Marc Stevens发表了一篇论文,概述了创建SHA-1碰撞的理论方法。我们首先创建一个专门制作的PDF的工具,以允许我们生成具有任意不同视觉内容的两个文档,但是将散列到相同的SHA-1摘要。在实践中构建这种理论攻击,我们必须克服一些新的挑战。然后,我们利用Google的技术专长和云基础设施来计算碰撞,这是已完成的最大的计算之一。

这里有一些数字,让大家了解这种计算的规模有多大:

  • 总共九百亿亿(9,223,372,036,854,775,808)SHA1计算

  • 6,500年的CPU计算完成攻击第一阶段

  • 110年的GPU计算完成第二阶段

虽然这些数字似乎很大,SHA-1碰撞攻击仍然是超过10万倍的速度比暴力攻击,仍然不切实际。

减少SHA-1碰撞攻击的风险

向前发展,安全从业者比以往更加迫切地迁移到更安全的加密散列,如SHA-256和SHA-3。根据Google的漏洞披露政策,我们将在90天后发布代码,允许任何人创建一对PDF,它们包含不同的图像,但可以得到相同的SHA-1值。为了防止此类攻击被主动使用,我们为Gmail和GSuite用户添加了保护措施,以检测我们的PDF碰撞技术。此外,我们正向公众提供一个免费检测系统。

你可以找到更多关于SHA-1攻击的详细信息和详细的研究概述我们的技术在这里

关于团队

这个结果是CWI研究所和Google研究安全,隐私和反滥用小组之间长期合作的产物。

Marc Stevens和Elie Bursztein开始合作,利用Google基础设施使Marc对SHA-1的密码分析攻击变得实用。Ange Albertini开发了PDF攻击,Pierre Karpman致力于密码分析和GPU实现,Yarik Markov负责分布式GPU代码,Alex Petit Bianco实施了碰撞检测器来保护Google用户,Clement Baisse监督计算的可靠性。



本文出自https://security.googleblog.com,由翻译,转载请注明来自KiwiSec.com



《安卓应用加密》 《Unity3D手游加密》 《源代码加密》 《移动端的KiwiVM虚拟机》