五亿个密码凭证现在在全球范围内处于活跃使用状态。90%的消费者知道它们是什么。68%的企业正在部署或试点使用它们。谷歌表示,其85,000名员工自切换为硬件安全密钥后,没有发生过任何与钓鱼相关的账户妥协事件。

这些数据是真实的。这项技术确实有效。但围绕它的供应商推销已经开始变得不负责任。

以下是密码凭证实际上做了什么,它们在哪些方面真正胜过其他方案,以及“防钓鱼”叙事为何站不住脚。

实际上什么是密码凭证

去掉营销成分,密码凭证实际上就是FIDO2/WebAuthn凭据。两个标准:WebAuthn(浏览器API)和CTAP2(浏览器与认证器之间的通信方式)。底层的加密是不对称的——通常是P-256或Ed25519的ECDSA。

当你在某个站点注册密码凭证时,你的设备会生成一个公钥/私钥对。私钥保留在你的设备的安全区域、TPM或硬件安全密钥中。服务器只获取公钥。当你登录时,服务器会发送一个随机挑战,你的设备在你验证本地信息(指纹、面部、PIN码)后用私钥签名,然后服务器会检查签名与存储的公钥是否匹配。

没有共享密钥通过网络传输。没有密码存储在数据库中等待被破解。服务器存储的只是一个公钥,对于冒充来说毫无用处。

这部分确实很优雅。问题出现在它周围的一切。

密码凭证实际上的优势

最大的安全优势在于原生绑定。当你认证器对挑战进行签名时,它会通过加密方式将签名绑定到密码凭证注册时的精确域名(依赖方ID)。如果你访问的是paypal-secure-login.com而不是paypal.com,你的设备会拒绝生成签名。这并不是因为你注意到了假的网址——而是因为浏览器和硬件在使用私钥之前就已经强制执行了匹配。

这击败了最常见的实际攻击:中间人钓鱼(AiTM)。像Evilginx这样的工具通过在你和真实网站之间坐庄,实时转发你的密码和TOTP代码来捕获有效的会话cookie。使用密码凭证,没有什么可以转发。提交给不同域名代理的paypal.com的签名毫无价值。

这并非理论上的。自2025年4月以来,Evilginx攻击已经针对大学进行了攻击——至少18所机构,67个域名,数百个企业邮箱被盗。一个较新的商用工具Starkiller在Docker容器中运行无头Chrome,以代理整个认证流程。两者都击败了短信、TOTP、推送确认和数字匹配的MFA。它们都无法触及正确实现的密码凭证。

其他优势是实际存在的,但不那么显眼:

  • 无凭证填充。每个密码凭证都是针对每个站点唯一的。密码重用变得结构上不可能。
  • 无服务器端秘密窃取。数据库泄露只会泄露公钥。毫无用处。
  • 无SIM交换。没有运营商参与。
  • 无旁观者窥探或剪贴板嗅探。
  • 已经是多因素认证设计的一部分。设备(你拥有的东西)加上生物识别/PIN(你是什么/知道的东西)在一个原子操作中完成。没有继而的窗口供中间人攻击利用。

针对那些大规模导致账户妥协的攻击——钓鱼、凭证填充、密码重用、服务器泄露——密码凭证在任何密码加第二个因素的组合中都是绝对更好的。供应商在这方面说对了。

推销中的破绽

备份恢复成为新的入口

如果你的密码凭证保护的账户有“忘记密码凭证?通过电子邮件重置”流程,攻击者不需要击败密码凭证。他们只需击败电子邮件。FIDO联盟自己的部署指南也承认这一点:有四起已记录的密码凭证部署中存在钓鱼漏洞案例,所有这些漏洞都是由于弱的备份或备用机制造成的,而不是密码凭证本身存在缺陷。

你的身份验证只有在最弱的路径到账户所有权的路径上才有多强。如果这条路径是电子邮件加短信一次性密码(OTP),那么你的密码凭证就只是表演。

降级攻击

Proofpoint记录了一次针对Microsoft Entra ID的干净攻击:一个钓鱼代理冒充不支持的浏览器(如Windows上的Safari),Entra禁用了密码凭证支持,用户被引导到短信或一次性密码。代理捕获了较弱的凭据和会话cookie。由于WebAuthn仪式从未发生,密码凭证的原生绑定从未发挥作用。

这是因为大多数部署仍然提供密码凭证作为密码的可选替代方案。如果存在较弱的方法,攻击者会找到一种方法来迫使使用它。FIDO联盟称之为“最薄弱环节”问题,他们的建议是直接:消除所有可被钓鱼利用的备用方法。只保留最强的路径。

大多数组织还没有这样做。许多组织无法这样做,因为他们的用户仍在使用不支持密码凭证的设备。

同步密码凭证扩大了信任面

消费者密码凭证的推销是“你的私钥安全地存储在你的安全区域中”。对于设备绑定的凭证来说,这是真的。但对于同步密码凭证——那些存在于iCloud Keychain、Google密码管理器或1Password中的——私钥被加密并通过你的云账户同步到你的所有设备。

你的密码凭证的安全性现在取决于你的Apple ID或Google账户。如果这些账户被攻破,攻击者可能会访问你的同步密码凭证。这与YubiKey的信任模型不同,但并不一定是更差的模型,但这与“密钥从未离开你的设备”是不同的对话。

Palo Alto的Unit42在2025年发布了一项针对Google同步密码凭证生态系统的研究,展示了三种攻击类别。Golden Pass-ta-key攻击通过强制重新注册流程、注入伪造的用户验证密钥并从Chrome进程内存中提取主解密密钥来提取所有同步密码凭证的私钥。保护所有同步密码凭证的SDS(安全域密钥)在注册过程中被记录在Chrome的device-log页面上。Google修复了记录问题,但密钥仍然发送到客户端并在内存中可访问。

这不是密码凭证的问题。这是一个“同步凭证实现”问题。但当有人声称“密码凭证是不可破解的”时,他们并不是在谈论这个问题。

浏览器扩展可以劫持仪式

SquareX在DEF CON上演示了一种恶意浏览器扩展可以拦截WebAuthn API调用——navigator.credentials.create()和navigator.credentials.get()——并操纵整个密码凭证注册或认证流程。Chrome文档中有一个名为webAuthenticationProxy的扩展API,可以执行此操作。它用于远程桌面使用场景,但这也意味着具有适当权限的扩展程序存在于WebAuthn路径中。

攻击不破坏加密。它注入到浏览器端的进程中。密码凭证签名了它被告知要签名的内容——但它不知道上下文已被篡改。

设备代码流程绕过一切

这一个是最有趣也是讨论最少的。2026年,Lexfo发现了针对Microsoft 365的三个活跃钓鱼攻击。两个使用了Evilginx(被密码凭证阻止)。第三个使用了OAuth设备代码滥用:受害者被引导到Microsoft的真实microsoft.com/devicelogin页面,输入代码,完成真正的MFA,授权攻击者的会话。域名是真实的。原生绑定完美地起作用了。但它不起作用,因为用户在真实网站上进行了认证。

FIDO2密钥和密码凭证对此无能为力。防御措施是完全阻止不需要它的用户使用设备代码流程的有条件访问策略。

诚实的比较

攻击 短信一次性密码 TOTP应用 推送 同步密码凭证 设备绑定密码凭证
中间人钓鱼(Evilginx风格) 失败 失败 失败 阻止它 阻止它
SIM交换 致命 无 无 无 无
服务器泄露 密码哈希可破解 种子泄露 令牌泄露 公钥仅 公钥仅
凭证填充 如果重用则有效 由2FA阻止 阻止 不可能 不可能
备份恢复流程绕过 漏洞 漏洞 漏洞 依赖于RP 依赖于RP
降级到较弱的方法 无 无 无 存在备用方法则漏洞 同样
同步账户妥协 无 无 无 漏洞 无
浏览器扩展劫持 无 无 无 漏洞 漏洞
设备代码流程滥用 失败 失败 失败 失败 失败

模式:密码凭证阻止了最常见的、最可扩展的攻击。它们并不能阻止一切,而同步密码凭证引入了一类新的风险,设备绑定凭证没有。

对受监管环境的影响

对于任何在GxP、21 CFR第11部分或类似框架下工作的人员,密码凭证比密码加TOTP是一个真正的改进。它们满足了“两种不同的身份验证组件”要求(拥有某物加上知道某物),提供了比共享密码更强的不可抵赖性,并消除了导致服务器泄露成为灾难的共享秘密存储问题。

但验证故事比合规故事更复杂。你现在需要验证:

  • 认证器的行为(它是否正确地绑定到原生域名?它是否强制执行用户验证?)
  • 同步织网的安全模型(对于同步密码凭证)
  • 备份恢复流程的绕过抵抗力
  • 备用方法政策(较弱的方法是否实际被禁用?)
  • 证明链(你能证明哪个硬件生成了凭证吗?)

对于企业部署,FIDO联盟和Yubico都建议特权账户使用设备绑定凭证,并在注册时进行验证。同步密码凭证适用于通用SSO。分层模型是有意义的——但这意味着你需要管理两种凭证类型,而不是一种。

最后的话

密码凭证是今天对抗真正重要的攻击的最佳认证技术。针对中间人钓鱼、凭证填充、密码重用和服务器泄露,没有任何其他方案能接近。谷歌85,000名员工的零钓鱼记录是证明点。

但“防钓鱼”是一个营销主张,而不是一个安全属性。攻击面已经转移。它从“窃取共享密钥”变成了“绕过恢复流程、强制降级、攻击同步账户、劫持浏览器扩展或滥用其他认证流程”。这些攻击比钓鱼一个TOTP代码更难、更不可扩展,这就是为什么密码凭证是一个真正的改进。但它们并不是零风险。

如果你正在部署密码凭证:确保它们是唯一的路径,锁定恢复,对于任何特权账户都要求使用设备绑定凭证,并审查备用方法。加密是稳固的。围绕它的一切才是风险所在。