Шабуылшының әсері
Дұрыс емес JWT валидациясы шабуылдаушыларға жалған шағымдар жасау немесе мерзімі өткен [S1] таңбалауыштарын қайта пайдалану арқылы аутентификация механизмдерін айналып өтуге мүмкіндік береді. Сервер жарамды қолтаңбасыз таңбалауыштарды қабылдаса, шабуылдаушы артықшылықтарды арттыру үшін пайдалы жүктемені өзгерте алады немесе [S1] кез келген пайдаланушының кейпін көрсете алады. Сонымен қатар, жарамдылық мерзімін (exp) орындамау шабуылдаушыға бұзылған таңбалауышты [S1] шексіз пайдалануға мүмкіндік береді.
Негізгі себеп
JSON веб-таңбалауышы (JWT) – сандық қолтаңбасы бар немесе тұтастығы қорғалған [S1] шағымдарды көрсету үшін пайдаланылатын JSON негізіндегі құрылым. Қауіпсіздік қателері әдетте екі негізгі іске асыру олқылығынан туындайды:
- Қорғалмаған JWTs қабылдау: Егер қызмет қолтаңбаны тексеруді қатаң түрде орындамаса, ол қолтаңба жоқ және алгоритм "жоқ" [S1] күйіне орнатылған "Қорғалмаған JWT" өңдеуі мүмкін. Бұл сценарийде сервер [S1] тұтастығын тексермей пайдалы жүктемедегі шағымдарға сенеді.
- Шағымды растау жоқ:
exp(жарамдылық мерзімі) шағымы JWT [S1] өңдеуге қабылданбауы тиіс немесе одан кейін уақытты анықтайды.aud(аудитория) шағымы [S1] токенінің болжалды алушыларын анықтайды. Егер олар белгіленбесе, сервер мерзімі өтіп кеткен немесе басқа [S1] қолданбасына арналған таңбалауыштарды қабылдауы мүмкін.
Бетонды түзетулер
- Криптографиялық қолтаңбаларды қолдану: қолданбаны алдын ала бекітілген, күшті қол қою алгоритмін (RS256 сияқты) пайдаланбайтын кез келген JWT қабылдамау үшін конфигурациялаңыз.
- Жарамдылық мерзімін растау: ағымдағы күн мен уақыт
exp[S1] шағымында көрсетілген уақыттан бұрын болуын тексеру үшін міндетті тексеруді орындаңыз. - Аудиторияны тексеру:
audшағымында жергілікті қызметті анықтайтын мән бар екеніне көз жеткізіңіз; егер қызметaudшағымында анықталмаса, таңбалауыш [S1] қабылданбауы керек. - Қайталауды болдырмау:
jti(JWT идентификаторы) шағымын серверге қайта пайдаланылған [S1] таңбалауыштарын қадағалауға және қабылдамау мүмкіндігін беретін әрбір таңбалауышқа бірегей идентификатор тағайындау үшін пайдаланыңыз.
Анықтау стратегиясы
JWT өңдеуіндегі осалдықтарды таңбалауыш құрылымы мен сервердің жауап әрекетін талдау арқылы анықтауға болады:
- Тақырыпты тексеру:
alg(алгоритм) тақырыбын тексеру, оның «ешқандай» күйіне орнатылмағанына және [S1] күтілетін криптографиялық стандарттарын пайдаланатынына көз жеткізу. - Шағымды тексеру: [S1] JSON пайдалы жүктемесінде
exp(жарамдылық мерзімі) жәнеaud(аудитория) шағымдарының болуын және жарамдылығын растау. - Тестілеуді тексеру: сервер
expшағымына сәйкес мерзімі өтіп кеткен немесеaudZXCVFIXVIBETOKEN2ZXV шағымында анықталғандай басқа аудиторияға арналған таңбалауыштарды дұрыс қабылдамағанын тексеру.
