随机生成的内容加密密钥(CEK)用 A256GCM 或 A128CBC-HS256 等 AEAD 算法(enc)加密载荷;CEK 通过密钥管理算法(alg)送达接收方:RSA-OAEP-256、ECDH-ES(直接密钥协商,加密密钥部分为空)或 ECDH-ES+A256KW、使用共享对称密钥的 A256KW,或用于预共享 CEK 的 dir。受保护头部是 AEAD 的关联数据,因此无法被篡改。
使用 ECDH-ES 或 RSA-OAEP 时,JWE 对接收方提供机密性,但不提供发送方身份验证:任何持有公钥的人都能生成 JWE。嵌套 JWT 先签名,再加密已签名的 JWT,并把 cty 设为 JWT。已知的陷阱有:ECDH-ES 中的无效曲线点(要校验 epk)、可被用于拒绝服务的超大迭代次数 PBES2,以及 RSA1_5 填充预言(padding oracle)攻击;RFC 8725 列出了相应的缓解措施。
大多数 API 根本不需要 JWE,因为 TLS 已经保护了信道;JWE 适用于要经过不受信任的中间方或由客户端存储的令牌。JWE 查看器可以在不解密的情况下显示头部和结构。