跳到主要内容
ecdsa.com

ECDH-ES(JWE 密钥协商)

RFC 7518 §4.6 定义的一类 JWE 密钥管理算法:发送方生成临时 EC 密钥,与接收方的静态密钥协商出秘密值,再用 Concat KDF 派生内容密钥。
其他写法ECDH-ESECDH-ES+A256KWepkConcat KDF

在直接模式(alg: ECDH-ES)下,派生出的密钥就是内容加密密钥,JWE 的加密密钥部分为空;在包装模式(ECDH-ES+A128KW、+A192KW、+A256KW)下,派生密钥用于包装随机的 CEK,因此可以有多个接收方。头部携带临时公钥 epk,以及可选的 apu 和 apv(参与方信息),它们与算法名称和密钥长度一起输入 KDF(§4.6.2)。允许使用 P-256、P-384、P-521,以及通过 RFC 8037 引入的 X25519 和 X448。

接收方必须校验 epk:2017年,多个 JOSE 库接受了不在曲线上的点,攻击者可以借助无效曲线查询恢复接收方的私钥(RFC 8725 §2.5)。ECDH-ES 不能向接收方证明消息由谁发送;如果这一点很重要,应先签名(嵌套 JWT)。HPKE(RFC 9180)是更现代的通用方案,JOSE 也正在开展采用 HPKE 的标准化工作。

标准与参考资料

全部术语