JWT декодувальник

Декодуйте JSON Web Token (JWT) для перегляду його заголовка, корисного навантаження та підпису. Корисно для налагодження та інспекції JWT токенів, що використовуються в автентифікації та авторизації. Вміст вашого JWT не буде збережено.

Корисне навантаження (твердження):

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

Підпис:

Підпис відображається в кодуванні Base64URL. Перевірка підпису цим інструментом не виконується.

Докладніше про JSON Web Tokens

Формат JWT

JSON Web Token (JWT) — це компактний, URL-безпечний засіб представлення тверджень для передачі між двома сторонами. Він складається з трьох частин, закодованих у Base64URL та розділених крапками: заголовок.навантаження.підпис. Заголовок зазвичай містить тип токена (JWT) та алгоритм підпису. Корисне навантаження містить твердження — інформацію про сутність (зазвичай користувача) та додаткові метадані. Підпис використовується для перевірки того, що повідомлення не було змінено.

JOSE (JSON Object Signing and Encryption)

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 Web Signature (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 Web Encryption (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).

Пов'язані інструменти