谈谈HASH算法与CSDN密码泄漏事件

日期: 2011-12-22 来源:TechTarget中国 英文

  在CSDN密码泄漏事件中,网友评论提到密码的明文保存和MD5保存问题。目前,很多站点都用MD5算法保存密码,但对于HASH(哈希)算法的认识还存在很多误区,很有必要重新认识。

  一、HASH算法不是加密算法

  HASH算法是一种消息摘要算法,不是一种加密算法,但由于其单向运算,具有一定的不可逆性,成为加密算法中的一个构成部分,完整的加密机制不能仅依赖HASH算法。

  二、HASH算法的碰撞现象

  HASH算法可以理解为将任意的信息经过提炼后,成为一个定长的字符串。世界上的信息数量为无穷大,所以定长的字符串不可能表达所有的摘要,因此存在所谓的“碰撞”,即2个同样的信息源摘要是一样的。 2004年山东大学王晓云提出有关快速查找“碰撞对”的算法,引起安全界对于HASH算法的极大关注,NIST提出到2010年不再使用MD5和SHA-1。目前仍可使用的HASH算法包括:SHA-256,SHA-512,SHA-224,SHA-384。2011年2月FIPS180-4草案还增加了SHA-512/224,SHA-512/256。这些算法都是SHA-2系列算法,SHA3-256算法也即将到来。关于碰撞必须还要说的是,有几率找到碰撞对,但并不意味着HASH算法整体被否定,例如将合同文本整体HASH并数字签名,如果找到碰撞对,很难还原成一个正常的文本,如果是一堆乱码,没有人会认可此文件,在不篡改HASH的前提下无法有实际意义的修改合同。

  三、HASH的破解与社会工程学

  HASH算法本身为单向性,很难直接破解,现有的破解都是将常用字符计算HASH值后反向比较。例如密码123456,假设MD5值为1ab9744e58acee3ed8f03508cbf82bf5,那么数据库中查到MD5值即知道了密码。通过社会工程学的应用,大量常用密码已可直接破解。

  四、合理使用HASH算法

  1. 废除旧算法,至少使用SHA-256,64位操作系统SHA-512运算速度更佳,建议选用
  2. 合理加点“SALT”,即干扰字符串。例如:SALT1=C`3/$xUM,5ltL4pze;avf9#kgmET^ SALT2=1qYIs,vOSfn%UHhm5+3TX:#iety0d 计算HASH SHA-512(SALT1+用户名+SALT2+密码) 那么社会工程学和目前的暴力运算是无法解决的
  3. 不要以为联合使用HASH算法会安全。例如MD5+SHA1,或者SHA1(MD5)嵌套,有文献证实都是无效的。

  最后希望程序员们能多看文献,跟上国际安全标准,尽可能避免安全事件的发生的影响。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐

  • MD5是否将会被SHA-1取而代之?

    MD5算法是一个用于加密的单向散列函数。现在许多组织用SHA-1算法来取代MD5算法,那么MD5算法现在仍可以安全地使用吗?

  • 实例解析:找回丢失的Linux系统Grub密码

    忘了root 密码还可以通过修改 Grub 进入单用户模式来重置密码, 忘了 Grub 密码怎么办呢?本文介绍了几种有效的方法。

  • 诊断和破解MD5攻击只需简单两步

    来自Rapid7的安全研究员演示了如何攻击PKI,PKI是利用MD5 Hash函数产生的签名对Web网站安全证书进行认证的基础架构。这是什么样的攻击?

  • VeriSign修复MD5漏洞

    VeriSign Inc.正在修复MD5哈希算法中发现的漏洞,而这个漏洞可以被攻击者用于创建错误的SSL证书。研究人员组成团队发现了利用MD5哈希算法中的漏洞构建流氓认证授权方法……