2

我正在尝试扩展我的应用程序以支持 WebAuthn 登录。到目前为止,我已经在本地服务器上成功设置了一个测试应用程序(使用这个https://github.com/lbuchs/WebAuthn PHP 实现)。

我想我现在基本上理解了这个过程,但我有一个安全问题:当你使用 WebAuthn 作为唯一的身份验证因素(这应该是可能的)时,用户只输入他想要的用户名并通过指纹或他的指纹提供他的凭据YubiKey什么的。在此图中(https://developers.yubico.com/WebAuthn/Libraries/Using_a_library.html),据说服务器返回了与用户名关联的 credentialIds 列表。然后,身份验证者回答它拥有私钥的质询。

我的问题是:如果攻击者想找出存在哪些用户名,他可以尝试提供不同的用户名并测试服务器是否返回任何 credentialIds。这不是安全问题吗?通常攻击者不应该从失败的登录尝试中获得任何信息。

4

1 回答 1

4

一旦浏览器和FIDO2 硬件广泛支持它,“驻留凭证”将使其成为可能,如本文所述。

同时,您可以将用户 ID 存储在长效 cookie 或浏览器 ( localStorageAPI) 中。由于存在泄漏的风险,您最好存储不透明的标识符。不幸的是,数据可以从浏览器中清除(用户操作、浏览器更新......)并且不如常驻凭证持久性。

于 2019-10-27T08:34:20.317 回答