凭据管理api在哪里存储webauthn相关数据

Where does credential management api store webauthn related data

WebAuthn 包括凭证管理 api 的扩展,允许您使用 public 密钥。我可以转到 chrome 设置并检查托管密码,以查看我选择使用凭据管理 api 将哪个 username/passwords 存储在浏览器中。与 webauthn+凭据管理 api 组合相关的几个问题。

  1. 创建成功后浏览器会存储什么信息 凭据?
  2. 我们可以从 chrome 设置(或其他方式)访问此信息吗?

您的问题:

  1. 浏览器不存储该信息,创建的信息 (来自认证器)用于将认证器注册到 回复方
  2. 运行时
  1. None - 凭据以受保护的形式存储在所使用的验证器设备内 - 例如Yubikey 之类的安全密钥或在计算机的 TPM 中或 phone。
  2. 您可以在运行时通过 WebAuthn API(navigator.credentials...)创建或获取凭据(在这种情况下,获取实际上意味着 "sign this nonce"),但您无法枚举它们.

甚至 Yubico 也不提供允许您仅列出其设备之一上持有的 FIDO2 凭据的工具。

这是一个已加载的问题,thangcao和mackie的回答都切中要点,这里有更多细节。

  • "Authenticator" 与浏览器是分开的——只是为了强调这一点。
  • 身份验证器可以是 "platform authenticator",内置于客户端设备中,例如 Android 手机和 Windows Hello 或 "roaming authenticator",一个 separate/external 硬件,例如可以在多个设备上使用的 Yubikey。
  • Authenticator 是创建和存储 "credentials" 的,它在 public/private 密钥方案中。浏览器可以通过凭据管理 API 从身份验证器获取 public 密钥(意味着 public),但不能获取私钥。身份验证过程在身份验证器内部完成,浏览器只是在客户端 (users/app) 和身份验证器之间传递信息。
  • Chrome 设置上没有等效的 "password management" 来管理您的 "WebAuthn private information",因为凭据不在浏览器中;更重要的是,多个浏览器可以使用相同的身份验证器,具有相同的一组 public/private 密钥凭据。

最后但同样重要的是,你的问题:"Can we access this info from chrome settings (or some other way)?"

答案:除非身份验证器供应商构建一些后门。如果是这样,后门不是给你的,而是给黑客获取你所有私钥的。