当前位置:首页 > 比特币新闻 > 正文

密码学大事件,谷歌宣告SHA-1已死并提倡使用SHA-256

来源: 互联网时间:2017-02-24 12:36:00

加密哈希函数SHA-1正如密码学界的一把瑞士军刀。你会发现哈希在浏览器安全当中扮演了一个角色,管理代码库,甚至只是检测存储当中的重复文件。哈希函数将大量数据压缩成小的信息摘要。作为一个广泛使用的加密哈希函数,找到拥有相同摘要的两个不同信息,这种计算是不可行的。然而随着时间的推移,通过增加算力和攻击哈希函数数学基础的方式,破解SHA-1已成为了可能。

在SHA-1诞生超过20年后的今天 ,CWI研究机构联合谷歌宣布了首个可产生碰撞的实用技术,这代表了两年来双方间合作的最终结果。

SHA1

在本文当中,作者总结了如何产生这次碰撞。作为一个攻击证明,研究人员发布了两份具有相同SHA-1哈希值,但内容不同的PDF文件。

对于技术社区来说,这次研究强调了SHA-1的使用已迎来终结。谷歌多年来一直在反对SHA-1的使用,特别是当它涉及到TLS 证书的签名时。早在2014年初,Chrome团队便宣布他们将逐步淘汰使用SHA-1。研究人员希望这次针对SHA-1 的攻击,将促使大家放弃使用SHA-1。

这一实验最终向业界证明,移动到更安全的替代品加密哈希函数是迫在眉睫的,例如SHA-256 (译者注:比特币创始人中本聪早在2008年就选择了更为安全的SHA-256。)

SHA-1 vs 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)

什么是加密哈希碰撞?

Collision-illustrated

当两份有区别的数据块(文件或网站证书等)的哈希摘要相同时(如上图),那我们说碰撞就产生了。在实践中,安全的哈希函数不应该产生碰撞。然而,如果哈希算法存在一些缺陷,例如SHA-1,资金充足的攻击者就可以制造一次碰撞。攻击者可以利用这个碰撞来欺骗依赖于哈希的系统。(所幸,比特币使用的是更为安全的SHA-256,就目前来说,比特币还是非常安全的)

找到SHA-1碰撞

在2013年,Marc Stevens发表了一篇论文,提出了创建SHA-1碰撞的理论方法。研究人员创造了一个拥有特制前缀的PDF文件,允许我们使用任意不同的图象内容来生产两份文件,但可以哈希相同的 SHA-1摘要。为了在实践中建立这一理论攻击,我们必须要克服一些新的挑战。然后,研究人员利用了谷歌的技术专长和云计算基础设施来构建碰撞,这是有史以来完成的最大的计算之一。

这里有一些数字,可以让你感受到这次计算的规模有多大:

  1. 共计9*10^18(9,223,372,036,854,775,808)次SHA1计算;
  2. CPU计算6,500年完成攻击的第一阶段;
  3. GPU计算110年完成攻击的第二阶段;

complexity compared

虽然这些数字看起来很大,SHA-1粉碎攻击仍然要比蛮力攻击要快上10万倍,后者是非常不切实际的。

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

对于安全从业者来说,使用更安全的加密哈希函数(如SHA-256和SHA-3)是比以往更为迫切的。继谷歌的漏洞披露政策之后,研究人员将等待90天再发布代码,允许任何人创建一对拥有相同SHA-1哈希摘要,但拥有不同图像的PDF文件。为了防止这种攻击被利用,研究者还会为Gmail和GSuite用户添加保护措施,来检测他们的PDF碰撞技术。此外,研究者正在向公众提供免费的检测系统。

你可以在这里找到更多关于这一SHA-1 攻击的细致研究。

免责声明:

1.本文内容综合整理自互联网,观点仅代表作者本人,不代表本站立场。

2.资讯内容不构成投资建议,投资者应独立决策并自行承担风险。