SHA-1即将game over,你准备好了吗?
近期,各大主流浏览器厂商纷纷放出消息,最晚都将在今年底前在自身的产品或平台上彻底移除对SHA-1加密算法的支持。
SHA-1是美国国家安全局(NSA)设计、美国国家标准与技术研究院(NIST) 发布的一系列密码散列函数(SHA)家族成员之一,它是一种很常见的加密哈希算法,之前被认为是最安全的加密算法之一而被广泛应用,常用于HTTPS传输和软件签名认证等场景。但是由于该算法提出的时间较早(1995年),且加密强度不足(相对于其他加密算法),在当前计算机尤其是云计算解决方案的运算能力面前,已经非常容易被破解,所以早在去年,各大软件厂商和应用平台就都已经提出将在一段时间内终止对SHA-1的支持。2016年11月18日,两大浏览器巨头厂商Mozilla(Firefox浏览器开发商)和微软同时宣布将终止对SHA-1的支持,前者将于明年1月在火狐 Build 51版本,后者将于2月14日在IE11和Edge浏览器中停止对该加密算法的支持,而Chrome浏览器厂商谷歌2015年就宣布了将在2017年1月1日起放弃SHA-1。
早在约12年前,来自中国山东的数学家王小云和于红博,以及普林斯顿大学的尹依群等发表了一篇论文,对SHA-1算法实施碰撞攻击,复杂度为2的69次幂,最低可到2的33次幂。虽然这个概率看上去非常低(因为即便是2的33次幂也需要很大的运算量),不过随着计算技术和能力的激增,尤其是虚拟化和分布式计算技术的出现,破解SHA-1已经成为一项近在咫尺的可能性成果。
2012年,NIST就已经推荐将SHA-1升级到SHA-2(SHA-2目前尚未发现可被攻击的可能性),但是这项工作在全球的开展情况并不乐观,因为虽然SHA-2相对SHA-1,其安全性有很大提升,但是目前全球仍有不少的网站采用SHA-1证书,从SHA-1迁移到SHA-2的成本是比较高昂的,对于那些已经大范围部署业务的客户来说更是如此。对于其他号称是SHA-1替代品的加密算法,也同样存在此类问题。
但是,在安全和成本之间,我们还是需要作出自己的选择!