كونكت للتقنية Connect4Techsكونكت للتقنية Connect4Techs
أدوات مجانية: حاسبة Subnet · امتحانات تجريبية · قاموس المصطلحات ←
أمن المعلومات

Hashing (دالة التجزئة)

الـ Hashing عملية تحوّل أي بيانات إلى بصمة رقمية ثابتة الطول باتجاه واحد لا يمكن عكسه، وتُستخدم للتحقق من سلامة الملفات وتخزين كلمات المرور.

Hashing هو تمرير أي بيانات، سواء كانت كلمة أو ملفاً بحجم عدة غيغابايت، عبر دالة تجزئة (Hash Function) تُنتج قيمة ثابتة الطول تسمى Hash أو Digest، وهي بمثابة بصمة رقمية للبيانات.

خصائص دالة التجزئة الآمنة

  • باتجاه واحد (One-way): لا يمكن استرجاع البيانات الأصلية من قيمة الـ Hash.
  • حتمية: نفس المدخل يعطي دائماً نفس الناتج.
  • تأثير الانهيار (Avalanche Effect): تغيير حرف واحد يغير الناتج بالكامل.
  • مقاومة التصادم (Collision Resistance): من غير العملي إيجاد مدخلين مختلفين لهما نفس الناتج.

الخوارزميات الشائعة

  • MD5 و SHA-1: مكسورة أمنياً ولا تصلح للتوقيعات أو الأمان. في 2017 أعلنت Google وباحثون من معهد CWI الهولندي عن أول تصادم عملي في SHA-1 ضمن مشروع SHAttered.
  • SHA-256 و SHA-512 (عائلة SHA-2) و SHA-3: المعتمدة حالياً.
  • bcrypt و scrypt و Argon2 و PBKDF2: دوال بطيئة عمداً ومخصصة لكلمات المرور.

استخدامات عملية

التحقق من سلامة الملفات: تنشر الشركات المصنعة قيمة SHA-256 لملفات الـ Firmware، وبعد التنزيل تحسب القيمة وتقارنها للتأكد من عدم تلف الملف أو التلاعب به:

Get-FileHash .irmware.bin -Algorithm SHA256
sha256sum firmware.bin

وعلى أجهزة سيسكو يمكن التحقق من صورة النظام بأمر verify /md5 أو verify /sha512 بحسب ما يدعمه الإصدار.

تخزين كلمات المرور: الأنظمة السليمة لا تخزن كلمة المرور نفسها بل قيمة Hash لها مع Salt عشوائي فريد لكل مستخدم، حتى لا يتشابه الناتج لمستخدمين لهما كلمة المرور نفسها، ولإبطال الجداول المحسوبة مسبقاً (Rainbow Tables).

مثال من أجهزة سيسكو

في إعدادات IOS تظهر أنواع لتخزين كلمات المرور: Type 7 مجرد ترميز ضعيف يمكن عكسه فوراً وليس Hash، وType 5 يعتمد على MD5 ولم يعد موصى به، بينما Type 8 (PBKDF2-SHA256) وType 9 (scrypt) هما الخياران الموصى بهما حالياً، مثل:

enable algorithm-type scrypt secret <password>

الفرق بين Hashing والتشفير

التشفير قابل للعكس لمن يملك المفتاح، وهدفه السرية. أما Hashing فلا يُعكس، وهدفه التحقق من السلامة والهوية. ويجتمعان في HMAC المستخدم في IPsec و TLS، وفي التوقيع الرقمي الذي يوقّع قيمة Hash للمستند بالمفتاح الخاص.