Dekodiranje JWT
Dekodiraj glavo in vsebino žetona JWT, preberi exp, iat in nbf kot datume ter lokalno v brskalniku preveri podpise HS256, RS256, PS256, ES256 ali EdDSA.
Žetoni so poverilnice. To orodje jih dekodira in preverja v tvojem brskalniku in jih nikamor ne pošlje.
Glava
Vsebina (payload)
| Trditev | Vrednost | Datum | Stanje |
|---|
- Algoritem (alg)
- —
- Podpis (Base64url)
- —
Preveri podpis
HS256/384/512: vnesi skupno skrivnost. RS, PS, ES (256/384/512) in EdDSA: prilepi javni ključ kot PEM (javni ključ, javni ključ RSA ali potrdilo) ali JWK (nabor JWK se poišče po kid).
Kako dekodirati JWT
- Žeton prilepi v polje JSON Web Token. Deluje tudi cela vrednost
Authorization: Bearer …: predponaBearerin morebitni prelomi vrstic se odstranijo. - Žeton se dekodira sproti med tipkanjem (ali s klikom na Dekodiraj). Glava in Vsebina (payload) se prikažeta kot oblikovan JSON, vsaka s svojim gumbom Kopiraj.
- Preberi tabelo Časovne trditve:
exp,nbfiniatso prikazani z izvorno vrednostjo, datumom v tvojem časovnem pasu, relativnim časom (»čez 3 ure«, »pred 2 dnevoma«) in stanjem, na primer Poteklo ali Še ne velja. - Oglej si opozorila nad rezultati, na primer kadar je
algenaknoneali kadar je datum videti kot milisekunde. - Če želiš preveriti podpis, v razdelku Preveri podpis vnesi ključ in klikni Preveri podpis.
Dekodiranje ni preverjanje
JWT sestavljajo trije deli v zapisu Base64url, ločeni s pikami: glava.vsebina.podpis. Glava in vsebina sta samo kodirani, ne šifrirani, zato ju lahko prebere vsak, ki ima žeton, to orodje pa lahko dekodira katerikoli žeton brez ključa. To pomeni tudi, da dekodirana vsebina ničesar ne dokazuje: nekdo jo je lahko spremenil. Samo veljaven podpis pokaže, da je žeton izdal imetnik ključa in da se od takrat ni spremenil. Zato vrstica stanja piše »Dekodirano (podpis ni preverjen)«, dokler podpisa ne preveriš.
Žeton s petimi deli je JWE (šifriran JWT); njegove vsebine brez ključa za dešifriranje ni mogoče prebrati, orodje pa te na to opozori.
Preverjanje podpisa
- HS256, HS384, HS512 (HMAC): vnesi skupno Skrivnost. Z Obliko skrivnosti določi, ali gre za navadno besedilo (UTF-8) ali za Base64/Base64url, saj nekateri ponudniki skrivnosti hranijo v zapisu Base64. Prilepiš lahko tudi JWK vrste
oct. Če je skrivnost krajša od izhoda zgoščene vrednosti (32 bajtov za HS256), orodje opozori, da je pod najmanjšo dolžino po RFC 7518. - RS256/384/512, PS256/384/512, ES256/384/512 in EdDSA: prilepi Javni ključ (PEM ali JWK). Sprejeti bloki PEM so
PUBLIC KEY,RSA PUBLIC KEYinCERTIFICATE(ključ se prebere iz potrdila X.509). Deluje tudi JWK ali cel nabor JWK: uporabi se ključ, kateregakidse ujema z glavo. Zasebne ključe orodje zavrne, saj jih preverjevalnik nikoli ne potrebuje. EdDSA podpira Ed25519 v brskalnikih, ki ga v Web Crypto implementirajo.
Preverjanje uporablja API Web Crypto v brskalniku. Rezultat »Neveljaven podpis« pomeni, da je ključ napačen ali da je bil žeton spremenjen. Upoštevaj, da se algoritem prebere iz glave žetona: pravi strežnik mora namesto tega pričakovani algoritem določiti v svoji konfiguraciji, sicer ga lahko napadalec izbere sam.
Varnostne opombe
- Žetoni so poverilnice. Kdor ima veljaven dostopni žeton, lahko običajno do njegovega poteka deluje kot njegov lastnik. To orodje vse dekodira in preverja v tvojem brskalniku ter žetona ali ključa nikamor ne pošlje. Kljub temu produkcijskih žetonov ne lepi v orodja, ki jih ne moreš pregledati.
alg: nonepomeni, da žeton ni podpisan. Vsak ga lahko ponaredi, strežnik pa ga mora zavrniti. Orodje prikaže opozorilo in takega žetona noče »preveriti«.- Preverjanje ure tu uporablja uro tvojega računalnika brez tolerance; strežniki običajno dovolijo minuto ali dve odstopanja ure.
- Datumi v JWT (NumericDate) so sekunde od 1. januarja 1970 UTC. 13-mestna vrednost so verjetno milisekunde, kar je pogosta napaka.
Pogosta vprašanja
Ali mi orodje pove, ali je žeton veljaven?
Pove ti, ali se podpis ujema s ključem, ki ga vneseš, in ali sta exp in nbf trenutno izpolnjena. Ali bo žeton sprejet, pa je odvisno tudi od preverjanj, ki jih pozna samo strežnik: pričakovani izdajatelj (iss), občinstvo (aud), algoritem in preklic.
Zakaj preverjanje ne uspe, čeprav je skrivnost prava?
Preveri Obliko skrivnosti: skrivnost v zapisu Base64, vtipkana kot besedilo, da drugačen ključ. Prepričaj se tudi, da skrivnosti nisi dodal presledka ali preloma vrstice, saj se ključi HMAC primerjajo bajt za bajtom.
Kakšna je razlika med RS256, PS256 in ES256?
Vsi trije so podpisi z javnim ključem z uporabo SHA-256. RS256 uporablja RSA z oblazinjenjem PKCS#1 v1.5, PS256 uporablja RSA z oblazinjenjem PSS, ES256 pa ECDSA na krivulji P-256, kar da bistveno krajše podpise.
Kje najdem javni ključ ponudnika?
Ponudniki identitete objavijo JWKS (JSON Web Key Set), običajno s povezavo iz /.well-known/openid-configuration pod jwks_uri. Odpri ga sam in prilepi JSON sem; orodje ključ izbere po kid in ničesar ne prenaša.
Ali je varno, da sem prilepim svoj žeton?
Žeton ostane v tvoji napravi: dekodiranje in preverjanje potekata lokalno in nič se ne naloži na strežnik. Za dodatno previdnost uporabi potekel ali testni žeton, kadar potrebuješ samo pregled zgradbe.
Sorodna orodja
- Generator HMAC Izračunaj HMAC-SHA1, SHA-256, SHA-384 ali SHA-512 s ključem v besedilu, hex ali Base64, dobi izhod hex in Base64 ter preveri podpis webhooka v brskalniku.
- Base64 kodirnik in dekodirnik Brezplačno kodiranje in dekodiranje Base64 s polno podporo za UTF-8 in možnostjo base64url. Deluje v brskalniku, nič se ne naloži na strežnik.
- Pretvornik časa Unix Pretvori časovne žige Unix v sekundah ali milisekundah v berljive datume v lokalnem času, UTC in ISO 8601 ter vsak datum pretvori nazaj v čas epohe.
- Oblikovalnik in preverjevalnik JSON Brezplačen oblikovalnik in preverjevalnik JSON, ki v brskalniku polepša, zmanjša in preveri JSON, sintaksne napake pa javi z vrstico in stolpcem.