2026年2月,苏黎世联邦理工学院(ETH Zurich)的应用密码学研究组在USENIX Security会议上发表了一篇论文,标题措辞犀利:“Zero Knowledge (About) Encryption”——关于加密的零知识。这篇论文分析了三大云密码管理器,发现了25种攻击手法,其中大多数可以恢复存储的密码。
这不是第一起密码管理器安全事件,也不会是最后一起。但它揭示了一个更深层次的问题:用户被承诺的"零知识加密",在实际威胁模型下可能形同虚设。
一个被过度承诺的概念
打开任何一家密码管理器的官网,你都会看到类似的宣传语:“零知识架构”、“端到端加密”、“即使我们也无法访问你的密码”。这些承诺听起来无懈可击——数据在本地加密,服务器只存储密文,攻击者即使攻破服务器也无济于事。
但这个模型有一个关键假设:服务器是诚实的。
密码管理器厂商承诺的是"诚实但好奇"(honest-but-curious)服务器模型下的安全性——服务器会正确执行协议,只是可能会偷看数据。然而,ETH Zurich的研究团队质疑的正是这个假设:如果服务器被攻陷后开始恶意行为呢?
这正是LastPass 2022年安全事件的现实场景。
LastPass事件:迭代次数的致命意义
2022年8月,攻击者入侵了LastPass开发者的笔记本电脑,窃取了14个源代码仓库。四个月后,更严重的消息传来:攻击者利用窃取的凭据访问了云存储,复制了客户数据备份——包括加密的密码库。
LastPass声称用户数据被"零知识加密"保护,只有用户的主密码才能解密。理论上这是正确的。但问题出在一个鲜为人知的设置:PBKDF2迭代次数。
PBKDF2(Password-Based Key Derivation Function 2)是从主密码派生加密密钥的算法。迭代次数越高,暴力破解越困难。OWASP 2023年建议至少310,000次迭代。LastPass的默认值是100,100次——已经低于建议值。
但实际情况更糟。
安全研究员Wladimir Palant发现,许多老账户的迭代次数仅为5,000、500,甚至1次。这是因为LastPass在2012年(500次)和2013年(5,000次)逐步提高默认值,但从未自动升级现有账户。2018年,Palant通过漏洞赏金计划督促LastPass修复这个问题。LastPass承诺迁移,但始终未完成。
迭代次数的影响是指数级的。对于一个50位熵的主密码(约8个随机字符):
| 迭代次数 | 单GPU破解时间 | 成本估算 |
|---|---|---|
| 100,100 | 200年 | 150万美元 |
| 5,000 | 10年 | 7.5万美元 |
| 500 | 1年 | 7,500美元 |
| 1 | 17小时 | 15美元 |
更令人担忧的是,2025年TRM Labs的调查报告显示,LastPass 2022年泄露的密码库仍在被持续破解,导致约3500万美元的加密货币被盗——攻击者专注于使用弱主密码或低迭代次数的高价值账户。
ETH Zurich研究:恶意服务器攻击
LastPass事件展示了被动攻击场景:攻击者窃取数据后离线破解。但ETH Zurich的研究团队提出了一个更激进的威胁模型——如果攻击者控制了服务器,能够主动篡改协议呢?
研究分析了Bitwarden、LastPass和Dashlane,在完整版论文中还包括1Password。针对前三者的攻击共25种(Bitwarden 12种、LastPass 7种、Dashlane 6种)。这些攻击不需要破解加密,而是利用协议设计的缺陷。
攻击类型一:完整性破坏
研究团队发现了多种可以修改用户密码库内容的攻击。例如,Bitwarden存在一种攻击,可以让恶意服务器向用户的密码库中注入虚假条目。当用户查看这些条目时,浏览器扩展会自动填充攻击者控制的密码——用户以为在登录自己的账户,实际上在使用攻击者的凭据。
这类攻击的危险在于,它不需要破解任何加密。服务器只需要在同步过程中修改密文,用户客户端会忠实地解密并显示。
攻击类型二:密钥恢复
更严重的攻击针对密钥派生过程。研究发现,多个密码管理器在处理共享功能时存在设计缺陷。当用户共享密码时,需要用某种方式让接收者能够解密数据。这个过程中的协议缺陷可能被利用来恢复加密密钥。
研究团队展示了一种针对LastPass的攻击:恶意服务器可以通过精心构造的响应,让客户端在不知情的情况下泄露密钥材料。这类似于传统的加密oracle攻击,但发生在密码管理器的具体实现中。
攻击类型三:跨设备攻击
许多用户在多个设备上使用密码管理器。研究发现,恶意服务器可以利用设备同步协议的缺陷,在一个设备上注入恶意数据,然后在另一个设备上触发解密操作。这种"跨设备"攻击大大扩展了攻击面。
浏览器扩展:另一个攻击向量
密码管理器的浏览器扩展是另一个被忽视的攻击面。2025年8月,安全研究员Marek Tóth在DEF CON 33上展示了"DOM扩展点击劫持"(DOM-based Extension Clickjacking)技术。
这种攻击的原理是:浏览器扩展会在页面中注入自动填充提示。攻击者可以将这些提示设置为完全透明(opacity: 0),然后在上面覆盖一个看似无害的弹窗(如Cookie同意横幅)。当用户点击关闭弹窗时,实际上触发了密码管理器的自动填充——凭证被发送到攻击者的服务器。
研究影响了11款主流密码管理器,包括1Password、Bitwarden、iCloud Passwords、LastPass等。截至论文发表时,六款仍未修复。
攻击流程示意:
┌─────────────────────────────────────┐
│ 攻击者网站 │
│ ┌─────────────────────────────┐ │
│ │ Cookie同意横幅(可见) │ │
│ │ [拒绝] [接受] │ │
│ └─────────────────────────────┘ │
│ ↓ 点击位置 │
│ ┌─────────────────────────────┐ │
│ │ 密码填充提示(透明) │ │
│ │ [用户名] [密码] │ ← opacity: 0
│ └─────────────────────────────┘ │
└─────────────────────────────────────┘
加密算法的选择:AES-256 vs XChaCha20
密码管理器使用的加密算法也是一个值得关注的领域。目前主流有两种选择:AES-256和XChaCha20-Poly1305。
AES-256是传统选择,被广泛审计和信任。但它有一些潜在问题:它使用96位的nonce(随机数),如果生成不当(例如使用弱随机数生成器),可能导致nonce重用,进而泄露密钥。
XChaCha20使用192位nonce,大大降低了nonce重用的风险。更重要的是,XChaCha20在设计上避免了基于AES的某些侧信道攻击(如缓存时序攻击)。
然而,加密算法本身很少是密码管理器的薄弱环节。2023年的一项研究分析了几款商业密码管理器,发现漏洞几乎全部出现在协议设计、实现逻辑和用户界面层——而不是加密原语本身。
密钥派生函数:PBKDF2 vs Argon2
密钥派生函数(KDF)的选择对安全性有更直接的影响。PBKDF2是传统选择,但它有一个关键弱点:它是"内存硬"的,而不是"内存困难"的——攻击者可以用GPU或ASIC高效并行破解。
Argon2(特别是Argon2id变体)是2015年密码哈希竞赛的冠军,设计上要求大量内存,显著提高了并行攻击的成本。在相同计算资源下,Argon2提供的保护远超PBKDF2。
但密码管理器的迁移速度很慢。ETH Zurich研究团队在访谈中发现,厂商犹豫更新加密系统的一个原因是担心兼容性问题——如果升级导致部分用户无法访问密码,后果可能是灾难性的。
这也解释了为什么许多密码管理器仍使用90年代的加密技术,尽管这些技术已被认为过时。
零知识的边界:你真正需要信任什么
回到"零知识加密"的承诺。这个术语在技术上有严格定义——零知识证明是一种密码学协议,允许一方证明某个陈述为真,而无需透露任何额外信息。但密码管理器使用的"零知识架构"只是营销术语,意味着服务器不存储明文密码。
实际上,用户需要信任多个环节:
-
客户端代码:如果浏览器扩展或应用被篡改(例如通过供应链攻击),零知识架构毫无意义。2025年有研究发现,密码管理器浏览器扩展可能被恶意网页脚本操纵。
-
服务器行为:ETH Zurich的研究证明,恶意服务器可以突破零知识保护。如果攻击者获得了服务器控制权,他们可以修改服务器行为,而不只是读取静态数据。
-
协议设计:即使加密算法正确,协议设计的细微缺陷也可能导致灾难。共享功能、多设备同步、账户恢复——每一个功能都扩展了攻击面。
-
用户行为:弱主密码、重用主密码、在密码管理器中存储TOTP密钥——这些用户层面的选择同样影响安全性。
本地存储 vs 云同步:权衡的真相
一个常见的建议是:如果担心云安全,就使用本地存储的密码管理器。但这真的是更安全的选择吗?
本地存储确实消除了服务器端攻击向量。但代价是:
- 可用性风险:设备丢失或损坏可能导致密码永久丢失。应急方案(如备份密钥)引入了新的安全风险。
- 同步复杂性:跨设备同步需要手动操作或第三方解决方案,用户体验较差。
- 更新延迟:安全更新可能不会及时应用,特别是对于非技术用户。
云同步密码管理器的优势在于:自动备份、跨设备同步、及时安全更新。代价是引入服务器信任。
这不是简单的"本地更安全"或"云更安全"的问题,而是威胁模型的选择:你更担心离线攻击者窃取设备,还是在线攻击者攻陷服务器?
账户恢复:便利与安全的永恒张力
密码管理器面临一个核心矛盾:如果用户忘记主密码,怎么办?
两种策略代表了不同的权衡:
无恢复机制:用户忘记主密码,所有数据永久丢失。这是"真正的零知识"——厂商确实无法访问用户数据。代价是用户风险:一次记忆失误可能导致数字生活的全面损失。
有恢复机制:厂商可以通过某种方式帮助用户恢复访问。这引入了一个后门——无论是通过安全提示、备用密钥还是账户恢复流程,都意味着厂商或攻击者可能获取用户数据。
1Password采用的"应急表"(Emergency Kit)是一种折中:用户在注册时获得一个随机生成的"秘密密钥"(Secret Key),必须安全保存。这个密钥与主密码共同派生加密密钥,意味着攻击者需要同时获取两者才能解密数据。但这也意味着用户必须妥善保管应急表——丢失它同样意味着数据永久丢失。
实践建议:如何在现实世界中使用密码管理器
基于以上分析,以下是务实的建议:
主密码安全
选择一个高熵主密码至关重要。使用DiceWare方法(从专用词表随机选择单词)是一个可靠选择:5个单词约65位熵,8个单词超过100位熵。避免使用歌词、名言或任何可预测的模式。
迭代参数检查
对于使用PBKDF2的密码管理器,检查迭代次数是否足够。OWASP建议至少310,000次。如果密码管理器支持Argon2,优先选择它——但要确保参数设置正确(足够的内存和迭代次数)。
禁用自动填充
浏览器扩展的自动填充功能是点击劫持攻击的入口。手动复制粘贴虽然不便,但显著降低了风险。对于Chromium浏览器,可以将扩展设置为"点击时激活"(On Click),限制其自动运行。
TOTP分离存储
将TOTP(时间基一次性密码)密钥存储在密码管理器中降低了双因素认证的有效性——攻击者只需要攻破密码管理器就能同时获取密码和2FA代码。使用独立的认证器应用(如Aegis、Raivo)是更安全的选择。
关键账户单独保护
对于最高价值的账户(银行、邮箱、域名管理),考虑不将其存储在云密码管理器中。使用本地存储或物理记录(如安全存储的纸质备份)作为"气隙"保护。
事后响应准备
如果密码管理器发生安全事件,需要快速响应。保留一份账户清单(不含密码),以便在需要时批量修改密码。优先处理金融、邮箱和身份相关账户。
结语:安全是权衡,不是绝对
密码管理器仍然是目前最佳的个人密码管理方案。相比于重用密码、使用弱密码或明文记录,它们提供了显著更高的安全性。
但这不意味着它们是完美的。“零知识加密"的营销承诺掩盖了实际的安全边界。ETH Zurich的研究表明,在恶意服务器威胁模型下,零知识架构可能形同虚设。LastPass事件证明,即使加密正确,实现细节(如迭代次数)也可能成为致命弱点。
理解这些边界,不是为了放弃密码管理器,而是为了更明智地使用它们。安全从来不是绝对的——它是威胁模型、便利性和成本之间的权衡。认识到这一点,才能做出真正适合自己的选择。
参考文献
-
Scarlata M, Torrisi G, Backendal M, Paterson K. Zero Knowledge (About) Encryption: A Comparative Security Analysis of Three Cloud-based Password Managers. USENIX Security 2026. https://eprint.iacr.org/2026/058
-
ETH Zurich. Password managers less secure than promised. 2026. https://ethz.ch/en/news-and-events/eth-news/news/2026/02/password-managers-less-secure-than-promised.html
-
Palant W. LastPass breach: The significance of these password iterations. 2022. https://palant.info/2022/12/28/lastpass-breach-the-significance-of-these-password-iterations/
-
Palant W. Bitwarden design flaw: Server side iterations. 2023. https://palant.info/2023/01/23/bitwarden-design-flaw-server-side-iterations/
-
Tóth M. DOM-Based Extension Clickjacking. DEF CON 33. 2025.
-
The Hacker News. DOM-Based Extension Clickjacking Exposes Popular Password Managers. 2025. https://thehackernews.com/2025/08/dom-based-extension-clickjacking.html
-
LastPass 2022 data breach. Wikipedia. https://en.wikipedia.org/wiki/LastPass_2022_data_breach
-
OWASP. Password Storage Cheat Sheet. https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html
-
NIST. Special Publication 800-63B. Digital Identity Guidelines. https://pages.nist.gov/800-63-4/sp800-63b.html
-
Madden N. On PBKDF2 iterations. 2023. https://neilmadden.blog/2023/01/09/on-pbkdf2-iterations/