Effaith Ymosodwr
Mae dilysiad amhriodol JWT yn caniatáu i ymosodwyr osgoi mecanweithiau dilysu trwy ffugio hawliadau neu ailddefnyddio tocynnau sydd wedi dod i ben [S1]. Os yw gweinydd yn derbyn tocynnau heb lofnod dilys, gall ymosodwr addasu'r llwyth tâl i gynyddu breintiau neu ddynwared unrhyw ddefnyddiwr [S1]. At hynny, mae methu â gorfodi'r hawliad dod i ben (exp) yn caniatáu i ymosodwr ddefnyddio tocyn cyfaddawd am gyfnod amhenodol [S1].
Achos Gwraidd
Mae Tocyn Gwe JSON (JWT) yn strwythur sy'n seiliedig ar JSON a ddefnyddir i gynrychioli hawliadau sydd wedi'u llofnodi'n ddigidol neu wedi'u diogelu gan gywirdeb [S1]. Mae methiannau diogelwch fel arfer yn deillio o ddau fwlch gweithredu sylfaenol:
- Derbyn JWTs Anwarantedig: Os nad yw gwasanaeth yn gorfodi dilysu llofnod yn llym, gall brosesu "JWTs Ansicredig" lle nad yw'r llofnod a'r algorithm wedi'i osod i "dim" [S1]. Yn y senario hwn, mae'r gweinydd yn ymddiried yn yr hawliadau yn y llwyth tâl heb wirio eu cywirdeb [S1].
- Dilysu Hawliad Coll: Mae'r hawliad
exp(amser dod i ben) yn nodi'r amser y mae'n rhaid peidio â derbyn y JWT i'w brosesu neu wedi hynny. Mae hawliadaud(cynulleidfa) yn nodi derbynwyr arfaethedig y tocyn [S1]. Os na chaiff y rhain eu gwirio, gall y gweinydd dderbyn tocynnau sydd wedi dod i ben neu a fwriadwyd ar gyfer cymhwysiad gwahanol [S1].
Atgyweiriadau Concrit
- Gorfodi Llofnodion Cryptograffig: Ffurfweddwch y rhaglen i wrthod unrhyw JWT nad yw'n defnyddio algorithm arwyddo cryf a gymeradwyir ymlaen llaw (fel RS256).
- Dilysu Terfyniad: Gweithredu gwiriad gorfodol i sicrhau bod y dyddiad a'r amser cyfredol cyn yr amser a nodir yn yr hawliad
exp[S1]. - Gwirio Cynulleidfa: Sicrhau bod yr hawliad
audyn cynnwys gwerth sy'n nodi'r gwasanaeth lleol; os nad yw'r gwasanaeth wedi'i nodi yn yr hawliadaud, rhaid gwrthod y tocyn [S1]. - Atal Ailchwarae: Defnyddiwch yr hawliad
jti(JWT ID) i aseinio dynodwr unigryw i bob tocyn, gan ganiatáu i'r gweinydd olrhain a gwrthod tocynnau wedi'u hailddefnyddio [S1].
Strategaeth Ddarganfod
Gellir nodi gwendidau wrth drin JWT trwy ddadansoddi strwythur y tocyn ac ymddygiad ymateb y gweinydd:
- Archwiliad Pennawd: Gwirio'r pennawd
alg(algorithm) i sicrhau nad yw wedi'i osod i "dim" ac yn defnyddio safonau cryptograffig disgwyliedig [S1]. - Dilysu Hawliad: Cadarnhau presenoldeb a dilysrwydd yr hawliadau
exp(dod i ben) aaud(cynulleidfa) o fewn llwyth tâl JSON [S1]. - Profi Dilysu: Profi a yw'r gweinydd yn gwrthod yn gywir docynnau sydd wedi dod i ben yn unol â'r honiad
expneu a fwriedir ar gyfer cynulleidfa wahanol fel y'i diffinnir gan yr hawliadaud[S1].
