浅谈MD5和SHA-1被破解和应用改进策略
MD5和SHA-1算法的核心是哈希函数。密码学哈希函数又称杂凑函数,是在信息安全领域有广泛和重要应用的密码算法,主要作用是数据完整性验证和消息认证。
由于一些网络系统的口令验证是这样设计的:系统保留的是用户密码经过加密算法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的碰撞已经解决了,那一组呢?就不那么容易了,那么我们在找不到更合适的替代算法之前,不妨使用以下方案:
散列向量组。具体的办法是依次取要求散列的内容的一半,或者特定交叉部分,形成一个散列向量组来替代原来的散列值。
- 本文关键词:

