由于sql注入、跨站脚本攻击、上传漏洞、以及一些网管的粗心大意等原因,造成不少论坛被攻破,数据库被盗,这对用户的隐私和个人信息安全造成了很坏的影响。尤其是很多用户对多种网络服务使用同一密码,如果论坛密码被窃,将威胁到用户的邮箱,即时通讯,网银等一系列的安全。以至于出现了“一个密码引发的血案”。
现在常用论坛都是将用户密码用MD5等hash函数hash后,再存放在数据库中。这种做法在一定程度上提高了安全性。万一不法分子得到数据库后,只拿到用户密码的HASH值。但一般用户在设置密码时,为了怕忘记,大多数采用姓名拼音,生日,常用单词,数字串单独或组合使用的方式。所以,不法分子只需将这些数据及其hash值存放在数据库中,再通过查询hash值的方式,就能破解很多用户的密码。如果这个字典数据库足够大,并且字典比较符合人们的设置习惯的话,那威力是惊人。以至于现在网上出现了MD5 hash串查询的网站,号称用4T硬盘共存储md5记录4574亿条,能破译动网论坛83%的密码。
那么如何防范这种字典攻击和网上那种MD5 hash串查询攻击呢。我在《应用密码学》这本书上找到了答案。salt是一随机字符串,它与口令连接在一起,再用单向函数对其运算,然后将salt值各单向函数运算的结果存入数据库中。如果可能的salt值的数目足够大的话,它实际上就消除了对常用口令采用的字典式攻击,因为不法份子不可能在数据库中存储那么多salt和用户密码组合后的HASH值。当然,他们仍可以对单个用户的密码进行暴破。所以用户最好不要在不同的地方使用相同的口令。但利用salt后的安全性还是有所示增加的。
现在常用论坛都是将用户密码用MD5等hash函数hash后,再存放在数据库中。这种做法在一定程度上提高了安全性。万一不法分子得到数据库后,只拿到用户密码的HASH值。但一般用户在设置密码时,为了怕忘记,大多数采用姓名拼音,生日,常用单词,数字串单独或组合使用的方式。所以,不法分子只需将这些数据及其hash值存放在数据库中,再通过查询hash值的方式,就能破解很多用户的密码。如果这个字典数据库足够大,并且字典比较符合人们的设置习惯的话,那威力是惊人。以至于现在网上出现了MD5 hash串查询的网站,号称用4T硬盘共存储md5记录4574亿条,能破译动网论坛83%的密码。
那么如何防范这种字典攻击和网上那种MD5 hash串查询攻击呢。我在《应用密码学》这本书上找到了答案。salt是一随机字符串,它与口令连接在一起,再用单向函数对其运算,然后将salt值各单向函数运算的结果存入数据库中。如果可能的salt值的数目足够大的话,它实际上就消除了对常用口令采用的字典式攻击,因为不法份子不可能在数据库中存储那么多salt和用户密码组合后的HASH值。当然,他们仍可以对单个用户的密码进行暴破。所以用户最好不要在不同的地方使用相同的口令。但利用salt后的安全性还是有所示增加的。