JWT中的公钥和私钥治理

时间:2016-07-27 17:20:59

标签: jwt x509certificate

我试图更好地了解JWT以及如何正确使用它。

在常见的JWT用例中(如基于JWT的身份验证或oauth中的JWT访问令牌),验证JWT令牌客户端是否有意义?特别是,我要求它更好地理解JWT签名和加密中涉及的公钥和私钥的要求。如果客户端永远不需要验证JWT签名,那么服务器不需要使其公钥可用。如果这是真的,我甚至不需要一个完整的X.509证书:裸公钥/私钥对或自签名证书就足够了,对吗?

所以这一切归结为一个问题:处理JWT中使用的非对称密钥的正确方法是什么?我是否需要公钥基础结构或者是否足够简单的私钥/公钥对?

据我所知,JWT规格并没有涵盖这一点:但我很想知道真正的JWT使用中的常见做法。

当然这个问题与https中涉及的证书无关:我只是谈论JWT签名和加密中使用的密钥。

1 个答案:

答案 0 :(得分:1)

  

验证JWT令牌客户端是否有意义?

如果使用令牌有效负载数据在客户端执行操作,则需要信任令牌。如果您在服务器中使用令牌进行身份验证,请让服务器验证签名。

  

如果这是真的,我甚至不需要一个完整的X.509证书:裸公钥/私钥对或自签名证书就足够了,对吗?

     

我是否需要公钥基础结构或者是否足够简单的私钥/公钥对?

您可以使用受信任的证书,自签名证书或仅使用RSA密钥对。通常使用自动生成的密钥对。但是,如果您不打算在客户端验证签名,则可以使用HMAC对称密钥(不是不对称的