SSL加密失效 用户安全性亟待加强

      最近又有一种数字证书遭遇尴尬。首先是Comodo松散的审批手续导致"mozilla.com"证书的销售给了一些存在问题的群体。如今一种更加严重的技术问题随着一些证书的生成而产生,但是真正的问题仍然在于人本身。

      12月27号到30号在德国柏林举行的Chaos Computer Congress上宣布:一种被称作碰撞证书攻击法(colliding certificates attack)的MD5运算法则碰撞攻击会允许攻击者创建以合法面目出现的假冒认证授权中心。

      通常的网络浏览器和许多应用软件都是采用授信认证授权的根证书来分布的,这样浏览器就可以验证他们遇到的网站授权是否是由授信机构颁发的。通过创建假冒的认证中心,研究学者门就可以建立能通过网络浏览器验证的授权证书(因为网络浏览器会将其作为合法的认证授权中心),这种情况就是RapidSSL–一种由VeriSign颁发的低成本认证授权。研究专家们正在展开这方面的研究来弄清楚这个问题。

      这项研究赢得了业界的支持和掌声,甚至还有来自VeriSign公司的,他们也承认这个问题会导致碰撞证书攻击的发生并决定尽快从他们的证书产品中祛除这些问题。任何受到问题证书影响的用户都可以从公司免费获得全新的未受影响的证书。

      在笔者了解问题的真相之前,曾经就此次攻击针对的目标-散列函数做个专门的讨论。散列函数主要用于完成数据块。一个散列函数将总是为同样的数据块创建同样的散列,但是在实践中你无法让这个过程逆向完成,从散列来创建数据块。当然尽管在世界的某个地方也有能创建同样散列的两个数据块,但在实践中你是找不到的。

      最后一个问题是碰撞证书攻击中发生了什么:研究学者们利用200台PlayStation 3s游戏基站组成的集群来试图找出RapidSSL发行的证书所遭遇的杂凑碰撞(hash collision)。

      这种情况下的杂凑碰撞(hash collision)就是针对MD5-一种相当古老的函数,一种多年来都在遭受碰撞攻击,另外一种由研究学者发现的认证授权也是使用MD5加密算法的有FreeSSL, TC TrustCenter, RSA Data Security, Thawte和日本的Verisign.co.这些年来他们推出了一系列改进的函数,最知名也最常用的一种就是SHA-1。

      研究学者们发现十有八九非MD5的证书都使用的是SHA-1,但这些也并不安全。其他的研究显示SHA-1可能同样存在碰撞攻击的弱点,在改进运算法则之前,如果使用速度更快的PlayStations游戏站来测试,SHA-1的崩溃也只是时间问题。

      还有一种使用变量长度密匙的SHA-2加强版,它还能衍生出SHA-224,SHA-256,SHA-384和SHA-512。国际技术标准协会(NIST)正在就新的散列函数进行竞争,通过SHA-3来制定将来新的标准。

      在一种级别上更改散列函数是很容易的,但是实践中遇到的问题却很令人头疼。这可能意味着我们将从十字头螺丝刀转向方头螺丝刀,自从以后你就不能使用十字头螺丝刀了。这就意味着你必须拔掉所有过去的十字头螺丝钉。他们到处都是,你可能都忘记了具体地方。你首先要做的是停止使用过时的螺丝钉,这项研究可能将在非常短的时间内终结通过认证授权中心办法的MD5散列的使用,虽然他们还能使用。微软公司的SDL(安全研发生命周期)就鼓励用户避免使用过时的函数,尽量使用SHA-256或者更新的函数。

      面对这项研究的发现和mozilla.com认证授权的丑闻,一些人将这种证书比喻为"安全窃贼",声称即使他们在大肆做广告也不会去相信了。笔者认为这是一种反应过度和没有任何帮助的态度。不使用MD5函数的EV-SSL放置更多用户可见的认证细节是有帮助的。SSL(加密套接字协议层)需要更多这样的改进以便它能交付出与人们希望更加接近的内容。不过这也是需要时间的。

      所有这些都意味着什么呢?所有这些中最重要的教训不是特别针对SSL或者证书的,而是所涉及的安全标准。"不破不立"这个概念在安全领域中并不适用,因为即使这些看起来没有任何问题,事情通常也会出现意外。

      笔者看到在变化中遇到的阻力,就好比说人们认为IE6就是好,微软公司就应该把Windows XP操作系统的销售永远继续下去吗?几乎没有例外的是,过时的软件产品都是缺乏安全性的,即使你通过补丁进行修正也是有局限的。所以有时候你必须去旧迎新,不断前进。