密码强度 - 破解所需时间的现实

密码的「强度」是通过衡量其能抵抗攻击者尝试所有组合的暴力破解(Brute Force)攻击多长时间来衡量的。2024 年的 GPU(NVIDIA RTX 4090)对 MD5 哈希每秒可进行约 1640 亿次尝试。

密码示例 字符类型 组合数 破解时间(GPU)
password 小写字母 8 位 268 ≈ 2090 亿 约 1 秒
P@ssw0rd 混合 8 位 958 ≈ 6.6 万亿 约 40 秒
Tr0ub4dor&3 混合 11 位 9511 ≈ 5.7 × 1016 约 1 年
correct horse battery staple 4 词密码短语 77764 ≈ 3.6 万亿 约 22 秒(字典攻击)
6 词密码短语 Diceware 6 词 77766 ≈ 2.2 × 1016 约 4000 年

从这个表可以看出,字符数和字符类型的增加会以指数级提升强度。但人类能记住的复杂度有限,因此优先长度的策略是现代最佳实践。

密码短语方式 - 易记且难破解的最优解

NIST(美国国家标准与技术研究院)在 2017 年的 SP 800-63B 中撤回了传统的「混合大小写、数字、符号」规则,转而推荐长密码短语

Diceware 方式的步骤

  1. 掷骰子 5 次,得到一个 5 位数字(例:4-1-6-2-3)
  2. 从 Diceware 词表(7776 个词)中查找对应的单词
  3. 重复 6 次,创建 6 个单词的密码短语
  4. 在单词之间加入空格或任意分隔符

6 词 Diceware 密码短语的熵约为 77 位,与随机 12 位英文数字符号密码(约 79 位)强度几乎相当,但更容易记忆。

创建密码短语的技巧

  • 至少使用 6 个单词。4 个单词对字典攻击来说不够
  • 单词选择必须完全随机。自己「随机」选择会产生偏差
  • 不要使用歌词、名言、书中的短语。它们已包含在攻击者的列表中
  • 故意拼错其中一个单词可以进一步提高对字典攻击的抵抗力

绝对要避免的密码模式

每年公布的「最常用密码」排行榜前几名多年来从未改变。以下模式包含在攻击者最先尝试的列表中:

  • 字典中的原始单词:password, dragon, monkey, shadow
  • 键盘排列:qwerty, 1234567890, zxcvbnm
  • 个人信息:生日、电话号码、宠物名字、偶像名字
  • 简单替换:p@ssw0rd, l3tme1n(攻击工具默认处理 leet speak)
  • 密码重复使用:一个服务泄露后,使用相同密码的所有服务都面临风险

2023 年的数据泄露统计显示,泄露密码中约 59% 为 8 位以下,其中 73% 可在 1 小时内通过字典攻击破解。

密码重复使用为何危险

攻击者会将泄露的邮箱地址和密码组合自动尝试登录其他服务,这就是「撞库攻击」。2024 年每天观测到约 1 亿次撞库攻击。也请确认如何检查自己的账户是否泄露

密码管理器的活用

为每个服务记住不同的强密码是不现实的。密码管理器是从根本上解决这个问题的工具。

密码管理器的原理

用一个主密码访问加密数据库,自动填入各服务的密码。数据库用 AES-256 加密,由从主密码通过 PBKDF2 或 Argon2 派生的密钥保护。

类型 优点 缺点
云端型(1Password, Bitwarden) 跨设备同步、自动填充、共享功能 需要信任云端
本地型(KeePass) 完全离线、开源 同步需手动、界面较旧
浏览器内置(Chrome, Safari) 无需额外安装、与操作系统集成 依赖浏览器、功能有限

无论选择哪种类型,能够完全消除密码重复使用这一点,都比不使用要安全得多。

多因素认证(MFA)的组合使用

无论密码多么强大,一旦被钓鱼窃取就毫无用处。在密码之外结合「拥有的东西」(智能手机)或「自身特征」(生物识别)的多因素认证,是现代账户保护的标准。

MFA 的类型与强度

方式 原理 强度
短信验证码 向手机号发送 6 位验证码 低(易受 SIM 卡交换攻击)
TOTP 应用(Google Authenticator) 每 30 秒变化的 6 位验证码 中(对钓鱼仍有脆弱性)
推送通知(Duo, Microsoft) 向手机发送批准请求 中(存在 MFA 疲劳攻击风险)
FIDO2/WebAuthn(YubiKey, 通行密钥) 用公钥加密验证域名 高(具有抗钓鱼能力)

对于特别重要的账户(邮箱、银行、云存储),强烈推荐设置 FIDO2 兼容的安全密钥或通行密钥。结合端到端加密可以同时保护通信路径和认证。

密码的未来 - 通行密钥与无密码认证

Apple、Google、Microsoft 于 2022 年联合宣布推进的「通行密钥」是一种使密码本身变得不必要的技术。基于 FIDO2/WebAuthn 标准,使用存储在设备上的私钥进行认证,从根本上消除了密码泄露的风险。

然而,通行密钥的普及还需要时间。截至 2025 年,支持通行密钥的服务仅限于部分主要网站,许多服务仍然需要密码。目前以下策略是最佳选择:

  1. 用密码管理器为所有服务设置唯一的强密码
  2. 在支持的服务上启用通行密钥
  3. 不支持通行密钥的服务使用 TOTP 或安全密钥设置 MFA
  4. 主密码使用 6 词以上的 Diceware 密码短语

想系统学习密码安全的读者,可以参考密码管理专业书籍。在 IP 确认酱确认自己的连接信息,提高安全意识吧。

本文相关术语

加密 将数据转换为第三方无法读取的格式的技术。密码管理器使用 AES-256 加密保护数据库。 钓鱼 伪装成正规服务骗取密码和个人信息的攻击手法。即使密码再强也对钓鱼无效,因此必须配合 MFA 使用。 多因素认证(MFA) 在密码之外要求额外认证因素的安全方法。包括短信验证码、TOTP 应用、FIDO2 安全密钥等方式。