写点什么

MD5 缺陷可能损害 SSL 安全

  • 2009-01-07
  • 本文字数:845 字

    阅读完需:约 3 分钟

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

2009-01-07 19:352052
用户头像

发布了 225 篇内容, 共 70.0 次阅读, 收获喜欢 52 次。

关注

评论

发布
暂无评论
发现更多内容

LeetCode题解:1091. 二进制矩阵中的最短路径,BFS,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

C语言第三方库Melon开箱即用之词法分析器使用

码哥比特

c c++ Linux 后端 框架

春节快过腻了?不妨关心下太空探索

脑极体

用例文档

三生赤水

【LeetCode】重塑矩阵Java题解

Albert

算法 LeetCode 2月春节不断更

Elasticsearch mapping 复杂数据类型

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

面试的季节到了,老哥确定不来复习下数据结构吗

Silently9527

面试 数据结构与算法

翻译:《实用的Python编程》01_05_Lists

codists

人工智能 后端 python 爬虫 列表 数据结构与算法

揭秘登上2021春晚舞台的黑科技-XR技术

架构精进之路

黑科技 vr 春晚 XR MR

【STM32】PWM 输出 (标准库)

AXYZdong

硬件 stm32 2月春节不断更

字幕组时代落幕,翻译的未来可能是?

字节跳动技术团队

2.react心智模型(来来来,让大脑有react思维吧)

全栈潇晨

React React Hooks react源码

第四章作业-编写一个用例文档

秦挺

IDEA插件:快速删除Java代码中的注释

xiaoxi666

Java 代码注释 JavaParser

算法从有序数组中移除重复的数据,AI学习资源2020 John 易筋 ARTS 打卡 Week 38

John(易筋)

ARTS 打卡计划 ai youbute学习资源

一维数组的动态和

小马哥

算法

给hugo博客添加评论功能

远鹏

Hugo 静态博客 utterances

EternalWallet为您提供快速、便捷、低价的国际汇款服务

Geek_c610c0

【函数计算实践】nodejs初探示例——本地mac环境

程序员架构进阶

架构 nodejs 函数计算 七日更 2月春节不断更

gradle中的增量构建

程序那些事

maven Gradle 程序那些事 构建工具

端口隔离和VLAN的区别

C语言实用第三方库Melon开箱即用之多线程模型

码哥比特

c c++ Linux 后端 框架

写公号大半年,看看我都收获了些啥

架构精进之路

技术 总结 微信公众号 成长笔记

日记 2021年2月17日(周三)

Changing Lin

2月春节不断更

门诊数字化:患者信息识别方式

boshi

医疗 数字化基础 七日更

微信红包封面,2021年为啥突然火了?

架构精进之路

春节 微信红包封面 商业洞察

1.开篇(听说你还在艰难的啃react源码)

全栈潇晨

React React Hooks react源码

3.Fiber(我是在内存中的dom)

全栈潇晨

React React Hooks react源码

13. 如果自己写的 Python 程序出错了,怎么办?

梦想橡皮擦

python 爬虫 2月春节不断更

程序员成长第五篇:如何选择城市工作?

石云升

程序员 2月春节不断更 选择城市

第 4 周作业

老元宵

MD5缺陷可能损害SSL安全_安全_Charlie Martin_InfoQ精选文章