HASH算法安全性浅谈

上传人:豆浆 文档编号:30727558 上传时间:2018-01-31 格式:DOCX 页数:5 大小:19.31KB
返回 下载 相关 举报
HASH算法安全性浅谈_第1页
第1页 / 共5页
HASH算法安全性浅谈_第2页
第2页 / 共5页
HASH算法安全性浅谈_第3页
第3页 / 共5页
HASH算法安全性浅谈_第4页
第4页 / 共5页
HASH算法安全性浅谈_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《HASH算法安全性浅谈》由会员分享,可在线阅读,更多相关《HASH算法安全性浅谈(5页珍藏版)》请在金锄头文库上搜索。

1、HASH 算法安全性浅谈2011 年 12 月,CSDN 网站遭到黑客攻击,约 600 万用户的登录名、密码及邮箱遭到泄漏。随后,CSDN“密码外泄门”持续发酵,世纪佳缘、人人网、天涯社区等网站相继被曝出用户数据遭泄密,大量的用户账号和密码被公开,数量超过 5000 万。此次密码泄漏堪称近年来国内规模最大的网络安全事件。事后,密码明文保存被认为是此次事件的“罪魁祸首” 。当前,互联网越来越进入人们的生活。用户访问各种网站,在注册的时候需要输入用户名和密码,在仅仅考虑功能的前提下,可以把用户名和密码以明文的方式存储在数据表中。当用户登录时,直接将用户输入的明文密码与数据库中的密码进行比对,如果相

2、同则授权用户登录。明文密码保存方式在实现上非常简单,但面临的问题也很明显,那就是没有任何安全防护机制。任何有权读取或以某种方式获得数据库的人都可以获取所有用户的密码。因此我们需要一种即使数据文件被窃取,窃取者也不能获得用户密码的方式。现在网站已经基本不再使用明文密码保存的方式,而是在数据库中保存散列算法处理的结果。通过 HASH 散列函数的方式,可以有效的降低密码泄露的风险。HASH 散列函数是把输入的密码数据通过特定的算法处理后,输出为一个固定长度的字符串。这样,当用户输入密码时,直接将该密码代入散列算法得出散列结果,再与保存的数据对比,相同则允许登录。如“abc ”经过 MD5 散列之后,

3、结果为“900150983CD24FB0D6963F7D28E17F72” ,将这个字符串保存到数据库中替代密码明文。通过 HASH 函数的处理,即使密码数据库文件被窃取,窃取者也不能直观的获取到账号的密码。HASH 散列函数的特点是单向性,即由输入数据可以得到确定的输出字符串,但从输出的字符串反向获取输入数据的难度很大,几乎是不可能做到的。目前常见的散列算法有 MD5 和 SHA1。MD5 的输出是 128 位字符串,SHA1 的输出是 160 位字符串。还有更复杂的SHA256,SHA512,其输出分别是 256 位和 512 位。输出结果的长度越长,HASH 函数的安全性就越高。当前 H

4、ASH 散列算法最大的安全隐患就是字典攻击。所谓字典攻击,即根据密码所使用字符范围及密码长度穷举出所有可能的密码,对这些密码进行 HASH 处理,把 HASH 值保存在数据库中,一旦获得用户密码 HASH 值,将其与数据库中的 HASH 值进行对比,就可以快速的找到明文密码。对抗字典攻击的办法主要是限制密码最短长度,扩大密码字符组成,采用更长位数的 HASH 散列算法。这些都可以增加攻击者生成字典的时间成本和经济成本。个人认为还可以参照 3DES 加密算法,采用多重 HASH 算法,即对 HASH 值再进行多次 HASH 处理,这样也可以增加攻击者破解难度。但在各种资料中,尚未看到有人有提到此

5、种方法,不知何故。上述方法都是不断增加攻击者的难度,但随着现在计算机的计算速度和存储能力的不断提高,攻击者破解的时间、经济成本都在不断降低,因此这些方法都不是永久有效的。2004 年,山东大学王小云教授公布了利用差分技术实现对HASH 算法的碰撞攻击,随后又公布了碰撞攻击的详细原理过程。MD5、SHA-1 是当前国际通行的两大密码标准。 MD5 由国际著名密码学家图灵奖获得者兼公钥加密算法 RSA 的创始人 Ronald L. Rivest设计,SHA-1 是由美国专门制定密码算法的标准机构美国国家标准技术研究院(NIST)与美国国家安全局(NSA)设计。两大算法是目前国际电子签名及许多其它密

6、码应用领域的关键技术,广泛应用于金融、证券等电子商务领域。王小云教授的碰撞攻击算法,具有非常重要的理论意义,对密码学的发展具有极大的推动作用,为 HASH 函数的密码分析学开辟了一条新的道路。碰撞算法从理论上表明了电子签名可以伪造,必须及时添加限制条件,或者重新选用更为安全的密码标准,以保证电子商务的安全。这一成果说明了 MD5 和 SHA1 已经不能用作身份验证或数字签名,另外在理论上说明了数字摘要算法用于数据的完整性鉴别具有先天缺陷。但另一方面,由于方法上的限制,要构造具有特定语义的碰撞攻击几乎是不可能的,因此并不是所有采用MD5 等算法的应用都彻底失效。在实际中, MD5 和 SHA1

7、算法经常与其它算法一起使用,或者进行了很多变形,简单地找到 MD5 碰撞对并没有实际性的威胁。同时,她的研究成果也给其他研究者以极大的参考价值,后续研究者在其基础上,不断推出新的研究成果。2005 年 3 月,用笔记本在几个小时内找到 MD5 碰撞;2006 年 3 月,用笔记本在 1 分钟内找到 MD5 碰撞;2007 年 12 月,用 Chosen-Prefix Collision,伪造出了符合 X.509 标准的数字证书;2008 年 12 月,利用 MD5 碰撞,创造了一个假的来自可信 CA 的数字证书。因此,寻找 MD5 碰撞的算法的时间、空间复杂度都已降至实用水平。但从实践角度,不

8、同信息具有相同 MD5 值的可能性还是非常低的,通过碰撞的方法也很难碰撞出复杂信息的 MD5 值。现在 MD5 破译技术的研究者们正重点研究 MD5 碰撞的实际应用。为了防止网络监听及重放攻击,在网站登录过程中,通常还使用干扰字符串,即在用户登录时,服务器随机生成一段前缀或后缀字符串,浏览器将用户的密码 HASH 处理后,再加上干扰字符串,再 HASH 处理一遍,再提交给服务器。干扰字符串是随机生成,用过一次即失效,因此即使登录过程中 HASH 值被截取,也无法再次使用其来登录。如果需要更安全的算法,建议使用 SHA256 或 SHA512。目前还没有出现针对 SHA256,SHA512 算法

9、的有效碰撞攻击方法。该算法可以是 MD5 及 SHA1 的不错的后继者。总之,HASH 算法是在不断被破解的过程中,不断改进的。所谓“魔高一尺,道高一丈。 ”其安全性也是在不断提高的。当前主流的MD5 和 SHA1 正在改为 SHA256 和 SHA512。或许以后还会有更复杂的 HASH 演进算法,甚至更高级的密码处理算法,我们都拭目以待。对于碰撞攻击的实际应用研究,我们也持续关注。王小云教授的差分碰撞攻击算法,虽然里面没有太高深的数学算法,但过程还是很复杂繁琐的,有兴趣可以参考其原始论文,仔细研读分析。碰撞攻击的后续研究成果也有很大的参考价值。论文列举如下:Collisions for H

10、ash Functions MD4, MD5, HAVAL-128 and RIPEMD;How to Break MD5 and other Hash Functions;Finding Collisions in the Full SHA-1;Finding MD5 Collisions a Toy For a Notebook;Tunnels in Hash Functions MD5 Collisions Within a Minute;Efficient Hash Collision Search Strategies on Special-Purpose Hardware;Chosen-prefix Collisions for MD5 and Applications;Fast Collision Attack on MD5。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号