UltKit

Dekoder JWT

Prilepite JSON Web Token in preberite njegovo glavo in vsebino (payload) kot oblikovan JSON. Časa poteka in izdaje sta prikazana kot datuma, ob tem pa izveste, ali je žeton trenutno veljaven. Dekodiranje poteka v celoti v vašem brskalniku, kar je pomembno, kadar je žeton aktivna poverilnica.

0 znakov · 0 besed · 0 vrstic

0 znakov · 0 besed · 0 vrstic

Deluje povsem v tem zavihku brskalnika. Vaše besedilo se nikoli ne naloži in ne shrani.

Registrirane trditve

Sedem imen trditev, opredeljenih v RFC 7519 §4.1. Vse so neobvezne; časi so sekunde od 1970-01-01 UTC.

TrditevPomen
issIzdajatelj: kdo je ustvaril in podpisal žeton
subSubjekt: uporabnik ali entiteta, na katero se žeton nanaša
audObčinstvo: komu je žeton namenjen
expČas poteka: žeton po tem trenutku zavrnite
nbfNe velja pred: žeton pred tem trenutkom zavrnite
iatIzdano: kdaj je bil žeton ustvarjen
jtiID JWT: enolični identifikator, za preprečevanje ponovne uporabe

Pogoste vrednosti alg

Vrednost algPomen
HS256HMAC s SHA-256; ena skupna skrivnost podpisuje in preverja
RS256Podpis RSA PKCS#1 v1.5 s SHA-256; zasebni ključ podpisuje, javni preverja
PS256RSA-PSS s SHA-256
ES256ECDSA na krivulji P-256 s SHA-256; kratki podpisi
EdDSAPodpisi Ed25519 ali Ed448
noneNepodpisan žeton; strežniki bi ga morali zavrniti

Kaj vsebuje JSON Web Token

JWT je opredeljen v RFC 7519 (maj 2015), ki predlaga izgovorjavo kot angleška beseda »jot«. Običajna podpisana oblika so trije nizi Base64url, ločeni s pikami: header.payload.signature. Glava (header) v polju alg navaja algoritem podpisovanja, na primer HS256 ali RS256, pogosto pa tudi ID ključa v kid. Vsebina (payload) vsebuje trditve (claims), torej polja JSON, kot so sub (uporabnik), iss (izdajatelj), aud (predvideno občinstvo) ter exp, nbf in iat, ki so časi v sekundah od 1. januarja 1970 UTC. Dekodirnik te tri vrednosti pretvori v vaš lokalni čas in ISO 8601 ter pove, ali je žeton potekel, še ni veljaven ali je znotraj obdobja veljavnosti.

Base64url je kodiranje, ne šifriranje, zato lahko vsakdo, ki ima žeton, prebere njegovo vsebino natanko tako kot ta stran. V trditve nikoli ne vstavljajte gesel, številk kartic ali drugih skrivnosti. Žeton s petimi deli, ločenimi s pikami, je JWE, šifriran žeton; brez ključa njegove vsebine ni mogoče prebrati, dekodirnik pa to tudi sporoči. Začetni »Bearer «, kopiran iz glave Authorization, se samodejno odstrani.

Zakaj se podpis tukaj ne preverja

Podpis dokazuje, da je glavo in vsebino ustvaril nekdo, ki ima ključ, ter da se od takrat nista spremenili. Za preverjanje potrebujete ta ključ: skupno skrivnost za algoritme HMAC, kot je HS256, ali javni ključ izdajatelja za RS256, ES256 ali EdDSA. Lepljenje produkcijske skrivnosti za podpisovanje na katero koli spletno stran je slaba zzamisel, dekodirnik, ki bi brez ključa zagotavljal za pristnost žetona, pa bi dajal lažno varnost, zato to orodje podpis prikaže, a ga ne preverja. Videno obravnavajte kot trditev, ki jo poda žeton, ne kot dejstvo.

Preverjanje sodi na vaš strežnik, z vzdrževano knjižnico in določenim pričakovanim algoritmom. Zakaj, pojasnita dve zgodovinski napaki: sprejemanje alg »none«, ki komurkoli omogoča ponarejanje nepodpisanega žetona, in zamenjava algoritma, pri kateri strežnik, ki pričakuje RS256, preslepijo, da preveri podpis HS256 z javnim ključem kot skrivnostjo HMAC. Dekodirnik je namenjen odpravljanju napak: ogledu trditev, ki jih izdaja ponudnik, odkrivanju napačnega občinstva ali ugotovitvi, da je seja spodletela, ker je exp potekel pred minuto. Za surov ogled segmentov Base64url uporabite dekodirnik Base64.

Pogosto zastavljena vprašanja

Ali je varno prilepiti pravi dostopni žeton v dekoder JWT?
Na tej strani žeton nikoli ne zapusti vašega brskalnika. Kljub temu veljaven žeton do izteka deluje kot geslo, zato raje uporabljajte potekle ali testne žetone, delujočih pa ne puščajte na posnetkih zaslona in v klepetih.
Zakaj je moj žeton prikazan kot potekel, čeprav je bil pravkar izdan?
Najprej preverite uro na napravi. Nekateri izdajatelji dostopnim žetonom določijo življenjsko dobo le nekaj minut, žeton, kopiran iz dnevnika, pa je lahko starejši, kot izgleda. Če je exp zapisan v milisekundah namesto v sekundah, je ravno obratno in pristane tisoče let v prihodnosti.
Ali lahko kdo spremeni vsebino mojega JWT?
Lahko ga urejajo in znova kodirajo, vendar se podpis ne bo več ujemal. Strežnik, ki preverja podpise z ustreznim ključem in algoritmom, spremenjen žeton zavrne.
Kakšna je razlika med JWS in JWE?
JWS (RFC 7515) je podpisan, ima tri dele in ga lahko prebere vsak. JWE (RFC 7516) je šifriran, ima pet delov in vsebino lahko prebere le imetnik ključa.
Ali odjava razveljavi JWT?
Samo po sebi ne. Podpisan JWT ostane veljaven do exp, razen če strežnik vodi seznam zavrnjenih žetonov ali preverja zapis seje, zato imajo dostopni žetoni običajno kratko življenjsko dobo.