在我看来,JWT 的主要优点是任何客户端都可以阅读声明并验证您是生成它们的人。但是,如果您使用对称密钥来计算签名,那么客户端必须知道您的签名密钥才能验证 JWT,此时他们可以生成他们想要的任何声明。为什么有人会选择对称算法而不是非对称算法?
一位用户对另一个问题的回答是:
对称密钥只能以点对点的方式使用,因此接收者修改只有他和发送者拥有共享密钥的 JWT 是没有意义的
如果通信是点对点的,那么他们一定在某个时刻使用安全协议来交换密钥,那么在这种情况下 JWT 有什么用呢?
我问这个问题的原因是因为我见过的大多数在 ASP.Net 中实现基于 JWT 的安全性的示例都使用对称密钥。
令牌并不总是需要由客户端验证。
例如,在基本的 Asp.Net 应用程序中,服务器既充当身份验证服务器又充当授权服务器:
在此示例中,如果客户端通过单独的方式(例如 TLS/SSL)验证服务器的真实性,则客户端不需要验证服务器返回的令牌。这种情况下服务器使用对称加密算法是没有问题的。
归档时间: |
|
查看次数: |
2008 次 |
最近记录: |