حملہ آور کا اثر
JWT کی غلط توثیق حملہ آوروں کو جعلی دعوے کرکے یا ختم شدہ ٹوکنز [S1] کو دوبارہ استعمال کرکے تصدیق کے طریقہ کار کو نظرانداز کرنے کی اجازت دیتی ہے۔ اگر کوئی سرور درست دستخط کے بغیر ٹوکن قبول کرتا ہے، تو حملہ آور مراعات کو بڑھانے یا کسی بھی صارف [S1] کی نقالی کرنے کے لیے پے لوڈ میں ترمیم کر سکتا ہے۔ مزید برآں، میعاد ختم ہونے (exp) کے دعوے کو نافذ کرنے میں ناکام ہونا حملہ آور کو غیر معینہ مدت تک [S1] سے سمجھوتہ شدہ ٹوکن استعمال کرنے کی اجازت دیتا ہے۔
بنیادی وجہ
JSON ویب ٹوکن (JWT) ایک JSON پر مبنی ڈھانچہ ہے جو ڈیجیٹل طور پر دستخط شدہ یا سالمیت سے محفوظ [S1] دعووں کی نمائندگی کرنے کے لیے استعمال ہوتا ہے۔ سیکورٹی کی ناکامیاں عام طور پر دو بنیادی نفاذ کے خلا سے پیدا ہوتی ہیں:
- غیر محفوظ JWTs کی قبولیت: اگر کوئی سروس دستخط کی تصدیق کو سختی سے نافذ نہیں کرتی ہے، تو یہ "غیر محفوظ JWTs" پر کارروائی کر سکتی ہے جہاں دستخط غائب ہو اور الگورتھم "کوئی نہیں" [S1] پر سیٹ ہو۔ اس منظر نامے میں، سرور ان کی سالمیت کی تصدیق کیے بغیر پے لوڈ میں دعووں پر اعتماد کرتا ہے [S1]۔
- لاپتہ دعوے کی توثیق:
exp(میعاد ختم ہونے کا وقت) دعوی اس وقت کی نشاندہی کرتا ہے جس پر یا اس کے بعد JWT کو [S1] پر کارروائی کے لیے قبول نہیں کیا جانا چاہیے۔aud(سامعین) کا دعوی ٹوکن [S1] کے مطلوبہ وصول کنندگان کی شناخت کرتا ہے۔ اگر ان کی جانچ نہیں کی جاتی ہے، تو سرور ان ٹوکنز کو قبول کر سکتا ہے جن کی میعاد ختم ہو چکی ہے یا جن کا مقصد ایک مختلف ایپلیکیشن [S1] ہے۔
ٹھوس اصلاحات
- کرپٹوگرافک دستخطوں کو نافذ کریں: کسی بھی JWT کو مسترد کرنے کے لیے درخواست کو کنفیگر کریں جو پہلے سے منظور شدہ، مضبوط دستخط کرنے والے الگورتھم (جیسے RS256) کا استعمال نہیں کرتا ہے۔
- میعاد ختم ہونے کی توثیق کریں: اس بات کو یقینی بنانے کے لیے ایک لازمی جانچ پڑتال کریں کہ موجودہ تاریخ اور وقت
expدعوی [S1] میں بیان کردہ وقت سے پہلے ہیں۔ - سامعین کی توثیق کریں: یقینی بنائیں کہ
audکلیم مقامی سروس کی شناخت کرنے والی قدر پر مشتمل ہے۔ اگرaudدعوے میں سروس کی نشاندہی نہیں کی گئی ہے، تو ٹوکن [S1] کو مسترد کر دینا چاہیے۔ - ری پلے کو روکیں:
jti(JWT ID) کلیم کا استعمال کریں تاکہ ہر ٹوکن کو ایک منفرد شناخت کنندہ تفویض کیا جا سکے، جس سے سرور دوبارہ استعمال شدہ ٹوکنز کو ٹریک اور مسترد کر سکتا ہے۔
پتہ لگانے کی حکمت عملی
JWT ہینڈلنگ میں کمزوریوں کو ٹوکن ڈھانچے اور سرور کے ردعمل کے رویے کا تجزیہ کرکے شناخت کیا جا سکتا ہے:
- ہیڈر کا معائنہ:
alg(الگورتھم) ہیڈر کو چیک کرنا یہ یقینی بنانے کے لیے کہ یہ "کوئی نہیں" پر سیٹ نہیں ہے اور متوقع کرپٹوگرافک معیارات [S1] استعمال کرتا ہے۔ - دعوے کی تصدیق: JSON پے لوڈ
exp(میعاد ختم ہونے) اورaud(سامعین) دعووں کی موجودگی اور درستگی کی تصدیق کرنا [S1]۔ - توثیق کی جانچ: جانچ کرنا کہ آیا سرور صحیح طریقے سے ایسے ٹوکنز کو مسترد کرتا ہے جو
expدعوے کے مطابق ختم ہوچکے ہیں یاaudدعویaudکے ذریعہ بیان کردہ مختلف سامعین کے لیے ہیں۔
