← Back to Blog

为什么攻击者喜欢人为创建的密码

2025-12-23

本文借鉴了公开的网络安全研究、行业报告以及广泛认可的安全实践。凡涉及个人经验之处,均已明确说明。

一个大多数人遗忘但本不该遗忘的数据泄露事件

早在 2012 年,LinkedIn 遭遇了当时历史上最大规模的数据泄露事件之一。后来的分析显示,约有 1.67 亿条账户记录被曝光,其中约 1.17 亿条包含了电子邮件地址和密码哈希值。

当安全团队检查这些被破解的密码时,结果令人痛心地熟悉。password1linkedin123 以及类似的低强度选择数以百万计地出现。更有趣——也更令人担忧——的是,即使是那些看起来很聪明的密码,如 L!nk3d1n2020,也很快就被攻破了。为什么?因为它们遵循了人类几乎总是使用的模式。

我在网络安全渗透测试领域工作了超过十五年。我的工作是(合法地)入侵系统,使用与真正的攻击者相同的方法。对我来说,密码不是一个理论话题;它们是我每天在实践中看到失败的东西。

密码实际上是如何被攻击的

要理解为什么有些密码能幸存而其他的不能,你需要从攻击者的角度来看待问题。攻击者不会坐在那里一个接一个地猜测密码。他们将一切自动化。

  1. 字典攻击 (Dictionary Attacks): 这些攻击依赖于从多年的数据泄露中收集的大量真实密码、单词、短语和变体。这些字典包含数十亿个条目,并且还在不断增长。
  2. 基于规则的攻击 (Rule-Based Attacks): 这些攻击对人类的创造力具有毁灭性的打击效果。工具会自动应用常见的习惯:将 "o" 替换为 "0",在末尾添加 "123" 或 "!",首字母大写,插入年份等等。大多数“聪明”的密码都倒在这一步。
  3. 暴力破解 (Brute Force): 尝试每一种可能的组合。这听起来很可怕,但对于使用现代哈希算法存储的长且真正随机的密码,暴力破解很快就会变得不切实际,仅仅是因为它需要的时间太长了。

自创密码的问题

我们喜欢自己发明的密码,因为它们感觉很个人化且容易记忆。不幸的是,研究——以及经验——表明它们也是高度可预测的。

  • 模式重复: 包括卡内基梅隆大学在内的大规模研究一致显示出相同的结构:一个单词或名字,开头大写,末尾有数字或符号。内容会变,但形状保持不变。一旦攻击者建立了这种结构模型,破解速度就会大幅提高。
  • 长度触顶: 大多数用户创建的密码长度在 8 到 10 个字符之间。不是因为人们不知道越长越安全,而是因为记忆力促使我们要使用更短的字符串。
  • 个人信息泄露: 生日、宠物名字、纪念日——人们经常使用它们。而在社交媒体时代,攻击者甚至不需要猜测。

为什么随机密码是完全不同的游戏

安全随机密码生成器 创建的密码——类似于 r8$NpL#2qW9——不仅仅是“更复杂”。它是根本不同的。

每一个字符都是独立选择的。没有单词,没有替换,没有人类逻辑。仅仅这一事实就消除了攻击者最强大的工具:字典和规则。

从数字角度来看:

  • 一个仅包含小写字母的 8 字符密码大约有 26⁸ 种可能性(约 2090 亿)。
  • 加上大写字母、数字和符号,可能性瞬间变为约 95⁸(约 6 千万亿)。
  • 将其增加到 12 个字符,空间将变得天文数字般庞大。

但真正的优势不仅仅是规模——随机密码迫使攻击者使用暴力破解,这很慢、昂贵,而且通常不值得花费精力。

实践中破解这些密码是什么样子的

从渗透测试人员的角度来看,这种差异是鲜明的:

| 密码类型 | 示例 | 攻击者方法 | 破解时间 | | :--- | :--- | :--- | :--- | | 自创 | Tiger2021! | 字典和基于规则 | 分钟到小时 | | 随机生成 | r8$NpL#2qW9 | 纯暴力破解 | 数年 / 数世纪 |

如果密码使用了像 bcrypt 或 Argon2 这样的算法进行了正确的哈希处理,针对随机字符串的暴力破解意味着攻击在时间上不可行。在大多数现实案例中,攻击者只会通过。

真正的权衡:人类 vs. 随机性

随机密码最大的弱点不是安全性——而是可用性。人类非常不擅长记忆无意义的字符串。这就是密码安全的核心矛盾:

  • 人类容易记住的密码往往很弱。
  • 强大的密码往往难以记忆。

现代安全实践的存在就是为了弥补这一差距。

今天真正有效的方法

基于行业共识和现实世界的经验:

  1. 使用密码管理器:Bitwarden1Password 这样的工具让你只需要依赖一个强大的主密码,而其他所有密码都是长、随机且唯一的。这被广泛认为是大多数人的最佳选择。
  2. 如果你必须记忆,使用长度: 一串不相关的单词(例如 coffee-zebra-battery-stapler)通常比短的、充满符号的密码更难被攻击——也更容易记忆。
  3. 永远不要重复使用密码: 一旦一个网站被入侵,重复使用会将其变成多米诺骨牌效应。
  4. 开启多因素认证 (MFA): 电子邮件、银行、云账户——始终使用多因素认证。
  5. 检查泄露风险:Have I Been Pwned 这样的服务允许你查看你的电子邮件是否出现在已知的泄露数据集中。

总结

这不是关于人类和机器谁能制造“更好”密码的哲学辩论。这是关于风险管理。

计算机擅长生成随机性。人类擅长保护单个秘密并响应像 MFA 这样的提示。最安全的方法是让各自做它们最擅长的事情。

准备好升级你的安全性了吗?立即生成一个强大的离线密码 来保护你的账户。