أدوات المطور · وحدة فك التشفير JWT
RFC 8725 موضح: JWT أفضل الممارسات الحالية للمحققين
· خلفية
jwt حماية المصادقة
قام IETF بجمع المخاطر JWT المعروفة في وثيقة واحدة لأفضل الممارسات الحالية. يتناول هذا المنشور توصياته ويربط كل منها بفئة الحادث الذي يمنعه.
تحفز حالات الفشل المتكررة JWT على إنشاء قائمة مرجعية للتحقق؛ لا تحدد مصادر المستودع تاريخ النشر
تسمح تنسيقات الرموز المميزة المرنة بالمجموعات التي يجب على المدقق تقييدها. تتضمن الأخطاء المتكررة الثقة في تسميات الخوارزمية، وقبول رمز مميز تحت المُصدر أو الجمهور الخطأ ومتابعة المواد الرئيسية التي حددها المهاجم. وتقوم قائمة المراجعة بتحويل تلك المخاطر العامة إلى اختبارات رفض عند حدود القبول الفعلية.
ينسب المخطط تاريخ النشر إلى سنة معينة، لكن مصادر المستودع لا تتحقق من هذا التاريخ، لذلك يحذفه هذا القسم. يتم إنشاء التمييز القابل للتنفيذ محليًا: ToolAcre يقوم بفك التشفير فقط، بينما ينتمي كل قرار يتعلق بأفضل الممارسات إلى أداة التحقق التي تم تكوينها.
تثبيت الخوارزميات وعدم رفض أي منها — التوصيات التي تتناول alg:none وارتباك المفاتيح
قم بتثبيت الخوارزميات المسموح بها بشكل مستقل عن الرأس ورفض الإدخال غير الموقع في التدفقات التي تتطلب التوقيع. ربط كل عائلة خوارزمية مقبولة بنوع المفتاح الصحيح. لا تسمح لرمز مميز بتبديل أداة التحقق من التحقق غير المتماثل إلى HMAC أو تعطيل التحقق باستخدام `none`.
ToolAcre تضع علامة `none` وتشرح التسميات التي تم التعرف عليها، ولكن هذه التحذيرات لا تفرض أي شيء. أثبت السياسة الحقيقية باختبارات سلبية على الواجهة الخلفية: الخوارزميات غير المتوقعة والتوقيعات الفارغة وأنواع المفاتيح الخاطئة يجب أن تفشل على الرغم من أن أول جزأين منها يظلان قابلين لفك التشفير.
التحقق من صحة الجمهور والمصدر - التوصيات ضد إعادة التشغيل عبر الخدمات
قم بتوثيق جهة الإصدار ضمن تكوين المفتاح الموثوق، ثم قارن الجمهور المستهدف بالخدمة المستهلكة. لا يزال من الممكن للتوقيع الصالح دون التحقق من المطالبات السياقية أن يسمح برمز مميز في المكان الخطأ. سلسلة المُصدر المنسوخة في حد ذاتها ليست ربطًا رئيسيًا.
يعرض جهاز فك التشفير القيم `iss` و`aud` دون معرفة التكوين المتوقع. استخدم هذه الرؤية لتحديد حالات الاختبار، وليس لإصدار حكم. يجب أن تميز اختبارات القبول بين جهة الإصدار الخاطئة والجمهور الخطأ وفشل التوقيع حتى تظل سجلات التشغيل مفيدة.
استخدم الكتابة الصريحة - رأس الكتابة كوسيلة للدفاع ضد استبدال الرمز المميز
يمكن لكتابة الرمز المميز الصريحة فصل ملفات التعريف التي تعيد استخدام أشكال مطالبات مماثلة. يجب أن يعرف المدقق النوع الذي يتوقعه لنقطة نهاية معينة ويرفض ملفات التعريف غير المتوافقة بدلاً من التعامل مع كل JWT موقع على أنه قابل للتبديل.
يظل الرأس `typ` غير موثوق به حتى يتم التحقق منه، ولا يحذر ToolAcre إلا عندما تختلف سلسلته عن `JWT`. ولا يتحقق من صحة ملفات تعريف رمز الوصول أو المحتوى المتداخل أو اصطلاحات الموفر. تحديد قواعد النوع في التطبيق واختبار محاولات الاستبدال.
لا تثق بـ jku أو x5u أو المفاتيح المضمنة - توصيات مصدر المفتاح
لا تسمح لـ `jku`، `x5u`، ببيانات JWK المضمنة أو صفائف الشهادات بإنشاء مصدر رئيسي لمجرد ظهورها في رأس محمي. حل المفاتيح من خلال علاقة جهة إصدار موثوقة بشكل مستقل وسياسة استرجاع مقيدة. تعامل مع `kid` فقط كمحدد ضمن تلك الحدود.
لا يقوم ToolAcre بإجراء بحث عن الشبكة من قيم الرأس. هذا هو السلوك الصحيح للمفتش العام. أثناء التدقيق، تتبع كل مسار من بيانات تعريف الرأس إلى نظام الملفات وذاكرة التخزين المؤقت وقاعدة البيانات وعمليات الشبكة، ثم ارفض أي مسار ينشئ الثقة من المدخلات التي يتم التحكم فيها بواسطة الرمز المميز.
يجب التحقق من إدخال التشفير وإرشادات المحتوى المشفر في المكتبة والملف الشخصي المختارين
يجب أن تتحقق تطبيقات التشفير من صحة المدخلات وأن تتبع قواعد ملف التعريف المحدد. تحتاج تصميمات التشفير أيضًا إلى الاهتمام بالضغط والبيانات التي يمكن ملاحظتها. إن واجهات برمجة التطبيقات (API) والإعدادات الافتراضية المحددة خاصة بالمكتبة وغير موجودة في هذا المستودع، لذلك لا تخترع هذه المقالة مفاتيح تبديل أو تطالب بدعم عالمي.
اقرأ الوثائق الحالية للمكتبة والإصدار المنشورين، ثم أنشئ اختبارات المدخلات غير الصحيحة وعدم تطابق السياسة. توضح الأخطاء النظيفة INVALID_JWT الخاصة بوحدة فك التشفير بيئة عمل جيدة للفحص، ولكنها ليست دليلاً على أن أداة التحقق المنفصلة تتعامل مع حالات حافة التشفير بشكل صحيح.
مثال عملي — مراجعة روتين التحقق مقابل القائمة المرجعية
قم بمراجعة روتين التحقق من خلال إدراج تكوين جهة الإصدار الموثوقة والخوارزميات المقبولة والمصدر الرئيسي والجمهور ونوع الرمز المميز وسياسة الوقت ومطالبات التطبيق. لكل عنصر، أضف رمزًا سلبيًا يمكن قراءته من الناحية النحوية ولكنه ينتهك توقعًا واحدًا بالضبط. تأكيد الرفض عند الحدود الحقيقية.
استخدم ToolAcre فقط لفحص ما تدعيه كل تركيبة والتأكد من وجود الطفرة المقصودة. لا تستخدم مخرجاتها كتأكيد على أن التركيبة غير صالحة. توفر استجابة المدقق والسجلات هذا الدليل، بينما تظل وحدة فك التشفير ثابتة عبر الأمثلة المقبولة والمرفوضة.
الوجبات الجاهزة: قائمة مرجعية، وليست مكتبة - تساعدك وحدة فك الترميز ToolAcre JWT على فحص الرموز المميزة أثناء التدقيق؛ تنطبق الممارسات على المدقق الذي تكتبه
وثيقة أفضل الممارسات هي قائمة مرجعية، وليست مكتبة تحقق. وتظهر قيمتها عندما تترجم الفرق التوصيات إلى تكوين واضح وعلاقات ثقة ضيقة واختبارات تفشل في الإغلاق. يمكن لوحدة فك التشفير أن تجعل إدخال الرمز المميز مقروءًا أثناء هذا العمل ولكن لا يمكنها تنفيذ عناصر التحكم.
الحفاظ على الحدود في الوثائق وواجهة المستخدم: فك التشفير يعني أنه قابل للقراءة، وغير أصلي، وغير معدل، ومصرح به أو مقبول. قم بتثبيت السياسة خارج الرمز المميز، وتحقق أولاً ثم قم بتطبيق المطالبات ثانيًا. ToolAcre يتوقف عمدًا قبل كل تلك القرارات.