使用 RSA、私钥和 Public 密钥的 Nimbus JOSE JWT 加密
Nimbus JOSE JWT Encryption with RSA, Private and Public Key
对名为 "JSON Web Token (JWT) with RSA encryption"
的示例代码中应用的概念有疑问
参考:http://connect2id.com/products/nimbus-jose-jwt/examples/jwt-with-rsa-encryption
示例代码提供了一个 RSAEncrypter
class,它基于 public 键的使用,以及一个 RSADencrypter
class,它使用相反,私钥。
从更实际的角度来看,我无法理解为什么要以这种方式生成 JSON Web Token,因为加密信息通常会使用 JWE 格式发送到客户端。同时,客户端从共享源(如数字证书存储或 JWK 存储)中提取 public 密钥,然后从 JWE 数据中解密信息。
我的问题:为什么客户端要使用私钥?为什么不在加密器中使用私钥而在解密器中使用 public 密钥 class?
欢迎澄清此 RSA 示例代码的概念方面。
如示例中所述,加密的 objective 是机密性:确保数据仅由预期的接收者读取
An essential security aspect in public key encryption is ensuring the data is encrypted for the intended recipient, and not some for other party, which may compromise the data’s confidentiality.
A JSON 为各方之间的身份验证而颁发的 Web 令牌未加密,是使用私钥进行数字签名的。另一方可以使用已发布的 public 密钥验证真实性和完整性。但内容并未隐藏。观察者可以阅读消息但不能修改它。
加密是使用收件人的 public 密钥完成的。只有匹配私钥的所有者才能解密 JWT 的内容。由于使用 RSa 密钥加密的数据的大小限制,示例中生成了 AES symmetryc 加密密钥。消息将使用 AES 密钥加密,此密钥使用 RSA public 密钥加密并嵌入到 JWT 中。收件人将使用 RSA 私钥解密 AES 密钥
对名为 "JSON Web Token (JWT) with RSA encryption"
的示例代码中应用的概念有疑问参考:http://connect2id.com/products/nimbus-jose-jwt/examples/jwt-with-rsa-encryption
示例代码提供了一个 RSAEncrypter
class,它基于 public 键的使用,以及一个 RSADencrypter
class,它使用相反,私钥。
从更实际的角度来看,我无法理解为什么要以这种方式生成 JSON Web Token,因为加密信息通常会使用 JWE 格式发送到客户端。同时,客户端从共享源(如数字证书存储或 JWK 存储)中提取 public 密钥,然后从 JWE 数据中解密信息。
我的问题:为什么客户端要使用私钥?为什么不在加密器中使用私钥而在解密器中使用 public 密钥 class?
欢迎澄清此 RSA 示例代码的概念方面。
如示例中所述,加密的 objective 是机密性:确保数据仅由预期的接收者读取
An essential security aspect in public key encryption is ensuring the data is encrypted for the intended recipient, and not some for other party, which may compromise the data’s confidentiality.
A JSON 为各方之间的身份验证而颁发的 Web 令牌未加密,是使用私钥进行数字签名的。另一方可以使用已发布的 public 密钥验证真实性和完整性。但内容并未隐藏。观察者可以阅读消息但不能修改它。
加密是使用收件人的 public 密钥完成的。只有匹配私钥的所有者才能解密 JWT 的内容。由于使用 RSa 密钥加密的数据的大小限制,示例中生成了 AES symmetryc 加密密钥。消息将使用 AES 密钥加密,此密钥使用 RSA public 密钥加密并嵌入到 JWT 中。收件人将使用 RSA 私钥解密 AES 密钥