【发布时间】:2018-11-28 15:11:08
【问题描述】:
所以我的理解是,JWT 是由服务器使用私钥签名的,并且通过将公钥解密签名与服务器和客户端两者/任何一个的标头 + 有效负载进行比较来验证其合法性:
令牌由一方的私钥签名(通常是 服务器的),以便双方(另一方已经存在,由一些 合适且值得信赖的手段,拥有相应的 公钥)能够验证令牌是否合法。1
我只是想知道客户端需要什么来验证 JWT 的真实性?我知道 SSL 使用相同的机制,在这种情况下,客户端验证对我来说很有意义,因为证书包含客户端用来加密初始握手的公钥。但我很难理解公共可验证性在 JWT 的情况下有什么好处。如果 JWT 是非法的,它无论如何都会在服务器上失败,并且客户端除了将它附加到请求上之外并没有做任何特别的事情。
仅仅在服务器上使用一些私有盐进行散列不能满足它的目的吗?服务器通过使用相同的盐对有效负载进行散列并与签名进行比较来进行验证。这种情况下,只有服务端可以验证,那又怎样?
【问题讨论】:
标签: security jwt digital-signature public-key-encryption