العربية

أدوات المطور · وحدة فك التشفير JWT

شرح الرأس JWT: alg، typ، kid والحقول التي لا تثق بها

· كيف يعمل

jwt حماية المصادقة

توقف رأس JWT الذي تم فك تشفيره عند حدود ثقة أداة التحقق
الرسم التوضيحي المتجه الأصلي ToolAcre

يخبر الرأس أداة التحقق بكيفية توقيع الرمز المميز والمفتاح الذي يجب استخدامه. يشرح هذا المنشور كل حقل رأس مشترك، وما الذي يمكن أن يعتمد عليه المدقق، وما هي الحقول التي لا يجب الوثوق بها أبدًا من الرمز المميز نفسه.

الكائن الصغير JSON الذي لا يقرأه أحد - وقرارات التحقق التي يؤثر عليها

الرأس صغير بما يكفي لإغفاله، إلا أن حقوله غالبًا ما تشارك في توجيه التحقق. وهذا يجعل من الخطورة الخلط بين الرؤية والسلطة. يقوم ToolAcre بفك تشفير الرأس ككائن JSON ويظهر خصائصه، ولكن كل بايت يأتي من حامل الرمز المميز ويظل مدخلاً غير موثوق به.

قد يستخدم المدقق قيمة رأس فقط داخل القيود التي تم إنشاؤها من التكوين الموثوق. يجب ألا يسمح للرمز المميز باختراع خوارزمية مقبولة أو مُصدر أو مصدر مفتاح بعيد. تنتهي مهمة وحدة فك التشفير عند JSON القابلة للقراءة بالإضافة إلى التحذيرات؛ لا يختار أبدًا مفتاحًا أو يصدر قرارًا بالسماح أو الرفض.

عرض alg: يشرح جهاز فك التشفير فقط الخوارزميات المذكورة في تنفيذه

`alg` يعلن عن الخوارزمية التي تم استخدام مطالبات الرمز المميز بها. يحتوي ToolAcre على ملاحظات توضيحية لـ HS256، HS384، HS512، RS256، RS384، RS512، ES256، ES384، ES512، PS256، PS384 و PS512، بالإضافة إلى تحذير لـ `none`. يتم عرض أي سلسلة أخرى على أنها غير معروفة بدلاً من معاملتها على أنها مدعومة.

هذه القائمة عبارة عن ميزة عرض، وليست كتالوجًا للخوارزميات التي يمكن لـ ToolAcre التحقق منها: فهي لا تتحقق من أي منها. يجب أن تقوم الواجهة الخلفية بتثبيت اختياراتها المسموح بها بشكل مستقل وترفض عدم التطابق. لا يمكن لقراءة `alg: RS256` أن تثبت استخدام RSA، تمامًا كما لا يمكن لقراءة `alg: none` أن تسمح برمز مميز غير موقع بأمان.

typ وcty - الإعلان عن نوع الرمز المميز، وملف تعريف at+jwt لرموز الوصول، وJWTs المتداخلة

`typ` يصف نوع الوسائط أو الملف الشخصي الذي يقصده المنتج. ToolAcre يحذر عندما تختلف قيمة السلسلة عن `JWT`؛ لا يفرض دلالات الملف الشخصي. يمكن أن يصف الحقل `cty` المحتوى المتداخل، لكن وحدة فك الترميز الحالية لا تحتوي على مسار معالجة للرمز المميز المتداخل ولا تفسر هذا الحقل.

يمكن أن تساعد الكتابة الصريحة أداة التحقق على إبقاء فئات الرموز المميزة المختلفة منفصلة عندما تحدد سياستها القيم المتوقعة. لا يزال الشيك ملكًا لذلك المدقق. لا يمكن للرمز المميز أن يجعل من نفسه رمز وصول بمجرد الإعلان عن التسمية المفضلة، ولا يمكن للوحة فك التشفير تحديد نقطة نهاية التطبيق التي يجب أن تستهلكه.

طفل - معرف المفتاح الذي يسمح للمتحققين بتدوير المفاتيح دون توقف

`kid` هو معرّف رئيسي، وليس مادة أساسية وليس دليلاً على الملكية. يمكن للخدمة التي تقوم بتدوير العديد من المفاتيح الموثوقة أن تستخدم سياق المُصدر المعتمد ومعرفًا مقيدًا لتحديد موقع المرشح. يجب أن يظل المعرف مدخلاً في بحث يتم التحكم فيه بدلاً من مسار الملف أو جزء الاستعلام أو URL التعسفي.

ToolAcre يترك `kid` مرئيًا في الرأس JSON ولكنه لا يحل المشكلة. هذا التقييد مهم: لا يوجد مخزن مفاتيح موثوق به متاح لصفحة فك التشفير العامة. إذا أعقب 401 التناوب، فقارن المعرف المعروض بمخزون المفتاح من جانب الخادم والسجلات دون افتراض أن المفتاح المقترح للرمز المميز شرعي.

jku، وx5u، وjwk، وx5c — حقول الرأس التي تشير إلى المفاتيح، ولماذا يجب على المدقق عدم جلبها أو الوثوق بها بشكل أعمى

يمكن للحقول مثل `jku` و`x5u` تسمية المواقع، بينما يمكن أن يحمل `jwk` و`x5c` البيانات المتعلقة بالمفتاح. إن وجودهم لا يجعل تلك المواقع أو القيم موثوقة. يؤدي جلب URL أو قبول المادة المضمنة فقط لأن رأسًا لم يتم التحقق منه قدمها إلى تسليم قرار الأمان إلى الطالب.

يحصل المدقق الآمن على المفاتيح من خلال علاقة المُصدر وسياسة الشبكة التي تم إنشاؤها خارج الرمز المميز. ToolAcre لا يجلب عناوين URL للعناوين ولا يبني الثقة من المفاتيح المضمنة. أثناء المراجعة، تعتبر رؤية أحد هذه الحقول بمثابة مطالبة بفحص تكوين أداة التحقق، وليست تعليمات لمتابعة الرأس.

Crit - امتدادات يجب على المدقق فهمها أو رفضها

يشير `crit` إلى أن ملحقات معينة تتطلب الفهم من قبل المستلم. يحتاج المدقق الذي يدعم مثل هذا الامتداد إلى مسار تنفيذ ورفض واضح للأسماء الهامة غير المعروفة. إن تجاهل علامة حرجة غير مألوفة يمكن أن يجعل المنتج والمستهلك يفسران المحتوى المحمي بشكل مختلف.

لا يقوم تطبيق فك التشفير فقط بمعالجة `crit`، لذا يمكنه إظهار المصفوفة الأولية دون المطالبة بالتوافق. وهذه حدود أخرى بين التفتيش والتحقق من الصحة. إذا كان رمز الإنتاج يعتمد على ملحقات هامة، فتحقق من السلوك في المكتبة الفعلية والتكوين بدلاً من استنتاج الدعم من JSON القابل للقراءة.

مثال عملي - قراءة رأس واقعي وتحديد الحقول التي تبلغ عن التحقق وأيها معلوماتية فقط

خذ بعين الاعتبار `{"alg":"RS256","typ":"JWT","kid":"rotate-7"}`. ToolAcre يطبع الحقول الثلاثة بشكل جميل ويوضح أن التحقق RS256 يحتاج إلى مفتاح عام للمصدر. يمكن للمراجع ملاحظة الخوارزمية المعلنة ومعرف المفتاح، ثم مقارنتها بسياسة الخادم المثبتة ومجموعة المفاتيح الموثوقة.

تقوم الحقول بإبلاغ التحقيق ولكنها لا تقرر شيئًا بشكل مستقل. إذا سمح الخادم بخوارزمية أخرى فقط، أو لم يتمكن من العثور على `rotate-7` في مجموعة المُصدر الصحيحة أو رفض التوقيع، فلن يتجاوز الرأس القابل للقراءة هذه النتيجة. وبالمثل، لا يجوز قبول تغيير نص الرأس دون إعادة حساب التوقيع الصحيح.

الخلاصة: الرأس هو مدخل، وليس مرجعًا - يُظهر جهاز فك التشفير ToolAcre JWT الرأس حتى تتمكن من قراءته؛ ويجب على المدقق أن يقرر بشكل مستقل ما يجب الوثوق به

تعامل مع الرأس JWT كمدخل، وليس كمرجع. يمكن أن تساعد قيمها في الاختيار من بين الاختيارات المسموح بها بالفعل بواسطة التكوين، أو تحديد مشكلة التدوير المحتملة أو تفسير عدم تطابق ملف التعريف. لا يمكنهم بناء الثقة في الخوارزمية أو المفتاح أو URL أو نوع الرمز المميز الخاص بهم.

استخدم ToolAcre لقراءة رأس الاختبار وإظهار القيم المشبوهة مثل `alg` المفقودة أو `none` أو `typ` غير المتوقعة. ثم انتقل إلى أداة التحقق المكونة لكل قرار لاحق. لا يثبت فك التشفير الأصالة أو النزاهة أو الترخيص أو هوية المُصدر، بغض النظر عن مدى معقولية ظهور الرأس.