如何解决如何保护 indexedDB 中不可提取的密钥?
我使用加密 API 在 AES-GCM 中加密了数据。然后将初始化向量添加到数据中,形成存储在本地存储中的唯一加密字符串。最后,秘钥存储在IndexedDB中。
由于密钥是不可提取的,我认为它对于大多数用例来说已经足够安全了。据我了解,攻击者必须抢夺本地存储和索引数据库,在数据中找到初始化向量,将其转换为缓冲区数组,然后在将数据发送回他的服务器之前直接在浏览器中执行解密.事实上,密钥的不可提取性质似乎意味着他无法将原始密钥发送到他的服务器,从而无法完成解密。
但有人告诉我我错了,我的策略实际上比让所有数据在本地存储中直接读取更安全。
那么,我该如何改进这个工作流程?真的那么没有安全感吗?由于用户提供的唯一密码,是否可以加密和解密密钥?密码将在 .env 文件中,因此永远不会暴露给攻击者。你会怎么做?
到目前为止,密钥是如何生成的:
crypto.subtle.generateKey(
{ name: "AES-GCM",length: 256 },false,["encrypt","decrypt"]
);
感谢您的帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。