欢迎光临

木子屋

标题: 浅谈HASH算法与CSDN密码泄漏事件

作者: dnawo

日期: 2011-12-22 01:50 PM

分类: 网络文摘

内容: 在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/,5ltL4pze;avf9#kgmET^ SALT2=1qYIs,vOSfn%UHhm5+3TX:#iety0d 计算HASH SHA-512(SALT1+用户名+SALT2+密码) 那么社会工程学和目前的暴力运算是无法解决的；
3. 不要以为联合使用HASH算法会安全。例如MD5+SHA1，或者SHA1(MD5)嵌套，有文献证实都是无效的；
最后希望程序员们能多看文献，跟上国际安全标准，尽可能避免安全事件的发生的影响。

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.051 ms

返回

标题: 浅谈HASH算法与CSDN密码泄漏事件

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.051 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.082 ms

返回