什么时候使用对称密钥签署 JWT 比非对称密钥更有用?

And*_*son 8 encryption jwt

在我看来,JWT 的主要优点是任何客户端都可以阅读声明并验证您是生成它们的人。但是,如果您使用对称密钥来计算签名,那么客户端必须知道您的签名密钥才能验证 JWT,此时他们可以生成他们想要的任何声明。为什么有人会选择对称算法而不是非对称算法?

一位用户对另一个问题的回答是:

对称密钥只能以点对点的方式使用,因此接收者修改只有他和发送者拥有共享密钥的 JWT 是没有意义的

如果通信是点对点的,那么他们一定在某个时刻使用安全协议来交换密钥,那么在这种情况下 JWT 有什么用呢?

我问这个问题的原因是因为我见过的大多数在 ASP.Net 中实现基于 JWT 的安全性的示例都使用对称密钥。

And*_*son 2

令牌并不总是需要由客户端验证。

例如,在基本的 Asp.Net 应用程序中,服务器既充当身份验证服务器又充当授权服务器:

  • 服务器创建令牌并在用户登录时将其提供给用户
  • 用户通过每个请求将该令牌发送回服务器
  • 服务器验证token,并对用户进行授权

在此示例中,如果客户端通过单独的方式(例如 TLS/SSL)验证服务器的真实性,则客户端不需要验证服务器返回的令牌。这种情况下服务器使用对称加密算法是没有问题的。