أداة التحقق من بصمة الملف (Checksum)
احسب بصمة SHA-256 أو SHA-512 أو SHA-1 لملف مباشرة داخل متصفحك وقارنها بالتجزئة التي نشرها المطوّر — تأكد من وصول تنزيلك سليمًا وغير معدَّل، دون رفع أي شيء إلى أي خادم.
222 مشاهدة
اسحب وأفلت ملفًا هنا، أو انقر للاختيار
جارٍ الحساب…
تعذّرت قراءة الملف.
لماذا تنشر جهات توزيع البرمجيات بصمات التحقق (Checksums)
عندما تُنزّل نسخة ISO من لينكس، أو ملفًا تنفيذيًا مفتوح المصدر، أو مثبّتًا موقّعًا، عادةً ما تعرض صفحة التنزيل بصمة تحقق (checksum) بجانب الملف — نصًا قصيرًا مثل a94a8fe5ccb19ba61c4c0873d391e987982fbbd. هذا النص هو ناتج تشغيل دالة تجزئة (hash) تشفيرية على كل بايت من الملف. تغيير بت واحد فقط في أي مكان من الملف يجعل التجزئة مختلفة تمامًا. تنشر الجهات هذه القيمة حتى تتمكن، بعد تنزيل الملف، من تشغيل دالة التجزئة نفسها بنفسك ومقارنة نتيجتك بما نشروه. إذا تطابق النصان تمامًا، يمكنك أن تثق بأن النسخة الموجودة على قرصك تحتوي بالضبط على نفس البايتات التي بناها المُوزِّع ورفعها — لا شيء أُضيف، ولا شيء نقص، ولا شيء تغيّر.
تكتشف بصمة التحقق نوعين مختلفين تمامًا من المشاكل. الأول عادي: تنقطع اتصالات الشبكة في منتصف النقل، وتقتطع الخوادم الوسيطة (proxies) الملفات الكبيرة، وتكتب الأقراص أحيانًا في قطاعات تالفة — أي من هذه الحالات قد يترك لك ملفًا يبدو مكتملًا (الحجم صحيح، يُفتح دون خطأ واضح) لكنه يختلف عن الأصل ببضعة بايتات تالفة، وهو ما يكفي غالبًا لتعطيل المثبّت أو إفساد البيانات لاحقًا بصمت. أما الثاني فعدائي: إذا اخترق مهاجم خادم مرآة (mirror) أو اعترض تنزيلًا أثناء نقله واستبدله بملف تنفيذي مُعدَّل يحمل برمجية خبيثة، فإن مقارنة بصمة التحقق بالقيمة المنشورة على الصفحة الرسمية الموثوقة هي أحد الفحوصات القليلة التي قد تكشف ذلك فعلًا — فاسم الملف وحجمه سهلا التزييف، لكن إنتاج بصمة مطابقة تمامًا يتطلب امتلاك البايتات الأصلية بعينها.
بصمات التحقق ليست تشفيرًا
يستحق الأمر التوضيح بدقة لما تتحقق منه بصمة التحقق فعليًا، لأن المصطلحات كثيرًا ما تُخلط. التجزئة (hashing) عملية أحادية الاتجاه لا يمكن عكسها: يحوّل SHA-256 ملفًا إلى نص سداسي عشري ثابت الطول من 64 حرفًا، لكن لا توجد عملية تعيد ذلك النص إلى الملف. هذا وحده يُظهر أن الأمر ليس تشفيرًا — فالتشفير مصمَّم ليكون قابلًا للعكس بالمفتاح الصحيح، بينما التجزئة مصمَّمة لتكون غير قابلة للعكس على الإطلاق. تتحقق بصمة التحقق من السلامة، لا من السرّية: فهي تؤكد أن البايتات التي لديك هي نفسها البايتات التي جُزّئت. أي شخص يملك حق الوصول إلى الملف لا يزال بإمكانه قراءة كل بايت منه بوضوح تام؛ فالتجزئة لا تُخفي المحتوى إطلاقًا. ما تضمنه هو أنه إذا تغيّر بايت واحد فقط — عمدًا أو عرضًا — فإن التجزئة التي تحسبها لن تعود مطابقة للتجزئة المنشورة، وستعرف فورًا أن هناك شيئًا مختلفًا.
هذا التمييز مهم أيضًا في اختيار الخوارزمية. اعتُبر SHA-1 مكسورًا رسميًا من الناحية التشفيرية الأمنية عام 2017، عندما نشر باحثون من Google وCWI أمستردام هجوم "SHAttered": ملفا PDF مختلفان صُمِّما لإنتاج نفس بصمة SHA-1، مما أثبت أن مهاجمًا مصمَّمًا بما يكفي يمكنه بناء ملف خبيث يشارك بصمة تحقق مع ملف شرعي. أدت هذه النتيجة إلى إحالة SHA-1 إلى التقاعد في كل ما هو حرج أمنيًا — شهادات TLS، التوقيعات الرقمية، الدفاع ضد جهة معادية تصمّم تصادمًا (collision) عمدًا. لكن بالنسبة للحالة الأكثر شيوعًا بكثير التي تعالجها هذه الأداة — التأكد من أن تنزيلًا لم يتلف بسبب اتصال غير مستقر — لا يزال SHA-1 يعمل جيدًا عمليًا، لأن لا أحد يصمّم تنزيلك التالف تحديدًا ليطابق تجزئة مستهدفة؛ فالتلف العرضي هو انقلاب عشوائي للبتات، لا بناء تصادم مقصود. مع ذلك، عندما يتيح الناشر الخيار، لا يكلّف SHA-256 شيئًا إضافيًا للحساب ويغلق الفجوة تمامًا، لذا فهو الخيار الافتراضي الأكثر أمانًا.
الأسئلة الشائعة
ما الذي تتحقق منه بصمة التحقق (checksum) بالضبط؟
بصمة التحقق هي ناتج تشغيل دالة تجزئة تشفيرية (SHA-256 أو SHA-512 أو SHA-1) على كل بايت من الملف. وهي تؤكد السلامة: أن الملف الذي لديك مطابق بايتًا ببايت للملف الذي أنتج التجزئة المنشورة. لا تخبرك بشيء عن معنى المحتوى أو سلامته أو مصدره — فقط أن لا بايت أُضيف أو حُذف أو تغيّر منذ توليد التجزئة.
لماذا لا تطابق تجزئة الملف الذي نزّلته التجزئة الموجودة على الموقع؟
السبب الأكثر شيوعًا بفارق كبير هو تنزيل غير مكتمل أو تالف — أعد المحاولة، ويُفضَّل باستخدام مدير تنزيلات يدعم الاستئناف. أسباب أخرى: قارنت بتجزئة إصدار مختلف أو ملف آخر في الصفحة نفسها، أو أدرجت عن طريق الخطأ مسافات أو أحرفًا إضافية عند نسخ التجزئة المتوقعة. أعد التنزيل من المصدر الرسمي وأعد التحقق قبل افتراض حدوث أمر خبيث؛ فالتلاعب الحقيقي نادر لكنه بالضبط السيناريو الذي وُجدت بصمات التحقق لرصده.
هل لا يزال SHA-1 آمنًا لاستخدامه في التحقق من التنزيلات؟
لتأكيد التلف العرضي — اتصال منقطع، قطاع قرص تالف — نعم، لا يزال SHA-1 يعمل جيدًا عمليًا. أما بالنسبة لأي حالة قد يُصمِّم فيها مهاجم مُصِرّ عمدًا ملفًا خبيثًا ليطابق تجزئة محددة، فلا: كُسر SHA-1 بهجوم التصادم "SHAttered" عام 2017 من Google وCWI أمستردام، الذي أثبت أن ملفين مختلفين يمكن أن يتشاركا تجزئة SHA-1 واحدة. عندما يتوفر لك الخيار، يتجنب SHA-256 هذا السؤال تمامًا دون أي تكلفة إضافية.
ما الفرق بين SHA-256 وSHA-512 لهذا الغرض؟
ينتمي كلاهما إلى عائلة SHA-2 ولا توجد لهما نقاط ضعف تشفيرية عملية معروفة. يعمل SHA-512 داخليًا بكلمات من 64 بت بدلًا من كلمات الـ32 بت لـSHA-256، لذا على العتاد ذي 64 بت يمكنه الحساب بسرعة مماثلة أو حتى أسرع رغم إنتاجه ملخصًا (digest) أطول من 128 حرفًا. للتحقق اليومي من بصمات التحقق، كلاهما مناسب — استخدم ما نشره الناشر فعليًا، لأنه القيمة الوحيدة التي عليك مقارنتها.
هل تطابق بصمة التحقق يثبت أن الملف آمن أو من نشره؟
لا. التطابق يثبت فقط أن البايتات التي لديك هي البايتات التي أنتجت تجزئة متوقعة معينة — ولا يقول شيئًا عمّا إذا كانت تلك التجزئة المتوقعة نفسها قد جاءت من مصدر موثوق. إذا اخترق مهاجم الصفحة نفسها التي تُدرج بصمة التحقق المتوقعة، يمكنه نشر تجزئة مطابقة لملفه الخبيث الخاص، وسيُبلغ التحقق بوجود تطابق. تجيب بصمات التحقق عن سؤال "هل وصل الملف سليمًا"، لا عن سؤال "هل نُشر من قِبل من يدّعي ذلك" — هذا السؤال الثاني يحتاج إلى توقيع تشفيري (مثل PGP/GPG)، وليس مجرد تجزئة.
أدوات مشابهة
الإبلاغ عن مشكلة
أداة التحقق من بصمة الملف (Checksum)
التعليقات
لا توجد تعليقات بعد — كن أول من يكتب تعليقًا!