Kesan Penyerang
Pengesahan JWT yang tidak betul membolehkan penyerang memintas mekanisme pengesahan dengan memalsukan tuntutan atau menggunakan semula token tamat tempoh [S1]. Jika pelayan menerima token tanpa tandatangan yang sah, penyerang boleh mengubah suai muatan untuk meningkatkan keistimewaan atau menyamar sebagai mana-mana pengguna [S1]. Selain itu, kegagalan untuk menguatkuasakan tuntutan tamat tempoh (exp) membolehkan penyerang menggunakan token yang dikompromi selama-lamanya [S1].
Punca Punca
Token Web JSON (JWT) ialah struktur berasaskan JSON yang digunakan untuk mewakili tuntutan yang ditandatangani secara digital atau dilindungi integriti [S1]. Kegagalan keselamatan biasanya berpunca daripada dua jurang pelaksanaan utama:
- Penerimaan JWT Tidak Bercagar: Jika perkhidmatan tidak menguatkuasakan pengesahan tandatangan dengan ketat, ia mungkin memproses "JWT Tidak Bercagar" apabila tandatangan tiada dan algoritma ditetapkan kepada "tiada" [S1]. Dalam senario ini, pelayan mempercayai tuntutan dalam muatan tanpa mengesahkan integritinya [S1].
- Pengesahan Tuntutan Hilang: Tuntutan
exp(masa tamat tempoh) mengenal pasti masa pada atau selepas itu JWT mesti tidak diterima untuk memproses [S1]. Tuntutanaud(khalayak) mengenal pasti penerima yang dimaksudkan untuk token [S1]. Jika ini tidak disemak, pelayan boleh menerima token yang telah tamat tempoh atau bertujuan untuk aplikasi berbeza [S1].
Pembetulan Konkrit
- Kuatkuasakan Tandatangan Kriptografi: Konfigurasikan aplikasi untuk menolak mana-mana JWT yang tidak menggunakan algoritma tandatangan kukuh yang telah diluluskan terlebih dahulu (seperti RS256).
- Sahkan Tamat Tempoh: Laksanakan semakan mandatori untuk memastikan tarikh dan masa semasa adalah sebelum masa yang dinyatakan dalam tuntutan
exp[S1]. - Sahkan Khalayak: Pastikan tuntutan
audmengandungi nilai yang mengenal pasti perkhidmatan tempatan; jika perkhidmatan tidak dikenal pasti dalam tuntutanaud, token mesti ditolak [S1]. - Cegah Main Semula: Gunakan tuntutan
jti(JWT ID) untuk memberikan pengecam unik kepada setiap token, membenarkan pelayan menjejak dan menolak token yang digunakan semula [S1].
Strategi Pengesanan
Kerentanan dalam pengendalian JWT boleh dikenal pasti dengan menganalisis struktur token dan tingkah laku tindak balas pelayan:
- Pemeriksaan Pengepala: Menyemak pengepala
alg(algoritma) untuk memastikan ia tidak ditetapkan kepada "tiada" dan menggunakan piawaian kriptografi yang dijangkakan [S1]. - Pengesahan Tuntutan: Mengesahkan kehadiran dan kesahihan tuntutan
exp(tamat tempoh) danaud(khalayak) dalam muatan JSON [S1]. - Pengujian Pengesahan: Menguji jika pelayan menolak token yang telah tamat tempoh dengan betul mengikut tuntutan
expatau bertujuan untuk khalayak berbeza seperti yang ditakrifkan oleh tuntutanaud[S1].
