Utilia

JWT-smiður og sannreynir

Búðu til og sannreyndu JSON Web Token með HS256, RS256, PS256, ES256 eða EdDSA. Breyttu kröfum, stilltu exp og iat og athugaðu undirskriftir í vafranum.

Lyklar og tókar eru leyndarmál. Allt er undirritað og sannreynt staðbundið með Web Crypto API vafrans þíns: engu er hlaðið upp.

Búa til undirritaðan JWT

Tímakröfur:

Sannreyna JWT

Hvernig á að búa til undirritaðan JWT

  1. Veldu Reiknirit: HS256/384/512 (sameiginlegt leyndarmál), RS256/384/512 eða PS256/384/512 (RSA), ES256/384/512 (ECDSA á P-256, P-384 eða P-521) eða EdDSA (Ed25519, þegar vafrinn þinn styður það).
  2. Breyttu Haus (JSON) og Gagnahluti (JSON-kröfur). Reiturinn alg fylgir alltaf völdu reikniriti og typ er sjálfgefið JWT.
  3. Notaðu hnappana fyrir tímakröfur til að bæta við dagsetningum: iat = núna, nbf = núna, eða veldu Gildistími eins og „eftir 1 klukkustund“ og smelltu á Stilla exp. Gildin eru NumericDate: sekúndur frá 1. janúar 1970 UTC.
  4. Sláðu inn Leyndarmál (HS-reiknirit, sem texta eða Base64/Base64url undir Snið leyndarmáls) eða Einkalykill (PEM eða JWK). Ertu ekki með lykil? Smelltu á Búa til prófunarlykil.
  5. Smelltu á Undirrita tóka, síðan á Afrita til að taka niðurstöðuna eða á Sannreyna þennan tóka til að athuga hann strax.

Hvernig á að sannreyna JWT

  1. Límdu tókann inn undir Tóki til að sannreyna.
  2. Veldu Væntanlegt reiknirit. Ef þú skilur það eftir á „Úr haus tókans (aldrei none)“ er tekið við því sem hausinn segir, nema none; ef þú velur ákveðið reiknirit neitar verkfærið öllum tókum sem eru undirritaðir á annan hátt, eins og alvöru netþjónn ætti að gera.
  3. Sláðu inn leyndarmálið eða Opinber lykill (PEM eða JWK): PEM-blokk af gerðinni PUBLIC KEY, RSA PUBLIC KEY eða CERTIFICATE, JWK eða JWK-safn (notaður er lykillinn sem kid í hausnum vísar á).
  4. Valfrjálst geturðu stillt Klukkusvigrúm (sekúndur) til að umbera lítinn mun á klukkum og smellt síðan á Sannreyna tóka.

Niðurstaðan segir hvort undirskriftin sé gild og ber síðan exp (gildistími) og nbf (ekki fyrr en) saman við núverandi tíma tölvunnar þinnar. Tóki með réttri undirskrift en gildistíma í fortíðinni er sagður útrunninn, ekki gildur.

Lyklar og snið

Til undirritunar tekur verkfærið við PKCS#8 PRIVATE KEY blokkum, PKCS#1 RSA PRIVATE KEY og SEC1 EC PRIVATE KEY blokkum (breytt innbyrðis í PKCS#8) og einka-JWK. Lykla sem eru varðir með lykilorði þarf fyrst að flytja út án lykilorðs. Búa til prófunarlykil býr til tilviljanakennt leyndarmál af stærð tætigildisins fyrir HS-reiknirit, 2048 bita RSA-lyklapar fyrir RS og PS, samsvarandi feril fyrir ES eða Ed25519-par. Þú færð lyklana sem PEM og JWK og þeir eru fylltir inn báðum megin, þannig að heil umferð virkar strax.

Undirskriftir fylgja RFC 7515 og RFC 7518: RSA-PSS notar salt jafnlangt tætigildinu og ECDSA-undirskriftir eru hrein samtenging r||s. Útfærslan endurskapar HS256-dæmið úr RFC 7515, viðauka A.1.

Öryggisatriði

  • Allt keyrir í vafranum þínum með Web Crypto API. Hvorki tókar né lyklar eru sendir neitt, en veldu samt frekar prófunarlykla en leyndarmál úr framleiðslu.
  • alg: none er aldrei undirritað og aldrei samþykkt.
  • HMAC-leyndarmál ættu að vera að minnsta kosti jafnlöng og tætigildið (32 bæti fyrir HS256). Styttra leyndarmál veldur viðvörun.
  • Undirskrift sannar heilleika og uppruna, ekki að kröfurnar séu viðeigandi: netþjónar verða líka að athuga iss, aud og heimildir.

Algengar spurningar

Hver er munurinn á HS256 og RS256?

HS256 notar eitt sameiginlegt leyndarmál bæði til að undirrita og sannreyna, þannig að hver sem sannreynir gæti líka falsað tóka. RS256 (og PS256, ES256, EdDSA) undirritar með einkalykli og sannreynir með opinberum lykli sem óhætt er að birta.

Af hverju sýnir gild undirskrift samt villu?

Vegna þess að tókinn er utan gildistíma: exp er í fortíðinni eða nbf í framtíðinni. Undirskriftarathugun og tímaathugun eru sýndar sitt í hvoru lagi.

Af hverju er alg „none“ hafnað?

Hver sem er getur búið til óundirritaðan tóka. Að taka við honum var klassískur veikleiki í JWT-söfnum, þannig að þetta verkfæri hafnar honum bæði við undirritun og sannreyningu.

Get ég notað minn eigin RSA- eða EC-lykil?

Já. Límdu einkalykilinn inn sem PEM eða JWK til að undirrita og opinbera lykilinn til að sannreyna. Verkfærið athugar að lyklagerð og ferill passi við valið reiknirit.

Af hverju er EdDSA óvirkt?

Vafrinn þinn styður ekki Ed25519 í Web Crypto enn. Nýlegar útgáfur af Chrome, Edge, Firefox og Safari gera það.