加密哈希函数SHA-1正如密码学界的一把瑞士军刀。你会发现哈希在浏览器安全当中扮演了一个角色,管理代码库,甚至只是检测存储当中的重复文件。哈希函数将大量数据压缩成小的信息摘要。
作为一个广泛使用的加密哈希函数,找到拥有相同摘要的两个不同信息,这种计算是不可行的。然而随着时间的推移,通过增加算力和攻击哈希函数数学基础的方式,破解SHA-1已成为了可能。
在SHA-1诞生超过20年后的今天 ,CWI研究机构联合谷歌宣布了首个可产生碰撞的实用技术,这代表了两年来双方间合作的最终结果。
在本文当中,作者总结了如何产生这次碰撞。作为一个攻击证明,研究人员发布了两份具有相同SHA-1哈希值,但内容不同的PDF文件。
对于技术社区来说,这次研究强调了SHA-1的使用已迎来终结。谷歌多年来一直在反对SHA-1的使用,特别是当它涉及到TLS 证书的签名时。早在2014年初,Chrome团队便宣布他们将逐步淘汰使用SHA-1。研究人员希望这次针对SHA-1 的攻击,将促使大家放弃使用SHA-1。
这一实验最终向业界证明,移动到更安全的替代品加密哈希函数是迫在眉睫的,例如SHA-256。
比特币创始人中本聪早在2008年就选择了更为安全的SHA-256。
SHA-1:1995年发布,SHA-1在许多安全协议中广为使用,包括TLS和SSL、PGP、SSH、S/MIME和IPsec,曾被视为是MD5(更早之前被广为使用的散列函数)的后继者。但SHA-1的安全性如今被密码学家严重质疑。
SHA-2:2001年发布,包括SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。至今尚未出现对SHA-2有效的攻击.
输出哈希值长度:
SHA-1:160(bits) 例如
(da39a3ee5e6b4b0d3255bfef95601890afd80709)
SHA-2:256(bits) 例如
(e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855)
当两份有区别的数据块(文件或网站证书等)的哈希摘要相同时(如上图),那我们说碰撞就产生了。在实践中,安全的哈希函数不应该产生碰撞。然而,如果哈希算法存在一些缺陷,例如SHA-1,资金充足的攻击者就可以制造一次碰撞。攻击者可以利用这个碰撞来欺骗依赖于哈希的系统。
所幸,比特币使用的是更为安全的SHA-256,就目前来说,比特币还是非常安全的。
在2013年,Marc Stevens发表了一篇论文,提出了创建SHA-1碰撞的理论方法。研究人员创造了一个拥有特制前缀的PDF文件,允许我们使用任意不同的图象内容来生产两份文件,但可以哈希相同的 SHA-1摘要。
为了在实践中建立这一理论攻击,我们必须要克服一些新的挑战。然后,研究人员利用了谷歌的技术专长和云计算基础设施来构建碰撞,这是有史以来完成的最大的计算之一。
这里有一些数字,可以让你感受到这次计算的规模有多大:
共计9*10^18(9,223,372,036,854,775,808)次SHA1计算;
CPU计算6,500年完成攻击的第一阶段;
GPU计算110年完成攻击的第二阶段;
虽然这些数字看起来很大,SHA-1粉碎攻击仍然要比蛮力攻击要快上10万倍,后者是非常不切实际的。
对于安全从业者来说,使用更安全的加密哈希函数(如SHA-256和SHA-3)是比以往更为迫切的。继谷歌的漏洞披露政策之后,研究人员将等待90天再发布代码,允许任何人创建一对拥有相同SHA-1哈希摘要,但拥有不同图像的PDF文件。
为了防止这种攻击被利用,研究者还会为Gmail和GSuite用户添加保护措施,来检测他们的PDF碰撞技术。此外,研究者正在向公众提供免费的检测系统。
来源:巴比特资讯
安全可信赖的数字货币交易平台
每日资讯·实时行情·互动讨论