注:本文原载《计算机世界》3月22日第10期:http://www2.ccw.com.cn/weekly/product/htm2010/20100322_653229.shtml, 我公司希望通过权威媒体的呼呼能让现在的VeriSign(Thawte/GeoTrust)SSL证书用户能充分重视此问题。
在密钥从1024位升级到2048位的过程中,部分SSL证书存在着极大的安全隐患。
王高华
微软于2009年11月在其网站上公布:鉴于被广泛应用于数字证书的1024位RSA非对称密钥算法有可能会被攻破,根据美国国家标准技术研究院(NIST)的要求,2010年12月31日之前,全球所有受信任的根证书颁发机构(CA机构)必须停止使用1024位RSA算法的根证书,向2048位迁移,并且,2010年12月31日,微软将把所有IE浏览器系统中的1024位根证书从受信任的根证书中删除。
NIST的要求是强制性的,所以全球各大Windows受信任的CA机构纷纷升级证书颁发系统和启用新的2048位根证书,其中包括过去一直使用1024位RSA算法的VeriSign、Thawte和GeoTrust等。虽然一些厂商也宣布了向2048位根证书迁移的方案,但是,依然存在安全缺陷。可以说,这是一个无法解开的死结。
以VeriSign采取的解决方案为例:VeriSign宣布其顶级根证书、中级根证书和用户证书都将替换为2048位的,但却只能支持高版本的IE浏览器(IE7.0版本以上)。因为,只有在高版本的IE浏览器中,其预埋的VeriSign根证书才是2048位的,而在低版本的IE系统(IE6.0以下版本)中,预埋的VeriSign根证书只有1024位的,并且无法自动升级。这样,为了让各种版本的浏览器都能支持新服务器根证书,VeriSign不得不使用老根证书来带新根证书的方案,即还是使用1024位IE浏览器根证书(Class 3 Public Primary CA)来交叉签名其新根证书。同样道理,VeriSign 用于签发EV SSL证书(显示绿色地址栏)的根证书虽然是2048位,但其交叉签名仍然是使用1024位老根证书。
这意味着目前广泛用于网上银行、网上证券(基金)、各大电子商务网站的VeriSign SSL证书,对于目前中国60%~70%的低版本IE浏览器用户来讲,访问其顶级服务器根证书依然是1024位的,网上交易依然是不安全的。而且由于老版本IE浏览器无法识别新服务器根证书而会出现不信任的安全警告,效果如同自签的证书,让用户心里很不踏实。
这次VeriSign可是大伤元气了,原先以为几百年也破不了的算法,没想到14年后就不安全了,怪只怪CPU处理能力发展太快了!笔者在此呼唤广大SSL证书用户,一定要为您的系统部署根证书是2048位的证书颁发机构颁发的SSL证书,这样才能确保您的系统安全。
链接一
SSL证书起什么作用?
SSL证书确保从用户浏览器到服务器之间的信息传输是加密的,保证用户机密信息的安全,被广泛应用于我国的网上银行、网上证券(基金)、网上购物等各种重要的网上应用系统,我国90%以上的网银都部署了SSL证书。
链接二
密钥加密长度的基本概念
(1) 一定要把非对称密钥加密的公钥长度与对称密钥加密的密钥长度区分开,非对称加密公钥位数一般分 512 位、 1024 位、 2048 位、 4096 位等,而对称加密是用一个密钥,一般分 40 位、 56 位、 128 位、 256 位等。两者是不同的加密体系,没有直接关联关系。
(2)浏览器与服务器之间是使用对称加密算法,使用多少位的加密强度是由浏览器与 Web 服务器自动协商,取决于双方支持的加密算法和加密强度,如:浏览器只支持 56 位,服务器支持128位,如果服务器没有部署支持强制 128 位加密的 SSL 证书,则加密强度为 56 位;而如果服务器已经部署支持强制 128 位加密的 SSL 证书,则加密强度为 128 位。
(3) 如果非对称加密公钥长度不够长,如为512位、1024位,则密钥有可能会被破解。所以,为了系统安全,一定要确保颁发SSL证书的根证书、中级根证书和用户证书都是使用2048位的公钥!