MD5和SHA-1被破解

   2004年8月17日在美国加州圣巴巴拉举行了一次国际密码学学术年会(Crypto’2004),当晚来自中国山东大学的王小云教授作了关于破译 MD五、HAVAL-12八、 MD4和RIPEMD算法的报告。当她公布了破解结果以后,报告被激动的掌声打断,引发了全场的轰动。会议结束后,不少专家来到王小云教授身边向她表示祝 贺,连世界顶尖级的密码学大师Rivest和Shamir也上前表示他们的欣喜和祝贺,世界信息安全方面的专家们对王小云教授等人的论文给予高度评 价,MD5的设计者和著名的公钥密码系统RSA的第一设计者Rivest在邮件中写道:“这些结果无疑给人很是深入的印象,她应当获得我最热烈的祝贺,当 然,我并不但愿看到MD5就这样倒下,但人必须尊崇真理。”为了公开征集专门针对MD5的攻击而设立的MD5破解工程权威网站http://www.md5crk.com/ 随后关闭。在该次学术年会总结报告这样写道:“咱们该怎么办?MD5被重创了;它即将从应用中淘汰。SHA-1仍然活着,但也见到了它的末日。如今就得开始更换SHA-1了。”可是,不久,王小云教授又宣布SHA-1也被破解。
  王小云教授的报告为何可以引发如此大的反响?由于她的成果做为密码学领域的重大发现宣告了一般被认为是很是安全的MD5算法轰然倒塌,引起了密码学界的一场地震。
1 MD5和SHA-1算法简单介绍
MD5和SHA-1算法的核心是哈希函数。密码学哈希函数(Cryptography Hash Function,简称为哈希函数)又称杂凑函数,是在信息安全领域有普遍和重要应用的密码算法,主要做用是数据完整性验证和消息认证。它有一种相似于指 纹的应用,因此有时候咱们也把它叫作“数字指纹”。由于它具备如下特性:原始信息只要改变一点点,哪怕是几比特,对应的消息摘要也会改变很大。
哈希函数 把任意有限长的输入行映射到固定长的行。哈希函数的值域与定义域相比规模要小得多,它是“多对一”的映射,所以可能会发生碰撞。所谓碰撞 (Collision)是指定义域的两个不一样元素x一、x2映射到同一个消息摘要,即h(x1)=h(x2),也就是存在不一样的消息具备相同的消息摘要。 从信息论的观点看,哈希函数存在碰撞是必然的,这一点在数学上能够严格的证实。所以安全的杂凑函数在设计时必须知足两个要求:其一是寻找两个输入获得相同 的输出值在计算上是不可行的,这就是咱们一般所说的抗碰撞的;其二是找一个输入,能获得给定的输出在计算上是不可行的,即不可从结果推导出它的初始状态。 如今使用的重要计算机安全协议,如SSL,PGP都用杂凑函数来进行签名,一旦找到两个文件能够产生相同的压缩值,就能够伪造签名,给网络安全领域带来巨 大隐患。哈希算法的安全性从理论上来讲与消息摘要的长度是成正比的,对于具备128位消息摘要的MD5,要在短期内寻找到一组碰撞在计算上是比较困难 的,而国际标准安全哈希算法( Secure Hash Algorithm, 简称SHA)是具备160位消息摘要,若是要找到一组碰撞在计算上更困难。
   MD5它曾一度被认为是很是安全的,各国著名密码学家、数学家和顶级黑客们对它进行了多年的密码学分析和攻击,曾提出的著名的“生日攻击”和“袋鼠攻击” 等一系列攻击方法,可是在实质上没有突破性的进展,所以MD5经受住了多年的考验,同时又因为由于它易于实现,算法理解相对也比较简单,因此在国内外有着 很是普遍的应用。可是王小云教授发现的这种方法,能够很快的找到MD5的“碰撞”,使得两个文件能够产生相同的“指纹”。这意味着什么?意味当当你在网络 上使用电子签名签署一份合同后,还可能找到另一份具备相同签名但内容迥异的合同,这样两份合同的真伪性便无从辨别,你颇有可能要背负黑锅了。她的这项研 究成果证明了利用MD5算法的碰撞能够严重威胁信息系统安全,这一发现使目前电子签名的法律效力和技术体系受到挑战,下面咱们将具体谈谈此次发现对社会各 方面的影响。
对网络系统安全的影响
学习黑客技术的人都知道,黑客攻击网络系统的最高目标是得到超级用户权限,由于得到超级用户权限那你就能够随心所欲。典型的为了得到系统权限的攻击方法主要有如下几大类:
(1)    缓冲区溢出,这是目前我以为最有研究深度和价值的一种黑客技术;
(2)    木马技术与社交工程,这两种技术相信朋友们都很清楚是怎么回事,相信有很多朋友经过这种手段知道了MM的QQ和邮箱密码;
(3)    端口监听和网络截获,难度很高,成功的可能性也不太大,但成功后威胁性很大;
(4)    病毒与蠕虫;
(5)    暴力破解,攻击的最后的但愿了!
   因为一些网络系统的口令验证是这样设计的:系统保留的是用户密码通过加密算法MD5获得的消息摘要,而不保留用户密码自己,验证用户身份时,只须要将用户 输入的密码再次用MD5生成消息摘要,与记录的MD5消息摘要做一个比较便可验证其密码的合法性。例如采用这种口令验证技术的系统有Linux和某些 UNIX,另一些网络应用系统也是采用的这种方法。从理论上来讲,若是咱们要攻击Linux系统,只要获得用户密码文件(其中记录了密码的MD5),然 后随便生成一个碰撞的密码(不必定要跟原密码相同),就能够用这个密码登陆了,超级用户密码也不例外。之前作到这一点是很是困难的,而如今王小云教授的成 果已经彻底使Linux用的那种基于MD5的身份验证技术失效了,并且攻击成功后能够嫁祸于人,这使得Linux的安全神话再次打破。攻击基本思路以下: 首先得到一个普通用户权限,再经过普通用户权限对存在缓冲区漏洞的某些程序进行缓冲区溢出,进行权限提高,最终得到超级用户权限,寻找到/etc /passwd和/etc/shadow文件,开始破解吧!按照王小云教授的方法你将得到包括ROOT口令在内的全部口令,固然这些口令不必定与原口令相 同,可是能够用合法的原用户名和这种口令大摇大摆登录系统。这样,你无需担忧在系统中添加新用户被系统管理员发觉,并且你作了什么不光彩的事情会有人帮你 背黑锅!另一个例子就是论坛系统,不少网上论坛采用的就是这种技术。基于ASP、PHP、JSP的各类论坛的漏洞不少,攻击手法更是层出不穷,好比不少 人经常使用的SQL注入技术,所以得到含有用户名与密码消息摘要的数据表信息并非件很是艰难的事情!若是有一天,在论坛上的有很高声望和名声的你,不幸被人 家“借用”了身份,发了一些很是不堪入目或者无理攻击他人的帖子,那你就应该知道怎么回事了。目前关于利用她的研究成果进行攻击的报道尚未出现,以上可 能攻击的方法是我根据本身研究经验进行的推测,若是出现相似手法,与本人无关。
2 对电子商务安全的影响
    MD5在电子商务系统中有着很是重要的应用。不少系统中把MD5算法用于使用者的身份鉴别和数字签名。如今我举个简单的例子,来讲明MD5被破解 后会给咱们带来什么。假设本地一个销售公司创建了一个电子产品网络购物中心,提供面向本地的网上订购、当天送货上门的服务。我知道这个公司信誉不错,并且 打算购买一个MP3,首先是要在他们的网站上注册,输入个人登录身份信息和真实的具体我的信息,包括:姓名、送货地址、联系电话、身份证号码等,完成注 册。接着我挑选产品,将我喜欢的MP3放进电子购物篮,订购完成,公司会打电话来确认所填信息是否正确,确认信息正确后之后就会送货上门了,我收到送来的 MP3再付钱,交易成功!在系统后台,为了保护客户隐私并防止网络攻击,该系统将作了如下处理:对用户提交的身份信息进行一系列格式化、加密和数字签名等 操做,并用MD5算法计算消息摘要来防止篡改,造成一个电子证书(若是比较正规的是采用CCITT X.509 国际标准),用户身份经过为用户颁发的电子证书进行识别。用户的电子证书能够导入到客户端浏览器中,当客户端向服务器提出登陆请求时,系统自动从电子证书 中获取用户身份信息,并计算消息摘要来判断证书是否被篡改过。每次交易时候,系统只要验证数字证书就好了,通常不须要输入用户名和密码,多年来这种方法一 直被认为是安全的。可是不幸的事情发生了,利用王小云教授的发现,用户证书彻底是能够被伪造!(听说最近国际密码专家Lenstra利用王小云教授的方 法,甚至伪造了符合X.509标准的数字证书。)一个对我很是不友好的人伪造了个人用户证书,进入系统后成功修改了用于确认的联系信息,并任劳任怨的为我 定购了许多大宗电子商品,最后当公司把这些商品堆在我面前时候并叫我签单时,我惊呆了!这一切,彷佛听起来难以想象,可是对于许多真正的网上电子商务系统 而言,网络在线支付和信用卡支付是很广泛的,可信部门(目前包括我国在内有许多数字证书认证中心)的数字证书就是用户的网络身份证,表明了用户的信 誉,MD5和SHA-1算法被用来保证这些证书的完整性和不可篡改性。而MD5和SHA-1算法被破解将致使这些数字证书能够伪造,由此形成的信誉和经济 损失将是难以估量的。不过要伪造一份真正有意义的数字证书也是很是困难的,从目前来看,这种伪造技术还不实用,可是根据最近的迹象代表,国外的某些黑客组 织因为受该研究成果的影响与刺激,对银行信用卡系统又开始表现出浓厚的兴趣了。
3 对电子政务安全影响
    电子政务是政府机构运用现代计算机和网络技术,将其管理和服务职能转移到网络上去完成,同时实现政府组织结构和工做流程的重组优化,超越时间、空 间和部门分隔的制约,向全社会提供优质高效、规范透明和全方位的管理与服务。通常应具备公务邮件、收发文管理、公文审批、部门简报等主要功能,以及日程安 排、我的事务管理、档案管理、红头文件签章、笔迹签批保留的辅助功能。政府的电子文件表明着权威,具备法律和行政效率,若是文件在网上传递过程当中被修改, 例如:把审批的公文中的不一样意去掉“不”字,那后果是不堪设想的。目前在电子政务系统中为了防止被篡改,传送和保存这些电子公文的时候每每会利用MD5或 者SHA-1算法生成这些电子公文的数字摘要,一旦电子公文被恶意篡改,启用这些电子公文时候从新生成数字摘要检查时候就会被发现,从而篡改后的公文将失 去效力。王小云教授从理论上说明这种保证电子公文的原始完整性的方法有缺陷,可是在实际中,要伪造有特定含义的电子公文与原始公文具备相同的数字摘要的可 能性很是很是小,能够说是几乎不太可能的(这点是由她的破解算法决定的)。所以MD5或者SHA-1来保证相似与电子公文这种的具备必定意义的电子文件不 被篡改仍是有应用价值的。
4 应用改进策略
  寻找一个MD5的碰撞已经解决了,那一组呢?就不那么容易了,那么咱们在找不到更合适的替代算法以前,不妨使用如下方案:
散列向量组。具体的办法是依次取要求散列的内容的一半,或者特定交叉部分,造成一个散列向量组来替代原来的散列值。
5 结语
    王小云教授的成果具备很是重要的理论意义,对密码学自己的发展具备必定的推进做用,为哈希函数的密码分析学提供了一条道路,有兴趣的朋友能够看一 下她的论文,论文题目是《Collisions for Hash Functions MD4, MD5, HAVAL-128 and RIPEMD》。她的发现说明MD五、SHA-1已经不能用身份验证,更不能用于数字签名,另外在理论上说明数字摘要算法用于数据的完整性鉴别具备缺陷。 不过她的方法也不是万能的,因为方法上的限制,要构造具备特定语义的碰撞几乎是不可能的,所以并非全部的采用MD5算法的应用都所以被完全的打倒,在实 际中,MD5和SHA-1算法常常与其它算法一块儿使用,或者进行了不少变形,所以攻破使用MD5或者SHA-1算法的系统并非想象中那么容易,因此她的 发现要在实际中可以发挥什么做用还要看之后的实践了。无论怎么说,她的发现的确是信息安全学界的一场地震,王小云教授也是咱们国人的骄傲!
[注:最近有很多人还在讨论关于散列的话题,这里我把之前一个杂志的约稿文章放出来]算法

相关文章
相关标签/搜索