Hücumçu Təsiri
Yanlış JWT doğrulaması təcavüzkarlara iddiaları saxtalaşdırmaqla və ya vaxtı keçmiş [S1] tokenlərindən təkrar istifadə etməklə autentifikasiya mexanizmlərini yan keçməyə imkan verir. Server etibarlı imza olmadan tokenləri qəbul edərsə, təcavüzkar imtiyazları artırmaq və ya [S1] hər hansı istifadəçini təqlid etmək üçün faydalı yükü dəyişdirə bilər. Bundan əlavə, müddətin başa çatması (exp) iddiasının tətbiq edilməməsi təcavüzkara [S1]-dən qeyri-müəyyən müddətə istifadə etməyə imkan verir.
Kök Səbəb
JSON Veb Tokeni (JWT) rəqəmsal imzalanmış və ya bütövlüyü qorunan [S1] iddialarını təmsil etmək üçün istifadə edilən JSON əsaslı strukturdur. Təhlükəsizlik uğursuzluqları adətən iki əsas icra boşluğundan qaynaqlanır:
- Təhlükəsiz JWT-lərin qəbulu: Əgər xidmət imza yoxlanışını ciddi şəkildə tətbiq etmirsə, o, imzanın olmadığı və alqoritmin [S1] "heç biri" olaraq təyin edildiyi "Təminatsız JWT"ləri emal edə bilər. Bu ssenaridə server [S1] tamlığını yoxlamadan faydalı yükdəki iddialara etibar edir.
- Çatışmayan İddianın Təsdiqlənməsi:
exp(keçmə vaxtı) iddiası JWT-nin [S1]-nin emalı üçün qəbul edilməməsi lazım olan vaxtı və ya ondan sonra müəyyən edir.aud(auditoriya) iddiası [S1] tokeninin nəzərdə tutulan alıcılarını müəyyən edir. Bunlar yoxlanılmazsa, server vaxtı keçmiş və ya başqa [S1] tətbiqi üçün nəzərdə tutulmuş tokenləri qəbul edə bilər.
Beton Təmirləri
- Kriptoqrafik İmzaları Tətbiq Edin: Əvvəlcədən təsdiqlənmiş, güclü imzalama alqoritmini (RS256 kimi) istifadə etməyən hər hansı JWT-ni rədd etmək üçün proqramı konfiqurasiya edin.
- Müddət müddətini yoxlayın: Cari tarix və vaxtın
exp[S1] iddiasında göstərilən vaxtdan əvvəl olmasını təmin etmək üçün məcburi yoxlama aparın. - Tamaşaçıları Doğrulayın:
audiddiasının yerli xidməti müəyyən edən dəyəri ehtiva etdiyinə əmin olun; xidmətaudiddiasında müəyyən edilməzsə, token [S1] rədd edilməlidir. - Təkrarın qarşısını alın:
jti(JWT ID) iddiasından istifadə edərək hər bir tokenə unikal identifikator təyin edin, bu da serverə [S1] təkrar istifadə edilmiş tokenləri izləməyə və rədd etməyə imkan verir.
Aşkarlama Strategiyası
JWT işində zəifliklər token strukturunu və server cavab davranışını təhlil etməklə müəyyən edilə bilər:
- Başlıq Təftişi:
alg(alqoritm) başlığının yoxlanılması, onun "heç biri" olaraq təyin edilmədiyinə əmin olmaq və [S1] gözlənilən kriptoqrafik standartlarından istifadə edir. - İddiaların yoxlanılması:
exp(müddəti bitmiş) vəaud(auditoriya) iddialarının [S1] JSON yükü daxilində mövcudluğunun və etibarlılığının təsdiqlənməsi. - Təsdiqləmə Testi:
expiddiasına uyğun olaraq vaxtı keçmiş tokenləri serverin düzgün şəkildə rədd edib-etmədiyini və yaaudiddiası [S1] ilə müəyyən edilmiş fərqli auditoriya üçün nəzərdə tutulduğunu yoxlamaq.
