WebauthN 和 Yubikey 为浏览器中的对称加密生成密钥。这个黑客安全吗?

WebauthN and Yubikey to generate keys for symmetric encryption in a browser. Is this hack secure?

我知道 WebauthN 旨在执行身份验证,但我想使用我的 Yubikey 创建对称加密密钥来加密我的 Web 浏览器上的内容 而不 依赖后端服务器。

这是我的方法:

为了能够在网络浏览器上解密内容。我必须拥有 Yubikey 和 2 因素身份验证的挑战字符串。

这种做法有什么问题吗?

你为什么不使用 Web Crypto API

此 API 专为客户端的密码操作而设计,适用于您的用例(客户端加密)。是supported by all recent browsers.

请注意,您可能主要担心的是 此 API 不支持硬件设备(智能卡、安全令牌...).

但是,您的 Yubikey 肯定能够 generating a secured static password you can use as a master key you will derive 到 encrypt/decrypt 您的数据。

也许您可以利用 hmac-secret 扩展 (https://fidoalliance.org/specs/fido-v2.0-rd-20180702/fido-client-to-authenticator-protocol-v2.0-rd-20180702.html#sctn-hmac-secret-extension)?

没有。由于以下原因,这是一个坏主意:

  • RS256/ES256 不是确定性签名。所以你每次都会得到一个新的随机签名。
  • 即使可以,也有 XSS 之类的东西,很快就会被破解。
  • 如上所述使用加密 API。
  • HMAC-Secret 目前是为平台保留的。您无法通过 WebAuthn API.
  • 访问它
  • 未来会有大blobs功能,还有largeBlobsKey...但是这是一个很长的未来...