Utilia

JWT dekooder

Dekodeeri JWT päis ja sisu, vaata exp, iat ja nbf kuupäevadena ning kontrolli HS256, RS256, ES256 või EdDSA allkirja otse oma brauseris.

Tokenid on volitused. See tööriist dekodeerib ja kontrollib neid sinu brauseris ega saada neid kuhugi.

Kontrolli allkirja

HS256/384/512: sisesta jagatud saladus. RS, PS, ES (256/384/512) ja EdDSA: kleebi avalik võti PEM-vormingus (avalik võti, RSA avalik võti või sertifikaat) või JWK-na (JWK Set valitakse kid järgi).

Kuidas JWT-d dekodeerida

  1. Kleebi token lahtrisse JSON Web Token. Sobib ka kogu Authorization: Bearer … päis: eesliide Bearer ja reavahetused eemaldatakse automaatselt.
  2. Token dekodeeritakse sisestamise ajal (või klõpsa nuppu Dekodeeri). Päis ja Sisu kuvatakse vormindatud JSON-ina ning mõlemal on oma nupp Kopeeri.
  3. Vaata tabelit Ajaväited: exp, nbf ja iat kuvatakse toorväärtuse, sinu ajavööndi kuupäeva, suhtelise aja (“3 tunni pärast”, “2 päeva tagasi”) ja olekuga, näiteks Aegunud või Pole veel kehtiv.
  4. Loe tulemuste kohal olevaid hoiatusi, näiteks kui alg on none või kui kuupäev näib olevat millisekundites.
  5. Allkirja kontrollimiseks sisesta võti jaotises Kontrolli allkirja ja klõpsa nuppu Kontrolli allkirja.

Dekodeerimine ei ole kontrollimine

JWT koosneb kolmest punktidega eraldatud Base64url osast: päis.sisu.allkiri. Päis ja sisu on ainult kodeeritud, mitte krüptitud, seega saab neid lugeda igaüks, kelle käes on token, ja see tööriist suudab dekodeerida mis tahes tokeni ilma võtmeta. See tähendab ka seda, et dekodeeritud sisu ei tõesta midagi: keegi võis seda muuta. Ainult korrektne allkiri näitab, et tokeni andis välja võtme omanik ja seda pole pärast muudetud. Seepärast on olekureal kirjas “Dekodeeritud (allkirja ei ole kontrollitud)”, kuni oled allkirja kontrollinud.

Viieosaline token on JWE (krüptitud JWT). Selle sisu ei saa ilma dekrüptimisvõtmeta lugeda ja tööriist annab sellest teada.

Allkirja kontrollimine

  • HS256, HS384, HS512 (HMAC): sisesta jagatud Saladus. Valikuga Saladuse vorming ütle, kas see on tavaline tekst (UTF-8) või Base64/Base64url, sest mõned teenusepakkujad hoiavad saladusi Base64-s. Võid kleepida ka tüüpi oct JWK. Kui saladus on räsi väljundist lühem (HS256 puhul 32 baiti), märgib tööriist, et see jääb alla RFC 7518 miinimumi.
  • RS256/384/512, PS256/384/512, ES256/384/512 ja EdDSA: kleebi Avalik võti (PEM või JWK). Toetatud PEM-plokid on PUBLIC KEY, RSA PUBLIC KEY ja CERTIFICATE (võti loetakse X.509 sertifikaadist). Sobib ka JWK või terve JWK Set: kasutatakse võtit, mille kid ühtib päisega. Privaatvõtmeid ei võeta vastu, sest kontrollimiseks pole neid vaja. EdDSA toetab Ed25519 neis brauserites, mille Web Crypto seda pakub.

Kontrollimisel kasutatakse brauseri Web Crypto API-t. Tulemus “Vigane allkiri” tähendab, et võti on vale või token on muudetud. Pane tähele, et algoritm võetakse tokeni päisest: päris server peab ootuspärase algoritmi määrama oma seadistuses, muidu saab ründaja selle ise valida.

Turvamärkused

  • Tokenid on volitused. Kes tahes, kelle käes on kehtiv juurdepääsutoken, saab tavaliselt tegutseda selle omanikuna kuni aegumiseni. See tööriist dekodeerib ja kontrollib kõike sinu brauseris ning ei saada tokenit ega võtit kuhugi. Siiski väldi tootmistokenite kleepimist tööriistadesse, mida sa üle vaadata ei saa.
  • alg: none tähendab allkirjastamata tokenit. Sellise võib võltsida igaüks ja server peab selle tagasi lükkama. Tööriist kuvab hoiatuse ega “kontrolli” sellist tokenit.
  • Kellakontroll kasutab siin sinu arvuti kella ilma varuta; serverid lubavad sageli minuti või paari kellahälvet.
  • JWT kuupäevad (NumericDate) on sekundid alates 1. jaanuarist 1970 UTC. 13-kohaline väärtus on tõenäoliselt millisekundites, mis on levinud viga.

Korduma kippuvad küsimused

Kas see tööriist ütleb, kas token on kehtiv?

Ta ütleb, kas allkiri ühtib sinu antud võtmega ning kas exp ja nbf on praegu täidetud. See, kas token tegelikult vastu võetakse, sõltub ka kontrollidest, mida teab vaid server: oodatud väljastaja (iss), sihtrühm (aud), algoritm ja tühistamine.

Miks kontrollimine ebaõnnestub, kuigi saladus on õige?

Kontrolli valikut Saladuse vorming: Base64-saladus tekstina sisestatuna annab teistsuguse võtme. Veendu ka, et saladusele pole lisatud tühikut ega reavahetust, sest HMAC-võtmeid võrreldakse bait baidi haaval.

Mis vahe on RS256, PS256 ja ES256 vahel?

Kõik kolm on avaliku võtmega allkirjad SHA-256-ga. RS256 kasutab RSA-d PKCS#1 v1.5 täidisega, PS256 RSA-d PSS-täidisega ja ES256 ECDSA-d P-256 kõveral, mis annab palju lühemad allkirjad.

Kust leian teenusepakkuja avaliku võtme?

Identiteedipakkujad avaldavad JWKS-i (JSON Web Key Set), tavaliselt viitega aadressil /.well-known/openid-configuration välja jwks_uri all. Ava see ise ja kleebi JSON siia; tööriist valib võtme kid järgi ega too midagi võrgust.

Kas on turvaline oma tokenit siia kleepida?

Token jääb sinu seadmesse: dekodeerimine ja kontrollimine toimuvad kohapeal ning midagi ei laadita üles. Kui tahad olla eriti ettevaatlik, kasuta aegunud või testtokenit, kui vajad vaid ülesehituse vaatamist.