JWT键 - 不对称和对称

时间:2015-10-02 05:22:29

标签: jwt signature encryption-asymmetric

我理解对称和非对称密钥之间的区别。我知道密钥用于计算签名然后验证它们。然而,潜水更深一点,我想了解更多,我在网上找不到。

给消费者的钥匙是否验证了内容?如果使用对称密钥,是否会让消费者能够更改JWT内容?

使用非对称密钥时,使用私钥或公钥计算签名?消费者是否获得公钥/私钥?

由于

3 个答案:

答案 0 :(得分:18)

对称密钥只能以对等方式使用,因此接收方修改JWT是没有意义的,只有他和发送方拥有共享密钥(并且他是预期的接收方)。 / p>

非对称密钥签名(在JWT中以及一般情况下)由发送方使用私钥生成,并由接收方使用公钥进行验证。消费者/接收者只获得out_of_band(即通过另一种通信方式而不是用于交换安全数据的通信方式)的公钥。

答案 1 :(得分:1)

使用发件人的私钥签名的非对称JWT(JWS),令牌的接收者基本上接收明文中的有效负载(标题/声明) base64编码。这就是他们需要在安全套接字层(SSL)环境中传输的原因。为验证收到的签名,接收方使用公钥重新计算收到的有效负载的签名。如果两个签名,收到的签名和计算签名不匹配,则Payload无法信任 - 它无效 因此,这样的非对称JWS将成为包含敏感"索赔的好方法。例如社会保险号,因为有效负载的内容未加密。 在JWT中包含这样的敏感数据可以使用Json Web令牌加密的JWE。在JWE中,整个Payload都是加密的。

答案 2 :(得分:0)

没有人会加密JWT的有效载荷。全部都是关于签名的! 只需使用公共密钥即可验证RSA或ECDSA(两种不对称)签名,对于对称签名的签名,您需要身份验证服务。

最常用的JWT签名算法:

HMAC + SHA256
RSASSA-PKCS1-v1_5 + SHA256
ECDSA + P-256 + SHA256

查看更多https://tools.ietf.org/html/rfc7518#section-3

相关问题