查看原文
其他

谷歌给自己打了个广告,顺便改变了下时代。。。

2017-02-25 差评君 差评


时代的改变

总在转瞬之间



今天在网上突然传出了一个信息安全界的重磅消息:


(SHA-1算法被谷歌破解)


Google 不仅宣布了这个消息,还直接做了一个网站: https://shattered.io/


可能差友们对这些信息都看得一脸懵逼,所以今天差评君就带差友们好好研究下件事到底有多厉害~


网站截图


网站一点废话都不说,开门见山一句:我们已经实际破解了 SHA-1


在继续看下去之前,先来一些干货,SHA-1 是什么?


SHA-1 其实是 SHA 家族的第二个成员(第一个成员是 SHA-0 ),SHA全称安全散列算法( Secure Hash Algorithm ),本质上是一个散列(Hash)函数~


散列函数实际的功能是把任意长度比较长的内容通过一种运算变成比较短的固定长度的内容( SHA-1 是固定变成160的长度)。


再简单点讲其实就是我们日常生活中的任何文件,利用 SHA-1 之后都能得到一串160位的信息~


差评君随便计算了一个文件的SHA-1值

(SHA-1那一行用16进制显示出来就是40个数字~)


所以这串数字到底有什么用呢?


这串数字有点像人类的指纹,世界上找不出两个一模一样的指纹,所以我们验证身份一个人的时候,只要验证下指纹是不是一致,就能确定是不是冒名顶替。


对应到文件,假设 SHA-1 是没有漏洞的算法的话,那就不存在两个不一样的文件会有一样的 SHA-1 值,所以只要 SHA-1 值一样,那么基本上文件也是一样的~


在实际生活中,软件可以算出一个 SHA-1 的数值,如果他被人恶意篡改, SHA-1 值就会被改变。


于是用户只要对比下 SHA-1 值是不是和官方提供的一样就能确保文件的正确性~


这种做法被广泛的利用与互联网的各个地方用以确保安全,比如网站的证书签名、文件校对、开源软件的代码仓库管理~


Git 的历史版本都会对应一个 SHA-1 数值

(利用数值可以唯一确认代码的版本以及保证文件的完整性)


当然,前提 SHA-1 没有漏洞,所以硬要找还是能找到相同数值的情况的。。。


这种情况被叫做碰撞( Collision ), 谷歌这次就是把这种情况给找出来了~


而且还实际利用上了。。。


网站上直接给出了证明

(左边的pdf上面是蓝色的,而右边的pdf上面是红色的,但是两个文件的 SHA-1 值却一模一样)


为此差评君还特地把两个pdf下载了下来试了一下。。。


(还真的是一模一样的 SHA-1)


这意味着,攻击者可以偷偷修改文档的内容,去替换被攻击者的文档,而被攻击者就算校验了 SHA-1 值也发现不了。。。


谷歌给出了图例


我们平时用的软件也很可能被黑客恶意篡改:


官网上关于GIT会不会受到影响的回答

大意是:GIT十分依赖于 SHA-1 算法,攻击者十分有可能可以创建出拥有同样 hash 数值的不同源代码(一份正常的一份右后门的),随意提供给想要攻击的目标。


差评君突然想起当年闹得沸沸扬扬的 XCodeGhost 事件,如果当时的始作佣者掌握了这样的技术的话,XCode 被添加恶意代码这件事一定会更加难以被发现。。。


话说回来,也不用太过担心,因为对个人来说或者小团体来说,这样的事情实现起来还是很困难的。。。


因为 SHA-1 算法理论上本来就是会发生碰撞的,只是很难找出来而已(以至于目前为止只有谷歌公开的第一个例子)~


而且实际上,就在 2005 年,我们国家的一位科学家王小云就已经提出过一种攻击 SHA-1 的算法,只不过这种算法成本还是比较高,只是提出了 SHA-1 的攻击方式的理论,并没有给出实际的碰撞例子。


王小云教授照片


到了2013年,荷兰阿姆斯特丹 CWI 研究所的 Marc Stevens 又提出了构造SHA-1 碰撞的一种新的更快的攻击方法,而且不久之后还给出了这种算法在 GPU 上的实现。。。


不过这种算法依旧有非常巨大的计算量,最后借助了谷歌的强大计算资源才算是成功地找到了一个碰撞例子~


至于计算量到底有多大,可以看下谷歌给出的描述:


谷歌在一份文件中对比了Shattered 算法和暴力破解的对比


即使是改进后的 Shattered 算法也需要 110 块 GPU 计算一整年,而暴力破解需要一千两百万张 GPU 才能在一年内算完。。。


这就是为什么即使 SHA-1 理论上可以被攻击,也一直没有出现实际被攻击的例子~


但这次谷歌的成功找到碰撞的例子给整个互联网敲响了警钟:SHA-1 对于现在这个时代来说已经不再安全。。。


警告世人之后,谷歌还不忘顺便给自己打一个广告:


如果你用 Chrome 浏览器,你遇到不安全的网站证书是会被保护的。


而且年初就已经开始彻底不支持 SHA-1:


我的浏览器会经常我吗?


从2017年1月发布的版本开始,Chrome 会把任何用 SHA-1 的证书判定为不安全 。


同时微软的 Windows 和 Edge 浏览器也都宣布即将彻底弃用 SHA-1 ~


一个新的时代即将到来。


至于差友们想问问谷歌前面提到的警告是长什么样的,这里有个你们很熟的网站。。。




“ 以后上网注意安全。。。 ”

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存