如果没有两个用户使用相同的密码,那么理论上不需要对密码哈希进行加盐处理。在实践中,两个用户使用相同密码的频率如何?
两个用户使用相同密码的频率
信息安全
密码
哈希
盐
2021-08-19 06:54:55
3个回答
假设已经是错误的。即使每个密码都是唯一的,您仍然需要盐。
如果没有盐,攻击者可以只检查一次他的可能密码列表,比较每个猜测的哈希值并检查结果是否与任何存储的哈希值匹配。换句话说,攻击者每次猜测只需要一次计算。这与密码是否唯一无关。
盐可以防止这种情况发生,因为它们无法在不同的用户帐户之间重复使用计算出的哈希值。攻击者必须对每个猜测和用户进行一次计算。
但是,即使您暂时忽略这一点,只将盐视为隐藏重复密码的一种方式,您的方案仍然不现实:密码在系统中唯一是不够的。它们需要在使用相同哈希算法的所有系统中是唯一的。否则,攻击者可能会通过将您的哈希值与其他应用程序的哈希值进行比较来发现重复密码。
由于普通用户不太可能想出一个普遍唯一的密码,因此无论如何您都需要盐。
许多用户使用相同的密码的情况非常频繁。两年前,雅虎丢失了 50 万个帐户的密码。根据密码项目,只有 77% 是唯一的。这些是最常用的密码和使用它们的用户数量:
| Word | Count |
+-------------------+
| 123456 | 1667 |
| password | 780 |
| welcome | 437 |
| ninja | 333 |
| abc123 | 250 |
| 123456789 | 222 |
| 12345678 | 208 |
| sunshine | 205 |
| princess | 202 |
| qwerty | 172 |
为了他们的辩护,这些帐户中的许多可能是所有者并不真正关心的丢弃电子邮件帐户,但那里可能还有很多帐户是能够重置许多重要服务的密码的主要邮件帐户.
强制用户使用最少字符数和至少一个大写字母、小写字母、数字和特殊字符的密码策略可能会阻止许多此类琐碎密码,但如果用户足够多,您可能会发现相同的“琐碎升级” " 与某些人倾向于使用的相同的弱标准密码(例如password
成为Password1!
)。
数字因泄漏而异,但有一些总体趋势。例如,在 2013 年的 Adobe 泄密事件中,1.5% 的用户使用“123456”作为密码,44% 的帐户使用了非唯一密码。在2009 年 RockYou.com 的泄密事件中,45% 是非唯一的。
简而言之,人们并不擅长挑选原始密码。