أدوات المطور · وحدة فك التشفير JWT
RFC 7519 وعائلة JOSE: JWT، JWS، JWE، JWK وJWA موضح
· خلفية
jwt التشفير المعايير
JWT هو أحد أعضاء مجموعة المواصفات من مجموعة العمل IETF JOSE. يشرح هذا المنشور ما يحدده كل RFC، وكيف يتناسبان معًا، ولماذا يكون JWT عادةً JWS.
خمسة اختصارات ورمز واحد - لماذا تذكر الوثائق JWS وJWE عندما تسأل فقط عن JWT
تنتقل وثائق الرمز المميز بين JWT وJWS وJWE وJWK وJWA لأنها تصف طبقات مختلفة من نفس النظام البيئي. يبدأ الارتباك عند استخدام "JWT" كاختصار لكل رمز مميز موقّع مكون من ثلاثة أجزاء. إن فصل المطالبات عن المغلف والتمثيل الرئيسي يجعل التنفيذ أسهل في التفكير.
إن وحدة فك التشفير الخاصة بـ ToolAcre أضيق من المجموعة عمدًا. يتعامل مع الإدخال المكون من ثلاثة أجزاء على شكل JWS والذي يكون أول جزأين تم فك تشفيرهما عبارة عن كائنات JSON. فهو يكتشف المدخلات المدمجة المشفرة المكونة من خمسة أجزاء ويتوقف، لأن قراءة النص المشفر بدون مفاتيح المستلم لن تؤدي إلى فك تشفير الشيء نفسه.
تحدد المستندات JOSE التنسيقات ذات الصلة؛ لا يحدد هذا المستودع الجدول الزمني لمجموعة العمل الخاصة بهم
جاءت المواصفات ذات الصلة من عمل IETF JOSE، لكن مصادر المستودع لا تحدد المخطط الزمني التنظيمي التفصيلي المطلوب بواسطة المخطط التفصيلي. وبالتالي، تتجنب هذه المقالة اختراع التواريخ أو سجل العملية وتركز على علاقات التنسيق التي يمكن ملاحظتها في الأداة والخطة.
والسؤال العملي هو أي طبقة تمتلك كل قرار. تصف أسماء المطالبات بيانات التطبيق، وتحمي التوقيعات المواد المشفرة، ويحمي التشفير المحتوى، وتمثل الكائنات الرئيسية JSON المعلومات الأساسية، وعمليات أسماء معرفات الخوارزمية. لا يوجد اختصار واحد يحل محل الآخرين.
JWS (RFC 7515) — توقيع المحتوى العشوائي والتسلسل المدمج الذي تستخدمه JWTs
يصف JWS المحتوى الموقع أو المحمي MAC. يتكون شكله المدمج من ثلاثة أجزاء: الرأس المحمي والحمولة والتوقيع. يستخدم إدخال التوقيع أول مقطعين مشفرين متصلين بنقطة. عادةً ما يتم نقل JWT في هذا الظرف، وهو النموذج ToolAcre الذي يتم تقسيمه وفحصه.
قد يتم فك تشفير الرأس والحمولة إلى JSON، بينما يكون التوقيع بايتًا وليس كائنًا ثالثًا. ToolAcre يُبلغ عن وجود التوقيع وحجمه ولكنه يضع علامة عليه دائمًا على أنه لم يتم التحقق منه. وبالتالي يمكنه توضيح بنية JWS دون المطالبة بأي نتيجة تشفير.
JWE (RFC 7516) - تشفير المحتوى، بتسلسل من خمسة أجزاء
JWE يصف المحتوى المشفر. يحتوي شكله المدمج على خمسة أجزاء تمثل رأسًا محميًا، ومواد مفتاح مشفر، وقيمة التهيئة، والنص المشفر، وعلامة المصادقة. وبالتالي فإن النقاط الأربع هي دليل هيكلي قوي على أن وحدة فك التشفير JWT المكونة من ثلاثة أجزاء قد تلقت مظروفًا مختلفًا.
ToolAcre يُصدر خطأ JWE محددًا ويوضح أنه لا يمكن قراءة المحتويات بدون مفتاح فك التشفير. ولا يتعامل مع النص المشفر على أنه مشوه JSON أو يحاول عرض بايتات عشوائية. يمكن أيضًا إنشاء التشفير والتوقيع، لكن المعالجة المتداخلة تقع خارج هذا المسار.
JWK و JWA (RFC 7517 و 7518) - تمثيل المفاتيح كـ JSON وتسمية الخوارزميات
يوفر JWK تمثيل JSON لمعلومات مفتاح التشفير، بينما يقوم JWA بتسمية معرفات الخوارزمية والمعلمات ذات الصلة المستخدمة عبر JOSE. إن وجودها لا يعني أن الرمز المميز قد يختار مفتاحه أو خوارزميته الموثوقة. يجب أن يقيد المدقق كلا من جهة الإصدار وسياسة التطبيق.
تشرح ملاحظات خوارزمية ToolAcre فقط مجموعة محدودة من التصنيفات الموجودة في المصدر وتستدعي أي شيء آخر غير معروف. فهي وصف، وليس تطبيقات. لا يقوم جهاز فك التشفير باستيراد JWK ولا يقوم بتنفيذ خوارزمية من JWA، مما يحافظ على حدود الفحص واضحة.
JWT (RFC 7519) — تنسيق المطالبات الذي يعتمد على JWS أو JWE
JWT يحدد كائن المطالبات والأسماء المسجلة مثل جهة الإصدار والموضوع والجمهور والتواريخ الرقمية. يمكن تنفيذ هذه المطالبات في بنية JOSE موقعة أو مشفرة. وبالتالي، تجيب طبقة الحمولة على "ما هي البيانات التي يتم تمثيلها"، بينما يجيب المغلف على كيفية حماية تلك البايتات أو إخفائها.
يتوقع ToolAcre أن تكون الحمولة النافعة التي تم فك تشفيرها كائنًا JSON ويسرد مطالباتها. تم رفض مصفوفة أو رقم أو قيمة فارغة لهذه الأداة. حتى الكائن ذو الشكل الجيد يظل غير موثوق به حتى تتم معالجة المظروف ذي الصلة بواسطة مدقق أو مستلم تم تكوينه.
ما لا يغطيه هذا — الملفات الشخصية اللاحقة مثل RFC 8725 أفضل الممارسات وRFC 9068 رموز الوصول المميزة، والتي لها مشاركاتها الخاصة
يمكن لوثائق أفضل الممارسات والملفات التعريفية اللاحقة تضييق نطاق كيفية استخدام هذه الآليات العامة. إنهم يستحقون معاملة منفصلة لأن التنسيق الأساسي لا يوفر سياسة خاصة بمصدر التطبيق أو الجمهور أو نوع الرمز المميز. لا تدعي هذه المقالة أن وحدة فك التشفير تنفذ أي ملف تعريف من هذا القبيل.
عند مراجعة النظام، قم بتدوين الملف التعريفي الدقيق والمظروف المتوقع والخوارزميات المقبولة والمصدر الرئيسي وقواعد المطالبة. تمنع هذه القائمة معرفة الاختصارات من التحول إلى افتراض التوافق أو الأمان.
الوجبات الجاهزة: JWT هي المطالبات، JWS هو المغلف - يقرأ جهاز فك التشفير ToolAcre JWT النموذج المضغوط JWS ويعرض رأس JWT والمطالبات بداخله
JWT يسمي طبقة المطالبات؛ JWS وJWE توفر مظاريف الحماية؛ JWK يمثل البيانات الأساسية؛ JWA اختيارات خوارزمية الأسماء. ToolAcre يقرأ الشكل الموقع المشترك المكون من ثلاثة أجزاء ويعرض الرأس والمطالبات أثناء رفض التحقق أو فك التشفير.
استخدم تلك الخريطة لطرح السؤال التالي الصحيح. تحدد JSON القابلة للقراءة طبقة المطالبة. تحدد ثلاثة أو خمسة أجزاء عائلات الغلاف المحتملة. لا تزال الثقة تعتمد على التشفير والسياسة التي تم تكوينها بشكل مستقل، وليس على وحدة فك التشفير التي تتعرف على الاختصار.