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年代的加密技术,尽管这些技术已被认为过时。

零知识的边界:你真正需要信任什么

回到"零知识加密"的承诺。这个术语在技术上有严格定义——零知识证明是一种密码学协议,允许一方证明某个陈述为真,而无需透露任何额外信息。但密码管理器使用的"零知识架构"只是营销术语,意味着服务器不存储明文密码。

实际上,用户需要信任多个环节:

  1. 客户端代码:如果浏览器扩展或应用被篡改(例如通过供应链攻击),零知识架构毫无意义。2025年有研究发现,密码管理器浏览器扩展可能被恶意网页脚本操纵。

  2. 服务器行为:ETH Zurich的研究证明,恶意服务器可以突破零知识保护。如果攻击者获得了服务器控制权,他们可以修改服务器行为,而不只是读取静态数据。

  3. 协议设计:即使加密算法正确,协议设计的细微缺陷也可能导致灾难。共享功能、多设备同步、账户恢复——每一个功能都扩展了攻击面。

  4. 用户行为:弱主密码、重用主密码、在密码管理器中存储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事件证明,即使加密正确,实现细节(如迭代次数)也可能成为致命弱点。

理解这些边界,不是为了放弃密码管理器,而是为了更明智地使用它们。安全从来不是绝对的——它是威胁模型、便利性和成本之间的权衡。认识到这一点,才能做出真正适合自己的选择。


参考文献

  1. 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

  2. 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

  3. 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/

  4. Palant W. Bitwarden design flaw: Server side iterations. 2023. https://palant.info/2023/01/23/bitwarden-design-flaw-server-side-iterations/

  5. Tóth M. DOM-Based Extension Clickjacking. DEF CON 33. 2025.

  6. The Hacker News. DOM-Based Extension Clickjacking Exposes Popular Password Managers. 2025. https://thehackernews.com/2025/08/dom-based-extension-clickjacking.html

  7. LastPass 2022 data breach. Wikipedia. https://en.wikipedia.org/wiki/LastPass_2022_data_breach

  8. OWASP. Password Storage Cheat Sheet. https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html

  9. NIST. Special Publication 800-63B. Digital Identity Guidelines. https://pages.nist.gov/800-63-4/sp800-63b.html

  10. Madden N. On PBKDF2 iterations. 2023. https://neilmadden.blog/2023/01/09/on-pbkdf2-iterations/