تأثير المهاجم
يسمح التحقق غير الصحيح من صحة 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) لتعيين معرف فريد لكل رمز مميز، مما يسمح للخادم بتتبع ورفض الرموز المميزة المعاد استخدامها [S1].
استراتيجية الكشف
يمكن تحديد الثغرات الأمنية في معالجة JWT من خلال تحليل بنية الرمز المميز وسلوك استجابة الخادم:
- فحص الرأس: التحقق من رأس
alg(الخوارزمية) للتأكد من عدم تعيينه على "لا شيء" واستخدام معايير التشفير المتوقعة [S1]. - التحقق من المطالبة: التأكد من وجود وصحة مطالبات
exp(انتهاء الصلاحية) وaud(الجمهور) داخل حمولة JSON [S1]. - اختبار التحقق من الصحة: اختبار ما إذا كان الخادم يرفض بشكل صحيح الرموز المميزة التي انتهت صلاحيتها وفقًا لمطالبة
expأو أنها مخصصة لجمهور مختلف كما هو محدد بواسطة مطالبةaud[S1].
