如果我使用JWE发送加密的JSON消息(将存储在客户端)以供授权使用,为什么客户端需要解密此消息?
当客户端需要读取JWT中包含的一些数据时,例如用户ID或到期日期。在所有情况下都不需要这样做。
客户端将JWE令牌附加到所有请求。服务器使用JWE令牌识别客户端并响应或拒绝请求。
是的,这是通常的授权流程
在整个过程中,只有服务器才能解密。
不必要。服务器可以加密 的 加密密钥 强> 使用收件人的公钥,例如使用RSAES-OAEP。然后,收件人将能够使用他的私钥解密JWT
如果这个结构没有问题,那么实现它的最佳方法是什么?我应该使用非对称加密而不提供公钥(这是否可以在JWE规范中)?
这取决于您的要求。如果您希望客户端可以解密JWT,您需要提供密钥或使用不对称加密并将消息加密到收件人
沿着这些方向,确保JWE令牌没有被截获的最佳方法是什么,虽然没有解密,但是附加到恶意服务器请求,有效地允许攻击者冒充客户端?
JWT的遗留是认证证明。如果令牌被盗,则攻击者可以冒充用户。所以你需要保护它以降低风险:
的 主要使用HTTPS 强> 加密通信信道
的 安全存放 强> 在客户端上。