密码强度 - 破解所需时间的现实
密码的「强度」是通过衡量其能抵抗攻击者尝试所有组合的暴力破解(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 方式的步骤
- 掷骰子 5 次,得到一个 5 位数字(例:4-1-6-2-3)
- 从 Diceware 词表(7776 个词)中查找对应的单词
- 重复 6 次,创建 6 个单词的密码短语
- 在单词之间加入空格或任意分隔符
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 年,支持通行密钥的服务仅限于部分主要网站,许多服务仍然需要密码。目前以下策略是最佳选择:
- 用密码管理器为所有服务设置唯一的强密码
- 在支持的服务上启用通行密钥
- 不支持通行密钥的服务使用 TOTP 或安全密钥设置 MFA
- 主密码使用 6 词以上的 Diceware 密码短语
想系统学习密码安全的读者,可以参考密码管理专业书籍。在 IP 确认酱确认自己的连接信息,提高安全意识吧。