记住密码不是人类的工作
安全专家说「每个服务都要使用不同的、长而复杂的密码」。然而,普通互联网用户使用的服务超过 100 个。为每个服务记住不同的 16 位以上随机密码,对人脑来说是不可能的。如果重复使用同一密码,一旦某个服务泄露了认证信息,就会成为撞库攻击的目标,攻击者可以用泄露的凭据登录其他服务。
密码管理器是用技术解决这个「记不住」问题的工具。理解其工作原理后,就能明白为什么安全专家强烈推荐使用密码管理器。
密码管理器的基本原理
密码管理器的核心是一个简单的设计:「用一个主密码加密保管所有密码」。
- 输入主密码:用户只需记住这一个密码
- 密钥派生:从主密码生成加密密钥(使用 PBKDF2、Argon2 等算法)
- 加密存储:用 AES-256 加密各服务的密码,存入保管库(Vault)
- 需要时解密:登录时用主密码解密,自动填入对应的密码
重要的是,即使是密码管理器的服务提供商也无法读取你的密码。主密码不会发送到服务器,加密和解密全部在你的设备上完成。这被称为「零知识架构」。
密钥派生 - 将主密码转换为加密密钥
直接将主密码「MyP@ssw0rd」用作加密密钥是危险的,因为短密码容易被猜测。
密钥派生函数(KDF)通过将主密码经过刻意「计算成本高昂的处理」,使暴力破解变得不切实际。
- PBKDF2:在密码中加入盐值(随机值),重复哈希计算数十万次。1Password 和 LastPass 采用此方案
- Argon2:2015 年密码哈希竞赛的冠军算法。不仅消耗大量 CPU,还消耗大量内存,因此对使用 GPU 的并行攻击也有很强的抵抗力。Bitwarden 采用此方案
使用 PBKDF2 设置 60 万次迭代时,验证一个主密码候选需要约 0.5 秒。要尝试 8 位字母数字密码的所有组合(约 2800 亿种),一台 PC 需要约 4400 年。
云同步型 vs 本地存储型
| 特性 | 云同步型 | 本地存储型 |
|---|---|---|
| 代表服务 | 1Password、Bitwarden、LastPass | KeePass、KeePassXC |
| 多设备同步 | 自动同步 | 需要手动同步文件 |
| 服务器被入侵风险 | 加密数据可能泄露 | 没有服务器,不存在此风险 |
| 便利性 | 高(浏览器扩展、移动应用) | 设置需要技术知识 |
即使云同步型的服务器被入侵,由于零知识架构,攻击者能获取的只是加密后的数据。只要主密码足够强大,破解加密在现实中是不可能的。
密码管理器的弱点
它并非万能。在理解以下风险的基础上使用很重要。
- 主密码泄露:如果主密码被知晓,所有密码都将面临风险。应配合双因素认证增加防御层
- 设备感染恶意软件:键盘记录器可能记录主密码的输入。设备安全是前提条件
- 服务停止:如果云服务停止运营,需要事先确认数据导出方式
- 单点故障:如果密码管理器本身无法访问,将无法登录所有服务。紧急访问手段和恢复密钥的保管是必须的
如何开始使用密码管理器
入门门槛很低,大多数服务都提供免费方案。建议先从最重要的账户(邮箱、银行、社交媒体)开始注册密码,然后逐步迁移。在管理密码的同时,也建议在 IP 确认酱确认自己的连接 IP 地址和安全评分,了解当前网络环境的安全性。
想结合密码安全基础知识系统学习密码管理实践的读者,可以参考信息安全实践书籍。