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

JWS (JSON Web Signature)

Формат JOSE из RFC 7515 для содержимого с подписью или MAC, параметры которых описаны в JSON; сериализуется компактно как header.payload.signature или в виде JSON с несколькими подписями.
Другие написанияJSON Web SignatureRFC 7515compact JWS

Входные данные подписи — ASCII(base64url(protected header) ‖ "." ‖ base64url(payload)), и подпись или MAC вычисляется ровно над этими байтами, поэтому повторное кодирование заголовка или полезной нагрузки делает её недействительной. Компактная сериализация (§ 3.1, § 7.1) несёт одну подпись и защищённый заголовок; JSON-сериализация (§ 7.2) допускает несколько подписей и незащищённые поля заголовка.

Параметры заголовка (§ 4.1): alg (обязательный), kid, typ, cty, crit, а также поля, передающие ключ, jwk, jku, x5c, x5u, x5t и x5t#S256, на которые никогда нельзя полагаться как на единственное основание для выбора ключа проверки подписи. RFC 7797 добавляет b64: false для незакодированной полезной нагрузки; этот параметр используют отсоединённые подписи, например в заголовке x-jws-signature в Open Banking.

Почти любой JWT, который вам встретится, оказывается JWS; запросы ACME, доказательства DPoP, подписи издателя SD-JWT и многие подписи вебхуков тоже представляют собой JWS.

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

Все термины