أمن نظم المعلومات

06/10/2013 22:37:05

ماهي خوارزميات التقطيع MD5 وخوارزمية الـ SHA-1 وكيف يمكن اختراقها ؟

ربما قد رأيت أرقام باسم MD5 hashes بجانب ملفات التحميل خاصة ملفات الـ ISO أو من خلال تعاملك مع ملفات التورنت ولكن ماذا تعني هذه الأرقام وماهي خوارزميات الهاش؟ وماهي فوائدها ؟

 

ماهي جداول التقطيع Hashes ولم تستخدم ؟

المخطط التالي يوضح فكرة خوارزميات تشفير الهاش بحيث نجد بأن الدخل هو عبارة عن سلسلة محرفية (مجموعة كلمات) وتتم عمليات المعالجة بواسطة تطبيق توابع رياضية تدعى توابع الهاش Hash Function (وهي بحد ذاتها لا تقوم بتشفير آمن وإنما يمكن كسر هذا التشفير بسهولة ولكن لتقريب الفكرة سنعتبر بأنه تابع تشفير للآن) بينما الخرج هو النص المشفر.

تسمى نتاج خوارزميات التشفير المرتبطة بجداول التقطيع Hashes باسم digests وغالباً مايكون خرج خوارزميات تشفير الهاش ذو طول ثابت مهما كان حجم الدخل input.

نلاحظ بأن كلاً للدخل Fox و The red fox jumps over the blue dog خرجاً متساوي من حيث عدد الخانات (40 حرف).

 

عامل آخر يعطي توابع الهاش قوة تشفير هي التعقيد فمقارنة مابين المثال الثاني والثالث والرابع والخامس سنجد بانه على الرغم من تقارب شكل الدخل بشكل طفيف إلا أنت نتائج خوارزميات تشفير الهاش مختلفة بشكل كبير.

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

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

عندما يحاول المخترق إختراق كلمة المرور غالباً لايحاولون السير بطريقة معاكسة (استنتاج كلمة المرور الأصلية مع معرفة الكلمة المشفرة ومفتاح التشفير) ولكن بالعكس غالبا مايتم استخدام أشهر جداول الهاش المعروفة ويتم مقارنتها مع الكلمة المسروقة.

التحقق من المعطيات Data Verification:

 

تستخدم خوارزميتي MD5 و Message-Digest Algorithm في العديد من البرامج لأهداف أمن المعلومات ولكن يمكن أن تستخدم هذه الخوارزميات لأهداف أخرى مثل التحقق من المعطيات وأشهر مثال يمكن تقريبه للذهن هو التحقق من الملفات التي تم تحميلها من الويب downloads.

لنفرض بأنك تحاول تحميل آخر إصدار من نظام تشغيل Ubuntu من خلال التورنت. قد يعمل بعض المشاغبين بوضع نسخة Ubuntu خاصة به مع بعض البرمجيات الخبيثة المضمنة بداخل هذه النسخة.

كي لايثير صديقنا المشاغب أي من الشبهات سيقوم بجعل النسخة الخبيثة من نظام Ubuntu نفس حجم النسخة الحقيقية ولكن لحسن الحظ فإن أي تعديل جزئي ولو بسيط سيؤثر بشكل كبير على شكل الهاش.

لحسن الحظ فقد قام البعض بنشر أرقام الهاش MD5 checksums لنسخة الآوبنتو عبر منتديات الدعم الفني بحيث يمكنك التحقق من رقم الهاش بواسطة أي أداة تساعد على ذلك للتأكد من سلامة الملف المشارك عبر الإنترنت.

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

 

على سبيل المثال قمت بتحميل ملف ما من الإنترنت وكان الهاش الخاص بهذا الملف هو

2A19E211DA9X6E6C937812150A95DE9027FF5AFC

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

2A19E211EAFX6E6C9378AA150A95DE1903FF5A11

وعندما يقوم المتصفح بالإنتهاء من تحميل الملف سيقوم بالتحقق من صحة الهاش ليجد الإختلافات المشار إليها باللون الأصفر وعندها سيرفض تحميل الملف وسيقوم بإعادة التحميل من جديد بعد حذف الملف القديم.

 

لايقتصر الأمر على توزيعات لينكس فحسب بل يشمل ذلك كل ملفات الـ BIOS أو أي ملفات Android ROM أو router firmwares أو أي برنامج حساس قد يعمل على تخريب جهازك في حال تم العبث به.

عندما تتعامل مع أداة Downloadthem all الخاصة بالفايرفوكس ستجد بأن كل عملية تحميل لأي ملف من الإنترنت تتضمن خيار يدعى checksum(hash) ويتم تحديد نوع الخوارزمية المطبقة.

 

عندما تتعامل مع ملفات التورنت ستلاحظ بأن مواقع وبرامج التورنت توفر معلومات الهاش الصورة التالية من موقع خليج القراصنة الشهير.

 

الصورة التالية تبين معلومات الهاش أثناء إستخدام لبرنامج تورنت BitTorrent

 

لم تعد خوارزمية MD5 تستعمل بشكل كبير اليوم بسبب فقدانها للمزايا الأمنية التي اكتسبتها فيما مضى اليوم أنتقل مجتمع الويب إلى خوارزميات هاش أكثر قوة مثل SHA-1 والتي تستخدم بشكل كبير خلال تعاملنا اليومي مع عالم الويب.

حساب قيم الهاش الخاصة بالملفات بواسطة سطر الاوامر :

للأسف لايحوي نظام تشغيل ويندوز على أداة جاهزة للتحقق من الهاش ولكن مايكروسوفت توفر أداة مساعدة لذلك : Microsoft File Checksum Integrity Verifier Utility فعند الإنتهاء من تحميل هذه الاداة وتنفيذها قم بفتح أي ملف ترغب به من خلال محرر الأوامر cmd وقم بكتابة التعليمة التالية للتحقق من هاش الـ MD5:

(وذلك بعد تحديد اسم الملف من خلال المسار C:\path\to\file.bin)

fciv.exe C:\path\to\file.bin                                     

تعمل تعليمة FCIV على التحقق باستخدام خوارزمية MD5 بشكل إفتراضي ولكن يمكن تحديد خوارزمية SHA-1 كي تعمل من خلال التعليمة التالية:

fciv.exe –sha1 C:\path\to\file.zip

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

 

سيقوم الحاسب بحساب 3 قيم CRC32, MD5, SHA-1.

 

كما يمكنك من الخيار Settings اختيار أي من خوارزميات الهاش يمكن أن يظهر.


مشاركة/حفظ

الكاتب: م. وسيم أبوزينة

مصدر الخبر: خاص الرقميات

عودة عودة إلى أمن نظم المعلومات عودة عودة إلى الصفحة الرئيسية طباعة طباعة إرسال إلى صديق إرسال إلى صديق

التعليقات

  • من قبل صلاح في 17/10/2013 21:18:34
    الهاش - ويندوز
    السلام عليكم
    كيف ارف ارقام الهاش لنسخة ويندوز 8.1 الاصلية؟
    شكرا :)
  • من قبل صلاح في 17/10/2013 22:50:52
    الهاش - ويندوز
    السلام عليكم
    كيف ارف ارقام الهاش لنسخة ويندوز 8.1 الاصلية؟
    شكرا :)

أضف تعليق


تصنيفات الموقع