Aanvaller impak
Onbehoorlike JWT-bekragtiging stel aanvallers in staat om stawingmeganismes te omseil deur eise te vervals of vervalde tokens te hergebruik [S1]. As 'n bediener tekens sonder 'n geldige handtekening aanvaar, kan 'n aanvaller die loonvrag verander om voorregte te eskaleer of enige gebruiker [S1] na te doen. Verder, versuim om die verstryking (exp) eis af te dwing, laat 'n aanvaller toe om 'n gekompromitteerde teken onbepaald [S1] te gebruik.
Oorsaak
'n JSON Web Token (JWT) is 'n JSON-gebaseerde struktuur wat gebruik word om eise te verteenwoordig wat digitaal onderteken of integriteit beskerm is [S1]. Sekuriteitsfoute spruit tipies uit twee primêre implementeringsgapings:
- Aanvaarding van Onbeveiligde JWT'e: Indien 'n diens nie handtekeningverifikasie streng afdwing nie, kan dit "Onbeveiligde JWT'e" verwerk waar die handtekening afwesig is en die algoritme op "geen" gestel is [S1]. In hierdie scenario vertrou die bediener die eise in die loonvrag sonder om hul integriteit te verifieer [S1].
- Bekragtiging van ontbrekende eis: Die
exp(vervaltyd)-eis identifiseer die tyd waarop of na die JWT nie aanvaar moet word vir die verwerking van [S1] nie. Dieaud(gehoor)-eis identifiseer die beoogde ontvangers van die token [S1]. As dit nie gemerk is nie, kan die bediener tokens aanvaar wat verval het of bedoel was vir 'n ander toepassing [S1].
Betonoplossings
- Dwing kriptografiese handtekeninge af: Stel die toepassing op om enige JWT te verwerp wat nie 'n vooraf-goedgekeurde, sterk ondertekeningsalgoritme (soos RS256) gebruik nie.
- Bekragtig verval: Implementeer 'n verpligte kontrole om te verseker dat die huidige datum en tyd voor die tyd is wat in die
exp-eis [S1] gespesifiseer is. - Verifieer gehoor: Maak seker dat die
aud-eis 'n waarde bevat wat die plaaslike diens identifiseer; indien die diens nie in dieaud-eis geïdentifiseer word nie, moet die teken [S1] verwerp word. - Voorkom herhaling: Gebruik die
jti(JWT ID)-eis om 'n unieke identifiseerder aan elke teken toe te ken, wat die bediener toelaat om hergebruikte tekens [S1] op te spoor en te verwerp.
Opsporingstrategie
Kwesbaarhede in JWT-hantering kan geïdentifiseer word deur die tekenstruktuur en bedienerresponsgedrag te ontleed:
- Opskrifinspeksie: Kontroleer die
alg(algoritme) opskrif om te verseker dat dit nie op "geen" gestel is nie en gebruik verwagte kriptografiese standaarde [S1]. - Eisverifikasie: Bevestiging van die teenwoordigheid en geldigheid van die
exp(verval) enaud(gehoor)-eise binne die JSON-loonvrag [S1]. - Validasietoetsing: Toets of die bediener tokens wat verval het volgens die
exp-eis korrek verwerp of bedoel is vir 'n ander gehoor soos gedefinieer deur dieaud-eis [S1].
