أدوات المطور · وحدة فك التشفير JWT
كيفية فك تشفير الحمولة JWT يدويًا باستخدام base64 وjq
· كيف يعمل
jwt سطر الأوامر سير عمل المطور
في الصندوق بدون رأس، لا يزال بإمكانك قراءة الرمز المميز باستخدام القطع وtr وbase64 وjq. يقدم هذا المنشور الأوامر، ويشرح تحويل base64url الذي يقوم به كل واحد، ويسرد المخاطر.
قراءة رمز مميز يزيد عن SSH — عندما لا يكون المتصفح خيارًا متاحًا
قد يترك لك الخادم بدون رأس سلسلة على شكل رمز مميز ولا توجد واجهة مستخدم للمتصفح. لا تزال أعمال الفحص المطلوبة صغيرة: عزل مقطع واحد، وترجمة تهجئة base64url، واستعادة الحشو، وفك تشفير البايتات، وتحليل JSON. الخطر تشغيلي وليس حسابي لأن تاريخ الصدفة يمكن أن يحافظ على بيانات الاعتماد الحية.
استخدم رمزًا منتهي الصلاحية أو اصطناعيًا كلما أمكن ذلك. إذا كانت الاستجابة للحوادث تتطلب فحص قيمة حقيقية، فاتبع ضوابط التعامل مع بيانات الاعتماد في مؤسستك، وامنعها من دخول السجل أو السجلات المشتركة وقم بتدويرها بعد التعرض. يبقى فك تشفير سطر الأوامر للفحص فقط؛ لا يوفر مفتاح التحقق أو سياسة الثقة.
التقسيم إلى نقاط - قطع أو قطع لعزل جزء الحمولة
يحتوي الشكل المضغوط JWS على شكل JWT على ثلاثة حقول مفصولة بنقاط. الحمولة هي الثانية. يمكن أن تقوم الصدفة بتقسيمها باستخدام أداة تعرف المحددات، ولكنها تقتبس المتغيرات بحيث لا تقوم الصدفة بتوسيع الأحرف أو تقسيم المسافات البيضاء. قم بإزالة التسمية `Bearer ` البادئة قبل تحديد الحقول لأن هذه البادئة تنتمي إلى بناء الجملة HTTP.
قم بعد الحقول بدلاً من أخذ الحقل الثاني بشكل أعمى. ToolAcre يرفض أي شيء بخلاف ثلاثة أجزاء ويحدد بشكل منفصل الإدخال المشفر المكون من خمسة أجزاء. يجب أن يطبق خط الأنابيب الصدفي نفس الحذر الهيكلي؛ يمكن أن يؤدي تلقي مقطع من مدخلات مشوهة إلى إنتاج JSON معقول مع إخفاء اقتطاع الرمز المميز الأصلي.
تحويل الحروف الأبجدية — tr لتحويل الواصلة والشرطة السفلية مرة أخرى إلى علامة الجمع والشرطة المائلة
عادةً ما تتوقع تطبيقات Base64 القياسية لسطر الأوامر علامة الجمع والشرطة المائلة حيث قد يحتوي مقطع JWT على واصلة وتسطير أسفل السطر. تؤدي ترجمة `-` إلى `+` و`_` إلى `/` إلى تعيين الرموز الآمنة URL إلى مواضعها القياسية دون تغيير قيم الست بت الممثلة.
استخدم أمر ترجمة لا يمكن لتحليل خياراته أن يخطئ في استخدام الواصلة البادئة كعلامة، واحتفظ بالبيانات في متغير مقتبس أو إدخال قياسي. تحويل الأبجدية هو عمل ترميز عكسي. فهو لا يفك تشفير المطالبات، ولا يثبت النجاح أن الرمز المميز جاء من المُصدر المحدد.
استعادة الحشو – العملية الحسابية التي تضيف العدد الصحيح من علامات التساوي
بعد الترجمة، حساب طول modulo أربعة. الباقي صفر لا يحتاج إلى علامة يساوي، والباقي اثنان يحتاج إلى اثنتين، والباقي ثلاثة يحتاج إلى واحدة. يشير الباقي إلى الاقتطاع ويجب أن يوقف خط الأنابيب. يمكن أن يؤدي إضافة حشوة عشوائية حتى تتوقف الأداة المساعدة عن الشكوى إلى إخفاء الضرر بدلاً من تشخيصه.
يستخدم ToolAcre قاعدة الطول هذه بالضبط في `base64ToBytes` ويرفض الباقي المستحيل. تختلف أدوات Shell المساعدة فيما إذا كانت تقبل الحشو المحذوف، لذا فإن تسوية الإدخال أولاً تجعل خط الأنابيب واضحًا ومحمولًا من حيث المفهوم، على الرغم من أن أعلام الأوامر لا تزال تختلف بين أنظمة التشغيل.
فك التشفير والطباعة الجميلة - يتم نقل base64 -d إلى jq
قم بتوجيه القيمة المبطنة إلى وحدة فك ترميز Base64 الخاصة بالنظام الأساسي ثم إلى `jq`. يقوم الأمر الأول باسترداد البايتات؛ والثاني يتطلب تلك البايتات لتكوين JSON. إن نجاح أمر Base64 متبوعًا بخطأ في تحليل jq يعني أن التشفير كان قابلاً لفك التشفير من الناحية الهيكلية ولكن محتواه لم يكن حمولة JSON.
يعكس هذا التمييز مسارات خطأ ToolAcre. يقوم أولاً بالإبلاغ عن base64url غير صالح أو UTF-8، ثم يُبلغ بشكل منفصل عن JSON غير صالح، ثم يرفض القيم الفارغة والمصفوفات والأوليات لأن الرأس أو الحمولة JWT يجب أن تكون كائنًا لهذه الأداة. إن إبقاء المراحل منفصلة يجعل الفشل قابلاً للتنفيذ.
مثال عملي — المسار الكامل لنموذج رمزي، مع الإخراج في كل مرحلة
للحصول على مثال تركيبي، لا يحتاج مقطع الحمولة `eyJzdWIiOiJkZW1vIiwicm9sZSI6InJlYWRlciJ9` إلى ترجمة أبجدية أو حشو. يؤدي فك التشفير إلى `{"sub":"demo","role":"reader"}`، وتنسيقات jq التي تعترض عبر الخطوط. الدور المرئي هو مجرد سلسلة يوفرها الرمز المميز.
الآن قم بتغيير JSON، وقم بتشفيره مرة أخرى وإرفاق أي مقطع ثالث. لا يزال خط الأنابيب يطبع الكائن الذي تم تغييره. وهذا يثبت لماذا لا يمكن لأمر فك التشفير أن يكون بمثابة فحص صحة: فكل من المطالبات المشروعة والملفقة تمر بنفس التحويلات العامة ما لم يتحقق مدقق منفصل من التوقيع.
المزالق - سجل الصدفة الذي يلتقط الرمز المميز، وتطبيقات base64 التي ترفض الحشو المفقود، والرموز المميزة ذات "الحامل" البادئة
تتضمن حالات الفشل الشائعة الاحتفاظ بالبادئة HTTP، وتحديد الحقل الخاطئ المفصول بالنقاط، وفقدان الأحرف اللاحقة أثناء النسخ واستخدام تطبيق Base64 الذي يتطلب الحشو. هناك مأزق آخر يتمثل في وضع الرمز المميز بالكامل مباشرةً على سطر الأوامر، حيث قد تحتفظ به قوائم العمليات أو السجل.
قم بتفضيل الإدخال القياسي والمتغيرات المؤقتة ضمن عناصر التحكم المناسبة، ولا تقم أبدًا بلصق رمز الإنتاج في الدردشة أو التذاكر أو المحطات المشتركة من أجل الراحة. تذكر أيضًا أن الجزء الثالث عبارة عن مادة توقيع ثنائي وليس JSON، لذا يجب أن يفشل إرساله عبر jq ولا يخبرك بأي شيء عن صحة التوقيع.
الوجبات الجاهزة: نفس فك التشفير، في أي بيئة - عندما يكون لديك متصفح، فإن وحدة فك الترميز ToolAcre JWT تقوم بذلك محليًا دون تحميل أي شيء
يؤدي خط أنابيب Shell وToolAcre نفس تسلسل فك التشفير فقط في بيئات مختلفة: التقسيم والتطبيع واللوحة وفك التشفير UTF-8 والتحليل JSON. استخدم أي بيئة يمكنك فحصها والتحكم فيها، مع استخدام البيانات غير الحساسة كإعداد افتراضي.
لا يتحقق أي من المسارين من الأصالة أو يأذن للمتصل. بعد قراءة شكل الحمولة، انتقل إلى أداة التحقق الموثوقة للخدمة وسجلات قرارات التشفير والسياسة. الأمر الذي ينتج JSON جميلًا قد أكمل مهمة تنسيق، وليس حكمًا أمنيًا.