ما هي دالة التجزئة؟
إنّ دالة التجزئة تحوّل أي محتوى — جملة، أو برنامج، أو نسخة احتياطية بحجم عدة جيجابايت — إلى سلسلة ثابتة الطول تُسمّى البصمة أو المُلخَّص. تحدّد ثلاث خصائصها: المخرجات لها الحجم نفسه مهما كان المدخل، والمحتوى نفسه يعطي البصمة دائمًا، ويجب أن يبقى التراجع من البصمة إلى المدخل مستحيلًا عمليًا. هذا الشرط الثالث هو ما يميّز التجزئة التشفيرية عن مجموع ضبط مثل CRC32.
عمليًا، يغطّيان استخدامان معظم الحاجات. التحقق من السلامة : ينشر الناشر بصمة ملفه، وأنت تحسبها مجددًا، فالتطابق يثبت أن التنزيل لم يتعرّض للتلاعب. مقارنة المحتويات : بدل حفظ الوثائق نفسها، نحفظ بصماتها — فالمتطابقة تعني محتوى متطابقًا، دون أن تكشف شيئًا عن طبيعته.
أي خوارزمية تختار اليوم؟
SHA-256 هي الإجابة الافتراضية: اعتمده NSA ثم انتشر في كل مكان، ونُفِّذ في كل لغات البرمجة، ولا تُعرَف له أي تصادمة. SHA-512 يناسب الأحجام الكبيرة إذا كان المعالج 64 بت، وغالبًا أسرع من قريبه على هذه المعمارية. SHA-384 لا يضيف شيئًا جديدًا سوى تنويعة أطول. أما لتوقيع رسالة بمفتاح، فإنّ HMAC-SHA-256 هو المرجع: يجمع المفتاح السري بالتجزئة، فلا يستطيع إنتاج القيمة نفسها إلا حامل المفتاح.
إنّ MD5 و SHA-1 يبقيان مفيدين لضوابط غير حساسة — فهرسة، أو تخزين مؤقت، أو كشف التكرارات — حيث تهمّ السرعة أكثر من المقاومة. أمّا CRC32، فإنّه ليس تجزئة تشفيرية: يكشف الأخطاء العرضية، بينما يُصنَّع التلف المتعمَّد في ثوانٍ معدودة.
لماذا يُعتبَر MD5 وSHA-1 مكسورين؟
لأنّ باحثين صنعوا، لكلٍّ منهما، وثيقتين مختلفتين تتقاسمان البصمة نفسها. تعود تجربة MD5 إلى 2004، بينما أُنتج تصادم حقيقي لـ SHA-1 سنة 2017 تحت اسم SHAttered. تكفي تصادمة واحدة لكسر توقيع: إذا اختار المهاجم الوثيقة بينما يكتفي الناشر بتجزئتها، فقدّم وثيقة تُوقَّع على محتوى مختلف. لهذا تخلّت شهادات TLS وتحديثات البرمجيات وتوقيعات الحزم عن هاتين الخوارزميتين.
ما لا تفعله التجزئة
التجزئة ليست تشفيرًا: البصمة غير قابلة للعكس بتصميمها، لكنها لا تحمي المحتوى بجعله غير مقروء. التجزئة لا تشفّر شيئًا، ولا تحلّ محلّ TLS ولا مفتاح تشفير، ولا تحمي كلمة المرور وحدها — هذا عمل bcrypt أو scrypt أو Argon2 المصمَّمة لتكون بطيئة. وأخيرًا، تجزئة مرتين لا تعزّز شيئًا: سلسلة الخوارزميات لا تضيف سوى طبقة هشّة حيث تكفي دالة واحدة لم تُكسر.
الفئات الموصى لها
مسؤولو النظام ومديرو تقنية المعلومات الذين يتحققون من مجموعات ضبط التوزيعات، والمطورون الذين يختمون المنتجات أو يوثقون Webhooks، والمدققون وفرق الامتثال الذين يفحصون سلامة النسخ الاحتياطية، والصحفيون والمحللون الذين يقارنون الوثائق دون نشرها، وطلاب التعمية الذين يتعاملون مع مفاهيم البصمة والتصادم والملح — وكل من يريد تجزئة محتوى بسرعة ودون أثر، مع المرافق التالية: مولّد كلمات المرور، والمحوّل ومفكّك Base64، و مفكّك JWT، و فاحص التعبيرات النمطية و عدّاد الأحرف.