口令数据分析
- 0x00 数据来源
- 0x01 分析流程
- 1. 口令长度规律分析
- 2. 口令结构分析
- 3. 日期口令格式分析
- 4. 键盘口令分析
- 5. 英文单词分析
- 5.1 字典分析法
- 5.2 自然语言处理分析
- 0x02 参考文献
0x00 数据来源
在某节课上老师给出 300w 某国内知名网站泄露的口令集,以及 60w 某国外知名网站泄露的口令集,要求对其进行数据分析,并生成一个用于暴力破解的弱口令集。以下用数据集A和数据集B分别指代国内网站的口令集和国外的口令集。
0x01 分析流程
1. 口令长度规律分析
确定用户偏好的口令长度有利于生成更常用的口令,这里对数据集 A 和 B 分别统计了使用某种长度口令的人数,并绘制了对比的折线图。
可以看出使用长度为 8 的口令的用户在两个数据集中都是最多的,且所有的口令长度几乎都集中于 6 - 12 区间。
2. 口令结构分析
口令结构即用户组合不同元素的方式。一般组成口令的元素可以分为数字(Digit)、字母(Letter)、特殊字符(Signal) 三种类型。 因此,用D、L、S代表字符类型,用数字代表连续的字符个数,则一个口令可以用如下的形式表示:
woaini777 -> L6D3
为了找出用户最常用的口令结构,对数据集A和B中的所有口令进行处理,转换成如上形式,并统计出出现次数最多的口令结构。
上图是数据集A的结果,可以看出纯字母/字符/数字的口令,也就是广义上的弱口令占据了口令集的百分之五十多。其中 D8、D9、L8 占据 1、2、3名,数量为1381247,718225,312749,这三者之和为2412221, 占总数量6428631的37.5%。数据集A是国内的知名网站,可以看出国内网民更加偏向于用数字作为密码。
上图为数据集B结果。数据集B 结果中L6、L7、L8占据1、2、3名,数量为42234、34285、30250,三者占比达到了总量 453490 条的 23.5%。数据集B 是国际网站的口令集,可以看出国外网民更偏向于用字母作为密码。 下面还输出了两个数据集top20的口令结构及其对应的top10的口令:
3. 日期口令格式分析
日期因其格式简便性和容易记忆的特点,成为用户口令的首选组成元素,因此对用户常用的日期格式进行分析。 日期密码可能出现年份 (yyyy),年份-月份 (yyyymm),年月日 (yyyymmdd/mmddyyyy/ddmmyyyy/yymmdd/mmddyy/ddmmyy)以及 月日 (mmdd) 这四种主要形式。 日期限定在正常日期 (年份取近现代史1700-2100,月取01-12,日期取01-31) 内,然后对所有口令进行正则判断,结果如下。 下图是数据集A的结果。不出意外,yyyy 和 yyyymmdd 以及 yymmdd 这些在日常生活中常用的日期格式占据了绝大部分。且所有数字长度大于4的口令数量为5038597,日期密码占2611610,占总口令数量6428631的 40.6% 。
下图是数据集B的结果,与国内网站略有不同的是,mmddyy这种日期倒写的方式是国外书写日期的习惯,这也与事实相符。
4. 键盘口令分析
键盘口令是指很多用户习惯用键盘上连在一起的几个字符作为口令以方便记忆。常见的比如 qwerty 、 1qaz2wsx 、 zxcv 等等。因此对口令集中存在键盘口令格式的口令进行分析,结果如下: 下图为数据集A结果,占比最多的还是数字键盘口令,12345678等。其次是1qaz2wsx等等。
下图为数据集B的结果,与数据集A也比较相似。
5. 英文单词分析
英文单词也是常用的口令组成元素,以下使用两种方法对英文单词的出现频率进行分析。
5.1 字典分析法
使用一个含有20000个常见英文单词的词典,统计这20000个常见的英文单词在口令集中出现的次数,分别计算出现的概率并且进行排序,得到最常出现的英文单词。 在英文字典中,除掉了单字母,但是从结果可以看出来,双字母的组合出现频率仍然是最高的,因此在后期的优化中,可以忽略一部分无意义的双字母组合,更多地关注有意义的英文单词。下图分别为数据集A和数据集B的结果:
5.2 自然语言处理分析
利用nlp技术分析口令集,获得口令的语法习惯,甚至深层语义,如口令“iloveyou”的语法为“名词-动词-名词”。 以下只统计了数据集B的结果:
0x02 参考文献
- Bornmann L, Leydesdorff L. Skewness of citation impact data and covariates of citation distributions: A large-scale empirical analysis based on Web of Science data[J]. Journal of Informetrics, 2016, 11(1):164-175.
- Ur B, Segreti S M, Bauer L, et al. Measuring real-world accuracies and biases in modeling password guessability[C]// Usenix Conference on Security Symposium. USENIX Association, 2015:463-481.
- Melicher W, Ur B, Segreti S M, et al. Fast, Lean, and Accurate: Modeling Password Guessability Using Neural Networks[J]. Journal of Networks, 2013, 8(6).
- Golla M, Dürmuth M. On the Accuracy of Password Strength Meters[C]//Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security. ACM, 2018: 1567-1582.
- R. Veras, C. Collins, and J. Thorpe. On the Semantic Patterns of Passwords and their Security Impact.[[C]]//Proceedings of the 2014 Network and Distributed System Security Symposium (NDSS), 2014.
以上整理并转自我的个人 GitHub 账号,如需转载请注明出处,谢谢 !