الـ MD5 عادة نستخدمه بشكل متكرر لذلك علينا فهمه بشكل جيد لمعرفة ماهو و ما هي امكاناته و حدوده و لتحديد استخداماته و قد لاحظت بأن ماهية هذا النظام مازالت مجهولة لدى الكثيرين؟
أول سؤال قد يتبادر إلى الذهن ما هي الـ MD5؟
MD5 [Message Digest Algorithm 5]
الـ MD5 هي علاقة رياضية Hash algorithm لتوليد رقم بحيث يكون عبارة عن توقيع لهذه البيانات أي أنه ليس تشكيل آخر البيانات و ليس تشفيراً للبيانات أي عندما نستخدم دالة الـ MD5 على String فإننا لا نشفر الـ String بل نأخذ توقيعاً إلكترونياً له والأمر شبيه بالـ CRC و لهذا السبب فالناتج هو رقم له طول ثابت 128 بت و هذا الرقم يتم إظهاره بهيئة الـ HEX فيصبح طول بيانات الخرج 32 محرف لأن الرقم الأصلي يشغل حجم 16 بايت .
MD5 check Used Is MD5 Checksum
MD5 تم تصميمها عام 1991 بعد الهاش MD4
مبتكر هذا النظام (MD5) شركة RSA Data Security .
SHA-256 [Secure Hash Algorithm]
ما تم تطويره مؤخرا SHA-256 وهي خوارزمية رياضية مشفرة بطول 256بت..وهناك أخرى متطورة مثل SHA-512 و SHA-384
في العام 2010 تم الاعتماد على الهاشSHA-2 وعائلته وذلك لتقارير أمنية تفيد أنه تم كسر حماية ال MD5 وأصبح بالإمكان إنتاج برنامجين بنفس MD5
وقد أصدر قسم الأمن القومي الأمريكي بيانا يقول فيه أن الهاش MD5 تم كسره ولم يعد آمنا..
طيب مازال هذا عبارة عن توقيع فهل من الممكن أن نحصل على البيانات من الـ MD5؟
أحياناً لكن نظام الـ MD5 بالأصل قد تم إنشاؤه فقط لإضافة توقيع إلكتروني للملفات الكبيرة أو للملفات المشفرة و عندما كان نظام الـ MD4 كانت معادلته بسيطة و بالتالي عمله أسرع و بالتالي تكبر إمكانية تعرضه لـ Force Attack فابتكرو نظام الـ MD5 لجعله أبطأ نوعاً ما و أأمن من سابقه.
MD2 was optimized for 8-bit machines
كيف تتم عملية الحصول على البيانات من الـ MD5؟
بعملية الـ Brute Force Attack أي بالتجريب و مطابقة النتائج يعني بيبدأ بيحسب الأحتمالات و الأمكانات و بيجرب يطلع قيمة الـ MD5 له فإن تطابقت مع المطلوب فهي الباسوورد فمثلاً بيبدأ ياخذ الـ MD5 للـ a ثم للـ b و هكذا... لكن من الممكن وجود عدد من الباسووردات لها نفس الـ MD5 و شي ثاني إذا كانت الباسوورد طويلة كفاية فستتطلب وقت كبير جداً لحلها.
ما الطريقة لحماية الباسوورد من أن تكون مكشوفة للعيان؟
بكل بساطة اعمل: Md5(MD5($Password);X أو عمل MD5 للبيانات بعد أخذ الـ CRC لها مثل md5(crc32($Password));X و بهذا إن كانت الباسوورد طولها محرف واحد فبأخذ الـ MD5 الأول لها ستعطي ناتج ذو 32 حرفاً و هذا الأخير نعمل له MD5 بهذا سيكون من المستحيل تماماً الوصول للباسوورد إذاً فالغاية من عمل ذلك مرتين هو لحماية الباسووردات القصيرة من الاختراق و لتأمين حماية مضاعفة.
(الـ X لتلافي قلب النص في الـ Right-to-left)
هل يمكن استعادة كلمة بالعربي من الـ MD5 ؟
نعم لكن البرنامج الذي يقوم بهذه العملية مازال غير موجود مع أنه من الممكن برمجته و بسهولة ولو كان ذو فائدة و استخدام لوجد من زمان.
MD5 [Message Digest Algorithm 5]
الـ MD5 هي علاقة رياضية Hash algorithm لتوليد رقم بحيث يكون عبارة عن توقيع لهذه البيانات أي أنه ليس تشكيل آخر البيانات و ليس تشفيراً للبيانات أي عندما نستخدم دالة الـ MD5 على String فإننا لا نشفر الـ String بل نأخذ توقيعاً إلكترونياً له والأمر شبيه بالـ CRC و لهذا السبب فالناتج هو رقم له طول ثابت 128 بت و هذا الرقم يتم إظهاره بهيئة الـ HEX فيصبح طول بيانات الخرج 32 محرف لأن الرقم الأصلي يشغل حجم 16 بايت .
MD5 check Used Is MD5 Checksum
MD5 تم تصميمها عام 1991 بعد الهاش MD4
مبتكر هذا النظام (MD5) شركة RSA Data Security .
SHA-256 [Secure Hash Algorithm]
ما تم تطويره مؤخرا SHA-256 وهي خوارزمية رياضية مشفرة بطول 256بت..وهناك أخرى متطورة مثل SHA-512 و SHA-384
في العام 2010 تم الاعتماد على الهاشSHA-2 وعائلته وذلك لتقارير أمنية تفيد أنه تم كسر حماية ال MD5 وأصبح بالإمكان إنتاج برنامجين بنفس MD5
وقد أصدر قسم الأمن القومي الأمريكي بيانا يقول فيه أن الهاش MD5 تم كسره ولم يعد آمنا..
طيب مازال هذا عبارة عن توقيع فهل من الممكن أن نحصل على البيانات من الـ MD5؟
أحياناً لكن نظام الـ MD5 بالأصل قد تم إنشاؤه فقط لإضافة توقيع إلكتروني للملفات الكبيرة أو للملفات المشفرة و عندما كان نظام الـ MD4 كانت معادلته بسيطة و بالتالي عمله أسرع و بالتالي تكبر إمكانية تعرضه لـ Force Attack فابتكرو نظام الـ MD5 لجعله أبطأ نوعاً ما و أأمن من سابقه.
MD2 was optimized for 8-bit machines
كيف تتم عملية الحصول على البيانات من الـ MD5؟
بعملية الـ Brute Force Attack أي بالتجريب و مطابقة النتائج يعني بيبدأ بيحسب الأحتمالات و الأمكانات و بيجرب يطلع قيمة الـ MD5 له فإن تطابقت مع المطلوب فهي الباسوورد فمثلاً بيبدأ ياخذ الـ MD5 للـ a ثم للـ b و هكذا... لكن من الممكن وجود عدد من الباسووردات لها نفس الـ MD5 و شي ثاني إذا كانت الباسوورد طويلة كفاية فستتطلب وقت كبير جداً لحلها.
ما الطريقة لحماية الباسوورد من أن تكون مكشوفة للعيان؟
بكل بساطة اعمل: Md5(MD5($Password);X أو عمل MD5 للبيانات بعد أخذ الـ CRC لها مثل md5(crc32($Password));X و بهذا إن كانت الباسوورد طولها محرف واحد فبأخذ الـ MD5 الأول لها ستعطي ناتج ذو 32 حرفاً و هذا الأخير نعمل له MD5 بهذا سيكون من المستحيل تماماً الوصول للباسوورد إذاً فالغاية من عمل ذلك مرتين هو لحماية الباسووردات القصيرة من الاختراق و لتأمين حماية مضاعفة.
(الـ X لتلافي قلب النص في الـ Right-to-left)
هل يمكن استعادة كلمة بالعربي من الـ MD5 ؟
نعم لكن البرنامج الذي يقوم بهذه العملية مازال غير موجود مع أنه من الممكن برمجته و بسهولة ولو كان ذو فائدة و استخدام لوجد من زمان.
و الأن ناتي إلى الشرح المفصل
حتى قرب الموضوع أكثر، كلنا بيشتغل على الـ Winzip! و كلنا لاحظ بأنه عندما يتغير أي بايت في الملف راح يحس البرنامج على هذا التغيير و يرسل رسالة خطأ بأن الملف تالف!
هل تعلم كيف يتم ذلك؟
يستخدم الـ Winzip مايسمى بالـ CRC ليتحقق من صحة البيانات إذ يوجد في الملف رقم تم حسابه من بيانات الملف و عند تشغيل البرنامج يقوم البرنامج بحساب الـ CRC و مقارنتها مع القيمة الموجودة في الملف .
أغلب البرامج تستخدمها و حتى ما نروح بعيد فبروتوكول الـ TCP يستخدمها في الـ HEADER للتحقق من سلامة البيانات و الهدر يسمى CRC check .
طيب ياترى ألا تجدوا بأنه من المنطقي وجود قيمتين تعطيان نفس قيمة الـ MD5 ؟
نعم و قد يكون هناك عدد كبير من التطابقات.
بسبب أن عدد احتمالات قيم الـ MD5 هو 2^128 صحيح أنها قيمة كبيرة جداً جداً جداً و لكن احتمالات البيانات بشكل عام لانهائي.
حتى قرب الموضوع أكثر، كلنا بيشتغل على الـ Winzip! و كلنا لاحظ بأنه عندما يتغير أي بايت في الملف راح يحس البرنامج على هذا التغيير و يرسل رسالة خطأ بأن الملف تالف!
هل تعلم كيف يتم ذلك؟
يستخدم الـ Winzip مايسمى بالـ CRC ليتحقق من صحة البيانات إذ يوجد في الملف رقم تم حسابه من بيانات الملف و عند تشغيل البرنامج يقوم البرنامج بحساب الـ CRC و مقارنتها مع القيمة الموجودة في الملف .
أغلب البرامج تستخدمها و حتى ما نروح بعيد فبروتوكول الـ TCP يستخدمها في الـ HEADER للتحقق من سلامة البيانات و الهدر يسمى CRC check .
طيب ياترى ألا تجدوا بأنه من المنطقي وجود قيمتين تعطيان نفس قيمة الـ MD5 ؟
نعم و قد يكون هناك عدد كبير من التطابقات.
بسبب أن عدد احتمالات قيم الـ MD5 هو 2^128 صحيح أنها قيمة كبيرة جداً جداً جداً و لكن احتمالات البيانات بشكل عام لانهائي.
الموضوع عبارة عن شرح لفكرة تمكنك من معرفة دقة ملف معين حتى تتأكد من أنك تستخدم الملف الصحيح 100%، و هذا مفيد مثلا أثناء تحميلك ملفات كبيرة من الإنترنت حيث أنك ستصاب بالإزدراء والإستياء بعد تحميلك لملف حجمه 650 أو 700 ميجا، هذا إن لم يكن 4.4 جيجا مثلا لتكتشف أن الملف معطوب بعد أن قمت بنسخه على CD أو DVD و حاولت مرارا في تشغيله و لم يعمل. مثال آخر، لو أنك مثلا قمت بتحميل ملف من موقع معين أو شخص ما أعطاك ملف معين و قال لك أن هذا برنامج رائع يجب عليك تجربته، فكيف ستضمن أن الملف هو نفس الملف الأصلي الذي قام مطور البرنامج بطرحه؟ كيف تتأكد من أنه الملف الأصلي و أن هذا الشخص لم يعبث بالملف بطريقة ما ليضيف ثغرة فيه تمكنه من الوصول إلى جهازك؟ MD5 hash هو الحل.
و لتبسيط الشرح سنأخذ مثالا عمليا على ذلك، حسب موقع FreeBSD.org فإن الـ MD5 Checksum الخاص بالقرص الأول من نظام FreeBSD.org 6.2 RELEASE هو على النحو التالي
MD5 (6.2-RELEASE-i386-disc1.iso) = 3d27214700687c0b5390e8b6dd3706e3
6.2-RELEASE-i386-disc1.iso هو اسم الملف
3d27214700687c0b5390e8b6dd3706e3 هو المزيج أو الهاش Hash
وبالتالي فلو أنك قمت بتحميل الملف و وجدت أن الـ Hash هو مطابق لما هو موجود في الموقع فقد قمت بتحميل الملف على أكمل وجه Bit-by-Bit
هل md5 موجود على نظام التشغيل الذي أعمل عليه؟
الحمد لله md5 موجودة على معظم أنظمة التشغيل و منها على سبيل المثال لا الحصر
FreeBSD and all other *BSDs, Linux, Mac OS X, M$ Windows, Solaris, HP-UX, AIX and more
كيف أستخدم هذه الأداة؟
من خلال سطر الأوامر، نكتب الأمر md5 و من ثم اسم الملف، و هذا مثال من نظام جينتو لينكس
md5sum freebsd_security_features.mov
a84f4b7608eaad2a101ff48f6b342e07 freebsd_security_features.mov
GUI programs for MD5 Check
MD5 Checker
MD5 (6.2-RELEASE-i386-disc1.iso) = 3d27214700687c0b5390e8b6dd3706e3
6.2-RELEASE-i386-disc1.iso هو اسم الملف
3d27214700687c0b5390e8b6dd3706e3 هو المزيج أو الهاش Hash
وبالتالي فلو أنك قمت بتحميل الملف و وجدت أن الـ Hash هو مطابق لما هو موجود في الموقع فقد قمت بتحميل الملف على أكمل وجه Bit-by-Bit
هل md5 موجود على نظام التشغيل الذي أعمل عليه؟
الحمد لله md5 موجودة على معظم أنظمة التشغيل و منها على سبيل المثال لا الحصر
FreeBSD and all other *BSDs, Linux, Mac OS X, M$ Windows, Solaris, HP-UX, AIX and more
كيف أستخدم هذه الأداة؟
من خلال سطر الأوامر، نكتب الأمر md5 و من ثم اسم الملف، و هذا مثال من نظام جينتو لينكس
md5sum freebsd_security_features.mov
a84f4b7608eaad2a101ff48f6b342e07 freebsd_security_features.mov
GUI programs for MD5 Check
MD5 Checker
How rainbow crack Work ?
Rainbow Crack Use Data Bases Which Generated by The program ,
The Program Use This Data Bases to Search in to The crypt word (hash) ,until Find The Same Hash in the Data Base and the Corresponding Word (Decrypted Hash).
Explain The Program
THE EXPLAIN OF PROGRAM IN THREE PARTS :
1- Data Base Generation 2- Data Base Activation
3- Decryption
Download
Code:
http://www.mediafire.com/?y2d3nlmrm1x
pass : pass : security-sh3ll
Code:
http://www.mediafire.com/?y2d3nlmrm1x
pass : pass : security-sh3ll