CSDN密码泄漏事件震惊IT界,包括600余万个明文的注册邮箱帐号和密码。有趣的是流传出来的密码被统计得出弱密码排行,这个问题在四年前密码强度检测机制中有次好玩的讨论,当年很多的“密码强度检测”其实是工程师一厢情愿,完全非人类思考的结果。
那么到底什么是弱密码?我们不妨从CSDN这份600万的数据样本中分析。虽然这里的用户群是IT从业者,或者里边也许有大量广告、僵尸用户的存在,但我相信还是能一定程度说明问题,毕竟CSDN不是垃圾网站。基本弱密码其实有规则可寻:
重复匹配
常见单词
自然顺序和倒序
键盘键位
我同样不赞同非要让用户设置密码N位,必须包括字母、数字,甚至字母还要区分大小写的情况。位数还好理解,不是必须字母数字还大小写交叉才能增加密码强度。
为了验证想法,再做个类似四年前的实验(6位升级到了8位):
“88888888”,弱
“12345678”,弱
“12345567”,一般
“26380445”,极佳
“designer”,弱
“songvision”,极佳
“#%^&**((”,极佳
“wau65756”,极佳
相反再从CSDN数据样本中抽出一些使用比例较高且组合诡异的密码在Google测试:
“1234567b”,弱
“1233211234567”,一般
“369258147”,弱
“1234abcd”,弱
“zxcvbnm123”,弱
“1q2w3e4r5t”,弱
“asd123456”,弱
“iloveyou”,弱
“password”,弱
“qwerasdf”,弱
如果还发现不了问题,提醒测试人员注意键盘键位,认为“1q2w3e4r5t”是中密码可以原谅,我最受不了系统告诉我“#%^&**((”是弱密码。真正的弱密码不是靠规则硬匹配算出来的,必须在用户角度结合场景思考。随手测试了网易、搜狐、新浪,发现四年前的问题除Google进步了之外,几乎所有网站还是那个熊样