Áhrif árásarmannsins
Óviðeigandi JWT staðfesting gerir árásarmönnum kleift að komast framhjá auðkenningaraðferðum með því að falsa kröfur eða endurnýta útrunnið tákn [S1]. Ef þjónn samþykkir tákn án gildrar undirskriftar getur árásarmaður breytt hleðslunni til að auka réttindi eða líkja eftir notanda [S1]. Ennfremur, ef ekki tekst að framfylgja fyrningarkröfunni (exp) gerir árásarmanni kleift að nota málamiðlunarlykil endalaust [S1].
Orsök
JSON veftákn (JWT) er uppbygging sem byggir á JSON sem er notuð til að tákna kröfur sem eru stafrænt undirritaðar eða heilleikavarðar [S1]. Öryggisbilanir stafa venjulega af tveimur aðal framkvæmdabilum:
- Samþykki ótryggðra JWT: Ef þjónusta framfylgir ekki stranglega sannprófun undirskrifta getur hún unnið úr „Ótryggðum JWTs“ þar sem undirskriftin er ekki til staðar og reikniritið er stillt á „engin“ [S1]. Í þessari atburðarás treystir þjónninn kröfunum í farminn án þess að sannreyna heilleika þeirra [S1].
- Staðfesting vantar kröfu:
exp(fyrningatími) krafan auðkennir þann tíma sem ekki má samþykkja JWT til vinnslu [S1] eða eftir það.aud(áhorfenda) krafan auðkennir fyrirhugaða viðtakendur táknsins [S1]. Ef þetta er ekki hakað getur þjónninn samþykkt tákn sem eru útrunnið eða voru ætlaðir fyrir annað forrit [S1].
Steinsteypa lagfæringar
- Að framfylgja dulritunarundirskriftum: Stilltu forritið þannig að það hafni hvaða JWT sem notar ekki fyrirfram samþykktan, sterkan undirskriftaralgrím (eins og RS256).
- Staðfesta gildistíma: Framkvæmdu lögboðna athugun til að tryggja að núverandi dagsetning og tími séu fyrir tímann sem tilgreindur er í
expkröfunni [S1]. - Staðfestu áhorfendur: Gakktu úr skugga um að
audkrafan innihaldi gildi sem auðkennir staðbundna þjónustu; ef þjónustan er ekki auðkennd íaudkröfunni verður að hafna tákninu [S1]. - Koma í veg fyrir endurspilun: Notaðu
jti(JWT ID) tilkallið til að úthluta einstöku auðkenni fyrir hvert tákn, sem gerir þjóninum kleift að rekja og hafna endurnotuðum táknum [S1].
Uppgötvunarstefna
Hægt er að bera kennsl á veikleika í meðhöndlun JWT með því að greina táknbyggingu og viðbragðshegðun netþjóns:
- Höfuðskoðun: Athugaðu
alg(reiknirit) hausinn til að tryggja að hann sé ekki stilltur á "enginn" og notar væntanlega dulmálsstaðla [S1]. - Staðfesting á kröfum: Staðfesting á tilvist og gildi
exp(rennur út) ogaud(áhorfendur) kröfur innan JSON farms [S1]. - Validation Testing: Prófar hvort þjónninn hafnar táknum sem eru útrunnir samkvæmt
expkröfunni eða eru ætlaðir öðrum markhópi eins og skilgreint er afaudkröfunni [S1].
