خطر ببالي منذ مدة طويلة سؤال يتعلق بخوارزميات التشفير. فقد كنت اعتقد أنه من الأفضل أن تبقى خوارزميات التشفير التي تتعلق بالقضايا الحساسة سرية. وكنت استغرب من إمكانية ضبط أمان أنظمة التشغيل مفتوحة المصدر مثل Linux. فكيف لا يتم اختراق مثل هذه الأنظمة بالرغم من أن شيفرتها البرمجية موجودة بالكامل؟
اكتشفت مؤخراً أن أحد مبادئ علم التشفير الحديث يدعى مبدأ كيركوف (Kerckhoffs Principle). وكيركوف هذا هو أستاذ جامعي هولندي، ويعتبر من الشخصيات المهمة في علم التشفير في القرن التاسع عشر. وقد قام بنشر مقالتين بعنوان “التشفير العسكري” وصّف من خلالهما المبادئ الأساسية لبناء نظام تشفير. وأحد هذه المبادئ -ويدعى مبدأ كيركوف- ينص على أن أمان النظام يجب ألا يعتمد على بقاء خوارزمية التشفير سرية، بمعنى أن اكتشاف الخوارزمية المستخدمة يجب ألا يؤثر إطلاقاً على أمان النظام. والواقع أن التشفير في العصر الحديث قائم على مبدأ نشر خوارزمية التشفير!
ولهذا المبدأ عدة مبررات منطقية وعملية. أولها أن نشر الخوارزمية سيؤدي إلى محاولة اختراقها من قبل عدد كبير من الخبراء. وبالتالي إذا نجت من هذه المحاولات فإنها ستكون محلاً للثقة. كما أنه من الممكن اكتشاف الخوارزمية المستخدمة في التشفير باستخدام تقنيات الهندسة العكسية (Reverse Engineering). وهذا ما حصل فعلاً في خوارزمية التشفير المستخدمة في الأجهزة الخلوية (GSM). فقد قامت الشركة المصنعة بتجاهل مبدأ كيركوف وأبقت خوارزمية التشفير سرية. ولم يستغرق الأمر وقتاً طويلاً حتى تمت عملية اكتشاف الخوارزمية وكسرها! وبالتالي وبالرغم من تشفير البيانات المرسلة عبر الأجهزة الخلوية العادية إلا أنها لا تعتبر آمنة لهذا السبب.
هذا المبدأ يوضح سبب أمان الأنظمة مفتوحة المصدر، فهذه الأنظمة لا تعتمد لتحقيق الأمان على سرية الخوارزمية. وهي بهذا الشكل أكثر أماناً من الأنظمة مغلقة المصدر. هذه الفكرة ذكرتني بمقالة قرأتها تتحدث أن الهند قررت بناء نظام تشغيل خاص بها من أجل مقاومة عمليات الاختراق وذلك بعدم كشف الشيفرة المصدرية لهذا النظام. ولا أعتقد أن هذا السبب كافي لبناء نظام تشغيل. لأن أمان نظام التشغيل لا يجب أن يعتمد على إبقاء شيفرته المصدرية مغلقة. وقد وقعت بالصدفة على رسالة طريفة مرسلة من مبرمج مشهور يدعى Eric Raymound إلى شركة سيسكو Cisco يحذرها فيه من أن عملية سرقة الشيفرة المصدرية لنظام التشغيل الموجود على راوترات الشركة ستؤدي إلى مخاطر عديدة (أرسل المبرمج هذه الرسالة إلى الشركة عقب عملية سرقة ونشر الشيفرة المصدرية التي وقعت في 15 أيار 2004). وأن هذه المخاطر ماكانت لتقع لو أن الشركة كشفت الشيفرة المصدرية التزاماً بمبدأ كيركوف!
وفي الختام أترككم مع القصة التالية. أحد أصدقائي كان مهتماً بتجميع البرامج ووضعها على أقراص ليزرية. وقد لاحظ إنتشار العديد من الأقراص التي تحوي الكثير من البرامج بالإضافة لبرنامج (Autorun) يسمح بعرض محتويات القرص بطريقة جذابة. أراد صديقي بناء برنامج (Autorun) لعرض البرامج الموجودة على القرص الخاص به وذلك على شاكلة الأقراص الأخرى. وبعد القليل من البحث توصل إلى البرنامج الذي يقوم ببناء برامج عرض المحتويات (Autorun). يمكن لهذا البرنامج أن يفتح الملفات الموجودة على الأقراص الأخرى، وبالتالي يمكن لصديقي أن يتعلم من خلالها كيفية استخدام وبناء برامج عرض المحتوى. المشكلة أنه عند محاولة فتح تلك الملفات تظهر نافذة لإدخال كلمة سر. تباً! هذه الملفات محمية. قررنا أن نحاول اكتشاف طريقة التشفير. قمنا بتشغيل البرنامج وأنشأنا من خلاله ملفاً بسيطاً ووضعنا له كلمة سر مكونة من عبارة معينة. ثم حاولنا أن نبحث عن هذه العبارة ضمن الملف. طبعاً باءت العملية بالفشل. قمنا بعد ذلك بوضع كلمة سر مكونة من حرف واحد فقط هو a وأنشأنا ملفاً اخراً بكلمة سر aa وثالثاً بكلمة aaa ثم قارنا الملفات. والمفاجأة كانت أن الملف الأول حوى الكلمة كحرف b والثاني bc والثالث bcd! وبهذه الطريقة تمكنا من فتح باقي الملفات!
أضف تعليق