【问题标题】:Fido2 authentication for offline .net application离线 .net 应用程序的 Fido2 身份验证
【发布时间】:2022-06-10 04:17:54
【问题描述】:
我知道 fido 用于 Web 应用程序中的身份验证。但我的问题是,fido 是否也适用于本地 .net 应用程序的身份验证。 Fido 服务器应该与 .net 应用程序在同一台计算机上,因为该计算机不在 Internet 上。
如果原则上可行,我想知道身份验证是如何工作的。应用程序在登录过程中是否必须打开 WebAuthn API 所在的浏览器?或者是否有直接从 .net 应用程序使用 WebAuthn API 的解决方案?
提前致谢。
【问题讨论】:
标签:
.net
authentication
webauthn
fido
fido-u2f
【解决方案1】:
FIDO2 的许多用途确实侧重于通过 WebAuthn 对 Web 应用程序进行身份验证,但对于离线原生应用程序还有其他一些选项可供研究。以下是您可以利用的一些架构指南。
我们的首选选项是使用FIDO2 hmac-secret-extension。 FIDO2 身份验证器可以存储和检索 hmac-secret 作为其断言的一部分。然后,客户端应用程序将使用该密钥通过用户凭据解锁本地保险库。 Here 是 Yubico 对扩展的解释。您需要利用 FIDO2 库与 FIDO2 设备通信以存储/检索密钥。这是 Yubico 的 libfido2 库的链接,以及获取 HMAC 机密所需的命令的 example。 Here's 一个如何使用这个库加密/解密凭证保险库的例子。应该注意的是,auth 令牌和 vault 实现超出了 CTAP2 规范的范围 - 您的 CTAP/CTAP2 身份验证器存储/提供秘密,但对之后如何使用秘密不承担任何责任。
希望这可以帮助