نظرة عامة على خوارزميات توقيع JWT
استكشاف خوارزميات توقيع JSON Web Token (JWT) التي تغطي اثنتين من أساليب التشفير غير المتماثل الأكثر شيوعًا: RSA و EC. تعلم عن إيجابيات وسلبيات كل خوارزمية وكيفية استخدام لوجتو لها لحماية رموز JWT الخاصة بك.
ما هو JWT؟
JSON Web Token (JWT) هو طريقة مدمجة وآمنة لتمثيل المطالبات بشكل آمن عبر الإنترنت. تتضمن البنية عنوانًا وحملًا وتوقيعًا.
في الوقت الحاضر، تم اعتماد JWTs على نطاق واسع وتلعب دورًا حيويًا في OAuth 2.0 و OIDC. ولكن كيف يمكن لخادم التفويض التحقق والثقة في JWT المرسل من عميل؟ كيف يتم إصدار التوكن وتوقيعه بواسطة المصدر؟ في هذه المقالة، سنتحدث عن التشفير غير المتماثل ونتعمق في إيجابيات وسلبيات الخوارزميات المختلفة التي يستخدمها لوجتو في رموزه JWT.
هيكل JWT
يقوم لوجتو بتوقيع جميع رموز JWT، بما في ذلك رموز الهوية والتوكنات الوصول. يُعرف رمز JWT الموقع أيضًا باسم JWS ( توقيع الويب JSON). يتكون هيكل JWT الموقع من ثلاثة أجزاء: الرأس، الحمل، والتوقيع، مفصولة بالنقاط (.
).
رأس JOSE (توقيع وتشفير كائن JSON)
يتألف العنوان عادةً من الأجزاء التالية:
- typ: نوع التوكن، وهو JWT.
- alg: الخوارزمية التوقيع المستخدمة، مثل RS256 أو ES384.
- kid: تلميح يشير إلى أي مفتاح تم استخدامه لحماية JWT.
الحمل
يحتوي الحمل على المطالبات، وهي تصريحات حول كيان ما (عادةً المستخدم) وبيانات إضافية. على سبيل المثال، قد يحتوي رمز الهوية على المطالبات التالية:
التوقيع
يُستخدم التوقيع للتحقق من أن مرسل JWT ليس محتالًا وأن الرسالة لم يتم التلاعب بها. عند استخدام JWT الموقع، يجب التحقق من توقيع الرمز لضمان سلامة الرمز. تحقق من هذا الدليل حول كيفية التحقق من رموز JWT لحماية واجهتك البرمجية.
ما هو التشفير غير المتماثل؟
التشفير غير المتماثل، المعروف أيضًا باسم التشفير بالمفتاح العام، مفهوم أساسي في أمان الحاسوب وتشفير البيانات، يتضمن استخدام زوج فريد من المفاتيح المرتبطة: مفتاح عام ومفتاح خاص.
تعريفات المفاتيح العامة والخاصة
- المفتاح العام: المفتاح العام، كما يوحي اسمه، مصمم للمشاركة العامة. في سياق JWT والأنظمة المشابهة، يُستخدم المفتاح العام للتحقق من التوقيع، وليس للتشفير. عندما يتم توقيع البيانات بالمفتاح الخاص ويملك المستلم المفتاح العام المقابل، يمكنه التحقق من أن البيانات تم توقيعها بالفعل بواسطة حامل المفتاح الخاص ولم يتم التلاعب بها أثناء الإرسال.
- المفتاح الخاص: في المقابل، يتم الاحتفاظ بسرية المفتاح الخاص ويجب أن يكون معروفًا فقط لمالكه الشرعي. في سياق JWT، يُستخدم المفتاح الخاص لإنشاء توقيعات رقمية يمكن لأي شخص لديه الوصول إلى المفتاح العام المقابل التحقق منها.
يشكل تنظيم المفاتيح الفريد هذا أساس آليات نقل البيانات الآمنة والتحقق من المستخدم في العالم الرقمي. تحقق من هذه المقالة لمزيد من التفاصيل.
الخوارزميات المفتاحية الشائعة في توقيع JWT: RSA مقابل EC
خوارزميات RSA (ريفيست-شامير-أدلمان) و EC (المنحنى البيضاوي) هما أكثر أنواع "الدوال الرياضية" المستخدمة في التشفير غير المتماثل.
كالمطورين، نحن غالبًا ما نواجه خيارًا بين هذه الخوارزميات عند التعامل مع إطار عمل المصادقة و JWTs الخاصة به. ولكن أيهما سيكون اختيارك؟ دعنا نتعمق في الإيجابيات والسلبيات لكل منهما.
خوارزمية التوقيع RSA (مثل RSASHA256)
- الإيجابيات:
- دعم واسع: يتم دعم RSA على نطاق واسع عبر مختلف المنصات والمكتبات، مما يضمن التوافق في مجموعة واسعة من البيئات.
- سجل حافل: لدى RSA تاريخ طويل من الأمان الموثوق، وفهمت الخوارزميات الخاصة به جيدًا من قبل مجتمع التشفير.
- السلبيات:
- أحجام المفاتيح: مفاتيح RSA أطول لتحقيق نفس المستوى من الأمان كما في EC، مما يؤدي إلى أحجام رموز أكبر وزيادة في الحسابات.
- الأداء: تميل عمليات RSA إلى أن تكون أبطأ من EC، مما قد يكون عيبًا في التطبيقات ذات الحركة العالية.
خوارزمية التوقيع EC (مثل ECDSASHA384)
- الإيجابيات:
- الكفاءة: EC يتمتع بأداء متفوق مقارنة بـ RSA، مما يجعله مناسبًا للتطبيقات ذات الموارد المحدودة أو الأحمال الكبيرة.
- أحجام المفاتيح المدمجة: مفاتيح EC أقصر بكثير من نظيراتها الخاصة بـ RSA مع تقديم مستويات أمان مكافئة. هذا يؤدي إلى تقليل متطلبات التخزين والشبكة وتسريع العمليات التشفيرية.
- الأمان: يُعتبر EC عالي الأمان، ويُقوى بالرياضيات المعقدة وراء المنحنيات البيضاوية، مما يجعله مقاومًا للهجمات بالقوة العمياء.
- السلبيات:
- دعم محدود: قد تفتقر بعض الأنظمة والمكتبات القديمة إلى دعم شامل لـ EC، مما يسبب مشاكل في التوافق. مثلًا، Cloudflare Zero Trust لا يدعم الرموز الموقعة بـ EC.
- التعقيد: يمكن أن يكون تنفيذ EC أكثر تعقيدًا بسبب التعقيدات الرياضية المتضمنة.
اختيار لوجتو لخوارزميات توقيع JWT
لطالما كانت لوجتو ملتزمة بأعلى معايير الأمان والمرونة وتميل إلى استخدام الحلول ال أكثر حداثة وأداءً في جوهرها. تقدم EC مزيجًا من الأمان القوي والكفاءة الحسابية، مما يجعلها تناسبًا مثاليًا لاحتياجات المصادقة والتفويض الحديثة. لذلك، كانت EC هي خوارزمية توقيع المفاتيح الافتراضية لدينا منذ المرحلة المبكرة من منتجنا.
ومع ذلك، اعترفنا أيضًا بأن الرموز الموقعة بـ EC غير متوافقة مع بعض الأنظمة والإطارات الخارجية، خاصة القديمة منها. لذلك، قدمنا ميزة لتغيير خوارزمية توقيع مفاتيح JWT عن طريق تدوير مفاتيحك الخاصة.
لذلك، إذا كنت تواجه مشكلة في عدم القدرة على الاتصال بمنصة خارجية بسبب خوارزمية توقيع JWT غير المدعومة، فالآن هو الوقت لتدوير واختيار خوارزمية RSA لمفتاحك الخاص الجديد.
تساعد هذه الميزة أيضًا في التخفيف من المخاطر المرتبطة بتعرض المفاتيح أو اختراقها على المدى الطويل. يُنصح بشدة بتدوير المفاتيح الخاصة بانتظام كجزء من استراتيجية الأمان لأي منظمة وموصى به بشدة من قبل لوجتو.