encryption - WebauthN 和 Yubikey 用于在浏览器中生成对称加密 key 。这个黑客安全吗?

标签 encryption webauthn fido yubico yubikey

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

这是我的方法:

  • 在断言质询 (navigator.credentials.get({ publicKey })) 期间,Yubikey 会对客户端发送给身份验证器的质询字符串进行签名。
  • 我提取签名的质询,使用 SHA256 对其进行哈希处理,并将其用作 AES256 加密的新对称加密 key 。
  • 只要向 Yubikey 发送相同的质询字符串,加密 key 就始终相同。

为了能够解密网络浏览器上的内容。我必须拥有 Yubikey 和质询字符串才能进行两因素身份验证。

这种方法有什么问题吗?

最佳答案

为什么不使用 Web Crypto API

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

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

但是,您的 Yubikey 肯定能够 generating a secured static password您可以用作主 key you will derive加密/解密您的数据。

关于encryption - WebauthN 和 Yubikey 用于在浏览器中生成对称加密 key 。这个黑客安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70131030/

相关文章:

android - AES 加密数据库条目大小

encryption - 如何为我的加密子播放列表(使用 ffmpeg 创建)创建主 m3u8 播放列表?

security - 您使用哪种哈希方法(MD5、SHA1、其他?)

Java MessageDigest 结果不会保持不变

javascript - WebAuthN 是否可以查看可用的平台验证器?

android - FIDO2 - 获取身份验证器信息问题

security - 使用 WebAuthN 可以拒绝某些类型的身份验证方法 FIDO2)

javascript - 通过 WebAuthn API 识别手指 ID

webauthn - 如何让浏览器识别我的 FIDO2 身份验证器?

webauthn - key 句柄和凭证 ID 之间的区别