security - key 中包含用户密码的 JWT

标签 security jwt signing

我想在我的应用程序中使用 JWT。
现在我想知道将用户密码与私有(private) secret 结合使用作为签署我的 token 的 key 是否安全。这样,如果用户更改他/她的密码, token 就会失效。
但也许它让我的私有(private) secret 变得脆弱?
感谢您对此的想法!

最佳答案

secret 是客户端和服务器之间交换的预共享字符串。
所以在你的情况下:

         SecretString= PresharedSecret + ClientPassword

因此,每次客户端传递 JWT token 时,您都需要从数据库中检索密码或通过某种方式预加载密码并检查密码更改以验证 token 。

这可能会导致以下情况:
  • 每次客户忘记密码时,您可能需要进行代价高昂的数据库调用
  • 它将以一种方式增强安全性,因为任何更改密码的人都将无法在知道以前的 SecretString 的情况下与服务器通信。
    需要确定一个新的预共享 secret ......并使用新的注册密码进行验证。

  • 总的来说,它确实增加了安全性。但是,这取决于基础设施的目的或用途。如果它是一个用户经常忘记密码的系统。这可能不是一个很好的选择。

    关于security - key 中包含用户密码的 JWT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47056285/

    相关文章:

    authentication - 微软 Owin UseJwt

    node.js - 如何使用express检查 Node 中的jwt登录

    用于在浏览器中签署表单数据的 Javascript 加密库

    c# - 每个项目都应该使用单独的强名称 key (.snk) 进行签名吗?

    security - 带有充气城堡的 scala 中的 AES-256 加密工作流程 : salt and IV usage and transfer/storage

    spring - 我可以在 Apache Shiro 安全注释中使用表达式吗?

    c# - 为多个 API 调用重用不记名 token

    signing - 签署 msi 文件时出现 SignTool 错误 : SignerSign() failed. "(-2147024885/0x8007000b)

    jquery - 从 jQuery 安全地调用安全的 WebService

    java - 如何安全地向要启动的后台应用程序提供敏感信息(例如密码)?