如何正确保护网站用户密码
- 作者: Steve Mushero
- 2012年07月25日
- WEB安全, 数据安全
最近的新闻报道了几起黑客高调攻击密码系统的事件,包括中国的一号店和美国的LinkedIn,这两次攻击都造成了用户密码的泄漏。太不幸了,应该避免这样的事情发生,因为它降低了整体消费者的信心,特别是在互联网和电子商务领域。
在云络公司,我们为自身超强的安全策略和帮助我们的客户不断提高他们的系统安全而自豪 — — 我们还为您提供免费的系统安全审核,来看看您做的怎么样。
一号店是最愚蠢的,似乎他们在系统中采用了纯文本格式来保存密码。这是种低劣的做法,不管什么原因都不应该被使用。很明显,对数据库具有访问权限的任何人,包括黑客、程序员和许多其他人,可以看到、使用和出售密码。另外,很多人在许多系统中使用相同的密码,所以如果有人知道用户小明在一个系统使用的一个密码,他就可以尝试小明在其他所有系统中使用的密码,包括企业、代码、金融、健康和其他敏感的系统。
LinkedIn则好得多,使用了MD5或者SHA-1加密的哈希密码,这是很好很标准的密码保护方法,但是这在今天已经不够好了。几十年来的已知原因,有两种方法可以用来破解这种密码。第一种,由于相同的密码将会得到相同的哈希值,所以如果我的密码哈希值和你一样,都是"34AH8CD",我就会知道我们的密码是相同的,我就可以用我的密码登录到您的帐户。第二种是常见的哈希值表,又叫做彩虹表,可以预先计算a、b、test等几百万常见密码的MD5哈希值,然后编成一张表。黑客在得到加密的用户密码哈希表后,需要做的所有事情就是比对密码表与彩虹表的结果,这种方法很常见 —— 也是LinkedIn密码泄漏事件中使用的方法之一。
如何防止这种情况呢?一言以蔽之,再给密码加点料。不是真的加料,而是在哈希算法之前为密码添加一部分额外的随机数据。这种方式可以使得两个相同的密码会有不同的哈希值。Unix的密码机制早已实现了这种功能,总是为密码附加12位随机数,但是现在附加48位和128位也是常见的,并且往往结合了附加随机数和多次哈希。
所有新的和升级后的系统都应使用附加随机数和哈希加密的方法来创建安全的密码,以保护他们的用户、系统和数据。并且,您也应该为移动电话号码、电子邮件和交易历史记录(一号店的这些数据也全部被盗了) 等非密码数据做好保护工作,譬如限制服务器的访问权限,清除从数据库导出的用于开发和测试的所有此类数据,等等。另外,切记在数据离开服务器前加密您的备份。
第一时间获取面向IT决策者的独家深度资讯,敬请关注IT经理网微信号:ctociocom
除非注明,本站文章均为原创或编译,未经许可严禁转载。
相关文章: