2012.2.25 参加了TUP第20期 互联网安全:http://news.csdn.net/a/20120227/312397.html
对其中有一点很感兴趣:用户密码加盐,简单谈下我的认识。
泄密门事件给互联网安全敲响警钟,使得原来的用户信息加密方式受到很大威胁。原来的加密方式是相同的明文经过MD5散列加密后的密文相同,当某站点受到拖库攻击后,黑客统计出使用频率最高的前n个密文(这个比例可以达到很高),反向推算出明文,那么这些用户的信息相当于已经泄露。
现在流行的做法是加盐。在用户的密码中加入其他成分,例如用户的ID、注册时间、注册邮件等用户自有且不变的信息,然后再MD5加密,这样即使用户的明文密码相同,在数据库中存储的密文也各不相同。
这种做法防止的是前面提到的统计攻击,但是预防不了针对单个用户密码明文的暴力破解,或者单个用户的密码泄露。
有些站点会均衡用户的密码分布,例如我想要注册密码123456,站点通过后台查询后提示这个密码已经超过1%的人在用,让换其他密码。这种做法是为用户好,但是潜在的风险是如果这个均衡表泄露,就相当于很大一部分用户信息的泄露。
童志明老师提到的一点很好,有些问题不是算法的问题,而是如何合理使用的问题,那些标准算法是经过严格的数学推导和科学验证,与其研究特定算法不如改进使用策略,改善用户的使用习惯。