本页由自动翻译生成。请阅读英文原文 此处.
根据 FIDO 联盟 2024 年身份验证晴雨表的数据,目前全球前 100 大网站中有 20% 支持通行密钥,全球 53% 的消费者已在至少一个帐户上启用了通行密钥。Amazon、WhatsApp、Coinbase、TikTok、Facebook、LinkedIn 和 X/Twitter 都自 2023 年起发布了相关支持。

Passkeys 速查表. 面向 passkey 项目的实用指南、推广模式和 KPI。
W3C WebAuthn Level 3 规范定义了一系列 DOM 异常,但为了避免隐私泄露,根据
W3C 隐私注意事项,浏览器故意将大多数失败(用户取消、超时、不合格的身份验证器)归为通用的
NotAllowedError。许多依赖方也定义了它们自己的错误消息,因为除了
FIDO 联盟的 UX 指南之外,并没有太多被证明行之有效的最佳实践。本指南将最常见的面向消费者的表述映射到明确的原因和实用的解决方案,并附有初始版本以及最新的
iOS 和 Android
版本的屏幕截图。
在 r/passkey 讨论 passkeys 新闻和问题。
如果您的设备上出现“google 通行密钥无法使用”(google passkey not working),首先要检查浏览器、操作系统和 Google Play 服务是否均为最新版本,因为大多数回退问题都会在一两个版本内得到修复。
通行密钥是基于 WebAuthn API 以及底层 FIDO 联盟 CTAP 2.2 规范的无密码凭据。W3C 于 2019 年 3 月标准化了 WebAuthn Level 1,2021 年 4 月标准化了 Level 2,并在 2024 年标准化了 Level 3。根据 FIDO 联盟 Authenticate 2024 会议,到 2024 年第四季度,各主要生态系统中已注册的凭据数量达到了约 10 亿个。
在实时 demo 中试用 passkeys。
设备在注册时会生成唯一的密钥对。只有公钥会发送到依赖方,而私钥保留在安全飞地、TPM 或 TEE 中。登录时,服务器发送质询,设备使用 Face ID、Touch ID 或 Windows Hello 解锁私钥,对质询进行签名并返回签名。依赖方使用公钥对其进行验证。
由于私钥永远不会离开设备,因此网络钓鱼和密码重用不再是有效的攻击媒介。从用户的角度来看,整个流程就是一次简单的生物识别提示。
查看实际有多少人在使用 passkeys。
已启用 iCloud 钥匙串:
iCloud 钥匙串是 Apple 设备上凭据的存储位置,并且随 iOS 16、iPadOS 16 和 macOS Ventura 13 或更高版本一起发布。根据 Apple 的开发者仪表板,Apple 在 2024 年初报告了约 22 亿台活跃设备,其中超过 90% 运行 iOS 16 或更高版本。要启用 iCloud 钥匙串,请导航到您设备的设置,选择您的 Apple ID,进入 iCloud 然后启用 iCloud 钥匙串(在此处阅读更多内容)。根据 Apple 开发者文档,启用了钥匙串的 iCloud 帐户会被强制要求使用 MFA。
需要 iOS 16 或 macOS Ventura:
iOS 16 于 2022 年 9 月 12 日发布,macOS Ventura 13 于 2022 年 10 月 24 日发布。在 iOS 18 上,存储位置移至专用的密码应用中,这就是为什么有些提示现在写的是“密码”而不是“iCloud 钥匙串”。根据 Apple 支持文档,使用较旧系统版本的用户根本无法创建或使用通行密钥。
订阅我们的 Passkeys Substack,获取最新消息。
Windows Hello 设置:
在 Windows 10 和 Windows 11 设备上创建或使用通行密钥需要使用 Windows Hello。根据 Microsoft 的 Windows 通行密钥文档,Windows 11 build 22631(2024 年 11 月)发布了原生通行密钥 UI,Windows 11 25H2(2025 年 11 月)增加了对 1Password 和 Bitwarden 等第三方通行密钥管理器的支持。Windows Hello 接受指纹、面部扫描或 6 位 PIN 码。您可以在“设置 > 帐户 > 登录选项”下进行配置(在此处阅读更多内容)。
Android 9 或更高版本:
Android 9(Pie)于 2018 年 8 月 6 日发布,它是凭据管理器 API(Credential Manager API)的最低版本要求。根据 Android 分发仪表板,在 2026 年,大约 95% 的活跃 Android 设备运行的是 Android 9 及更高版本。较旧的版本根本无法使用通行密钥,因为它们缺少 StrongBox Keymaster 和凭据管理器。
Google Play 服务已更新:
凭据管理器要求 Google Play 服务的版本为 23.40 或更高。Google Play 服务大约每 4 到 6 周更新一次,大多数关于“google 通行密钥无法使用”的问题都可追溯到过时的版本。请在“设置 > 应用”下更新 Google Play 服务和系统 WebView,然后重试。
在所有平台上,请确保浏览器为最新版本。Safari、Chrome 和 Edge 大约每周都会发布稳定版更新,大多数回退问题都会在一两个版本内得到修复。
查看实际有多少人在使用 passkeys。
我们跟踪了跨 iOS、Android 和 Windows 客户端的大约 15 种常见错误模式,这些错误加起来占了主要依赖方观察到的大部分消费者支持工单。接下来的 6 个部分按根本原因对这些错误进行分组:iCloud 钥匙串和 Apple 密码应用、无可用凭据、二维码和跨设备流程、Windows 专属问题、Android 专属问题以及通用的 WebAuthn 或浏览器存储区。
每个条目都包含原始版本以及最新的 iOS 版本和 Android 凭据管理器版本的屏幕截图、最可能的原因以及对其他人有效的解决方案。在适当的地方,条目还会引用 W3C WebAuthn Level 3 规范、FIDO 联盟规范或来自 Apple、Microsoft 和 Android 凭据管理器的相关平台文档。
本组涵盖了 Apple 设备在未正确设置 iCloud 钥匙串时显示的两个错误。这两者都是由系统直接呈现的,而不是依赖方。根据 Apple 开发者文档,iCloud 钥匙串是在 iOS 16、iPadOS 16 或 macOS Ventura 13 及更高版本上使用通行密钥的硬性要求。在 iOS 18 上,存储移至新的密码应用,因此表述发生了变化。
在最新的 iOS 上,表述变为“要使用通行密钥,您需要启用 iCloud 钥匙串”,并且路径重命名为设置 > Apple 帐户 > iCloud > 密码和钥匙串:
在最新的 iOS 上,该提示现在印有新密码应用的品牌标记,内容为“在密码中未存储匹配的通行密钥...”:
当用户期望的凭据不在当前设备上、已被注册或已在一侧删除但在另一侧未删除时,就会出现这些错误。WebAuthn 属性 AllowCredentials 和 excludeCredentials 在服务器端驱动了大部分此类行为。
在 Android 上,Google Play 服务也会显示同样的错误:“无可用通行密钥。此设备上没有任何用于 <依赖方> 的通行密钥”,并带有一个“使用不同设备”的后备选项:
二维码流程使用 FIDO 混合传输(也称为 CTAP 2.2 混合)。根据 FIDO CTAP 规范,两个设备通过二维码交换一次性机密,然后通过最大范围约 3 米的低功耗蓝牙进行通信。蓝牙和近距离两者缺一不可,否则流程将无声地失败。
在最新的 iOS 上,跨设备二维码表单现在写为“扫描二维码。使用兼容设备扫描此二维码以登录...”:
在 Android 上,凭据管理器会将同一流程显示为“没有可用的登录方式”,并带有显示二维码选项以及打开 Google 密码管理器的后备选项:
在过去 18 个月里,Windows 版本发布了几个与通行密钥相关的回退问题。根据 Microsoft Windows 通行密钥文档,build 22631(2024 年 11 月)添加了原生通行密钥 UI,而 Windows 11 25H2(2025 年 11 月)添加了第三方通行密钥管理器支持。这两项改变重置了一些 Windows Hello 状态。
C:\Windows\ServiceProfiles\LocalService\AppData\Local\Microsoft\Ngc),然后重新注册 Windows
Hello。建议将 Windows 上的 Microsoft 帐户通行密钥登录作为尽量尝试的方法(best-effort),并始终保持至少一个非通行密钥 MFA 选项处于激活状态。根据 Android 凭据管理器文档,Android 凭据管理器 API 需要 Google Play 服务 23.40 或更高版本,并依靠安全的锁屏进行用户验证。没有屏幕锁定的设备根本无法注册或使用凭据。
这些错误直接来自浏览器或 WebAuthn
层。它们被有意设计为通用的,以保护用户隐私。根据 W3C 规范,浏览器在仪式期间暴露的 DOM 异常在 10 到 14 种之间,其中最常见的(NotAllowedError)涵盖了取消、超时和系统拒绝,把它们归在一个通用的错误类别下。
通行密钥用公钥加密取代了共享机密,从而消除了密码类别的漏洞。在实际部署中,其登录速度比密码加 OTP 的组合快了 4 到 6 倍,并且根据 Verizon的 2024 年数据泄露调查报告,68% 的数据泄露是由非恶意的人为因素(包括凭据滥用)引起的。减少这一攻击面正是其目的所在。
在实践中,上述的 15 种错误占据了我们在通行密钥社区看到的大量消费者支持工单,而正确的故障排除对于更广泛的通行密钥采用来说至关重要。遵循创建最佳实践和登录最佳实践可显着降低错误率。为了了解有关错误处理和推广细节的最新动态,请订阅 passkeys Substack,或加入 Slack 社区。
Corbado 是面向大规模运行 consumer 身份验证的 CIAM 团队的Passkey Intelligence Platform。我们让你看到 IDP 日志和通用 analytics 工具看不到的内容:哪些设备、操作系统版本、浏览器和 credential manager 支持 passkey,为什么注册没有转化为登录,WebAuthn 流程在哪里失败,以及什么时候操作系统或浏览器更新会悄悄破坏登录 — 而且无需替换 Okta、Auth0、Ping、Cognito 或你自有的 IDP。两款产品:Corbado Observe 提供 针对 passkey 及任何其他登录方式的 observability。Corbado Connect 提供 内置 analytics 的 managed passkey(与你的 IDP 并存)。VicRoads 通过 Corbado 为 500 万以上用户运行 passkey(passkey 激活率 +80%)。 与 Passkey 专家交谈 →
当禁用 Windows Hello 或没有可用的 TPM 时,会出现此提示,导致系统回退到硬件安全密钥身份验证。在设备的登录设置中启用 Windows Hello 即可解决此问题,但您必须先创建一个 Windows Hello 通行密钥才能使用它进行登录。
该错误通常由应用程序故障、临时服务器问题或不兼容的设备设置引起。重新启动应用程序或设备,并检查操作系统和应用程序更新通常可以解决该问题。如果问题似乎出在服务器端,建议稍后等待并重试。
当服务器响应时间过长时会发生超时错误,这通常归因于网络不稳定或服务器负载过高。验证您的互联网连接是第一步。如果连接稳定,则问题很可能在服务器端,稍等片刻后重试即可解决。
在客户端(例如从 iCloud 钥匙串或 Google 密码管理器)删除通行密钥,而不在依赖方的帐户设置中一并移除,会导致“找不到匹配的通行密钥”错误。服务器仍然持有公钥并需要该凭据,因此在注册新的通行密钥之前,必须在客户端和服务器端同时将其删除。
NotAllowedError
是通行密钥仪式未完成时浏览器返回的通用 WebAuthn 错误。它可能意味着用户取消、超时、缺少用户手势、来源被拦截或平台身份验证器拒绝了请求。出于隐私原因,浏览器会隐藏确切原因。在用户直接操作后重试流程并确认生物识别或 PIN 通常可以解决此问题。
在 iOS 18 及更高版本上,存储位置移至新的“密码”应用中,因此表述从“iCloud 钥匙串”更改为“密码”。该错误表示此设备上缺少该凭据,或者 iCloud 同步未激活。请确认在同一个 Apple ID 使用的所有 Apple 设备上都启用了 iCloud 钥匙串,通过关闭再开启 iCloud 钥匙串来强制同步,然后重试登录。如果完全没有凭据,请从依赖方的帐户设置中注册一个新的。
当当前设备上没有为请求的依赖方存储匹配的凭据时,Android 凭据管理器会显示此提示。它通常会提供一个“显示二维码”选项,以便通过 FIDO 混合传输使用来自其他设备的通行密钥,外加一个打开 Google 密码管理器的后备选项。要么用已经存有该凭据的手机扫描二维码,要么使用后备方法登录,或者在当前设备上从依赖方的帐户设置中注册一个新凭据。
跨设备流程是在 CTAP 2.2 中定义的 FIDO 混合传输。桌面浏览器会显示一个包含一次性机密的二维码。手机使用摄像头扫描该二维码,并通过最大范围约 3 米的低功耗蓝牙(Bluetooth Low Energy)建立连接。用户在手机上验证后,WebAuthn 仪式将在桌面上完成。蓝牙和近距离两者缺一不可,否则流程会在出现通用的“出现错误”或“我们无法让您登录”消息后无声地失败。
相关文章
目录