适用于 Chrome 桌面版通行密钥的 Signal API

发布时间:2024 年 11 月 13 日

从 Chrome 132 开始,Chrome 桌面版(macOS、Windows、Linux 和 ChromeOS)支持 Signal API,该 API 可确保通行密钥提供程序中的通行密钥与依赖方服务器上的公钥凭据保持一致。

创建通行密钥(可检测到的凭据)时,用户名和显示名称等元数据会随私钥一起保存到通行密钥提供程序(例如密码管理工具)中,而公钥凭据会保存到依赖方 (RP) 的服务器中。保存用户名和显示名称有助于用户确定要使用哪个通行密钥登录,因为系统会要求用户在登录时选择通行密钥。如果用户有来自不同通行密钥提供商的两个以上通行密钥,此功能尤为有用。

不过,在某些情况下,通行密钥提供程序上的通行密钥列表与服务器上的凭据列表之间的差异可能会造成混淆。

第一种情况是,用户删除服务器上的凭据,但不影响通行密钥提供程序中的通行密钥。当用户下次尝试使用通行密钥登录时,通行密钥提供程序仍会向用户显示通行密钥。不过,登录尝试将会失败,因为服务器无法使用已删除的公钥进行验证。

第二种情况是,用户在服务器上更新其用户名或显示名称。当用户下次尝试登录时,即使服务器上已更新通行密钥,通行密钥提供程序中的通行密钥仍会继续显示旧用户名和显示名称。理想情况下,它们应该保持同步。

Signal API

借助 WebAuthn Signal API,RP 可以向关联的通行密钥提供程序发送现有凭据信号。这样,支持通行密钥的提供程序就可以更新或从其存储空间中移除不正确或已撤消的通行密钥,以便与服务器保持一致。

例如,如果用户因 RP 服务器上关联的凭据不复存在而无法登录 RP,RP 可以使用 Signal API 向通行密钥提供程序发出信号,表明已删除的凭据已失效,以便通行密钥提供程序删除关联的通行密钥。

再举一个例子,当用户前往 RP 的设置页面并删除现有凭据时,RP 可以使用 Signal API 向通行密钥提供程序发送可用凭据列表,以便通行密钥提供程序保持关联的通行密钥同步。

从 Chrome 上的 Google 密码管理工具中删除通行密钥时显示的对话框。
从 Chrome 上的 Google 密码管理工具中删除通行密钥时显示的对话框。

它还可以指示更新后的用户名和显示名称,以便更新为同一用户存储的通行密钥元数据。

例如,当用户在 RP 上更新其用户名或显示名称时,RP 可以使用 Signal API 向通行密钥提供程序发送更新后的用户信息信号,以便通行密钥提供程序可以保持关联通行密钥的用户信息同步。

在 Chrome 上的 Google 密码管理工具中更新通行密钥元数据时显示的对话框。
在 Chrome 上的 Google 密码管理工具中更新通行密钥元数据时显示的对话框。

桌面版 Chrome 中的 Google 密码管理工具实现了 Signal AP。对于基于 Chrome 扩展程序的通行密钥提供程序,是否反映该信号取决于它们自己。

我们计划未来在 Android Chrome 上支持 Signal API。

如需了解如何集成 WebAuthn Signal API,请参阅使用 Signal API 使通行密钥列表与服务器保持同步