BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

MD5缺陷可能损害SSL安全

| 作者 Charlie Martin 关注 0 他的粉丝 ,译者 郭晓刚 关注 0 他的粉丝 发布于 2009年1月8日. 估计阅读时间: 2 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

使用来自特定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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

MD5???? by zh coder

证书的签名是先计算hash值,然后再使用颁发者的RSA私钥加密的,上文说的不知所云,要伪造权威机构颁发的证书还得破解RSA,为何怪罪于MD5?
从上文来看,先从CA机构购买证书,然后再伪造由自己颁发的证书。难道不知道证书的内容里面清清楚楚的包括了一些扩展信息吗,即该证书拥有者有没有权限颁发证书。试问,如何伪造一个拥有颁发证书权限的证书?除非破解了CA机构的RSA私钥,这一切又和MD5有何关系??
可能是我理解浅薄,从上文只看出说MD5拥有证书签名不安全,但到底如何不安全,请指正!欢迎交流:coderzh.cnblogs.com

Re: MD5???? by Guo Xiaogang

RSA私匙用来加密hash,在这种攻击中,签名部分是原封不动的(证书中的公匙部分应该也不会动,只改变其它部分去凑hash),所以并不需要知道RSA私匙。验证的时候用公匙去解密签名得到(签名是计算出的)hash,如果与出签名之外其余部分得到的hash相同,那么就是一张有效证书。
由于MD5的问题,攻击者才有机会在可行的时间内凑出hash相同的证书。
这种攻击并不是把自己假装成CA,而是把自己假装成受CA信任的证书持有人。

Re: MD5???? by Guo Xiaogang

更正几个字:

RSA私匙用来加密hash,在这种攻击中,签名部分是原封不动的(证书中的公匙部分应该也不会动,只改变其它部分去凑hash),所以并不需要知道RSA私匙。验证的时候用公匙去解密签名得到(签名时计算出的)hash,如果与除签名之外其余部分算出的hash相同,那么就是一张有效证书。
由于MD5的问题,攻击者才有机会在可行的时间内凑出hash相同的证书。
这种攻击并不是把自己假装成CA,而是把自己假装成受CA信任的证书持有人。

Re: MD5???? by zh coder

明白了。就是说修改证书内容,然后又让MD5计算的hash结果一样。
真是这样的话,MD5的确太不安全了。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

4 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT