公钥是否存储在 macos 11.4 和 iOS 14 的浏览器中

问题描述

我已经在我的 mac 和 iphone 上测试了 https://webauthn.io/。在 iPhone 上,我可以使用 Chrome 注册并使用 Safari 登录,但在 macos 上,我必须分别在 Chrome 和 Safari 上注册

我想知道公钥存储在哪里以及为什么在 macos 和 ios 上的行为不同?

解决方法

通过 macOS Big Sur WebAuthn 凭据确实孤立于单个浏览器。实际上,这意味着在 Chrome 中进行身份验证时不能使用在 Safari 中注册的 Touch ID 凭据,也不能在 Edge (Chromium) 中使用 Chrome 凭据。必须为每个浏览器注册 Touch ID,凭据 ID 仅对其注册的浏览器有效。

正如您所指出的,iOS 在 14.5 中获得了操作系统级别的凭据存储(如果我没记错的话),类似于 Windows Hello。这有一个额外的好处,即允许在所有浏览器应用程序中使用 WebAuthn,而不仅仅是 Safari.app,并且只需在任何浏览器应用程序中注册一次 Touch ID 即可进行身份验证。

最后我要说的是,即将推出的 Apple iCloud Keychain 支持的“密码”预览版似乎在 macOS Monterey 中提供了一个 Windows Hello 式的操作系统级凭证存储,这是非常需要的:

https://developer.apple.com/wwdc21/10106