CRAM-MD5

في علم التشفير ، تُعدّ CRAM-MD5 آلية مصادقة تعتمد على التحدي والاستجابة (CRAM) وتستند إلى خوارزمية HMAC-MD5 . وباعتبارها إحدى الآليات التي تدعمها طبقة المصادقة والأمان البسيطة (SASL)، تُستخدم غالبًا في برامج البريد الإلكتروني كجزء من مصادقة SMTP ، ولمصادقة مستخدمي POP و IMAP ، بالإضافة إلى التطبيقات التي تُنفّذ بروتوكولات LDAP و XMPP و BEEP وغيرها.

عندما يتطلب هذا النوع من البرامج المصادقة عبر اتصالات غير مشفرة، يُفضل استخدام خوارزمية CRAM-MD5 على الآليات التي تنقل كلمات المرور "بشكل غير مشفر"، مثل خوارزميتي LOGINو PLAIN. ومع ذلك، لا يمكنها منع استنتاج كلمة المرور من خلال هجوم القوة الغاشمة ، لذا فهي أقل فعالية من الآليات البديلة التي تتجنب كلمات المرور أو التي تستخدم اتصالات مشفرة باستخدام بروتوكول أمان طبقة النقل (TLS).

بروتوكول

يتضمن بروتوكول CRAM-MD5 دورة تحدي واستجابة واحدة، ويتم بدء تشغيله بواسطة الخادم:

  1. التحدي: يرسل الخادم سلسلة مشفرة بنظام base64 إلى العميل. قبل التشفير، يمكن أن تكون أي سلسلة عشوائية، لكن المعيار الذي يحدد CRAM-MD5 حاليًا ينص على أنها بتنسيق Message-IDقيمة رأس البريد الإلكتروني (بما في ذلك الأقواس الزاوية ) وتتضمن سلسلة عشوائية من الأرقام، وطابعًا زمنيًا ، واسم النطاق المؤهل بالكامل للخادم .
  2. الرد: يرد العميل بسلسلة نصية تم إنشاؤها على النحو التالي.
    1. تم فك تشفير التحدي باستخدام base64.
    2. يتم تجزئة التحدي الذي تم فك تشفيره باستخدام HMAC-MD5 ، مع سر مشترك (عادةً كلمة مرور المستخدم، أو تجزئة لها) كمفتاح سري.
    3. يتم تحويل التحدي المشفر إلى سلسلة من الأرقام السداسية العشرية الصغيرة.
    4. يتم إضافة اسم المستخدم ومسافة قبل الأرقام السداسية العشرية.
    5. ثم يتم ترميز التسلسل باستخدام Base64 وإرساله إلى الخادم
  3. مقارنة: يستخدم الخادم نفس الطريقة لحساب الاستجابة المتوقعة. إذا تطابقت الاستجابة المُعطاة مع الاستجابة المتوقعة، فهذا يعني أن عملية المصادقة قد نجحت.

نقاط القوة

يوفر التشفير أحادي الاتجاه والتحدي العشوائي الجديد ثلاثة أنواع من الأمان:

  • لا يستطيع الآخرون تكرار التجزئة دون معرفة كلمة المرور. وهذا يوفر المصادقة.
  • لا يمكن للآخرين إعادة تشغيل التجزئة - فهي تعتمد على التحدي غير المتوقع. ويُطلق على هذا اسم "الحداثة" أو " منع إعادة التشغيل" .
  • لا يتعرف المراقبون على كلمة المرور؛ وهذا ما يسمى بالسرية.

نقاط الضعف

  • لا يوجد مصادقة متبادلة : لا يتحقق العميل من هوية الخادم. مع ذلك، تتم مصادقة SASL عادةً عبر اتصال TLS ، الذي يتحقق من هوية الخادم.
  • تخزين كلمات المرور بشكل غير آمن: تتطلب بعض التطبيقات الوصول إلى كلمات مرور المستخدمين كنص عادي، بينما تستخدم تطبيقات أخرى (مثل Dovecot ) الخطوة الوسيطة في عملية HMAC لتخزين تجزئة MD5 لكلمة المرور (وتحديدًا المتغيرات الداخلية لـ HMAC، وهما i_key_pad و o_key_pad). [ 1 ] [ 2 ] تستفيد هذه التطبيقات من حقيقة أنه لحساب md5(something_with_64_bytes || something_else)، يكفي معرفة md5_internal(something_with_64_bytes) و something_else (بسبب استخدام Merkle-Damgård في MD5؛ حيث أن md5_internal هو md5 بدون الكتلة الأخيرة). وبما أن i_key_pad و o_key_pad يقعان في بداية التجزئة الداخلية والخارجية لـ HMAC، ويبلغ طولهما 64 بايت، فيمكن الاستفادة من هذه الحقيقة.
  • خطر إمكانية عكس العملية: يُمكن شنّ هجوم قاموسي غير متصل بالإنترنت لاستعادة كلمة المرور بعد التقاط عملية تبادل بروتوكول CRAM-MD5 ناجحة (باستخدام خوارزمية Cain & Abel على سبيل المثال ). هذا الخطر لا مفر منه في أي نظام تجزئة لكلمات المرور، لكن الخوارزميات الحديثة تستخدم تمديد المفتاح لزيادة تكلفة الهجوم بمقدار ألف ضعف أو أكثر. في المقابل، يُمكن حساب ملخصات CRAM-MD5 باستخدام موارد حاسوبية قليلة جدًا على أجهزة مخصصة، أو حتى باستخدام وحدات المعالجة المركزية العادية .
  • إمكانية التوسط: على عكس بروتوكول PAKE ( اتفاقية المفاتيح المعتمدة على كلمة المرور )، لا يُنشئ بروتوكول CRAM-MD5 سرًا مشتركًا بين الطرفين ولكنه غير معروف للمتطفل. وبالتالي، يستطيع الوسيط النشط فتح اتصال بالخادم، والحصول على تحدٍّ، وتقديم هذا التحدي إلى العميل، واستلام رد العميل، وإعادة توجيه هذا الرد إلى الخادم. وبذلك، يمكنه تجاهل رسائل العميل اللاحقة مع انتحال شخصية العميل أمام الخادم.

المعايير

تم تعريف CRAM-MD5 بواسطة وثيقة مسار المعايير IETF RFC 2195، والتي تحل محل RFC 2095، من عام 1997. هذه المعايير الفعلية تحدد CRAM-MD5 كطريقة مصادقة لبروتوكولات إدارة صناديق البريد الإلكتروني POP و IMAP .

CRAM-MD5 هي إحدى طرق المصادقة التي تدعمها طبقة المصادقة والأمان البسيطة (SASL)، والتي تم تعريفها في عام 2006 بواسطة RFC 4422، والتي تحل محل معيار 1997 RFC 2222.

تحتفظ هيئة الأرقام المخصصة للإنترنت ( IANA) بسجل لآليات SASL، [ 3 ] بما في ذلك CRAM-MD5، للاستخدام المحدود.

CRAM-MD5 مطلوب لـ On-Demand Mail Relay (ODMR)، المحدد في RFC 2645.

مهجور

تم التوصية بإلغاء المعيار في 20 نوفمبر 2008. وكبديل لذلك، يوصي باستخدام SCRAM أو SASL Plain المحمي بواسطة TLS . [ 4 ]

انظر أيضاً

مراجع

  1. "function verify_credentials" . مصدر Dovecot 2.0 . تم الاطلاع عليه بتاريخ 23 يناير 2014 .
  2. "ملف hmac-md5.c" . مصدر Dovecot 2.0 . تم الاطلاع عليه بتاريخ 23 يناير 2014 .
  3. "آليات طبقة المصادقة والأمان البسيطة (SASL)" . سجلات البروتوكولات . هيئة الأرقام المخصصة للإنترنت (IANA ).
  4. زيلينغا، كورت (24 نوفمبر 2008). "CRAM-MD5 إلى Historic" . tools.ietf.org . تم الاسترجاع في 5 ديسمبر 2020 .