
أداة هجوم OSDP (وكلمة صديق باللغة الإلفية)
أداة هجوم OSDP (وكلمة الجان للصديق)
OSDP يدعم التشفير، لكنه لا يتطلبه بشكل صارم. لذا قد لا يكون اتصالك مشفرًا على الإطلاق. الهجوم رقم 1 هو مجرد الاستماع السلبي ومعرفة ما إذا كان بإمكانك قراءة أرقام البطاقات على الكابل.
مجرد أن وحدة التحكم والقارئ يدعمان التشفير لا يعني أنهما مهيآن للمطالبة باستخدامه. يمكن للمهاجم تعديل رسالة الرد على قدرات القارئ (osdp_PDCAP) للإعلان عن أنه لا يدعم التشفير. عندما يحدث هذا، ستستمر بعض وحدات التحكم في العمل بدون تشفير.
لدى OSDP وضع "تثبيت" شبه رسمي ينطبق على كل من القارئات ووحدات التحكم. كما يوحي الاسم، من المفترض استخدامه عند إعداد قارئ لأول مرة. ما يفعله بشكل أساسي هو السماح للقارئات بطلب مفتاح التشفير الأساسي (SCBK) من وحدة التحكم. إذا تم تكوين وحدة التحكم لتكون في وضع التثبيت بشكل دائم، فيمكن للمهاجم الظهور على الكابل وطلب SCBK.
غالبًا ما يأتي نموذج كود OSDP بمفاتيح تشفير مضمنة بشكل ثابت في الكود. من الواضح أن هذه مخصصة لتكون نماذج، حيث يُفترض أن يقوم المستخدم بتوليد المفاتيح بطريقة آمنة بنفسه. لكن هذا غير موضح أو مبسط للمستخدم. وأي شخص عمل في مجال الأمن لفترة كافية يعلم أن ما هو افتراضي من المحتمل أن يكون موجودًا في الإنتاج.
لذا كمتجه هجوم، عندما يكون الرابط بين القارئ ووحدة التحكم مشفرًا، فإنه يستحق المحاولة لسرد بعض المفاتيح الضعيفة الشائعة. هذه مفاتيح AES بطول 128 بت، لذا لن نتمكن من سردها جميعًا. أو حتى جزء ذي معنى منها. لكن ما يمكننا فعله هو استهداف بعض الأنماط الشائعة التي تراها عندما يقوم شخص ما بتضمين مفتاح بشكل ثابت:
لا يحتوي OSDP على آلية داخل النطاق لتبادل المفاتيح. ما يعنيه هذا هو أنه يمكن للمهاجم:
ستجد كود إثبات المفهوم لكل من هذه الهجمات في attack_osdp.py. راجع أمر --help لمزيد من التفاصيل حول الاستخدام. هذا نص بايثون، يُقصد تشغيله من كمبيوتر محمول باستخدام محولات USB<-->RS485 مثل هذه. لذا من المحتمل أن ترغب في شراء بعض منها. لا يجب أن يكون هذا الطراز بالضرورة.
إذا كان لديك وحدة تحكم تريد اختبارها، فهذا رائع. استخدمها. إذا لم يكن لديك، فلدينا وحدة تحكم OSDP ضعيفة عن قصد يمكنك استخدامها هنا: vulnserver.py.
بعض الهجمات في attack_osdp.py ستتوقع أن تكون في وضع الوسيط الكامل بين قارئ ووحدة تحكم يعملان. لاختبار هذه، قد تحتاج إلى ثلاثة محولات USB<-->RS485، موصلة معًا بلوحة تجارب.
هذه القضايا ليست، بشكل منفرد، قابلة للاستغلال لكنها مع ذلك تمثل إضعافًا للبروتوكول أو التنفيذ أو النظام ككل.