Перейти к содержимому
ecdsa.com

ECDH-ES (согласование ключей в JWE)

Семейство алгоритмов управления ключами JWE из RFC 7518, § 4.6: отправитель генерирует эфемерный 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 принимали точки, не лежащие на кривой, и атакующий мог восстановить закрытый ключ получателя запросами с точками недопустимой кривой (invalid curve, RFC 8725, § 2.5). ECDH-ES не даёт получателю никакого доказательства того, кто отправил сообщение; если это важно, сначала подпишите сообщение (вложенный JWT). HPKE (RFC 9180) — современное обобщение этой схемы, и в JOSE уже идёт работа над его применением.

Стандарты и ссылки

Все термины