SHA-1算法的SSL证书为何被淘汰?

去年,微软和谷歌这两大IT互联网巨头都宣布将弃用SHA-1算法。其中谷歌提醒用户务必将即将于2015年12月31日后到期的SHA-1 SSL证书更换为SHA-2 (SHA-256)证书,微软则宣布Windows将于2017年1月1日停止接受SHA-1 SSL证书。而SHA-1算法为何要被淘汰呢?

 

什么是SHA-1算法

 

SHA (Secure Hash Algorithm,译作安全散列算法) 是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的一系列密码散列函数(包括 SHA-1SHA-224SHA-256SHA-384 SHA-512 等变体),它是一种能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。这些算法的安全性主要基于以下两点:

1、由消息摘要反推原输入消息,从计算理论上来说是很困难的。

2、想要找到两组不同的消息对应到相同的消息摘要,从计算理论上来说也是很困难的。任何对输入消息的变动,都有很高的机率导致其产生的消息摘要迥异。

 

SHA-1的工作原理及缺陷

 

SHA-1是一种安全算法,但对于多数人来说,理解这些算法却有些困难。我们举一个相对直观的例子。当你访问一个网站时,该网站向浏览器出示一个文件(类似于身份证)即一张SSL证书。这个证书用来做两件事:加密访问网站的连接,并验证网站真实身份。这时你的浏览器必须通过某种方式验证证书是否可信,如果验证通过,浏览器会在地址栏中显示一个小锁图标来体现证书的可信性。

为了完成验证工作,你的浏览器要查明网站的证书是否由权威机构(证书签发机构,简称“CA”)颁发的,你的浏览器信任来自超过56个CA(根CA)创建和担保的证书,如Verisign、GoDaddy、CFCA等。当网站的SSL证书宣称自己由某个CA颁发给该网站时,你的浏览器需要进行一项关键测试:此证书能证明确由某CA颁发的吗?

这时,浏览器会验证证书信息的SHA-1值,然后与被证书用作身份证明的原始SHA-1值作比较。因为SHA-1结果的唯一性,如果两个值是相同的,浏览器就确信提供的证书和CA签发的证书是同一个。但如果你设计了一个证书,能够与目标站点证书发生碰撞,也就是通过破解获得与它同样的SHA-1值,那你就可使用此证书来冒充目标站点,即使浏览器也无法区分真伪。

 

以上的如果会变成现实吗?不幸的是,安全专家已经找到了破解SHA-1的方法,虽然这种破解仍然是极其困难和昂贵的。但防患于未然,停用SHA-1已是必然。作为SHA-1的继任者,目前还没有发现针对SHA-2算法的有效攻击方法,它是足够安全的。所以,请网站的经营者们在2015年停止使用SHA-1证书。当然,主要的CA都会提供SSL证书的升级服务,您只需向您的证书颁发机构咨询解决方法即可。


你可能感兴趣的:(SHA-1算法的SSL证书为何被淘汰?)