本周,互联网上的一大新闻就是:多个知名网站被脱库,上千万用户资料侧漏。对俺这种长期在安全圈混的人,自然最关心泄漏出来的用户口令啦。这可是活生生的第一手材料啊。今天正好周末,俺就抽空分析了一下 CSDN 和 RenRen 的用户密码。毕竟这两个网站名气大,CSDN 可以代表技术人员的圈子,人人网的用户据说高校学生居多。考虑到俺博客的读者不少,或许有些人热衷于网络安全,没准也对密码分析感兴趣,干脆就把分析结果分享到博客上。 对于 CSDN 被泄露的600多万用户数据,俺多罗嗦几句: 据 CSDN 官方的说法,这仅仅是2009年的数据。不过,据圈内的小道消息,其实黑客拿到了所有用户数据,这次只是公布了其中一部分。俺查了一下公布的数据,里面没有俺的帐号——可是俺 program_think 这个帐号在2009年1月份就在 CSDN 注册了。另外,里面也没有刘未鹏同学的帐号(pongba)——他更加是 CSDN 的老用户了。而有些网友是2010年注册的帐号,却出现在公布的数据中。所以,CSDN 官方的说法很可疑。 CSDN 的样本,总共是3列数据,分别是用户名、口令、邮箱。格式比较严谨,所有数据都可用。数据量大约是642万8千。 RenRen 的样本,总共2列,分别是用户名(同时也是邮箱)和口令。此样本的格式不太严谨。俺去掉了大约3万无效数据(比如用户名不是合法的邮箱地址),还剩大约473万5千。
长度范围
CSDN (%)
RenRen (%)
[1,6]
1.92
31.89
[7,12]
90.80
65.86
[13,18]
7.17
1.70
[19, ]
0.21
0.55
长度
CSDN (%)
RenRen (%)
5
0.51
3.10
6
1.29
25.28
7
0.26
18.11
8
36.38
20.17
9
24.14
12.01
10
14.48
7.34
11
9.78
6.79
点评: (从平均水平看)CSDN用户的密码长度显然大于人人网用户。
类型
CSDN (%)
RenRen (%)
纯数字
45.01
52.97
纯小写字母
11.64
19.96
点评: 纯数字的口令,比例太高,不是好现象。 对于同样长度的口令,纯小写字母相比纯数字,其组合的可能性更多,更难暴力破解。
CSDN (%)
RenRen (%)
手机号
2.18(约14万)
2.91(约13万8)
点评: 作为口令的手机号,多半就是本人的手机号。 手机的稳定性远高于电子邮箱。因此,这个信息的价值还是挺大滴。如果有人想搜罗手机号的话,这下可有福了。
日期格式
CSDN (%)
RenRen (%)
YYMMDD
0.14
3.59
YYYYMMDD
5.92(38万)
2.67
MMDDYYYY
0.06
0.11
YYYY-MM-DD
小于0.01
小于0.01
YYYY.MM.DD
小于0.01
小于0.01
YYYY/MM/DD
小于0.01
0
点评: 用生日做口令,表面上看,位数还挺多(少的有6位,多的有8位,加分隔符的话甚至有10位)。 但其实这种口令很弱。因为可能的生日个数是很有限的——生日通常分布在1940年以来——大约是365×70=25550。即便算上不同的格式,也就十多万种。如果是程序来穷举,用不了一柱香的功夫。
类型
CSDN (%)
RenRen (%)
直接拿用户名做密码
4.55(约29万2)
0.04
密码包含用户名
0.25
小于0.01
密码是用户名的一部分
2.04(约13万1)
1.57
点评: 很奇怪,CSDN 居然有这么多人拿用户名作口令,比例远远高于人人网用户。这有点不合逻辑啊。 本文发出后,不少 CSDN 的用户留言,解释此原因:因为网友经常需要上 CSDN 下载东西(比如电子书)。但是 CSDN 不提供匿名下载。所以就临时注册一个用户。为了省事,口令就设置成跟用户名一样了。 俺拿四级词汇作为字典,测试了一番。比例如下:
CSDN (%)
RenRen (%)
0.11
0.19
点评: 两个网站的比例都不算高,表扬一下。 顺便说一下,在作密码的单词里,排名第一的是 password。这个习惯跟老外是一致的。 前面给出的按类型统计中,纯数字的比例是很高的。纯数字密码,常见的组合有如下。
类型
CSDN (%)
RenRen (%)
123456789
3.91(约25万1)
0.72(约3万4)
12345678
3.31(约21万2)
0.25(约1万2)
1234567
小于0.01
0.11(约5千)
123456
0.03(约2千)
3.73(约17万7)
12345
小于0.01
0.31(约1万5)
全是0
0.65(约4万2)
0.61(约2万9)
全是1
1.41(约9万1)
0.91(约4万3)
全是2
0.04
0.05
全是3
0.03
0.04
全是4
0.01
0.02
全是5
0.03
0.05
全是6
0.09(约6千)
0.11(约5千)
全是7
0.03
0.05
全是8
0.25(约1万6)
0.13(约6千)
全是9
0.06
0.05
点评: 上述这些组合,都属于弱爆了的口令——极易被入侵者攻破。 使用这些组合的用户比例还挺高。这下,口令攻击者可就爽了。 另外,全8的口令明显要高一些,而全4的比例明显低。貌似迷信的因素也体现到口令设置了。 CSDN 上有不少知名博客(也叫专家博客)。本来,俺以为:既然号称专家,那安全意识应该不会太差吧。所以,俺今天抱着偷窥明星隐私的丑恶心态,查了几个名人的密码。 结果,看下来很令人失望啊——很多知名人士的密码,貌似也很弱啊!为了避免让某些人难堪,俺就不举例说明了。 说到专家博客,顺便插一句:俺也曾经也是 CSDN 的专家博客之一。今年8月份,CSDN 要搞专家实名制。但是俺死活不肯公开真实身份。所以,俺的专家资格已经被取消啦 :-(
经过这次脱库事件,希望诸位能意识到密码的重要性。强烈建议看一下俺去年写的帖子——《如何防止黑客入侵[2] - 如何构造安全的口令/密码》。
还有,无论如何也不要在多个重要帐号共用相同或相似的密码。