JWT键 - 不对称和对称

问题描述 投票:12回答:2

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

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

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

谢谢

jwt signature encryption-asymmetric
2个回答
19
投票

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

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


1
投票

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


0
投票

没有人会加密JWT的有效载荷。这一切都与签名有关! RSA或ECDSA(两个不对称)签名只需使用puiblic密钥进行验证,对于symetric签名签名,您需要一个身份验证服务。

最常见的JWT签名算法:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.