المصادقة بالتحدي والاستجابة
في مجال أمن الحاسوب ، يعد التحقق من الهوية عن طريق التحدي والاستجابة مجموعة من البروتوكولات التي يقوم فيها أحد الأطراف بطرح سؤال ("تحدي") ويجب على الطرف الآخر تقديم إجابة صحيحة ("استجابة") ليتم التحقق من هويته . [ 1 ]
أبسط مثال على بروتوكول التحدي والاستجابة هو مصادقة كلمة المرور ، حيث يتمثل التحدي في طلب كلمة المرور والاستجابة الصحيحة هي كلمة المرور الصحيحة.
يستطيع المهاجم الذي يتجسس على عملية التحقق من كلمة المرور أن يُثبت هويته بإعادة استخدام كلمة المرور المُعترضة. أحد الحلول هو إصدار كلمات مرور متعددة، كل منها مُعرّف. يُمكن للمُدقّق حينها تقديم مُعرّف، ويجب على المُثبت الرد بكلمة المرور الصحيحة لهذا المُعرّف. بافتراض اختيار كلمات المرور بشكل مستقل، فإن المهاجم الذي يعترض رسالة تحدٍّ واستجابة واحدة لن يحصل على أي معلومات تُساعده في تحدٍّ آخر في وقت لاحق.
على سبيل المثال، عندما لا تتوفر وسائل أمان الاتصالات الأخرى، يستخدم الجيش الأمريكي خوارزمية التشفير الرقمي TRAAD AKAC-1553 للتحقق من صحة بعض الاتصالات وتشفيرها. تتضمن خوارزمية TRIAD قائمة برموز تحدي مكونة من ثلاثة أحرف، يُفترض أن يختارها المُدقِّق عشوائيًا، بالإضافة إلى ردود عشوائية مكونة من ثلاثة أحرف عليها. ولزيادة الأمان، تكون كل مجموعة من الرموز صالحة لفترة زمنية محددة، وهي عادةً 24 ساعة.
تعتمد إحدى تقنيات التحدي والاستجابة الأساسية على ما يلي: يتحكم بوب في الوصول إلى مورد ما، وتسعى أليس للدخول إليه. يُصدر بوب التحدي "52w72y". يجب على أليس الرد بسلسلة الأحرف التي "تُطابق" التحدي الذي أصدره بوب. يتم تحديد "المطابقة" بواسطة خوارزمية مُحددة مسبقًا، ومعروفة لكل من بوب وأليس. قد تكون الاستجابة الصحيحة بسيطة مثل "63x83z"، حيث تُغير الخوارزمية كل حرف من التحدي باستخدام شيفرة قيصر . في الواقع، ستكون الخوارزمية أكثر تعقيدًا. يُصدر بوب تحديًا مختلفًا في كل مرة، وبالتالي فإن معرفة الاستجابة الصحيحة السابقة (حتى لو لم تكن مُشفرة بواسطة وسيلة الاتصال) لا تسمح للخصم بتحديد الاستجابة الصحيحة الحالية.
بروتوكولات أخرى غير تشفيرية
تُستخدم بروتوكولات التحدي والاستجابة أيضًا في تطبيقات غير تشفيرية. على سبيل المثال، تهدف اختبارات CAPTCHA إلى تمكين المواقع الإلكترونية والتطبيقات من تحديد ما إذا كان التفاعل قد تم بواسطة مستخدم حقيقي وليس بواسطة برنامج استخراج بيانات أو روبوت . في اختبارات CAPTCHA الأولى، كان التحدي المُرسل إلى المستخدم عبارة عن صورة مشوهة لنص ما، وكان المستخدم يستجيب بنسخ النص. صُمم هذا التشويه لجعل التعرف الضوئي على الأحرف (OCR) الآلي صعبًا ومنع برنامج الكمبيوتر من انتحال صفة إنسان.
تقنيات التشفير
كانت المصادقة غير المشفرة كافية عمومًا قبل ظهور الإنترنت ، حيث كان بإمكان المستخدم التأكد من أن النظام الذي يطلب كلمة المرور هو بالفعل النظام الذي يحاول الوصول إليه، وأنه من غير المرجح أن يتنصت أحد على قناة الاتصال . ولمعالجة مشكلة عدم أمان قناة الاتصال ، يلزم اتباع نهج أكثر تطورًا. تتضمن العديد من الحلول المشفرة مصادقة ثنائية الاتجاه؛ إذ يجب على كل من المستخدم والنظام التحقق من معرفتهما بالسر المشترك (كلمة المرور)، دون أن يتم إرسال السر بشكل غير مشفر عبر قناة الاتصال.
إحدى طرق تنفيذ ذلك هي استخدام كلمة المرور كمفتاح تشفير لإرسال معلومات مُولّدة عشوائيًا كتحدٍّ ، حيث يجب على الطرف الآخر إرجاع قيمة مُشفّرة مماثلة كاستجابة ، وهي دالة مُحدّدة مُسبقًا للمعلومات المُقدّمة في الأصل، مما يُثبت قدرته على فك تشفير التحدي. على سبيل المثال، في بروتوكول كيربيروس ، يكون التحدي عددًا صحيحًا مُشفّرًا N ، بينما تكون الاستجابة هي العدد الصحيح المُشفّر N + 1 ، مما يُثبت قدرة الطرف الآخر على فك تشفير العدد الصحيح N. يُمكن أيضًا تطبيق دالة تجزئة على كلمة المرور وقيمة التحدي العشوائية لإنشاء قيمة الاستجابة. يستخدم شكل آخر نموذجًا احتماليًا لتوفير تحديات عشوائية مشروطة بمدخلات النموذج. [ 2 ]
لا تكشف عمليات التبادل المشفرة أو المُجزأة هذه كلمة المرور مباشرةً للمتطفل. مع ذلك، قد توفر معلومات كافية لتمكين المتطفل من استنتاج كلمة المرور باستخدام هجوم القاموس أو هجوم القوة الغاشمة . إن استخدام معلومات يتم توليدها عشوائيًا في كل عملية تبادل (حيث تختلف الاستجابة عن التحدي) يحمي من إمكانية هجوم إعادة الإرسال ، حيث يقوم وسيط خبيث بتسجيل البيانات المتبادلة وإعادة إرسالها لاحقًا لخداع أحد الطرفين وإيهامه بأنه قد صادق على محاولة اتصال جديدة من الطرف الآخر.
تستخدم بروتوكولات المصادقة عادةً قيمة عشوائية مشفرة (nonce) كتحدٍ لضمان تفرد كل تسلسل تحدٍ واستجابة. يحمي هذا من التنصت مع هجوم إعادة الإرسال اللاحق . إذا كان من غير العملي تطبيق قيمة عشوائية حقيقية، يمكن استخدام مولد أرقام شبه عشوائية قوي وآمن تشفيرياً، بالإضافة إلى دالة تجزئة تشفيرية، لتوليد تحديات من غير المرجح تكرارها. من المهم أحيانًا تجنب استخدام القيم العشوائية الزمنية، لأنها قد تُضعف الخوادم في مناطق زمنية مختلفة والخوادم ذات الساعات غير الدقيقة. كما يُنصح باستخدام القيم العشوائية الزمنية والساعات المتزامنة إذا كان التطبيق عرضة لهجوم تأخير الرسائل. يحدث هذا الهجوم عندما يقوم المهاجم بنسخ الإرسال مع منعه من الوصول إلى الوجهة، مما يسمح له بإعادة إرسال الإرسال الملتقط بعد تأخير يختاره. يُمكن تحقيق ذلك بسهولة عبر القنوات اللاسلكية. يمكن استخدام قيمة nonce المستندة إلى الوقت للحد من قدرة المهاجم على إعادة إرسال الرسالة، ولكن مع تقييدها بوقت انتهاء صلاحية قد يكون أقل من ثانية واحدة، ومن المحتمل ألا يكون لها أي تأثير على التطبيق وبالتالي تخفيف الهجوم.
يتم إجراء المصادقة المتبادلة باستخدام مصافحة التحدي والاستجابة في كلا الاتجاهين؛ يضمن الخادم أن العميل يعرف السر، ويضمن العميل أيضًا أن الخادم يعرف السر، مما يحمي من انتحال الخادم الحقيقي لشخصية خادم مارق.
يمكن أن تساعد آلية المصادقة القائمة على التحدي والاستجابة في حل مشكلة تبادل مفاتيح الجلسة للتشفير. باستخدام دالة اشتقاق المفاتيح ، يمكن دمج قيمة التحدي مع السر لتوليد مفتاح تشفير غير متوقع للجلسة. يُعد هذا الأسلوب فعالاً بشكل خاص ضد هجمات الوسيط، لأن المهاجم لن يتمكن من اشتقاق مفتاح الجلسة من التحدي دون معرفة السر، وبالتالي لن يتمكن من فك تشفير تدفق البيانات.
مثال بسيط لتسلسل المصادقة المتبادلة
- يرسل الخادم قيمة تحدي فريدة (sc) إلى العميل
- يرسل العميل قيمة تحدي فريدة إلى الخادم
- يقوم الخادم بحساب sr = hash( cc + secret) ويرسلها إلى العميل
- يقوم العميل بحساب cr = hash( sc + secret) ويرسله إلى الخادم
- يقوم الخادم بحساب القيمة المتوقعة لـ cr ويتأكد من استجابة العميل بشكل صحيح
- يقوم العميل بحساب القيمة المتوقعة لـ sr ويتأكد من استجابة الخادم بشكل صحيح
أين
- sc هو التحدي الذي يتم إنشاؤه بواسطة الخادم
- cc هو التحدي الذي أنشأه العميل
- cr هو رد العميل
- sr هو رد الخادم
هذا المثال تحديداً عرضة لهجوم الانعكاس .
تخزين كلمات المرور
لتجنب تخزين كلمات المرور، تقوم بعض أنظمة التشغيل (مثل أنظمة يونكس ) بتخزين تجزئة كلمة المرور بدلاً من تخزين كلمة المرور نفسها. أثناء عملية المصادقة، يحتاج النظام فقط إلى التحقق من تطابق تجزئة كلمة المرور المُدخلة مع التجزئة المخزنة في قاعدة بيانات كلمات المرور. هذا يجعل من الصعب على المتسلل الحصول على كلمات المرور، نظرًا لعدم تخزين كلمة المرور نفسها، وصعوبة تحديد كلمة مرور تُطابق تجزئة مُعينة. مع ذلك، يُشكل هذا مشكلة للعديد من خوارزميات التحدي والاستجابة (وليس جميعها)، والتي تتطلب وجود سر مشترك بين كل من العميل والخادم. نظرًا لعدم تخزين كلمة المرور نفسها، عادةً ما تستخدم خوارزمية التحدي والاستجابة تجزئة كلمة المرور كسر بدلاً من كلمة المرور نفسها. في هذه الحالة، يمكن للمتسلل استخدام التجزئة الفعلية بدلاً من كلمة المرور، مما يجعل التجزئات المخزنة حساسة تمامًا مثل كلمات المرور الفعلية. SCRAM هي خوارزمية تحدي واستجابة تتجنب هذه المشكلة.
أمثلة
من أمثلة خوارزميات التحدي والاستجابة الأكثر تطوراً ما يلي:
- أنظمة إثبات كلمة المرور وأنظمة اتفاقية المفاتيح التي تعتمد على المعرفة الصفرية (مثل كلمة المرور الآمنة عن بعد (SRP) )
- بروتوكول المصادقة بالتحدي والمصافحة (CHAP) ( RFC 1994 )
- CRAM-MD5 ، OCRA: خوارزمية التحدي والاستجابة OATH ( RFC 6287 )
- آلية المصادقة بالتحدي والاستجابة المملحة (SCRAM) ( RFC 5802 )
- نظام التحدي والاستجابة الخاص بـ ssh يعتمد على RSA . [ 3 ]
يعتبر بعض الناس اختبار CAPTCHA نوعًا من أنواع التحقق من الهوية القائم على التحدي والاستجابة والذي يمنع برامج البريد العشوائي . [ 4 ]
انظر أيضاً
- بروتوكول المصادقة بالتحدي والمصافحة
- تصفية البريد العشوائي باستخدام أسلوب التحدي والاستجابة
- كلمة المرور المضادة (العسكرية)
- CRAM-MD5
- دالة التجزئة المشفرة
- رقم عشوائي مشفر
- بروتوكول تحديد المسافة
- كيربيروس (بروتوكول)
- هجوم رجل في المنتصف
- بروتوكول نيدهام-شرودر
- بروتوكول أوتواي-ريس
- اتفاقية مفاتيح مصادق عليها بكلمة مرور
- هجوم الانعكاس
- هجوم الإعادة
- آلية التحقق من صحة الاستجابة للتحدي المملح (SCRAM)
- SQRL
- WebAuthn
- بروتوكول الضفدع واسع الفم
مراجع
- ^ هينك سي ايه فان تيلبورج. سوشيل جاجوديا (8 يوليو 2014). موسوعة التشفير والأمن . سبرينغر العلوم والإعلام التجاري. رقم ISBN 978-1-4419-5906-5.
- ↑ أحمد، إبراهيم ح.؛ حنا، جوزيا ب.؛ فوسونغ، إليوت؛ ألبريشت، ستيفانو ف. (2021). التطورات في التطبيقات العملية للوكلاء، وأنظمة الوكلاء المتعددة، والخير الاجتماعي. مجموعة PAAMS . سلسلة محاضرات في علوم الحاسوب. المجلد 12946. الصفحات 14-26 . doi : 10.1007/978-3-030-85739-4 . ISBN 978-3-030-85738-7. S2CID 237611496 .
- ↑ "إجراءات SSH" . www.cag.lcs.mit.edu . مؤرشف من الأصل بتاريخ 14 أكتوبر 2004. تم الاطلاع عليه بتاريخ 19 أكتوبر 2022 .
- ↑ "مصادقة التحدي والاستجابة" .
- أساليب المصادقة
- التحكم في الوصول إلى الكمبيوتر
