分类: 网络与安全
2010-03-10 22:37:54
SSL认证加密被攻破 安全防范需加强
研究人员成功利用“冲突”攻击创建伪造证书授权中心的事实表明,如果企业不向前推进安全相关标准的发展,必将导致各种安全威胁,每时每刻都有东西被破解,因此我们必须不断提高防御系统的能力。
文章导读 1、数字证书的安全隐患 2、MD5安全问题
【IT专家网独家】最近,数字证书领域不断爆发出各种安全问题。首先,Comodo公司将mozilla.com的证书兜售给与该公司毫不相关的人。而现在生成证书的方式又出现了很严重的技术问题,但真正的问题还是人的问题。
去年12月27日至30日在柏林召开的“混沌通信”会议上宣布:他们通过利用MD5加密算法漏洞攻破了SSL加密技术,成功搭建一个伪造的证书授权中心(CA),其颁发的证书能够被所有要求SSL的网站接受。
热门web浏览器和很多其他应用程序都拥有可信赖证书授权机构的根证书,这样浏览器就可以验证所打开的网站的证书是由可信类机构颁发的。通过搭建伪造的证书授权机构,研究人员能够创建伪造证书,并且能作为合法凭证通过浏览器的验证,就像合法证书授权机构一样。研究人员对他们的研究做了充分的报告,为的是使大家明确问题所在,并且研究者们表示,要想复制此破解过程,至少还需要6个月的时间,因此距离黑客利用此法实现真正攻击还有相当遥远的距离,大家也不必过于担心。
这项研究是伟大的,研究人员的创举获得了大家的认可和掌声,也得到VeriSign的认可,VeriSign承认了问题的存在,并正在努力迅速修复所有证书产品中的漏洞。该公司承诺任何受到影响的用户都可以免费得到一个新的未被感染的证书。
在结束本文前,让我们来谈谈hash function(哈希函数功能,哈希函数功能可以使软件在更少且可预见的数据量上运作生成数字签名,却保持与原信息内容之间的高度相关,且有效保证信息在经数字签署后并未做任何修改),也就是此次攻击的目标。hash function用来采取数据块(可能是很大的数据)并为其创造一个值,其他操作就可以在这个值上进行。hash function通常会为相同的数据库创建相同的哈希函数,但是要扭转这一过程也是不切实际的,不可能根据哈希函数来创建数据库。并且很肯定的是,必然也有可能两个数据块创建相同的哈希函数,虽然很难找出来。
最后一个问题就是“冲突”证书攻击是怎样发生的:破解的尝试共分为两步,其中的第一步运算量巨大,非常适合于运用分布式运算完成。因此,研究者们在瑞士洛桑联邦理工大学搭建了一个“PlayStation实验室”,使用200台PS3游戏机,平均分配30GB内存进行运算,耗时18个小时完成。而第二阶段运算量较小,并且不适合Cell处理器的SPU运算,因此使用了一台顶级四核心PC耗时3到10个小时完成。在一个周末的时间内,研究者们共进行了三次尝试,制造MD5“冲突”的总运算量为2的51.x次方。最终他们成功伪造了一个证书授权中心,可以随意签发SSL证书,突破各种SSL加密网站。
MD5安全问题
此次破解过程中使用的哈希函数是MD5,一个相对较老的功能,而且大家都知道这种算法易受碰撞攻击。此次研究人员发现仍然在使用MD5加密算法签发证书的证书授权机构包括:FreeSSL、TC TrustCenter、 RSA Data Security、Thawte以及Verisign.co.jp。近年来出现了一系列的改进的加密算法,其中最有名且最常用的就是SHA-1。
研究人员所发现的非MD5证书一般使用的都是SHA-1,但是也是不安全的。其他研究表明SHA-1也可能容易受到碰撞攻击的攻击,这只是时间问题,一旦出现改进的算法和更快的PlayStation就可能破解SHA-1。
另外有一个更强的SHA-2版本,它使用的是可变长度的密钥,可以指派为SHA-224、SHA-256、 SHA-384和 SHA-512。NIST(National Institute of Standards and Technology,国家标准与技术研究中心)正在为新的hash function举行竞赛以建立新的标准,命名为SHA-3。Bruce Schneier及其同事已经提交了他们的参赛作品Skein。
从某个层面来说,改变hash function是非常简单的,但是实际上是一个很头痛的问题。首先必须停止使用旧的hash function,此次研究将可能在极短时间内停止证书授权机构对MD5的使用,虽然大家都很震惊MD5仍在使用。微软公司的SDL(Security Development Lifecycle)建议用户停止使用旧的hash,改用SHA-256或者更高版本。
对于此次研究以及mozilla.com证书丑闻事件,有些人嘲笑证书授权机构的无能,认为证书根本没用。实际上,这是一种极端且无益的态度。EV-SSL(不允许使用MD5)通过向用户展示详细的证书信息就发挥了其作用。的确,SSL(Secure Sockets Layer,安全套接字层)需要更多的改进才能够更贴近用户的需求,这也需要时间。
所有这些意味着什么呢?最重要的问题不是任何具体SSL或者证书机构,而是安全标准需要不断发展,用户也需要与时共进。“如果还没有坏,就不要去修”的观点在安全行业并不适用,因为有些问题虽然表面看不出,但确实已经存在问题了。
在很多地方我都看到了同样的情况,有些人认为IE6已经够用了,微软应该继续永远销售XP。除了极少数情况外,可以说,旧的软件产品都是不安全的,并且修复漏洞时也有局限。我们应该抛弃旧的东西,继续前进。