Kiondoaji cha Usimbaji wa JWT
Ondoa usimbaji wa JSON Web Token (JWT) kuona kichwa, mzigo, na sahihi yake. Muhimu kwa kutatua matatizo na kukagua tokeni za JWT zinazotumiwa katika uthibitishaji na uidhinishaji. Maudhui ya JWT yako hayatahifadhiwa popote.
Mzigo (Madai):
Kichwa (Algoriti ya Kusaini na Aina ya Tokeni):
Sahihi:
Sahihi inaonyeshwa kama data iliyosimbwa kwa Base64URL. Uthibitishaji wa sahihi haufanywi na zana hii.
Zaidi kuhusu JSON Web Tokens
Muundo wa JWT
JSON Web Token (JWT) ni njia kompakt na salama kwa URL ya kuwakilisha madai yanayohamishwa kati ya pande mbili. Inajumuisha sehemu tatu zilizosimbwa kwa Base64URL zilizotenganishwa na nukta: kichwa.mzigo.sahihi. Kichwa kawaida kina aina ya tokeni (JWT) na algoriti ya kusaini. Mzigo una madai—kauli kuhusu huluki (kawaida mtumiaji) na metadata ya ziada. Sahihi inatumika kuthibitisha kwamba ujumbe haukubadilishwa njiani.
JOSE (JSON Object Signing and Encryption)
JWT ni sehemu ya mfumo mkubwa wa JOSE (JSON Object Signing and Encryption), unaotoa njia iliyosanifishwa ya kulinda data inayotegemea JSON. JOSE inajumuisha maelezo kadhaa yanayohusiana: JWS (JSON Web Signature) kwa tokeni zilizosainiwa, JWE (JSON Web Encryption) kwa tokeni zilizosimbwa, JWK (JSON Web Key) kwa kuwakilisha funguo za kriptografia, na JWA (JSON Web Algorithms) kwa kubainisha algoriti za kriptografia.
JSON Web Signature (JWS)
JWT nyingi unazokutana nazo ni tokeni za JWS—zimesainiwa lakini hazijasimbwa. Hii inamaanisha mtu yeyote anaweza kusoma mzigo kwa kuondoa usimbaji wa Base64URL, lakini hawezi kuubadilisha bila kubatilisha sahihi. JWS inatoa uadilifu na ukweli: unaweza kuthibitisha kwamba tokeni ilitolewa na upande unaoaminiwa na haijachezwa nayo.
Algoriti za Kusaini
JWS inasaidia algoriti mbalimbali za kriptografia kwa kusaini tokeni. Hizi zinagawanyika katika makundi mawili: algoriti za siri sawa (ufunguo sawa wa kusaini na kuthibitisha) na algoriti za siri tofauti (ufunguo wa siri wa kusaini, ufunguo wa umma wa kuthibitisha).
Algoriti za HMAC (Siri Sawa)
HS256, HS384, na HS512 zinatumia HMAC (Msimbo wa Uthibitishaji wa Ujumbe unaotegemea Hashi) na SHA-256, SHA-384, au SHA-512 mtawalia. Hizi ni algoriti za siri sawa—ufunguo sawa wa siri unatumika kusaini na kuthibitisha tokeni. Algoriti za HMAC ni za haraka na rahisi lakini zinahitaji usambazaji salama wa ufunguo kwani pande zote mbili zinahitaji siri sawa.
Algoriti za RSA (Siri Tofauti)
RS256, RS384, na RS512 zinatumia RSASSA-PKCS1-v1_5 na SHA-256, SHA-384, au SHA-512. PS256, PS384, na PS512 zinatumia RSASSA-PSS (mpango wa sahihi ya uwezekano). Algoriti za RSA zinatumia ufunguo wa siri kusaini na ufunguo wa umma kuthibitisha. Hii inaruhusu ufunguo wa uthibitishaji kushirikiwa hadharani bila kuhatarisha usalama—inafaa kwa mifumo iliyosambazwa ambapo huduma nyingi zinahitaji kuthibitisha tokeni.
Algoriti za Mkunjo wa Duaradufu (Siri Tofauti)
ES256, ES384, na ES512 zinatumia ECDSA (Algoriti ya Sahihi ya Kidijitali ya Mkunjo wa Duaradufu) na mikunjo P-256, P-384, au P-521 mtawalia. Algoriti za EC zinatoa usalama sawa na RSA lakini kwa ukubwa mdogo wa ufunguo, kutengeneza sahihi ndogo na operesheni za haraka. ES256 inazidi kupendwa kwa programu za kisasa kutokana na ufanisi wake.
JSON Web Encryption (JWE)
Wakati JWS inatoa tokeni zilizosainiwa, JWE inatoa tokeni zilizosimbwa ambapo mzigo ni siri. Tokeni za JWE zina sehemu tano badala ya tatu: kichwa, ufunguo uliosimbwa, vektori ya kuanzisha, maandishi yaliyosimbwa, na lebo ya uthibitishaji. JWE inasaidia algoriti mbalimbali za usimbaji ikiwa ni pamoja na AES-GCM na AES-CBC na HMAC. Kumbuka kwamba kiondoaji hiki cha usimbaji kinashughulikia tokeni za JWS pekee; tokeni za JWE zinahitaji kuondolewa usimbaji kwa ufunguo unaofaa.
Maelezo ya RFC
Viwango vya JWT na JOSE vimefafanuliwa katika RFC kadhaa za IETF: