使用WebAuthn在桌面浏览器中进行自动身份验证

时间:2018-09-16 22:14:56

标签: authentication webauthn

在Google I / O '18上展示了一个演示,其中用户仅通过提供指纹即可在PayPal进行身份验证(请参见YouTube 24:40)。这是在具有指纹传感器的智能手机上运行的浏览器中完成的,并且要求浏览器实现WebAuthn标准。指纹会解锁用于挑战响应身份验证并存储在身份验证器上的私钥。

据我了解,可以通过将userVerification参数设置为discouraged来禁用用户交互(即要求指纹)(请参阅w3.org)。用户将自动登录。

是否可以在没有任何额外硬件的情况下在桌面浏览器上实现此流程?浏览器中是否存在可用于此目的的默认身份验证器?

具体来说,我想这样做:

  • 通过WebAuthn在桌面浏览器中注册公钥/私钥对,以使私钥无法通过JavaScript进行访问(例如,以缓解XSS攻击)
  • 每次将数据发送到服务器时,都会通过WebAuthn API使用存储在“默认”身份验证器中的私钥对数据进行签名,而无需用户交互

1 个答案:

答案 0 :(得分:1)

  

是否可以在没有任何额外硬件的情况下在桌面浏览器上实现此流程?浏览器中是否存在可用于此目的的默认身份验证器?

Chrome和可能大多数浏览器都可以生成一个公钥-私钥对,并将其用于身份验证。但是,在电话等情况下,不受专用硬件保护的密钥的安全性充其量是非常可疑的。

首选解决方案是使用USB令牌,例如YubiKey。其中大多数确实需要交互,即按下令牌上的按钮,以防止恶意软件在用户不知情的情况下使用它,但是您可能会找到一个不需要的软件,或者可能会找到一个允许您使用的软件。修改其固件并禁用此要求。