Dekodifikatur tal-JWT
Iddekodifika l-header u l-payload ta’ JWT, aqra exp, iat u nbf bħala dati u ivverifika firem HS256, RS256, PS256, ES256 jew EdDSA fil-brawżer tiegħek.
It-tokens huma kredenzjali. Din l-għodda tiddekodifika u tivverifika t-tokens fil-brawżer tiegħek u qatt ma tibgħathom imkien.
Header
Payload
| Claim | Valur | Data | Stat |
|---|
- Algoritmu (alg)
- —
- Firma (Base64url)
- —
Ivverifika l-firma
HS256/384/512: daħħal is-sigriet kondiviż. RS, PS, ES (256/384/512) u EdDSA: waħħal iċ-ċavetta pubblika bħala PEM (public key, RSA public key jew ċertifikat) jew JWK (JWK Set jintgħażel b’kid).
Kif tiddekodifika JWT
- Waħħal it-token f’JSON Web Token. Valur sħiħ ta’
Authorization: Bearer …jaħdem ukoll: il-prefissBeareru l-qatgħat tas-linja jitneħħew. - It-token jiġi ddekodifikat hekk kif tikteb (jew ikklikkja Iddekodifika). Il-Header u l-Payload jidhru bħala JSON iffurmattjat, kull wieħed bil-buttuna Ikkopja tiegħu.
- Aqra t-tabella Claims taż-żmien:
exp,nbfuiatjidhru bil-valur oriġinali, id-data fiż-żona tal-ħin tiegħek, ħin relattiv (“fi 3 sigħat”, “qabel jumejn”) u stat bħal Skada jew Għadu mhux validu. - Iċċekkja t-twissijiet fuq ir-riżultati, per eżempju meta
algikunnonejew meta data tidher li hija f’millisekondi. - Biex tivverifika l-firma, imla ċ-ċavetta taħt Ivverifika l-firma u ikklikkja Ivverifika l-firma.
Id-dekodifikar mhuwiex verifika
JWT huwa magħmul minn tliet partijiet Base64url separati b’ponot: header.payload.signature. Il-header u l-payload huma biss kodifikati, mhux kriptati, għalhekk kull min għandu t-token jista’ jaqrahom, u din l-għodda tista’ tiddekodifika kull token mingħajr ċavetta. Dan ifisser ukoll li payload iddekodifikat ma jippruvax xejn: xi ħadd seta’ biddlu. Biss firma valida turi li t-token inħareġ minn min għandu ċ-ċavetta u li ma nbidilx minn dak iż-żmien. Għalhekk il-linja tal-istat tgħid “Iddekodifikat (il-firma ma ġietx ivverifikata)” sakemm tivverifika.
Token b’ħames partijiet huwa JWE (JWT kriptat); il-kontenut tiegħu ma jistax jinqara mingħajr iċ-ċavetta tad-dekriptaġġ, u l-għodda tgħidlek hekk.
Il-verifika tal-firma
- HS256, HS384, HS512 (HMAC): daħħal is-Sigriet kondiviż. Uża Format tas-sigriet biex tgħid jekk huwiex test sempliċi (UTF-8) jew Base64/Base64url, peress li xi fornituri jaħżnu s-sigrieti f’Base64. Tista’ wkoll twaħħal JWK ta’ tip
oct. Jekk is-sigriet huwa iqsar mill-output tal-hash (32 byte għal HS256), l-għodda tinnota li huwa taħt il-minimu tal-RFC 7518. - RS256/384/512, PS256/384/512, ES256/384/512 u EdDSA: waħħal iċ-Ċavetta pubblika (PEM jew JWK). Il-blokki PEM aċċettati huma
PUBLIC KEY,RSA PUBLIC KEYuCERTIFICATE(iċ-ċavetta tinqara miċ-ċertifikat X.509). JWK jew JWK Set sħiħ jaħdmu wkoll: tintuża ċ-ċavetta li l-kidtagħha jaqbel mal-header. Ċwievet privati jiġu rrifjutati; verifikatur ma jiħtieġhom qatt. EdDSA jappoġġja Ed25519 fil-brawżers li Web Crypto tagħhom jimplimentah.
Il-verifika tuża l-API Web Crypto tal-brawżer. Riżultat ta’ “Firma invalida” ifisser li ċ-ċavetta hija ħażina jew li t-token ġie modifikat. Innota li l-algoritmu jittieħed mill-header tat-token: server vera għandu minflok jiffissa l-algoritmu mistenni fil-konfigurazzjoni tiegħu, inkella attakkant jista’ jagħżlu hu.
Noti dwar is-sigurtà
- It-tokens huma kredenzjali. Kull min iżomm access token validu normalment jista’ jaġixxi bħala sid tiegħu sakemm jiskadi. Din l-għodda tiddekodifika u tivverifika kollox fil-brawżer tiegħek u qatt ma tibgħat it-token jew iċ-ċavetta imkien. Madankollu evita li twaħħal tokens tal-produzzjoni f’għodod li ma tistax tispezzjona.
alg: noneifisser li t-token mhuwiex iffirmat. Kulħadd jista’ jiffalsifika wieħed, u server għandu jirrifjutah. L-għodda turi twissija u tirrifjuta li “tivverifika” token bħal dan.- Il-kontrolli tal-arloġġ hawnhekk jużaw l-arloġġ tal-kompjuter tiegħek mingħajr tolleranza; is-servers spiss jaċċettaw minuta jew tnejn ta’ differenza.
- Id-dati tal-JWT (NumericDate) huma sekondi mill-1 ta’ Jannar 1970 UTC. Valur ta’ 13-il ċifra x’aktarx huwa f’millisekondi, li huwa żball komuni.
Mistoqsijiet frekwenti
L-għodda tista’ tgħidli jekk token huwiex validu?
Tista’ tgħidlek jekk il-firma taqbilx maċ-ċavetta li tipprovdi u jekk exp u nbf humiex sodisfatti issa. Jekk it-token jiġix aċċettat jiddependi wkoll minn kontrolli li jaf biss is-server: l-emittent mistenni (iss), l-udjenza (aud), l-algoritmu u r-revoka.
Għaliex il-verifika tfalli bis-sigriet it-tajjeb?
Iċċekkja l-Format tas-sigriet: sigriet Base64 miktub bħala test jagħti ċavetta differenti. Kun żgur ukoll li ma ntbagħatx spazju jew qatgħa tas-linja mas-sigriet, għax iċ-ċwievet HMAC jitqabblu byte b’byte.
X’inhi d-differenza bejn RS256, PS256 u ES256?
It-tlieta huma firem b’ċavetta pubblika b’SHA-256. RS256 juża RSA bil-padding PKCS#1 v1.5, PS256 juża RSA bil-padding PSS, u ES256 juża ECDSA fuq il-kurva P-256, li tagħti firem ferm iqsar.
Fejn nsib iċ-ċavetta pubblika ta’ fornitur?
Il-fornituri tal-identità jippubblikaw JWKS (JSON Web Key Set), normalment marbut minn /.well-known/openid-configuration taħt jwks_uri. Iftaħha int stess u waħħal il-JSON hawnhekk; l-għodda tagħżel iċ-ċavetta b’kid u qatt ma tniżżel xejn.
Huwa sigur li nwaħħal it-token tiegħi hawnhekk?
It-token jibqa’ fuq l-apparat tiegħek: id-dekodifikar u l-verifika jseħħu lokalment u xejn ma jittella’. Għal aktar kawtela, uża token skadut jew tat-test meta tkun trid biss tispezzjona l-istruttura.
Għodod relatati
- Ġeneratur HMAC Ikkalkula HMAC-SHA1, SHA-256, SHA-384 jew SHA-512 b’ċavetta test, hex jew Base64, kseb output hex u Base64, u ivverifika firma webhook fil-brawżer tiegħek.
- Kodifikatur u dekodifikatur tal-Base64 Kodifikatur u dekodifikatur tal-Base64 b’xejn b’appoġġ sħiħ għall-UTF-8 u għażla base64url sigura għall-URL. Jaħdem kompletament fil-brawżer, xejn ma jittella’.
- Konvertitur tal-Unix Timestamp Ikkonverti Unix timestamps f’sekondi jew millisekondi għal dati li jinqraw fil-ħin lokali, UTC u ISO 8601, u erġa’ ibdel kwalunkwe data f’ħin epoch.
- Formatter u validatur tal-JSON Formatter u validatur tal-JSON b’xejn li jibbewtifika, jimminimizza u jiċċekkja l-JSON fil-brawżer tiegħek, b’żbalji tas-sintassi bil-linja u l-kolonna.