UltKit

JWT dekódoló

Illesszen be egy JSON Web Tokent, és olvassa el a fejlécét és a payloadját formázott JSON-ként. A lejárati és kiállítási időket dátumként látja, és egy megjegyzés jelzi, hogy a token jelenleg érvényes-e. A dekódolás teljes egészében a böngészőjében történik, ami fontos, ha a token élő hitelesítő adat.

0 karakter · 0 szó · 0 sor

0 karakter · 0 szó · 0 sor

Teljes egészében ebben a böngészőlapon fut. A szöveget soha nem töltjük fel és nem tároljuk.

Regisztrált claim-ek

Az RFC 7519 4.1. pontjában definiált hét claim-név. Mind elhagyható; az időpontok az 1970-01-01 UTC óta eltelt másodpercek.

ClaimJelentés
issKiállító: aki létrehozta és aláírta a tokent
subAlany: a felhasználó vagy entitás, akire a token vonatkozik
audCímzett: kinek szól a token
expLejárati idő: ezen időpont után a token elutasítandó
nbfNem érvényes előtte: ezen időpont előtt a token elutasítandó
iatKiállítás ideje: mikor jött létre a token
jtiJWT-azonosító: egyedi azonosító az újrajátszás megelőzésére

Gyakori alg értékek

alg értékJelentés
HS256HMAC SHA-256-tal; egyetlen közös titok ír alá és ellenőriz
RS256RSA PKCS#1 v1.5 aláírás SHA-256-tal; a privát kulcs ír alá, a nyilvános ellenőriz
PS256RSA-PSS SHA-256-tal
ES256ECDSA a P-256 görbén SHA-256-tal; rövid aláírások
EdDSAEd25519 vagy Ed448 aláírások
noneAláíratlan token; a szervereknek el kell utasítaniuk

Mi van egy JSON Web Tokenben?

A JWT-t az RFC 7519 (2015. május) határozza meg, amely szerint az angol „jot” szó mintájára kell kiejteni. A szokásos aláírt forma három, ponttal összefűzött Base64url karakterlánc: fejléc.adatok.aláírás. A fejléc az alg mezőben megnevezi az aláíró algoritmust (például HS256 vagy RS256), a kid mezőben pedig gyakran a kulcs azonosítóját. Az adatrész (payload) az állításokat (claim) tartalmazza, vagyis JSON-mezőket, például sub (a felhasználó), iss (a kibocsátó), aud (a címzett), valamint exp, nbf és iat, amelyek 1970. január 1. UTC óta eltelt másodpercekben megadott időpontok. A dekódoló ezeket helyi idővé és ISO 8601 formátummá alakítja, és megmutatja, hogy a token lejárt-e, még nem érvényes-e, vagy éppen az érvényességi idején belül van.

A Base64url kódolás, nem titkosítás, ezért a token adatrészét bárki elolvashatja, aki birtokolja a tokent, pontosan úgy, ahogy ez az oldal teszi. Soha ne tegyen jelszót, kártyaszámot vagy más titkot az állítások közé. Az öt, ponttal elválasztott részből álló token JWE, vagyis titkosított token; a tartalma kulcs nélkül nem olvasható, és a dekódoló ezt jelzi is. Az Authorization fejlécből átmásolt kezdő „Bearer ” előtagot az oldal automatikusan eltávolítja.

Miért nem ellenőrizzük itt az aláírást?

Az aláírás azt igazolja, hogy a fejlécet és az adatrészt a kulcs birtokosa készítette, és azóta nem változtak. Az ellenőrzéshez szükség van a kulcsra: HMAC-algoritmusoknál (például HS256) a közös titokra, RS256, ES256 vagy EdDSA esetén a kibocsátó nyilvános kulcsára. Éles aláírókulcsot beilleszteni bármilyen weboldalra rossz ötlet, és az a dekódoló, amely kulcs nélkül mutatna hitelesnek egy tokent, hamis biztonságérzetet adna, ezért ez az eszköz megjeleníti az aláírást, de nem ellenőrzi. Amit lát, azt a token állításaként kezelje, ne tényként.

Az ellenőrzés a szerverre tartozik, karbantartott könyvtárral és előre rögzített, elvárt algoritmussal. Két korábbi hiba mutatja, miért: az „none” algoritmus elfogadása, amellyel bárki hamisíthat aláíratlan tokent, és az algoritmus-összetévesztés, amikor az RS256-ot váró szervert rávesznek, hogy a nyilvános kulcsot HMAC-titokként használva ellenőrizzen egy HS256 aláírást. A dekódoló hibakeresésre való: kiderítheti, milyen állításokat bocsát ki a szolgáltató, észreveheti a hibás aud értéket, vagy megtudhatja, hogy a munkamenet azért bukott el, mert az exp egy perce lejárt. A Base64url szakaszok nyers kiolvasásához használja a Base64 dekódolót.

Gyakori kérdések

Biztonságos valódi hozzáférési tokent beilleszteni egy JWT dekódolóba?
Ezen az oldalon a token nem hagyja el a böngészőt. Ettől még az érvényes token jelszóként működik a lejártáig, ezért lehetőleg lejárt vagy teszttokent használjon, az élesekat pedig tartsa távol a képernyőképektől és a csevegésektől.
Miért mutatja lejártnak a tokenemet, ha épp most állították ki?
Először az eszköz óráját ellenőrizze. Egyes kibocsátók a hozzáférési tokeneknek csak néhány perces élettartamot adnak, és a naplóból másolt token régebbi lehet, mint gondolná. A másodperc helyett ezredmásodpercben megadott exp ennek az ellenkezőjét okozza: évezredekkel a jövőbe kerül.
Módosíthatja valaki a JWT-m payloadját?
Szerkeszthetik és újra kódolhatják, de az aláírás többé nem fog egyezni. A megfelelő kulccsal és algoritmussal ellenőrző szerver elutasítja a módosított tokent.
Mi a különbség a JWS és a JWE között?
A JWS (RFC 7515) aláírt, három részből áll, és bárki elolvashatja. A JWE (RFC 7516) titkosított, öt részből áll, és az adatrészt csak a kulcs birtokosa olvashatja el.
Érvényteleníti a kijelentkezés a JWT-t?
Önmagában nem. Az aláírt JWT az exp időpontig érvényes marad, hacsak a szerver nem vezet tiltólistát vagy nem ellenőriz munkamenet-nyilvántartást, ezért a hozzáférési tokenek élettartamát általában rövidre szabják.