为什么客户端需要解密JWE?

时间:2017-07-18 15:47:43

标签: jwt jwe jose

如果我使用JWE发送加密的JSON消息(将存储在客户端)以供授权使用,为什么客户端需要解密此消息?

客户端将JWE令牌附加到所有请求。服务器使用JWE令牌识别客户端并响应或拒绝请求。在整个过程中,只有服务器才能解密。

如果这种结构没有问题,那么实施它的最佳方法是什么?我应该使用非对称加密而不提供公钥(这是否可以在JWE规范中实现)?

沿着这些方向,确保JWE令牌没有被截获的最佳方法是什么,虽然没有解密,但是附加到恶意服务器请求,有效地允许攻击者冒充客户端? / p>

此外,我还有其他任何安全隐患吗?

1 个答案:

答案 0 :(得分:2)

  

如果我使用JWE发送加密的JSON消息(将存储在客户端)以供授权使用,为什么客户端需要解密此消息?

当客户端需要读取JWT中包含的一些数据时,例如用户ID或过期日期。在所有情况下都不需要这样做。

  

客户端将JWE令牌附加到所有请求。服务器使用JWE令牌识别客户端并响应或拒绝请求。

是的,这是通常的授权流程

  

自始至终,只有服务器才能解密。

不一定。服务器可以使用收件人的公钥加密加密密钥,例如使用RSAES-OAEP。然后收件人将能够使用他的私钥解密JWT

  

如果这个结构没有问题,实施它的最佳方法是什么?我应该使用非对称加密而不提供公钥(这是否可以在JWE规范中实现)?

这取决于您的要求。如果您希望客户端可以解密JWT,您需要提供密钥或使用不对称加密并将消息加密到收件人

  

沿着这些方向,确保JWE令牌没有被截获的最佳方法是什么,虽然没有解密,但是附加到恶意服务器请求,有效地允许攻击者冒充客户端?

JWT的使用是身份验证的证明。如果令牌被盗,则攻击者可以冒充用户。所以你需要保护它以降低风险:

  • 主要使用HTTPS 加密通讯渠道

  • 在客户端安全地存储