《Empirical Analysis of Password Reuse and Modification across Online Service》论文阅读记录
摘要
- 分析了107个服务中2880万用户及其6150万密码
- 38%的用户在不同的站点重复使用完全相同的密码,而20%的用户修改了现有的密码来创建新的密码
- 密码修改模式在不同的用户群体中高度一致——密码修改模式具有很高的可预测性
- 一个新的基于训练的猜测算法——在10次尝试内可以破解1600多万个密码对(30%的修改密码和所有重复使用的密码)
介绍
- 通过分析公开的密码数据集,试图对用户常用的密码重用/修改方式进行实证测试
- 开发了一种基于训练的算法,根据目标用户泄露的密码来猜测目标用户的密码
- 重用频率
- 38%的用户曾经在两种不同的服务中重用过相同的密码、
- 21%的用户曾经修改过现有的密码来注册新的服务
- 电子邮件服务(如Gmail)的密码重用率(60.4%)明显较高
- 修改密码方式
- 根据经验测量了8个高级类别的密码转换规则
- 用户更喜欢使用简单的规则来修改密码
- 密码转换模式在不同职业和国家的用户中高度一致
- 攻击者猜测修改后的密码的可能性
- 基于训练的算法可以在10次尝试内猜出30%的修改密码(100次尝试内46.5%)
- 即使只训练了0.1%的数据,该算法也能获得相似的性能——密码修改模式的方差低
相关工作
- 用户遵循简单的转换模式来修改他们的密码,这使得他们的密码是可预测的【8、38】
- 现有的工作基于用户调查或小规模数据分析(6—7K用户)调查了密码重用和转换【8、15、35、38】
- 在线密码猜测需要攻击者在有限的尝试次数内猜测密码
- 基于拖网的方法只是猜测用户选择的最流行密码
- 大量的工作集中于离线猜【[12-14,21,22,33,36】,尝试的次数是无限的
- 常见的场景是,给定一个散列密码数据集,脱机猜测将寻求恢复明文密码
- Markov模型【18、22】
- 混乱的单词表方法【31】
- 概率上下文无关文法(PCFGs)【14、22、33、36】
- 神经网络【21】
数据集
- 数据集应该包含电子邮件地址,以便跨服务链接用户的密码
- 很难大规模恢复数据集的密码,因此排除了只包含哈希结果的数据集
- 总共获得 460874306 个明文密码与 428199842 个唯一用户(占所有密码的93%)。剩下的7%很难用离线猜测工具【2、13、31】恢复,将使用它们来测试猜测算法
- 需要出现在至少两个网站上的用户——构建了一个包含 28836775 个用户的主数据集,这些用户至少拥有两个明文密码
跨服务重用密码
- 分析用户为不同服务重用完全相同密码的频率
- 提取 37301406 密码对,若用户有两个以上的密码,则考虑所有可能的密码对(例如,4个密码意味着6个密码对)
- 34.3%的密码对相同,38%的用户(1090万)至少有一对相同的密码
- 拥有更多密码的用户是否更可能重用相同的密码?
- 密码少于5个的用户,这个假设正确
- 对于拥有更多密码的用户来说,这种趋势相反——密码越多的用户越有可能为新服务“修改“现有密码
- 包含电子邮件密码的密码对重用率(60.4%)比总体重用率更高,用户更有可能将其电子邮件密码用于其他服务
密码转换
研究过程如下图:
转换规则
大多数密码对(55.6%)可以用一个转换规则来解释
完全相同:最常见的规则是重复使用相同的密码
子字符串:一个密码是另一个密码的子字符串,此规则匹配 10%。大多数插入/删除发生在尾部,大多数插入/删除的字符串是纯数字(74%)和短字符串
大写:比率不高(1.3%),通常在密码开头大写字母(73%)
Leet:0.3%符合 leet 规则。10个变换 leet 变换覆盖了96.6%的 leet 转换密码对
倒转:<0.1% 使用此规则
顺序键:包括字母顺序键(abcd)、顺序号(1234)和键盘上的相邻键。<0.1% 使用此规则
公共子串:要求最长的公共字符串大于2个字符,并且所有的公共子字符串应该覆盖超过 50% 的密码字符。此规则匹配5.7%;本文统计了最长公共子串的典型转换方式,这里一个密码对可能会有多个转换方式
规则的组合:使用rule3-6的组合首先修改密码,然后测试rule2或rule7是否可以得到匹配结果。此规则匹配了另外2.0%数据
测试了以上所有规则后,仍有46.4%的密码对不匹配——认为46.4%的密码对是用户“从头开始创建新密码”的结果
用户人口统计的影响
- 不同的用户统计数据之间的转换模式的差异——从用户的电子邮件地址推断出他们的人口统计数据
- 职业
- 根据邮箱后缀,确定了来自教育机构的128036名用户、来自军队的7376名用户和来自政府的3384名用户
- 密码转换模式极为相似
- 国家
- 识别包含国家代码的邮箱后缀
- 来自不同国家的用户的转换模式非常相似
密码猜测
猜测算法
针对 DBCBW【8】 中存在的不足,提出了一种新的密码猜测算法
- DBCBW 通过转换同一用户的已知密码来猜测目标用户密码
- DBCBW 算法简单,但有两个缺点:第一,缺乏训练数据,该算法使用手工生成的转换规则。第二,以固定的顺序应用这些规则,对于单个密码来说可能不是最优的
学习目标:
- (1)每个规则的转换过程
- (2)一个模型来定制每个密码的规则顺序
训练:
训练过程:
对于每个规则$R_i$,我们试图学习密码转换的列表$T_i$
$$T_i=[t_{i1},t_{i2},…t_{iN_i}]
$$
其中$t_{ij}$表示此规则下的一个转换$T_i$根据每个转换在训练数据集中出现的频率进行排序
密码猜测期间,将独立测试每个转换——“子字符串”规则中,$t$的特征是< insert/delete >< position >< string >,“大写规则”中,$t$的特征是< position >< #chars >
“leet”、“顺序键”和“倒转”的转换列表$T$同理
“公共子串”:学习排序转换列表(插入、删除、替换、替换、切换顺序)
- 对于给定的密码,首先分割密码以检测潜在的公共子串
- 纯数字/字母/特殊字符的子串
- 英语单词/名称
- 训练数据中常见的子串
“规则的组合”:$T$是规则组合的排序列表,其中每个规则组合都有一个待测试的转换规则排序列表
规则排序:
- 对于给定的密码,使用贝叶斯模型来学习应该首先应用哪个规则。这视作一个多类分类问题
- 给定一个密码,训练一个模型来估计密码被每个规则转换的可能性。选择朴素贝叶斯分类器(多项式模型),该模型产生数据点(密码)属于类(规则)的概率;下图为特征
密码猜测
- 对于给定的密码对($pw_1$,$pw_2$),测量通过转换已知的$pw2$来测试猜测$pw_1$需要多少次尝试
- 使用贝叶斯模型为$pw_1$生成一个特定的规则顺序,据此有两个猜测选项:
- 顺序:一次测试一个规则。在测试了规则下的所有转换之后,转到下一个规则
- 旋转:一次测试一个规则和一个转换。在根据规则测试一个转换之后,将转到下一个规则来测试另一个转换。轮流测试每一条规则,只做一个猜测
- 顺序猜测需要更高精度的预测顺序,旋转猜测对预测误差基线的容忍度更高
基准
- 使用两个基准进行比较
- 使用固定顺序的规则来“顺序猜测”(类似于DBCBW)
- 一个流行的现成密码破解工具,开膛手约翰(JtR)【2】。使用 JtR 的“单一”模式并保持默认设置;给定一个密码,JtR 应用一系列规则来转换密码
- 使用两个基准进行比较
猜测结果
- 排除了相同的密码对和没有成对的密码
- 对50%的数据进行训练,50%数据进行测试:
- 密码猜测过程中,测试每个密码对的两个方向($pw_1$→$pw_2$和$pw_2$→$pw_1$)
- 仅在100次尝试内就猜出46.5%的密码,10次猜测已经破解了30%的密码
- JtR 基准在前10次尝试中几乎没有破解
- 贝叶斯模型优于固定排序方法
- 旋转猜测比顺序猜测要好;顺序猜测的优势在于前5次猜测;通过更频繁地切换规则,旋转猜测具有更好的总体性能
- 使用更小的训练数据
- 使用更小的数据集来训练算法(贝叶斯+旋转),以验证转换模式的低方差假设
- 测试数据不变,训练数据减少到0.1%
- 0.1%的训练曲线仍然与50%的曲线重叠
- 破解剩下的哈希密码散列
- 有6218778个密码对,其中一个密码是未破解的散列,另一个是纯文本的
- 成功地在5000次尝试中恢复了939400(15.1%)的散列
讨论
- 考虑到密码的高重用率,有必要通知用户重置密码——被破解的服务,以及具有类似密码的其他服务
- 在密码重置过程中,应确保用户不修改已泄漏的密码以创建新密码
- 更好的做法是使用密码管理器为每个服务设置唯一和复杂的密码
- 电子邮件密码的重复使用率相当高。认为应该向用户发出更具体的警告,以避免在注册服务时重用电子邮件密码
参考文献
[1] Have i been pwned. https://haveibeenpwned.com/.
[2] John the ripper. http://www.openwall.com/john/.
[3] Leet transformation. https://qntm.org/l33t.
[4] Vigilante. https://www.vigilante.pw/.
[5] BAILEY, D. V., DÜRMUTH, M., AND PAAR, C. Statistics on password re-use and adaptive strength for financial accounts. In Proc. of SCN (2014).
[6] BIRD, S., KLEIN, E., AND LOPER, E. Natural Language Processing with Python, 1st ed. O’Reilly Media, Inc., 2009.
[7] CONGER, K. Dropbox employee’s password reuse led to theft of 60m+ user credentials. TechCrunch, 2016.
[8] DAS, A., BONNEAU, J., CAESAR, M., BORISOV, N., AND WANG, X. The tangled web of password reuse. In Proc. of NDSS (2014).
[9] DE CARNÉ DE CARNAVALET, X., AND MANNAN, M. From very weak to very strong: Analyzing password-strength meters. In Proc. of NDSS (2014).
[10] FLORENCIO, D., AND HERLEY, C. A large scale study of web password habits. In Proc. of WWW (2006).
[11] INC., V. 2017 data breach investigations report, 2017.
[12] JI, S., YANG, S., HU, X., HAN, W., LI, Z., AND BEYAH, R. Zero-sum password cracking game: A large-scale empirical study on the crackability, correlation, and security of passwords. IEEE TDSC PP, 99 (2015), 1–1.
[13] JI, S., YANG, S., WANG, T., LIU, C., LEE, W.-H., AND BEYAH, R. Pars: A uniform and open-source password analysis and research system. In Proc. of ACSAC (2015).
[14] KELLEY, P. G., KOMANDURI, S., MAZUREK, M. L., SHAY, R., VIDAS, T., BAUER, L., CHRISTIN, N., CRANOR, L. F., AND LOPEZ, J. Guess again (and again and again): Measuring password strength by simulating password-cracking algorithms. In Proc. of IEEE S&P (2012).
[15] KOMANDURI, S., SHAY, R., KELLEY, P. G., MAZUREK, M. L., BAUER, L., CHRISTIN, N., CRANOR, L. F., AND EGELMAN, S. Of passwords and people: Measuring the effect of password-composition policies. In Proc. of CHI (2011).
[16] LESWING, K. Here’s why linkedin wants you to reset your password. BusinessInsider, 2016.
[17] LI, Y., WANG, H., AND SUN, K. A study of personal information in human-chosen passwords and its security implications. In Proc. of INFOCOM (2016).
[18] MA, J., YANG, W., LUO, M., AND LI, N. A study of probabilistic password models. In Proc. of IEEE S&P (2014).
[19] MANNING, C. D., RAGHAVAN, P., AND SCHÜTZE, H. Introduction to Information Retrieval. Cambridge University Press, 2008.
[20] MAZUREK, M. L., KOMANDURI, S., VIDAS, T., BAUER, L., CHRISTIN, N., CRANOR, L. F., KELLEY, P. G., SHAY, R., AND UR, B. Measuring password guessability for an entire university. In Proc. of CCS (2013).
[21] MELICHER, W., UR, B., SEGRETI, S. M., KOMANDURI, S., BAUER, L., CHRISTIN, N., AND CRANOR, L. F. Fast, lean, and accurate: Modeling password guessability using neural networks. In Proc. of USENIX Security (2016).
[22] NARAYANAN, A., AND SHMATIKOV, V. Fast dictionary attacks on passwords using time-space tradeoff. In Proc. of CCS (2005).
[23] PAGANINI, P. Reuse of login credentials put more than 20m alibaba accounts at risk. Security Affairs, 2016.
[24] PEREZ, R. Hacker publicly releases 900gb of data stolen from cellebrite. SC Magazine, 2017.
[25] PEREZ, S. 117 million linkedin emails and passwords from a 2012 hack just got posted online. TechCrunch, 2016.
[26] RAGAN, S. Mozilla’s bug tracking portal compromised, reused passwords to blame. CSO, 2015.
[27] ROBERTS, J. J. Yahoo could face legal trouble over delay in disclosing hack. Fortune, 2016.
[28] SALINGER, T. Hackers post personal data stolen from adultery website ashley madison to dark web: reports. NY DailyNews, 2015.
[29] SOLON, O. Nhs patient data made publicly available online. Wired, 2014.
[30] UR, B., KELLEY, P. G., KOMANDURI, S., LEE, J., MAASS, M., MAZUREK, M. L., PASSARO, T., SHAY, R., VIDAS, T., BAUER, L., CHRISTIN, N., AND CRANOR, L. F. How does your password measure up? the effect of strength meters on password creation. In Proc. of USENIX Security (2012).
[31] UR, B., SEGRETI, S. M., BAUER, L., CHRISTIN, N., CRANOR, L. F., KOMANDURI, S., KURILOVA, D., MAZUREK, M. L., MELICHER, W., AND SHAY, R. Measuring real-world accuracies and biases in modeling password guessability. In Proc. of USENIX Security (2015).
[32] UR, B., SEGRETI, S. M., BAUER, L., CHRISTIN, N., CRANOR, L. F., KOMANDURI, S., KURILOVA, D., MAZUREK, M. L., MELICHER, W., AND SHAY, R. Measuring real-world accuracies and biases in modeling password guessability. In Proc. of USENIX Security (2015).
[33] VERAS, R., COLLINS, C., AND THORPE, J. On semantic patterns of passwords and their security impact. In Proc. of NDSS (2014).
[34] WANG, D., ZHANG, Z., WANG, P., YAN, J., AND HUANG, X. Targeted online password guessing: An underestimated threat. In Proc. of CCS (2016).
[35] WASH, R., RADER, E., BERMAN, R., AND WELLMER, Z. Understanding password choices: How frequently entered passwords are re-used across websites. In Proc. of SOUPS (2016).
[36] WEIR, M., AGGARWAL, S., MEDEIROS, B. D., AND GLODEK, B. Password cracking using probabilistic context-free grammars. In Proc. of IEEE S&P (2009).
[37] WONG, J. I. Stolen dropbox passwords are circulating online. here’s how to check if your account’s compromised. Quartz, 2016.
[38] ZHANG, Y., MONROSE, F., AND REITER, M. K. The security of modern password expiration: An algorithmic framework and empirical analysis. In Proc. of CCS (2010).
[39] ZHANG-KENNEDY, L., CHIASSON, S., AND VAN OORSCHOT, P. Revisiting password rules: facilitating human management of passwords. In Proc. of eCrime (2016).