Декодер JWT

Декодируйте JSON Web Token (JWT) для просмотра заголовка, полезной нагрузки и подписи. Полезно для отладки и проверки JWT токенов, используемых в аутентификации и авторизации. Содержимое вашего JWT не будет сохранено.

Полезная нагрузка (Claims):

Заголовок (Алгоритм подписи и тип токена):

Подпись:

Подпись отображается в виде данных, закодированных в Base64URL. Проверка подписи этим инструментом не выполняется.

Подробнее о JSON Web Tokens

Формат JWT

JSON Web Token (JWT) - это компактный, URL-безопасный способ представления утверждений, передаваемых между двумя сторонами. Он состоит из трёх частей, закодированных в Base64URL и разделённых точками: header.payload.signature. Заголовок обычно содержит тип токена (JWT) и алгоритм подписи. Полезная нагрузка содержит утверждения - заявления о сущности (обычно о пользователе) и дополнительные метаданные. Подпись используется для проверки того, что сообщение не было изменено при передаче.

JOSE (подпись и шифрование объектов JSON)

JWT является частью более широкого фреймворка JOSE (JSON Object Signing and Encryption), который предоставляет стандартизированный способ защиты данных на основе JSON. JOSE включает несколько связанных спецификаций: JWS (JSON Web Signature) для подписанных токенов, JWE (JSON Web Encryption) для зашифрованных токенов, JWK (JSON Web Key) для представления криптографических ключей и JWA (JSON Web Algorithms) для указания криптографических алгоритмов.

JSON-веб-подпись (JWS)

Большинство JWT, с которыми вы сталкиваетесь, являются токенами JWS-они подписаны, но не зашифрованы. Это означает, что любой может прочитать полезную нагрузку, декодировав её из Base64URL, но не может изменить её без аннулирования подписи. JWS обеспечивает целостность и подлинность: вы можете проверить, что токен был выдан доверенной стороной и не был подделан.

Алгоритмы подписи

JWS поддерживает различные криптографические алгоритмы для подписи токенов. Они делятся на две категории: симметричные алгоритмы (один ключ для подписи и проверки) и асимметричные алгоритмы (закрытый ключ для подписи, открытый ключ для проверки).

Алгоритмы HMAC (симметричные)

HS256, HS384 и HS512 используют HMAC (Hash-based Message Authentication Code) с SHA-256, SHA-384 или SHA-512 соответственно. Это симметричные алгоритмы - один и тот же секретный ключ используется как для подписи, так и для проверки токена. Алгоритмы HMAC быстрые и простые, но требуют безопасного распределения ключей, поскольку обе стороны нуждаются в одном секрете.

Алгоритмы RSA (асимметричные)

RS256, RS384 и RS512 используют RSASSA-PKCS1-v1_5 с SHA-256, SHA-384 или SHA-512. PS256, PS384 и PS512 используют RSASSA-PSS (вероятностная схема подписи). Алгоритмы RSA используют закрытый ключ для подписи и открытый ключ для проверки. Это позволяет публично делиться ключом проверки без ущерба для безопасности - идеально для распределённых систем, где несколько сервисов должны проверять токены.

Алгоритмы эллиптических кривых (асимметричные)

ES256, ES384 и ES512 используют ECDSA (Elliptic Curve Digital Signature Algorithm) с кривыми P-256, P-384 или P-521 соответственно. Алгоритмы EC обеспечивают такую же безопасность, как RSA, но с меньшими размерами ключей, что приводит к меньшим подписям и более быстрым операциям. ES256 становится всё более популярным для современных приложений благодаря своей эффективности.

JSON-веб-шифрование (JWE)

В то время как JWS предоставляет подписанные токены, JWE предоставляет зашифрованные токены, где полезная нагрузка конфиденциальна. Токены JWE имеют пять частей вместо трёх: заголовок, зашифрованный ключ, вектор инициализации, зашифрованный текст и тег аутентификации. JWE поддерживает различные алгоритмы шифрования, включая AES-GCM и AES-CBC с HMAC. Обратите внимание, что этот декодер обрабатывает только токены JWS; токены JWE требуют расшифровки с соответствующим ключом.

Спецификации RFC

Стандарты JWT и JOSE определены в нескольких RFC IETF:

  • RFC 7519 определяет JSON Web Token (JWT)
  • RFC 7515 определяет JSON Web Signature (JWS)
  • RFC 7516 определяет JSON Web Encryption (JWE)
  • RFC 7517 определяет JSON Web Key (JWK)
  • RFC 7518 определяет JSON Web Algorithms (JWA).

Связанные инструменты