专栏名称: 给产品经理讲技术
为互联网产品经理普及技术基础知识
目录
相关文章推荐
人人都是产品经理  ·  以企业微信为例,聊聊基于 API 的产品设计流程 ·  8 小时前  
人人都是产品经理  ·  鸿蒙原生应用上架难题破解:掌握关键要点,让应 ... ·  8 小时前  
产品犬舍  ·  给年轻人看的互联网行业中年人求生指南 ·  昨天  
人人都是产品经理  ·  如何学习风控产品经理?我的知识架构分享 ·  昨天  
51好读  ›  专栏  ›  给产品经理讲技术

Google攻破SHA-1,用实际行动证明SHA-1不安全

给产品经理讲技术  · 公众号  · 产品  · 2017-02-27 08:27

正文

前几日,Google晒出了两份完全不同的pdf文件,但是他们的SHA-1值却是一摸一样的,以此宣布攻破了SHA-1,并且再次奉劝大家不要使用SHA-1了。


那么SHA-1究竟有什么用呢?它和MD5、SHA-256一样,是一种加密散列函数,可以通过对任意大小的文件进行运算,得出一个20字节长度的摘要信息。在以前,我们认为这20字节的摘要信息就能表示这个文件的唯一性,因此通常用它来对一个文件做完整性校验。


如果有两个完全不同的文件,通过散列函数计算后,他们的摘要信息是一样的,这个时候就叫加密散列碰撞。一般来说,一个正经的散列算法是不会出现加密散列碰撞的,而SHA-1这种带有缺陷的算法,从理论研究上表明,在大量运算资源的加持下,是有碰撞可能的。


加密散列 碰撞带来一个很危险的问题,就是有人用恶意文件伪装成正常文件发送给你,如果你用SHA-1来校验文件的完整性,你是发现不了你收到的是一个假文件的。



早在2014年,Google家的Chrome小组就宣布将逐渐淘汰对SHA-1的使用。但是,大家仍然觉得SHA-1的碰撞只是处于理论上的可能性,直到Google用实际行动证明攻破了SHA-1。Google的目的也很单纯,就是希望这次针对SHA-1的实际攻击能够进一步巩固SHA-1不安全的结论,同时让更多人意识到这一结论。


Google还公布了完成一次SHA-1攻击需要的运算量,的确需要很大的运算,但是目前的人类还是可以实现它的,让我们来感受一下:

  • 总计900万兆(即百万的五次幂,具体为9,223,372,036,854,775,808)次SHA1计算。

  • 要完成攻击的首个阶段需要单一CPU计算6500年。

  • 要完成攻击的第二阶段需要单一GPU计算110年。


其实,我们只需要记住结论就是,SHA-1不再安全了,MD5也早就被发现了碰撞,所以靠谱的还是SHA-256或者更高级别的散列算法。







请到「今天看啥」查看全文