LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1406|回复: 11

MD5算法不安全

[复制链接]
发表于 2004-8-19 21:51:11 | 显示全部楼层 |阅读模式
新闻,摘自CSDN。
演算法安全加密功能露破绽 密码学界一片哗然
上周四(12日)法国电脑科学家Antoine Joux宣布,已在常用的一种演算法中,找到一个弱点;这种演算法称为“MD5”,常搭配数字签名(digital signature)使用。紧接着,四位中国研究员发布报告指出,有办法破解另一种称为“SHA-0”(安全散列演算法0)的演算法。
      
       虽然这些只是初步的研究结果,但新的发现到头来可能让有心人士更轻易在电脑程序中植入不容易察觉的后门,或伪造电子签名——除非改用不同的、更安全的演算法。
      
       第三个可能更具爆炸力的宣布,订于周二(17日)晚间在加州圣塔芭芭拉举行的Crypto 2004会议上发布。
      
       以色列科技研究所研究员EliBiham和Rafi Chen原本计划在会中发布报告,指出几种破解“SHA-0”演算法安全功能的方法。现在,他们打算在会议中进一步谈论有关“SHA-1”演算法的“劲爆消息”。这场会议订于太平洋夏令时间17日晚间7时开始。
      
       “SHA-0”不完美,是己知的事实;但若“SHA-1”发现重大弱点,视细节而定,可能震撼电脑安全界。
      
       目前被奉为同级演算法中的圭臬,“SHA-1”嵌入诸如PGP和SSL等使用广泛的程序中。“SHA-1”已获美国标准与技术研究院(NIST)的认证,而且是唯一获准用于美国政府“数字签名标准”的签名演算法。“SHA-1”产生160位的数字与字串,长度比MD5产生的128位更长,因此被视为更安全。
      
       Crypto 2004会议总主席Storage Tek高级研究员Jim Hughes 17日早晨表示,此讯息太重要了,因此他已筹办该会成立24年来的首次网络广播(Webcast)。在传至加密学相关邮件清单的投书中,Hughes透露:“会中将提出三份探讨hash collisions重要的研究报告。”其中一份是Joux的研究发现。
      
       接受电话访问时,Hughes说:“若你发现,有两份合同经杂凑处理的数字签名相同,你大可用甲合同替代乙合同。闹上法庭时,哪一份才是有效的合同,至少有个灰色地带。那种可能性极高。”
      
       不论是“MD5”、“SHA-0”或“SHA-1”演算法,都使用电脑科学家所谓的hashfunctions。运用这些演算法,可把电子邮件讯息乃至操作系统核心等各式各样的信息内容混杂起来,产生理论上应是独一无二的fingerprint。原始信息内容稍有改变,即使只更动一个字母,再使用一次演算法后产生的指纹档也会截然不同。
      
       安全应用程序的防护机制是建筑在指纹档的独一无二性之上。万一某个不怀好意的黑客有办法以不同的信息内容产生相同的指纹档,则那个复制指纹档——即hash collision——就会把被植入后门的软件确认为安全无虞,可供使用者下载和执行。这么一来,有心人士便可趁机假冒电子邮件签名,指示把某人的银行帐户搬空。
      
       研究员长久来就知道,没有一种可实际使用的加密演算法是绝对安全的;他们所能做的,是设法设计出一种需要旷日废时方能复制指纹档的演算法。“SHA-1”被视为安全可靠,系因研究员相信,运用目前已知的技巧,不可能刻意制造出hash collision。
      
       但若是“SHA-0”潜在的弱点也出现在“SHA-1”之中,那意味复制出指纹档的速度可加快大约5亿倍——若把一堆高速个人电脑连结成网,有能力达此目标。
      
       “MD5”演算法的弱点是更迫在眉睫的威胁。开放源代码的Apache网络服务器产品使用“MD5”杂凑,以确保数十个映像网站上的源代码不被窜改,可安全执行。Sun Solaris Fingerprint Database也采用相同的杂凑演算法技术。
      
       近日来被揪出的“MD5”弱点,意味黑客可能在数小时之内用标准个人电脑产生出hash collipsion。但要编写特定的后门程序,再覆以相同的hash collipsion,则可能更费时。
      
       话虽如此,Hughes建议,程序设计人员最好开始舍弃“MD5”。他说:“既然现在这种演算法的弱点已暴露出来,在有效的攻击发动之前,现在是撤离的时机。”
发表于 2004-8-19 23:04:21 | 显示全部楼层
发动攻击没那么快吧,起码一两年的事
 楼主| 发表于 2004-8-20 20:17:02 | 显示全部楼层
原来听人说MD5加过密后是不可逆的,现在看来还是不安全。
发表于 2004-8-28 20:48:30 | 显示全部楼层
也许没有一个是安全的: 用那么一点数字去“完全代表”那么多的内容,真的能一一对应吗?
发表于 2004-8-28 21:12:21 | 显示全部楼层
最初由 wildonkey 发表
也许没有一个是安全的: 用那么一点数字去“完全代表”那么多的内容,真的能一一对应吗?
一点数字?你算过这“一点数字”有多大,能表示多少内容么
发表于 2004-9-13 11:47:54 | 显示全部楼层
首先说明一下,MD5不是一种加密算法,它只是一种用来产生摘要的“Hash算法”——加了引号是因为它已经被证明了不是Hash算法,因为hash算法的定义中有anti-collision的定义:不存在(或者计算困难)两个消息串的Hash值相等。

至于好多网站或者应用喜欢用MD5来加密存放密码,那是因为密码通常很短,MD5中间产生的随机数补充之后的结果先前是被认为不可逆,达到安全存放密码的目的。其实10位以下密码的MD5值也是可以(不属于计算困难的)被暴力破解的。

这些中国研究员们的成果还是显著的,就是证明了MD5不是Hash算法,因此动摇了MD5算法在其他加密算法中的地位,例如电子签名中是对原文的Hash值进行签名,MD5就不适合采用了。

当然这个结果的实际意义也不会很恐怖就是了,因为虽然MD5产生了消息碰撞,但是产生碰撞的消息未必是有意义的:例如一个文本文件,可以产生碰撞的那个消息也是可读的文本文件的几率非常小。
发表于 2004-9-13 11:54:35 | 显示全部楼层
最初由 wildonkey 发表
也许没有一个是安全的: 用那么一点数字去“完全代表”那么多的内容,真的能一一对应吗?


wildonkey说的是对的,用少的消息串去表示多的消息串,的确会产生“是否可以完全表示”和“是否一一对应”的问题

“完全表示”这个没有问题,因为消息串的信息量是有冗余的,例如文件可以被压缩也是这个道理;

“是否一一对应”就是Hash算法的一个要求了:

1) 已知一个消息m1,不存在或者很难找到另一个m2,H(m1) = H(m2)
2) 不存在或者很难找到两个消息m1、m2,H(m1) = H(m2)

MD5现在被证明不符合2,有兴趣可以下载他们提交的两个碰撞的文件的范例,两个文件差异不是很大,但是MD5值是相同的。
发表于 2004-9-13 19:13:41 | 显示全部楼层
分析得有道理,虽然现在不同文件MD5码的碰撞几率被证明比原来预计的大得多,但对用户来说,这个几率仍然是极小的。
关于MD5的新发现可能对使用了它的加密方法有比较大的影响,但作为校验码应该还是问题不大的。
发表于 2004-9-28 19:36:29 | 显示全部楼层
是签名不安全
发表于 2004-10-13 08:42:50 | 显示全部楼层
不懂,都什么啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表