You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用WebAuthn保护浏览器LocalStorage?

用WebAuthn保护浏览器本地存储的加密密钥方案

完全可以通过WebAuthn保护浏览器本地存储的密钥,以下是落地思路和关键步骤:

  • 核心逻辑:WebAuthn作为身份验证的"门禁",只有通过生物特征验证的用户,才能解锁本地存储的加密私钥。WebAuthn本身不负责加密解密,但可以通过验证后的身份权限,控制私钥的访问权限。

  • 具体实现步骤:

    1. 生成加密密钥对:
      用window.crypto.subtle.generateKey生成RSA-OAEP类型的密钥对(该算法专门用于加密解密场景)。公钥可以直接用来加密需要存储的数据,私钥则导出为PKCS#8格式,准备加密后存储。
    2. 加密私钥并绑定WebAuthn验证:
      用户首次完成WebAuthn登录验证后,利用验证成功的上下文生成一个AES对称密钥,用这个AES密钥加密私钥,再将加密后的私钥存入IndexedDB(比localStorage更适合存储敏感数据)。
    3. 后续私钥复用流程:
      • 用户需要访问加密数据时,先触发WebAuthn生物特征验证
      • 验证通过后,重新生成对应的AES解锁密钥(或通过WebAuthn签名验证身份后解密存储的AES密钥)
      • 用AES密钥解密出本地存储的私钥,完成数据解密操作,操作结束后立即销毁内存中的私钥
  • 关键注意点:

    • 绝对不能明文存储私钥,必须通过WebAuthn关联的加密机制加密后再存储
    • 区分WebAuthn的签名算法(如ES256)和加密算法(如RSA-OAEP)的用途,不要混用
    • 定期清理过期的WebAuthn凭证和本地存储的加密数据,避免冗余和安全风险

内容的提问来源于stack exchange,提问作者Michael Chourdakis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 18:45:29