Ndikimi i sulmuesit
Vlefshmëria e gabuar JWT lejon sulmuesit të anashkalojnë mekanizmat e vërtetimit duke falsifikuar pretendimet ose duke ripërdorur argumentet e skaduara [S1]. Nëse një server pranon shenja pa një nënshkrim të vlefshëm, një sulmues mund të modifikojë ngarkesën për të përshkallëzuar privilegjet ose të imitojë ndonjë përdorues [S1]. Për më tepër, dështimi për të zbatuar pretendimin e skadimit (exp) i lejon një sulmuesi të përdorë një token të komprometuar për një kohë të pacaktuar [S1].
Shkaku rrënjësor
Një Token Ueb JSON (JWT) është një strukturë e bazuar në JSON që përdoret për të përfaqësuar pretendimet që janë të nënshkruara dixhitale ose të mbrojtura nga integriteti [S1]. Dështimet e sigurisë zakonisht rrjedhin nga dy boshllëqe kryesore të zbatimit:
- Pranimi i JWT-ve të pasigurta: Nëse një shërbim nuk zbaton rreptësisht verifikimin e nënshkrimit, ai mund të përpunojë "JWT-të e pasigurta" ku nënshkrimi mungon dhe algoritmi është vendosur në "asnjë" [S1]. Në këtë skenar, serveri u beson pretendimeve në ngarkesë pa verifikuar integritetin e tyre [S1].
- Vleresimi i Kërkesës që mungon: Pretendimi
exp(koha e skadimit) identifikon kohën në ose pas së cilës JWT nuk duhet të pranohet për përpunim [S1]. Pretendimiaud(audienca) identifikon marrësit e synuar të tokenit [S1]. Nëse këto nuk janë të kontrolluara, serveri mund të pranojë shenja që kanë skaduar ose janë të destinuara për një aplikacion tjetër [S1].
Rregullime konkrete
- Zbatoni nënshkrimet kriptografike: Konfiguro aplikacionin për të refuzuar çdo JWT që nuk përdor një algoritëm të fortë nënshkrimi të miratuar paraprakisht (si p.sh. RS256).
- Vlerëso skadimin: Zbatoni një kontroll të detyrueshëm për të siguruar që data dhe ora aktuale janë përpara kohës së specifikuar në pretendimin
exp[S1]. - Verifiko audiencën: Sigurohu që pretendimi
audpërmban një vlerë që identifikon shërbimin lokal; nëse shërbimi nuk identifikohet në pretendiminaud, token duhet të refuzohet [S1]. - Parandaloni riprodhimin: Përdorni pretendimin
jti(JWT ID) për t'i caktuar një identifikues unik çdo token, duke lejuar serverin të gjurmojë dhe të refuzojë argumentet e ripërdorura [S1].
Strategjia e zbulimit
Dobësitë në trajtimin e JWT mund të identifikohen duke analizuar strukturën e tokenit dhe sjelljen e përgjigjes së serverit:
- Inspektimi i kokës: Kontrollimi i kokës
alg(algoritmi) për t'u siguruar që nuk është vendosur në "asnjë" dhe përdor standardet e pritura kriptografike [S1]. - Verifikimi i pretendimit: Konfirmimi i pranisë dhe vlefshmërisë së pretendimeve
exp(skadimi) dheaud(audiencë) brenda ngarkesës JSON [S1]. - Testimi i vlefshmërisë: Testimi nëse serveri refuzon saktë argumentet që kanë skaduar sipas pretendimit
expose janë të destinuara për një audiencë të ndryshme siç përcaktohet nga pretendimiaud[S1].
