Teknobench

Generatur u Verifikatur tal-JWT

Oħloq u ivverifika JSON Web Tokens b’HS256, RS256, PS256, ES256 jew EdDSA. Editja l-claims, issettja exp u iat, u iċċekkja l-firem fil-brawżer tiegħek.

Iċ-ċwievet u t-tokens huma sigrieti. Kollox jiġi ffirmat u vverifikat lokalment bl-API Web Crypto tal-brawżer tiegħek: xejn ma jittella’.

Oħloq JWT iffirmat

Claims taż-żmien:

Ivverifika JWT

Kif toħloq JWT iffirmat

  1. Agħżel l-Algoritmu: HS256/384/512 (sigriet kondiviż), RS256/384/512 jew PS256/384/512 (RSA), ES256/384/512 (ECDSA fuq P-256, P-384 jew P-521), jew EdDSA (Ed25519, meta l-brawżer tiegħek jappoġġjah).
  2. Editja l-Header (JSON) u l-Payload (claims JSON). Il-qasam alg dejjem isegwi l-algoritmu magħżul, u typ huwa JWT b’mod awtomatiku.
  3. Uża l-buttuni tal-claims taż-żmien biex iżżid dati: iat = issa, nbf = issa, jew agħżel dewmien bħal “f’siegħa” u ikklikkja Issettja exp. Il-valuri huma NumericDates: sekondi mill-1 ta’ Jannar 1970 UTC.
  4. Daħħal is-Sigriet (algoritmi HS, bħala test jew Base64/Base64url taħt Format tas-sigriet) jew iċ-Ċavetta privata (PEM jew JWK). M’għandekx ċavetta għadha? Ikklikkja Iġġenera ċavetta tat-test.
  5. Ikklikkja Iffirma t-token, imbagħad Ikkopja r-riżultat jew ikklikkja Ivverifika dan it-token biex tiċċekkjah minnufih.

Kif tivverifika JWT

  1. Waħħal it-token taħt Token li trid tivverifika.
  2. Agħżel l-Algoritmu mistenni. Jekk titlaqha fuq “Mill-header tat-token (qatt none)”, jiġi aċċettat kulma jgħid il-header, ħlief none; jekk tagħżel algoritmu speċifiku, l-għodda tirrifjuta kull token iffirmat b’mod differenti, kif għandu jagħmel server vera.
  3. Daħħal is-sigriet, jew iċ-Ċavetta pubblika (PEM jew JWK): blokk PEM PUBLIC KEY, RSA PUBLIC KEY jew CERTIFICATE, JWK, jew JWK Set (tintuża ċ-ċavetta li l-kid tagħha jaqbel mal-header).
  4. Jekk trid, issettja Tolleranza tal-arloġġ (sekondi) biex tittollera differenzi żgħar fl-arloġġ, imbagħad ikklikkja Ivverifika t-token.

Ir-riżultat jgħid jekk il-firma hijiex valida, u mbagħad jiċċekkja exp (skadenza) u nbf (mhux qabel) mal-ħin attwali tal-kompjuter tiegħek. Token b’firma korretta iżda b’skadenza fil-passat jiġi rrappurtat bħala skadut, mhux bħala validu.

Ċwievet u formati

Għall-iffirmar, l-għodda taċċetta blokki PKCS#8 PRIVATE KEY, blokki PKCS#1 RSA PRIVATE KEY u SEC1 EC PRIVATE KEY (ikkonvertiti internament għal PKCS#8), u JWKs privati. Ċwievet protetti b’password iridu jiġu esportati l-ewwel mingħajr password. Iġġenera ċavetta tat-test toħloq sigriet każwali tad-daqs tal-hash għall-algoritmi HS, par ta’ ċwievet RSA ta’ 2048 bit għal RS u PS, il-kurva li taqbel għal ES, jew par Ed25519. Iċ-ċwievet jingħataw bħala PEM u JWK, u jimtlew fiż-żewġ naħat biex iċ-ċiklu sħiħ jaħdem minnufih.

Il-firem isegwu r-RFC 7515 u r-RFC 7518: RSA-PSS juża salt twil daqs il-hash, u l-firem ECDSA huma l-konkatenazzjoni mhux ipproċessata r||s. L-implimentazzjoni terġa’ tipproduċi l-eżempju HS256 tal-RFC 7515, Appendiċi A.1.

Noti dwar is-sigurtà

  • Kollox jaħdem fil-brawżer tiegħek bl-API Web Crypto. La t-tokens u lanqas iċ-ċwievet ma jintbagħtu imkien, iżda xorta ippreferi ċwievet tat-test minflok sigrieti tal-produzzjoni.
  • alg: none qatt ma jiġi ffirmat u qatt ma jiġi aċċettat.
  • Is-sigrieti HMAC għandhom ikunu twal mill-inqas daqs il-hash (32 byte għal HS256). Sigriet iqsar iwassal għal twissija.
  • Firma tipprova l-integrità u l-oriġini, mhux li l-claims huma xierqa: is-servers iridu jiċċekkjaw ukoll iss, aud u l-iskopijiet.

Mistoqsijiet frekwenti

X’inhi d-differenza bejn HS256 u RS256?

HS256 juża sigriet kondiviż wieħed kemm biex jiffirma kif ukoll biex jivverifika, għalhekk kull verifikatur jista’ wkoll jiffalsifika tokens. RS256 (u PS256, ES256, EdDSA) jiffirma b’ċavetta privata u jivverifika b’ċavetta pubblika li tista’ tiġi ppubblikata b’mod sigur.

Għaliex firma valida xorta turi żball?

Għax it-token huwa barra mill-perjodu tal-validità tiegħu: exp huwa fil-passat jew nbf huwa fil-futur. Il-kontroll tal-firma u dak taż-żmien jiġu rrappurtati separatament.

Għaliex alg “none” jiġi rrifjutat?

Token mhux iffirmat jista’ joħloqu kulħadd. L-aċċettazzjoni tiegħu kienet vulnerabbiltà klassika tal-libreriji JWT, għalhekk din l-għodda tirrifjutah kemm meta tiffirma kif ukoll meta tivverifika.

Nista’ nuża ċavetta RSA jew EC tiegħi?

Iva. Waħħal iċ-ċavetta privata bħala PEM jew JWK biex tiffirma, u ċ-ċavetta pubblika biex tivverifika. L-għodda tiċċekkja li t-tip ta’ ċavetta u l-kurva jaqblu mal-algoritmu magħżul.

Għaliex EdDSA huwa diżattivat?

Il-brawżer tiegħek għad ma jappoġġjax Ed25519 f’Web Crypto. Verżjonijiet reċenti ta’ Chrome, Edge, Firefox u Safari jappoġġjawh.