gpt4 book ai didi

node.js - 如何安全地存储和处理 JWT 的 key

转载 作者:搜寻专家 更新时间:2023-10-31 22:32:45 24 4
gpt4 key购买 nike

看完这篇:JWT: What's a good secret key, and how to store it in an Node.js/Express app? ,关于如何存储“ key ”以分配 JWT token 。我有安全问题。我的数据(消息、用户名等)将被加密(在数据库中),只有授权用户才能解密(基于他们的私钥)。由于 JWT token 是使用存储在服务器上的 1 个“ secret key ”生成的,以防攻击者获得“ secret key ”并获得数据库 - token 可以被伪造,因此可以绕过“密码”解密数据,这使得加密毫无意义。为了保护“秘钥”,我可以使用这些方法

Method 1



将“ key ”存储在单独的服务器(如 HSM)上,该服务器将在登录期间接收,然后用于设置 token

Method 2



为每个用户加密某种盐并将其用作“ key ”

我想听听你的想法和想法。 Facebook 或推特是如何做到的?我真的需要 HSM 来存储用于加密的私钥还是有某种替代方法(例如:安全文件系统)?

最佳答案

取决于你的风险偏好。您使用 JWT 的事实表明您的系统不是一个高安全性系统(JWT 不能很容易地在服务器端撤销,因此不适合高度安全的应用程序)。

HSM 是一个不错的选择,尽管您需要将其缓存在内存中以验证每个后续页面请求,除非您使用 RSA 算法。

考虑到外部攻击者无法任意访问存储在您服务器上的文件,文件系统可能“足够安全”。

拥有每个用户的 key 在某种程度上违背了拥有客户端 session 状态机制的目标,因为您必须在数据库中的每个请求上查找此 key 。

另见 Are JWTs a secure option for user authentication?

还有this question .

关于node.js - 如何安全地存储和处理 JWT 的 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37972285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com