التجزئة
MD5 وSHA وbcrypt
التجزئة درس مجاني في Ethical Hacking Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Ethical Hacking Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Ethical Hacking Academy 4 دروس في المجموع.
ما التجزئة؟
تأخذ دالة التجزئة مُدخلًا بأي حجم وتنتج مخرجات ذات حجم ثابت تُسمى ملخّصًا. وينتج عن المُدخل نفسه دائمًا الملخّص نفسه.
والأهم أن التجزئة عملية أحادية الاتجاه. فلا يمكن عكس الملخّص رياضيًا للعودة إلى المُدخل الأصلي. وهذا ما يجعل التجزئات مختلفة عن الترميز والتشفير معًا.
خصائص التجزئة الجيدة
يجب أن تتصف دالة التجزئة التشفيرية بما يلي:
- حتمية: ينتج عن المُدخل نفسه المخرج نفسه.
- سريعة الحساب (في التجزئة العامة)، لكن يُفضّل أن تكون بطيئة في تجزئة كلمات المرور.
- مقاومة للهجوم بالنص الأصلي: لا يمكنك، انطلاقًا من ملخّص، العثور على المُدخل.
- مقاومة للتصادم: يصعب العثور على مُدخلين لهما الملخّص نفسه.
- تأثير الانهيار: يؤدي تغيير بت واحد إلى قلب نحو نصف بتات المخرج.
MD5
ينتج MD5 ملخّصًا بطول 128 بت (32 محرفًا ست عشريًا). وهو سريع وشائع تاريخيًا، لكنه منكسر تشفيريًا، إذ توجد هجمات تصادم عملية.
لا تستخدم MD5 للأمان مطلقًا. وستظل تصادفه في تجزئات فحص الملفات والأنظمة القديمة، مما يجعله هدفًا متكررًا أثناء التقييمات.
echo -n 'password' | md5sum
# 5f4dcc3b5aa765d61d8327deb882cf99عائلة SHA
تُعد عائلة SHA (خوارزمية التجزئة الآمنة) أكثر متانة:
- SHA-1: بطول 160 بت. تُعد الآن منكسرة (هجوم التصادم 'SHADOW HAMMER' / SHAttered). تجنّبها.
- SHA-2: تتضمن SHA-256 وSHA-512. وتُستخدم على نطاق واسع وتُعد آمنة حاليًا.
- SHA-3: تصميم أحدث يستند إلى Keccak، ويمثل بديلًا لـ SHA-2.
echo -n 'password' | sha256sum
# 5e884898da28047151d0e56f8dc629...التجزئة ليست تشفيرًا
يمكن عكس التشفير باستخدام مفتاح، أما التجزئة فلا يمكن عكسها إطلاقًا. ولهذا السبب تحديدًا تُستخدم التجزئة لتخزين كلمات المرور: فالخادم لا يحتاج إلى الأصل.
عند تسجيل الدخول، يُجري الخادم تجزئة لما كتبته ويقارنها بالتجزئة المخزّنة. فإذا تطابقتا، تمت مصادقتك. ولا تُخزّن كلمة المرور بنصها الصريح أبدًا.
المشكلة: جداول قوس قزح
لأن التجزئة حتمية، فإن قيمة ملخص التجزئة لكلمة المرور 'password' تكون نفسها لدى كل مستخدم. يُجري المهاجمون مسبقًا حساب جداول بحث ضخمة تربط بين ملخصات التجزئة والنصوص الأصلية، وتُسمى جداول قوس قزح.
إذا استخدم مستخدمان كلمة المرور نفسها، فستكون قيم التجزئة المخزنة متطابقة، مما يكشف هذه الحقيقة. لذلك لا تصلح خوارزميات التجزئة السريعة البسيطة مثل MD5 أو SHA-256 وحدها لكلمات المرور.
استخدام Salt
الـsalt قيمة عشوائية فريدة تُضاف إلى كل كلمة مرور قبل تجزئتها. وهذا يعني ما يلي:
- تنتج كلمات المرور المتطابقة قيم تجزئة مختلفة.
- تصبح جداول قوس قزح المحسوبة مسبقًا عديمة الفائدة.
يُخزَّن الـsalt إلى جانب قيمة التجزئة، وليس من الضروري أن يكون سريًا. وتتمثل مهمته في جعل كل قيمة تجزئة فريدة، وإجبار المهاجمين على كسر كل قيمة على حدة.
stored = salt + hash(salt + password)
# salt is random and unique per userbcrypt: مصمم لكلمات المرور
صُمم bcrypt خصيصًا لتخزين كلمات المرور. وهو بطيء عمدًا، ويتضمن عامل تكلفة (عامل جهد) قابلًا للضبط، يجعله أبطأ مع تحسن العتاد.
تتضمن قيمة تجزئة bcrypt الخوارزمية والتكلفة والـsalt في سلسلة واحدة. ويُعد البطء ميزة، لأنه يحد من سرعة تخمين المهاجمين.
$2b$12$R9h/cIPz0gi.URNNX3kh2OPST9/PgBkqquzi.Ss7KIUgO2t0jWMUW
# $2b$ = bcrypt, 12 = cost factor, then salt + hashخوارزميات التجزئة البطيئة الأخرى
بالإضافة إلى bcrypt، تتضمن الخيارات الحديثة لتجزئة كلمات المرور ما يلي:
- scrypt: يتطلب قدرًا كبيرًا من الذاكرة، ويقاوم هجمات GPU وASIC.
- Argon2: الفائز في مسابقة تجزئة كلمات المرور، ويمكن ضبطه من حيث الزمن والذاكرة. وهو الخيار الحديث الموصى به.
- PBKDF2: يطبّق تجزئة سريعة لآلاف التكرارات؛ وهو مقبول، لكنه أضعف من الخيارات السابقة.
HMAC والسلامة
تُستخدم قيم التجزئة أيضًا لضمان السلامة، وليس لكلمات المرور فقط. إذ يجمع HMAC (رمز مصادقة الرسائل القائم على التجزئة) بين التجزئة ومفتاح سري للتحقق من سلامة الرسالة وأصالتها.
تتيح لك قيم التحقق الخاصة بالملفات (وغالبًا ما تكون SHA-256) التأكد من أن التنزيل لم يتعرض للتلاعب. وبصفتك مخترقًا، قد تكشف قيم التحقق غير المتطابقة عن ملفات معدّلة أو خبيثة.
التجزئة في الواقع العملي
بصفتك مخترقًا، ستصادف قيم التجزئة باستمرار:
- يخزّن /etc/shadow في Linux قيم تجزئة كلمات المرور مع salt، وتكون مسبوقة بصيغ مثل
$6$(SHA-512) أو$2b$(bcrypt). - يخزّن Windows قيم تجزئة NTLM في قاعدة بيانات SAM.
- تخزّن تطبيقات الويب كلمات المرور المجزأة في جداول المستخدمين.
ويخبرك التعرّف على البادئة فورًا بالخوارزمية واستراتيجية الكسر المناسبة.
$6$rounds=5000$salt$hash # SHA-512 crypt
$2b$12$saltandhash... # bcryptتحقق سريع
اختر الخيار الأكثر أمانًا لتخزين كلمات مرور المستخدمين.
مراجعة
أصبحت الآن تفهم التجزئة:
- التجزئة تحويل أحادي الاتجاه، ثابت الحجم وحتمي، وتختلف عن الترميز والتشفير.
- تُعد MD5 وSHA-1 خوارزميتين مكسورتين؛ استخدم SHA-256 لضمان السلامة العامة.
- استخدم لكلمات المرور خوارزميات بطيئة مع salt: bcrypt أو scrypt أو Argon2.
- تُفشل أملاح التجزئة جداول قوس قزح، بينما يضيف HMAC سلامة قائمة على مفتاح.
ستستكشف بعد ذلك التشفير المتماثل وغير المتماثل باستخدام AES وRSA.
تعلم Ethical Hacking Academy مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 31
- الدروس
- 111
الأسئلة الشائعة
هل درس «التجزئة» مجاني؟
نعم — نص درس «التجزئة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Ethical Hacking Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Ethical Hacking Academy 4 دروس في المجموع.
ماذا ستتعلم في «التجزئة»؟
MD5 وSHA وbcrypt تتمرن على Ethical Hacking Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Ethical Hacking Academy؟
لا تُشترط خبرة سابقة. Ethical Hacking Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «التجزئة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Ethical Hacking Academy هذا؟
نعم. كل درس في Ethical Hacking Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.