السلام عليكم ورحمة الله تعالى وبركاته
أهلا وسهلا بكم زوارنا الكرام زوار مدونة تقنيات العرب
اليوم أضع لكم هذه التدوينة التي أتمنى أن تستفيدو منها و أن تصحح بعض الأخطاء عند من كان يفهمها بشكل خاطئ.
لفظ الـ MD5 عادة نستخدمه بشكل متكررولذلك يجب علينا فهمه لمعرفة ماهو ؟
1-أول سؤال قد يتبادر إلى ذهن الجميع ما هي الـ MD5؟
الـ MD5 هي علاقة رياضية Hash algorithm لتوليد رقم بحيث يكون عبارة عن توقيع لهذه البيانات أي أنه ليس تغيير في البيانات و ليس تشفيراً لها أي عندما نستخدم دالة الـ MD5 على String فإننا لا نشفر الـ String بل نأخذ توقيعاً إلكترونياً له والأمر شبيه بالـ CRC و لهذا السبب فالناتج هو رقم له طول ثابت 128 بيت و هذا الرقم يتم إظهاره بهيئة الـ HEX فيصبح طول بيانات التشفير 32 حرف لأن الرقم الأصلي يشغل حجم 16 بايت .
2-من مبتكر هذا النظام؟
لقد إبتكرت هذا النظام شركة RSA Data Security
حتى أقرب الموضوع أكثر، كلنا نعمل على الـ Winzip! و كلنا لاحظ بأنه عندما يتغير أي بايت في الملف راح يعرف البرنامج هذا التغيير و يرسل رسالة خطأ بأن الملف تالف!
3-هل تعلم كيف يتم ذلك؟
يستخدم الـ Winzip مايسمى بالـ CRC ليتحقق من صحة البيانات إذ يوجد في الملف رقم تم حسابه من بيانات الملف و عند تشغيل البرنامج يقوم البرنامج بحساب الـ CRC و مقارنتها مع القيمة الموجودة في الملف .
أغلب البرامج تستخدمها و لكي لا نذهب بعيدا فبروتوكول الـ TCP يستخدمها في الـ HEADER للتحقق من سلامة البيانات و الهيدر يسمى CRC check .
إذا ألا تجدوا بأنه من المنطقي وجود قيمتين تعطيان نفس قيمة الـ MD5 ؟
نعم و قد يكون هناك عدد كبير من التطابقات.
و السبب أن عدد احتمالات قيم الـ MD5 هو ²128 صحيح أنها قيمة كبيرة جداً جداً جداً و لكن احتمالات البيانات بشكل عام لانهائي.
4-مازال هذا عبارة عن توقيع ولكن السؤال هل من الممكن أن نحصل على البيانات من الـ MD5؟
أحياناً لكن نظام الـ MD5 بالأصل قد تم إنشاؤه فقط لإضافة توقيع إلكتروني للملفات الكبيرة أو للملفات المشفرة و عندما كان نظام الـ MD4 كانت معادلته بسيطة و بالتالي عمله أسرع و بالتالي تكبر إمكانية تعرضه لـ Force Attack فابتكرو نظام الـ MD5 لجعله أبطأ نوعاً ما و أأمن من سابقه.
5-كيف تتم عملية الحصول على البيانات من الـ MD5؟
بعملية الـ Brute Force Attack أي بالتجريب و مطابقة النتائج يعني بيبدأ بيحسب الأحتمالات و الأمكانات و بيجرب يطلع قيمة الـ MD5 له فإن تطابقت مع المطلوب فهي الباسوورد فمثلاً بيبدأ ياخذ الـ MD5 للـ a ثم للـ b و هكذا... لكن من الممكن وجود عدد من الباسووردات لها نفس الـ MD5 و شي ثاني إذا كانت الباسوورد طويلة كفاية فستتطلب وقت كبير جداً لحلها.
إلى هنا نصل إلى نهاية تدوينتنا
أستودعكم الله على أمل اللقاء معكم في تدوينة أخرى
كان معكم أخوكم أيمن من مدونة تقنيات العرب
