密码管理器(Password Manager)
密码管理器通过高熵凭据生成、受保护的加密保险库、域名感知自动填充与跨端同步降低密码复用风险;主密码通常只用于派生/解锁 key material,而不是直接作为所有网站密码或普通服务端 verifier。
[!info] related notes
- 零知识: 零知识加密架构
- KDF: KDF
- Password Storage: Password Storage & Verification
- MFA: 多因素认证(MFA)
- Bitwarden: Bitwarden, Vaultwarden
密码管理器(Password Manager)
一句话定义
密码管理器把:
- credential generation;
- encrypted vault;
- autofill;
- sync;
组合成一个系统,让用户不需要记住每个网站的高熵随机密码。
它主要解决:
password reuse + human memory limit。
核心机制
Password Generator
为每个网站生成不同的高熵密码/passphrase。
这样一个网站泄漏后,不应直接危及其他网站。
Encrypted Vault
网站 credential 不以明文长期保存。
通常:
random vault key
→ encrypt items
master password
→ password KDF
→ wrapping/unlock key material
→ unlock vault key
详见 零知识加密架构。
Autofill
密码管理器根据 origin/domain context 决定是否匹配 credential。
它可以降低手工输入和复制粘贴风险。
但:
autofill 不是“天然免疫 phishing”。
仍取决于:
- domain matching;
- iframe policy;
- extension behavior;
- user confirmation。
Sync
云端/自托管 server 通常同步:
- ciphertext;
- protected keys;
- metadata。
安全型设计尽量让 server 不拥有 vault plaintext decryption key。
主密码的真正角色
主密码通常不是:
直接拿来 AES 加密所有记录。
更稳定的架构:
master password
→ password-based KDF
→ key material
→ unlock/wrap random vault key
→ vault key encrypts items
这让:
- 密码变更;
- key rotation;
- sharing;
更容易设计。
Master Password ≠ 普通网站密码
主密码保护整个 credential collection,所以应:
- unique;
- long;
- memorable/high entropy;
- 不与任何网站复用。
密码管理器存在的意义之一,就是让其他网站密码无需再由人脑记忆。
Password Manager 与 Server Login Password Storage
这是两个不同系统。
密码管理器:
password
→ KDF
→ encryption key material
普通网站:
password
→ password hashing scheme
→ stored verifier
不要因为都出现 Argon2/PBKDF2 就把两者混成同一个“密码哈希流程”。
三种形态
| 形态 | 数据位置 | 典型产品/形态 | 主要权衡 |
|---|---|---|---|
| 本地型 | 本机 encrypted vault | KeePass 类 | 云依赖低;同步需自行设计 |
| 云托管 | 厂商 server 存 ciphertext | Bitwarden/1Password 类 | 易用;依赖厂商客户端与服务 |
| 自托管 | 自己 server 存 ciphertext | Bitwarden/Vaultwarden 生态 | 控制力高;自己承担运维安全 |
自托管不自动等于更安全。
如果:
- patch 不及时;
- backup 不可靠;
- TLS/updater/host compromised;
风险反而可能更高。
MFA 与 Vault
MFA 主要保护:
account/server login。
如果 attacker 已经:
- 窃取 master password;
- 控制已解锁 client;
- 获得 decrypted vault;
MFA 的能力边界不同。
另外把 TOTP seed 和密码都存在同一个 vault,是便利与 factor independence 之间的权衡。
Recovery
恢复机制需要特别审查:
- 谁能恢复;
- 恢复后能否直接解密旧 vault;
- recovery key 存哪里;
- organization admin 拥有什么能力。
“支持 recovery”不应只是 UX feature,它会改变 trust model。
常见误区
有 Password Manager 就可以用弱主密码
错误。主密码保护高价值集中资产。
自托管一定比云托管安全
错误。你只是把运营责任转给自己。
Autofill 天然完全防 phishing
错误。它只是降低风险,需要正确 domain/origin policy。
MFA 会增强本地 vault encryption strength
不一定。MFA 主要保护认证流程,与本地 cryptographic key strength 是不同层。
学习检查
- 密码管理器主要解决人类密码使用中的哪两个系统性问题?
- 为什么 vault data 通常由随机 vault key 加密?
- master password KDF 与普通网站 password verifier 有什么差异?
- autofill 为什么能降低 phishing 风险,却不能保证完全免疫?
- 自托管为什么不自动等于更安全?
- MFA 为什么不等于提高 vault encryption key 的强度?
- recovery mechanism 为什么属于密码管理器的核心 trust boundary?