Українська

Інструменти розробника · JWT декодер

Анатомія JWT: Розщеплення на точках і декодування base64url

· Як працює

Опубліковано ToolAcre · Рецензування журналу

свінгери коди безпека

Трьох JWT сегменти наклеєного заголовка, завантаження та підпис
Головна ToolAcre векторна ілюстрація

Р JWT три базові64url сегменти, відокремлені точками. Цей пост декодує кожну частину вручну, пояснює, чому сегмент підпису не є текстом, і показує, що декодер може і не може розповісти вам.

Довгий рядок в заголовку авторизації — що ви шукаєте і чому він має рівно два точки

Ведмедя токена часто прибуває в заголовку авторизації як компактний, dot-separated string. Типовий підписаний JWT ущільнення JWS форма має три сегменти і тому дві відокремлені точки. Активний жетон - це критичний: не вклейте токени виробництва в демонстрацію.

Компактна послідовність — заголовок, перевантаження та підпис як три базові64 виворітні сегменти

В компактному JWS послідовність першого сегмента - захищений заголовок, другий - це завантаження, а третій - підпис або MAC. Підпис охоплює кодовані перші два сегменти, що долучаються до точки. Розщеплення рядка розташовує сегменти; не можна встановити довіру.

Base64url без накипу — абетка JWS використання і чому сегменти не мають причіпних знаків

Base64url використовує - і на місці + і / в звичайному base64. Компактний JWS omits причіп = накидка; декодер може відновити начинки перед декодуванням. Декодування виробляє байти. Для JSON заголовок і претензій, декодування байтів як UTF-8 перед оформленням тексту.

Заголовок — невеликий JSON об'єкт, що використовується алгоритмом і, часто, ключ

Головний редактор зазвичай JSON містить alg і іноді ключовий ідентифікатор, дитина. Ці затвердження, зроблені самим токеном. Вивержувач повинен виконувати свою власну допущену політику і надійно отримувати відповідний ключ; читання алг не авторизація.

Завантажити — JSON об'єкт претензій, що читаються будь-яким, хто тримає токен

Завантажувальний вантаж містить такі вимоги, як суб, обтяження та ауд. Будь-який холдинг Token може читати їх; кодування не є шифруванням. Унікс епоху немає повноважень. Не зберігайте секрети в читабельному перевантаженні.

Припис — сирі байти над першими двома сегментами, безглуздими як текст і без використання без ключа

Останній сегмент - підпис байтів, зашифровані в base64url, не третій JSON об'єкт. Перевірка вимагає криптографічного алгоритму, ключової та прикладної політики. ToolAcre навмисно не виконує перевірку: він звітує про наявність підпису і завжди відзначає підпис.

Розроблений приклад — декодування сегмента токени за сегментом, включаючи JSON з'являється

Візьміть нечутливий демонстраційний заголовок {"alg":"HS256","typ":"JWT"} і завантажити {"sub":"demo"}. Їхня база64url кодування є eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 і eyJzdWIiOiJkZW1vIn0. Випадковий відновлюється JSON. Затвердження довільного третього сегмента не робить токени автентичним.

Похід: декодування читання, не довіряє — ToolAcre JWT декодер показує заголовок і вивантаження, і ніколи не виправдає підпис, тому нічого не показує доводить, що токена є справжньою

Декодування читання, не довіряє. Використання ToolAcre JWT декодер для заголовка кишенят, претензій та попередження; використовувати довірений вивержувач програми, щоб визначити, чи є підписаний токен. Відображаються претензії, які не мають доступу.