MD5缺陷可能损害SSL安全

使用来自特定CA的X.509证书,会使基于SSL的安全措施即使在“安全”连接之下,也容易受到伪造X.509证书的欺骗而防范不住仿冒网站。近日在柏林举办的Chaos会议上,演讲者通过仿冒一份真实的证书演示了这一漏洞。

“让理论成为可能,有时候唯有这样才能推动变革,保障互联网的安全。”这番话是2008年12月29日第25届Chaos Communication Congress上一篇"MD5 Considered Harmful Today: Creating a rogue CA certificate"演讲的结论。演讲者介绍了他们如何用2004年提出的理论上可行的MD5签名攻击方法,构造出伪造的证书,从而实现对SSL安全网站“完美的中间人攻击”。

攻击的原理是这样的:SSL服务器用X.509证书来证明自己的身份,证书由“受信任的证书签发机构”或称CA发出。签发机构在证书上“签名”,用的是通过一种密码算法产生的散列值。而所用密码算法在设计上要使从两组不同数据得到同一个散列值——即“碰撞”——的概率极其小。

要实现攻击,攻击者需要先从使用MD5算法签署证书的CA购买若干SSL证书。利用从这几张证书中得到的信息,有可能构造出貌似合格的伪造的证书。证书的签名来自先前购买的证书,内容却不同,并且添加了特别计算出来的数据块以制造碰撞 。因此MD5算法会错误地认为签名与新内容是匹配的。效果上就好像在一份有真实签名的白纸上写上内容来伪造信件。

证书伪造出来后,就可以用在“中间人”攻击里。有了证书,就可以设置一个SSL连接双方都认为合法的代理。通过这个代理,所有加密信息都可以被攻击者捕获并保存下来。

这种攻击要求很大的运算量,但技术进步和摩尔定律已经使碰撞证书运算成为可行的现实。在演讲者的例子中,运算大约需要在Amazon EC2云花费$2000,也可以用PS3游戏机集群搭建的“家用超级计算机”解决。

这种攻击并不意味着整个互联网或者SSL安全已经被突破,但的确意味着厂商应该不再用MD5作为签名算法。演讲者提醒了几家仍然有MD5签名证书处于生效状态的签发机构。

查看英文原文: MD5 Exploit Potentially Compromises SSL Security

你可能感兴趣的:(MD5缺陷可能损害SSL安全)