UltKit

JWT dekóder

Vložte JSON Web Token a prečítajte si jeho hlavičku a payload ako formátovaný JSON. Čas vypršania a vydania sa zobrazí ako dátum spolu s informáciou, či je token práve platný. Dekódovanie prebieha úplne vo vašom prehliadači, čo je dôležité, ak ide o aktívne prihlasovacie údaje.

0 znakov · 0 slov · 0 riadkov

0 znakov · 0 slov · 0 riadkov

Všetko prebieha priamo v tejto karte prehliadača. Váš text sa nikdy nenahráva ani neukladá.

Registrované claimy

Sedem názvov claimov definovaných v RFC 7519 §4.1. Všetky sú voliteľné; časy sú v sekundách od 1970-01-01 UTC.

ClaimVýznam
issVydavateľ: kto token vytvoril a podpísal
subSubjekt: používateľ alebo entita, ktorej sa token týka
audPublikum: komu je token určený
expČas vypršania: po tomto okamihu token odmietnuť
nbfPlatí od: pred týmto okamihom token odmietnuť
iatVydaný: kedy bol token vytvorený
jtiID JWT: jedinečný identifikátor, slúži proti opakovanému použitiu

Bežné hodnoty alg

Hodnota algVýznam
HS256HMAC so SHA-256; jedno zdieľané tajomstvo podpisuje aj overuje
RS256Podpis RSA PKCS#1 v1.5 so SHA-256; súkromný kľúč podpisuje, verejný overuje
PS256RSA-PSS so SHA-256
ES256ECDSA na krivke P-256 so SHA-256; krátke podpisy
EdDSAPodpisy Ed25519 alebo Ed448
noneNepodpísaný token; servery by ho mali odmietnuť

Čo obsahuje JSON Web Token

JWT je definovaný v RFC 7519 (máj 2015), ktorý odporúča vyslovovať ho ako anglické slovo „jot“. Bežná podpísaná podoba sú tri reťazce Base64url spojené bodkami: header.payload.signature. Hlavička (header) uvádza podpisový algoritmus v poli alg, napríklad HS256 alebo RS256, a často aj ID kľúča v kid. Payload obsahuje claimy, teda polia JSON ako sub (používateľ), iss (vydavateľ), aud (zamýšľané publikum) a exp, nbf a iat, čo sú časy v sekundách od 1. januára 1970 UTC. Dekodér tieto tri hodnoty prevedie na váš miestny čas a ISO 8601 a povie vám, či platnosť tokenu vypršala, či ešte nie je platný, alebo je v rámci svojho okna platnosti.

Base64url je kódovanie, nie šifrovanie, takže ktokoľvek, kto má token, si môže prečítať jeho payload presne tak, ako to robí táto stránka. Do claimov nikdy nevkladajte heslá, čísla kariet ani iné tajné údaje. Token s piatimi časťami oddelenými bodkami je JWE, teda šifrovaný token; jeho obsah sa bez kľúča prečítať nedá a dekodér to oznámi. Úvodné „Bearer “ skopírované z hlavičky Authorization sa odstráni automaticky.

Prečo sa tu podpis neoveruje

Podpis dokazuje, že hlavičku a payload vytvoril niekto, kto má kľúč, a že sa odvtedy nezmenili. Na jeho kontrolu je potrebný ten kľúč: zdieľané tajomstvo pri algoritmoch HMAC ako HS256, alebo verejný kľúč vydavateľa pri RS256, ES256 alebo EdDSA. Vkladať produkčné podpisové tajomstvo do akejkoľvek webovej stránky je zlý nápad a dekodér, ktorý by bez neho predstieral, že za token ručí, by vyvolával falošný pocit istoty, preto tento nástroj podpis zobrazí, ale neoverí. To, čo vidíte, berte ako tvrdenie, ktoré token uvádza, nie ako fakt.

Overenie patrí na váš server, s použitím udržiavanej knižnice a pevne zadaným očakávaným algoritmom. Vysvetľujú to dve historické chyby: prijímanie alg „none“, ktoré komukoľvek umožní sfalšovať nepodpísaný token, a zámena algoritmu, pri ktorej sa server očakávajúci RS256 nechá oklamať a overí podpis HS256 s verejným kľúčom ako tajomstvom HMAC. Dekodér slúži na ladenie: zistíte, aké claimy poskytovateľ vydáva, všimnete si nesprávne publikum alebo zistíte, že relácia zlyhala, lebo exp vypršalo pred minútou. Na surové čítanie segmentov Base64url použite dekodér Base64.

Často kladené otázky

Je bezpečné vložiť skutočný prístupový token do JWT dekódera?
Na tejto stránke token neopustí váš prehliadač. Platný token však funguje ako heslo, kým nevyprší, preto uprednostnite expirované alebo testovacie tokeny a živé nedávajte do snímok obrazovky ani do chatov.
Prečo sa môj token zobrazuje ako vypršaný, hoci bol práve vydaný?
Najprv skontrolujte hodiny na svojom zariadení. Niektorí vydavatelia dávajú prístupovým tokenom životnosť len niekoľko minút a token skopírovaný z logu môže byť starší, než vyzerá. Hodnota exp zapísaná v milisekundách namiesto sekúnd spôsobí opak a skončí tisíce rokov v budúcnosti.
Môže niekto zmeniť payload môjho JWT?
Môžu ho upraviť a znova zakódovať, ale podpis už nebude sedieť. Server, ktorý overuje podpisy správnym kľúčom a algoritmom, upravený token odmietne.
Aký je rozdiel medzi JWS a JWE?
JWS (RFC 7515) je podpísaný, má tri časti a môže ho prečítať ktokoľvek. JWE (RFC 7516) je šifrovaný, má päť častí a payload si môže prečítať iba držiteľ kľúča.
Zneplatní odhlásenie JWT?
Sám osebe nie. Podpísaný JWT zostáva platný do exp, pokiaľ server nevedie zoznam zakázaných tokenov alebo nekontroluje záznam relácie, preto sa prístupovým tokenom zvyčajne dávajú krátke životnosti.