我了解 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/