我理解对称密钥和非对称密钥之间的区别。我知道密钥是用来计算签名,然后验证它们的。但是深入一点,我想了解更多一些我在网上很难找到的东西。
是否将密钥提供给消费者以验证内容?如果使用对称密钥,消费者不是可以更改JWT内容吗?
当使用非对称密钥时,签名是用私钥还是公钥计算的?消费者是否获得了公钥/私钥?
发布于 2015-10-02 14:44:49
对称密钥只能以点对点的方式使用,因此对于接收方来说,修改只有他和发送方拥有共享密钥的JWTs是没有意义的(并且他是预期的接收方)。
非对称密钥签名(在JWT中以及一般情况下)由发送方使用私钥生成,并由接收方使用公钥进行验证。消费者/接收者只被给予公钥,这发生在out_of_band (即,通过另一种通信方式,而不是您用来交换安全数据的方式)。
发布于 2019-08-27 03:29:38
没有人会加密JWT的有效负载。这都是关于签名的!RSA或ECDSA (两者都是非对称的)签名可以只用一个公钥来验证,对于对称签名,你需要一个auth-service。
最常见的JWT签名算法:
HMAC + SHA256
RSASSA-PKCS1-v1_5 + SHA256
ECDSA + P-256 + SHA256
https://stackoverflow.com/questions/32900998
复制相似问题