assetlinks.json 文件托管对于 FIDO 是强制性的吗?



我有一个关于 FIDO2 的问题。

小背景:我的公司决定使用 FIDO2 进行用户帐户管理。因此,我们创建了一个FIDO服务器包装器,它主要使用yubico webauthn库。  在Android方面,我们使用Fido2ApiClient谷歌播放服务原生库来支持FIDO。

implementation 'com.google.android.gms:play-services-fido:18.1.0'

根据菲多文件, https://developers.google.com/identity/fido/android/native-apps#interoperability_with_your_website 允许用户在您的网站和 Android 应用程序中无缝共享凭据很简单。 但是,我们不使用任何网站,仅在API端点(AWS-ALB(中使用FIDO服务器

如果没有托管 assetlinks.json 文件,Android FIDO 身份验证器始终会返回以下错误消息。

code: SECURITY_ERR
message: The incoming request cannot be validated

assetlinks.json 文件托管对于 FIDO 是强制性的吗? 有没有人在没有托管此文件的情况下取得成功?

TL;DR:不,资产链接是一个单独的规范,不是FIDO2的一部分。

资产链接是一个单独的规范。
FIDO2 不要求身份验证服务器公开/.well-known/assetlinks.json端点。
但是,它由 Android FIDO2 API 强制执行,因为它是一种验证您同时拥有该应用程序和要通过它访问的服务器的方法。

进一步详细说明 Asset Links 的作用以及为什么它在 Android 用例中有用:
通过让您将用于对移动应用程序进行签名的证书的指纹包含在服务器上的文件中,Asset Link 会创建一个有形的证据,证明您同时拥有服务器和客户端应用程序的签名密钥 -assetlinks.jsonfile-.
如果不是这样, 我可能会创建您的应用程序的恶意版本,并将您的服务器用作身份验证服务器。然后,我可能会诱骗用户使用我的应用程序注册/登录,虽然我无法看到他们的私钥存储在安全硬件上,但我可以轻松地收集 sessionId/令牌并代表他们发出经过身份验证的请求.
为了防止这种情况(以及我不知道的其他可能情况(, Android 公开的 FIDO2 API 在授予对关联凭据的访问权限之前会检查客户端是否已获得服务器的授权。它执行此检查的方式是使用资产链接,但同样,这本身就是一个规范。

资产链接由 Google 管理,从 .wellknown 注册表中可见。规范本身可以在 github 上访问 这里 和 这里.

是的,来自 google play services 原生库的 Fido2ApiClient 需要 assetlinks.json。

相关内容

  • 没有找到相关文章

最新更新