2016-12-27 237 views
1

约“与RSA加密JSON网络令牌(JWT)”雨云JOSE JWT加密与RSA,私钥和公钥

名为示例代码应用了概念参考文献见有此疑惑:http://connect2id.com/products/nimbus-jose-jwt/examples/jwt-with-rsa-encryption

示例代码提供基于使用公钥的RSAEncrypter类,以及使用相反的私钥的RSADencrypter类。

从更实际的角度来看,我无法理解为什么JSON Web Token是以这种方式生成的,因为加密信息通常会使用JWE格式发送到客户端。同时,客户端从共享源(如数字证书存储或JWK存储)提取公钥,然后解密来自JWE数据的信息。

我的问题:为什么客户端使用私钥?为什么不使用Encrypter的私钥和Decrypter类的公钥呢?

有关此RSA示例代码的概念方面的说明是受欢迎的。

回答

3

的加密如示例中所述的目标,是保密性:确保数据仅由预期的接收器

在公开密钥加密的一个基本的安全性方面是,确保数据的被加密读预期的收件人,而不是一些其他人,这可能会损害数据的机密性。

为各方之间的身份验证颁发的JSON Web令牌未加密,使用私钥进行数字签名。另一方可以用公开的公钥验证真实性和完整性。但内容不隐藏。观察员可以阅读该消息但不能对其进行修改。

使用收件人的公钥完成加密。只有匹配私钥的所有者才能够解密JWT的内容。由于用RSa密钥加密的数据的大小限制,本例中生成了AES对称加密密钥。该消息将使用AES密钥进行加密,并且使用RSA公钥对该密钥进行加密并嵌入到JWT中。收件人将使用RSA专用密钥解密AES密钥

+0

感谢您澄清有关RSA密码主体的概念视图,即使其与JWE一起实施会带来一些挑战。安全地分发和存储在RESTful对等通信的最终解密步骤中使用的私钥。 –

+0

我可以得到整个过程的Java示例代码吗? – basari66

+0

查看网站的示例页面:https://connect2id.com/products/nimbus-jose-jwt/examples – pedrofb