العربية
  • الأمان
  • التشفير
  • jwt
  • غير متماثل
  • ec
  • rsa
  • المفتاح العام
  • المفتاح الخاص
  • الرمز
  • التوقيع

مقدمة في خوارزميات توقيع EC و RSA في JWT

تعلم الأساسيات للتشفير الغير متماثل، وافهم الإيجابيات والسلبيات لخوارزميات توقيع JWT الشهيرة - EC و RSA.

Charles
Charles
Developer

الخلفية

في العالم الرقمي، السعي لتعزيز أمان نقل البيانات ظل ثابتًا ومتطورًا باستمرار. في الوقت الحاضر، تم اعتماد رموز الويب JSON (JWT) بشكل واسع وتلعب دورًا مهمًا في OAuth 2.0 و OIDC. لكن كيف يتحقق خادم التفويض ويثق في رمز JWT المرسل من عميل؟ كيف يتم إصدار الرمز وتوقيعه من قبل المصدر؟ في هذه المقالة، سنتحدث عن التشفير الغير متماثل ونستعرض الإيجابيات والسلبيات لخوارزميات التوقيع المختلفة التي تستخدمها Logto في رموز JWT الخاصة بها.

فهم التشفير غير المتماثل

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

  • المفتاح العام: المفتاح العام، كما يُشير الاسم، مصمم للمشاركة المفتوحة. في سياق JWT والأنظمة المشابهة، يستخدم المفتاح العام للتحقق من التوقيع، وليس التشفير. عندما يتم توقيع البيانات بالمفتاح الخاص ويمتلك المستلم المفتاح العام المقابل، يمكنه التحقق من أن البيانات تم توقيعها بالفعل من قبل مالك المفتاح الخاص ولم يتم العبث بها أثناء النقل. ومع ذلك، في الاستخدام التقليدي للتشفير الغير متماثل، مثل HTTPS، يُستخدم المفتاح العام للتشفير، ولا يمكن فك تشفير البيانات المشفرة إلا من قبل الخادم الهدف الذي يحتفظ بالمفتاح الخاص المتوافق.
  • المفتاح الخاص: في المقابل، المفتاح الخاص هو سر محروس بعناية يجب أن يكون معروفًا فقط لمالكه الشرعي. في سياق JWT، يُستخدم المفتاح الخاص لإنشاء توقيعات رقمية يمكن لأي شخص لديه حق الوصول إلى المفتاح العام المقابل التحقق منها. بالإضافة إلى ذلك، في سياق التشفير الغير متماثل الأكثر تقليدية، يُستخدم المفتاح الخاص بالفعل لفك التشفير، مما يسمح للوصول إلى البيانات التي تم تشفيرها بشكل آمن مع المفتاح العام.

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

خوارزميات التشفير الغير متماثل: RSA مقابل EC

الخوارزميات RSA (Rivest-Shamir-Adelman) و EC (Elliptic Curve) هي الخوارزميات الأكثر شيوعًا في التشفير الغير متماثل "الدوال الرياضية". كمطورين، غالبًا ما يتم تقديم خيار بين هذه الخوارزميات عند التعامل مع نظام تفويض ورموزه JWT. لكن أي واحدة ستكون خيارك؟ دعونا نستعرض الإيجابيات والسلبيات لكل منها.

خوارزمية توقيع RSA

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

خوارزمية توقيع EC

  • الإيجابيات:
    1. الكفاءة: تتميز EC بأداء متميز مقارنة بـ RSA، مما يجعلها مثالية للتطبيقات ذات القيود على الموارد أو الأحمال المرورية العالية.
    2. أحجام المفاتيح المدمجة: مفاتيح EC أقصر بكثير من نظيراتها RSA مع تقديم نفس مستويات الأمان. هذا يؤدي إلى تقليل متطلبات التخزين والشبكة وتسريع العمليات التشفيرية.
    3. الأمان: تُعتبر EC ذات أمان قوي، مدعومة بالرياضيات المعقدة منحنيات الإهليلجية، مما يجعلها مقاومة ضد الهجمات بالقوة الغاشمة.
  • السلبيات:
    1. الدعم المحدود: بعض الأنظمة القديمة والمكتبات قد تفتقر إلى دعم شامل لـ EC، مما قد يسبب مشاكل التوافق. على سبيل المثال، Cloudflare Zero Trust لا يدعم الرموز الموقعة بـ EC.
    2. التعقيد: يمكن أن يكون تطبيق EC أكثر تعقيدًا بسبب التعقيدات الرياضية المتضمنة.

اختيار Logto لخوارزميات توقيع JWT

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

ومع ذلك، تلقينا أيضًا عددًا كبيرًا من الملاحظات من مستخدمينا بأن الرموز الموقعة بـ EC ليست متوافقة مع بعض الأنظمة والإطارات الخارجية، خاصة القديمة. لذلك، كنا نعمل على توفير الدعم لخوارزمية RSA أيضًا، مما يضمن أن تظل Logto مرنة ومتعددة الاستخدامات لكل متطلبات التحقق من الهوية الخاصة بك.

في الإصدار القادم، ستقدم Logto Cloud ميزة "تدوير المفتاح الخاص"، والتي تتيح لك إنشاء مفتاح OIDC خاص جديد ومفتاح ملف cookie خاص في المستأجر الخاص بك. (يستخدم المفتاح الخاص لتوقيع رموز JWT ويستخدم مفتاح ملف cookie لتوقيع ملفات الكوكيز الخاصة بك.)

لقطة شاشة لواجهة المستخدم لتدوير مفاتيح OIDC

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

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

نظرًا لأن هذا الإعداد يوجد في صفحة إعدادات المستأجر، لن تكون الواجهة متاحة لمستخدمي OSS. لكن لا تقلق، لا يزال بإمكانك تحقيق ذلك عن طريق الترقية إلى أحدث إصدار وتنفيذ أوامر CLI التالية في دليل جذر Logto.

باختصار

يساعد التشفير الغير متماثل في تأمين رموز JWT في نظام التفويض الخاص بك. تعتبر خوارزميات EC و RSA ضرورية وخوارزميات شائعة في علم التشفير. فهم الإيجابيات والسلبيات والمبادئ الرياضية وراء هذه الخوارزميات يساعد في اتخاذ قرارات أفضل لتطبيقك للعمل مع إطار عمل للتحقق من الهوية والتفويض.

ستواصل Logto استكشاف وتقديم تجربة مستخدم أكثر أمانًا وموثوقية لك.