9 兆次演算碰撞达成!Google 攻破 SHA-1 加密技术

  • 作者:
  • 时间:2020-06-06
9 兆次演算碰撞达成!Google 攻破 SHA-1 加密技术

Google 的研究人员刚刚创造了电脑加密学在 2017 年的第一个里程碑:攻破了 SHA-1 安全加密演算法。9 兆次演算碰撞达成!Google 攻破 SHA-1 加密技术

实验的关键研究者是来自荷兰 CWI 研究机构的马克‧史蒂文斯(Marc Stevens),他在安全杂凑演算法发表过大量优秀的研究成果。他从 2013 年起展现出攻克 SHA-1 的决心,之后陆续发表了一系列新成果和改进方法。透过和 Google 合作,他获得了本次攻破的关键资源:强大的计算能力。

这件事相当重要,令人激动。原因还要从 SHA-1 到底是什幺说起。

SHA-1 是什幺?

SHA-1(全称 Secure Hash Algorithm-1,安全杂凑演算法 )是一种安全加密演算法,最主要的用途是数位签名。

举个例子:你肯定在电脑上下载过软体吧?是否记得,档案的上传者会提醒你,下载后要校验档案?有没有见过类似下图的文字?9 兆次演算碰撞达成!Google 攻破 SHA-1 加密技术

这是因为,使用 SHA-1、MD5 这样的安全杂凑演算法,对文字档案、表格、音乐 mp3、PDF、执行档或其他任何档案等进行计算,都会得出像上图这样的栏位(SHA-1 值)。过去只要档案不同,对应的 SHA-1 值都不一样,就像给每个档案都加上数位签名。

而 SHA-1 值应该是 40 个英/数字:比如上图对应的 SHA-1 值是:

1E2FF30C5FD327C438F76C3ACBE97AAFB9AEDF7E

对下载者来说,原档案的 SHA-1 值很重要:当你下载一个软体,用档案校验工具检视它的 SHA-1 / MD5 值,如果和原档案不一样,你就得小心了,因为档案显然修改过了,里面可能有病毒或其他恶意程式码。9 兆次演算碰撞达成!Google 攻破 SHA-1 加密技术

档案 SHA-1 值校验实例。

SHA-1 和 MD5 是世界上最常用的档案校验加密演算法,过去一直认为是比较安全可靠的演算法──直到今天。

Google 和 CWI 一起研究出一种方法,能让两个不同的档案用 SHA-1 演算后,得出完全一致的 SHA-1 值。

怎样攻破的?9 兆次演算碰撞达成!Google 攻破 SHA-1 加密技术

这次攻破被命名为 SHAttered attack。研究者提供两张内容截然不同、色彩明显差异,但 SHA-1 值却完全相同的 PDF 档案为证明:9 兆次演算碰撞达成!Google 攻破 SHA-1 加密技术

在部落格中,研究者写道:

本次 Google 对其进行攻破花费巨额的演算法:总计 9,223,372,036,854,775,808──超过 9 兆次演算。

破解分为两阶段,分别需要一个 CPU 进行 6,500 年,和一个 GPU 进行 110 年的计算才可完成。这是因为研究者採用自行研发的 Shattered 破解方法,其效率远胜于暴力破解。且 Google 云端平台提供的大规模计算技术,明显减轻了负担。9 兆次演算碰撞达成!Google 攻破 SHA-1 加密技术

这也是为什幺必须「有足够实力的攻击者」才能攻破……

需要恐慌吗?

2012 年安全技术专家布鲁斯‧施奈尔曾经估计,完成一次 SHA-1 碰撞在 2012 年需要耗费 277 万美元,到 2015 年则降到 70 万美元,2021 年只需要 4.3 万美元。他还暗示,到 2018 年就会有犯罪集团具备虚拟 SHA-1 签名证书的能力。

但至少目前,人们并不需要恐慌。首先就事件本身而言,普通网友不需要担心有人会用它做坏事,因为 Google 漏洞披露政策规定,本次 SHAttered attack 的研究者需要等待 90 天才能释出原始程式码。就算掌握了程式码,至少也得有 Google 这种水準的大规模演算能力……

另外,研究者上线了一个网站 shattered.io,网友可以上去了解更多技术细节,还可以上传自己的档案,测试自己的档案是否安全。9 兆次演算碰撞达成!Google 攻破 SHA-1 加密技术

做为一种老旧的加密演算法,SHA-1 渐渐被后来者如 SHA-2 和 SHA-3 新演算法,以及各种变体取代。三大浏览器 Chrome、微软 Edge / IE 和火狐浏览器都决定弃用 SHA-1。

Google 早在 2014 年就未雨绸缪,发表逐步放弃 SHA-1 的决定。去年开始,Google 的 Chrome 浏览器已经不再支援 SHA-1 证书,会将其记号为不安全。当证书过期后,浏览器将无法存取这些网站。Google 方面也建议 IT 人士採用 SHA-256 等更安全的算法。所以今天的实验结果宣布,也算是给 SHA-1 补上迟来的一刀。9 兆次演算碰撞达成!Google 攻破 SHA-1 加密技术

微软 Edge 浏览器团队之前在部落格中表示,将于 2017 年中弃用 SHA-1。但据《富比士》网路版报导,另一位安全专家凯文‧贝尔蒙特在 Twitter 上指出,弃用 SHA-1 的 Windows 安全更新本应该在 2 月早些时候推送,但仍处于延期状态。

去年 10 月,火狐浏览器的开发商 Mozilla 也宣布了同样的决定。9 兆次演算碰撞达成!Google 攻破 SHA-1 加密技术

最后再送上:一张图看懂 SHAttered attack(Google 官方製作)。9 兆次演算碰撞达成!Google 攻破 SHA-1 加密技术