أدوات المطورين · SHA حاسبة التجزئة
SHA-1 شرح التصادمات: ما الذي لا يزال آمنًا وما الذي يجب ترحيله
· لماذا يهم
شا-256 التشفير حماية
يقوم الماسح الضوئي بوضع علامة على SHA-1 وتسأل الإدارة عن مدى إلحاح ذلك. يشرح هذا المنشور ما يفعله هجوم التصادم وما لا ينكسر، وأين لا يزال SHA-1 مسموحًا به، وكيفية التخطيط للترحيل.
يقول الماسح الضوئي إن SHA-1 معطل - ولكن لماذا معطل؟ السؤال الذي يقرر مدى إلحاح الهجرة
يقوم ماسح أمان الشبكة بوضع علامة على SHA-1 على البنية الأساسية لديك. تسأل الإدارة عن مدى إلحاح الأمر. تعتمد الإجابة كليًا على الغرض الذي تستخدمه SHA-1 من أجله، ويكشف هذا السؤال عما إذا كانت لديك مشكلة امتثال، أو مشكلة أمان نشطة، أو مجرد قطعة أثرية قديمة يجب فهرستها. SHA-1 معطوب من الناحية المشفرة، وقد أثبتت العروض التوضيحية الأكاديمية وجود تصادمات. لكن كلمة "معطل" تعني أشياء مختلفة اعتمادًا على الدور الذي يلعبه SHA-1 في نظامك.
يخدم تجزئة التشفير أغراضًا مختلفة في سياقات مختلفة. في بعض الأحيان يكون المجموع الاختباري للحماية من الفساد العرضي. في بعض الأحيان يكون ذلك بمثابة التزام، مثل المجموع الاختباري للتنزيل المنشور الذي يتيح للمستخدمين التحقق من أنهم تلقوا الملف الذي قصده الناشر. في بعض الأحيان يكون ذلك جزءًا من التوقيع أو سلسلة الشهادات، حيث يمكن للمهاجم الذي يتمتع بالتحكم الكافي إنتاج مستندين، كلاهما ذو معنى، ويشتركان في نفس التجزئة، وبالتالي تزوير المصادقة. تعتمد خطورة الاصطدام SHA-1 بشكل حاسم على أي من هذه الأدوار يمتلكها SHA-1 في نظامك.
الاصطدام مقابل الصورة المسبقة - لماذا تستهدف الهجمات التي تم عرضها علنًا الاصطدامات، وماذا يعني ذلك بالنسبة للتجزئة الموجودة
ينتج عن هجوم الاصطدام مدخلين مختلفين بنفس المخرجات. لا يعثر المهاجم على رسالة يتم تجزئتها إلى قيمة محددة مسبقًا — وهذا من شأنه أن يكون هجومًا أوليًا، ويظل غير ممكن لـ SHA-1. وبدلاً من ذلك، يعني هجوم الاصطدام أن المهاجم يمكنه إنشاء مستندين مجزأين بشكل متماثل. إذا كان النظام يعتمد على التجزئة لإثبات أن شيئين متماثلان، فإن الاصطدام يكسر هذا الدليل. يجب على المهاجم صياغة كلا المدخلين، الأمر الذي يتطلب وقتًا وحسابًا، ولكن النتيجة هي ظهور شيئين مختلفين متطابقين تحت التجزئة.
يعني هجوم الصورة المسبقة أن المهاجم يمكنه أخذ تجزئة SHA-1 المنشورة والعثور على بعض المدخلات المطابقة لها. هذه ليست الطريقة التي تعمل بها هجمات SHA-1. إذا كان لديك مستودع يحتوي على SHA-1 من الملخصات وتشعر بالقلق بشأن ما إذا كان الملف يطابقها حقًا، فإن هجوم التصادم لا يمثل تهديدًا. يكمن التهديد في ما إذا كان بإمكان شخص لديه حق الوصول إلى المستودع الخاص بك تزوير ملف مختلف لنفس الملخص. وفي معظم الحالات، لا يكون ذلك واقعيًا أيضًا دون التحكم في عملية التجزئة نفسها. إن نموذج الهجوم المحدد مهم بقدر أهمية الخوارزمية.
العروض التوضيحية 2017 — ملفان مختلفان بنفس SHA-1، الموصوفين نوعيًا، وعمل البادئة المختارة الذي أعقب ذلك
أظهر الهجوم المحطم من 2017 تصادمًا عمليًا: ملفان مختلفان PDF بنفس الملخص SHA-1. قام الباحثون ببناء كلا الملفين بعناية، وصياغتهما ليكونا ملفات PDF صالحة أثناء التصادم. يتطلب العمل جهدًا حسابيًا كبيرًا وأجهزة متخصصة. ما يهم هو أن ذلك كان ممكنًا على الإطلاق: فقد اختفت مقاومة الاصطدام التي تبرر استخدام SHA-1 للأمان. أثبت الهجوم أن وثيقتين مختلفتين لغويًا يمكن أن تتشاركا في ملخص، مما يكسر أي نظام يثق في الملخص كدليل على الهوية.
الهجوم الذي أعقب 2020، والذي يسمى "SHA-1 هو فوضى"، اتخذ الخطوة التالية: تصادمات البادئة المختارة. يعني هذا المتغير أن المهاجم يمكنه أخذ وثيقتين عشوائيتين، وربط لاحقات مختلفة لكل منهما، وإحداث تصادم. هذا هو الهجوم الخطير على التوقيعات والشهادات. ليس من الضروري أن يبدأ المهاجم من الصفر؛ يمكنهم دمج وثيقتين مميزتين وذات معنى. وهذا يكسر نموذج الأمان لأي نظام يوقع SHA-1 على الملخصات. يمكن للمهاجم إنتاج مستندين يحملان نفس العلامة ويعنيان شيئًا مختلفًا.
عندما يكون SHA-1 غير مقبول - التوقيعات والشهادات وأي شيء يمكن للمهاجم التأثير عليه على كلا الجانبين
التمييز مهم لأن SHA-1 لا يزال مقبولاً في بعض الأدوار وغير مقبول على الإطلاق في أدوار أخرى. في Git، يتم استخدام SHA-1 كعنوان محتوى - وهو اسم لقطة معينة من الملفات. لا يستخدم Git SHA-1 للمصادقة؛ إنه نظام تسمية. يمكن للمهاجم نظريًا حساب حالتين مختلفتين للمستودع بنفس المعرف، لكن ذلك يتطلب التحكم في عملية إنشاء المحتوى بالكامل ودفع كلا الإصدارين قبل أن يلاحظ أي شخص. بالنسبة لمعظم الفرق، هذا المستوى من سيطرة المهاجم ليس نموذجًا للتهديد. ولهذا السبب ينتقل Git إلى SHA-256 عمدًا بدلاً من التعامل معه كحالة طارئة.
في سيناريو التحقق من تنزيل الويب، يقوم الناشر بنشر ملف ومجموعه الاختباري SHA-1 على نفس الخادم. يتحكم المهاجم الذي يقوم باختراق هذا الخادم في كل من الملف والمجموع الاختباري. يمكنهم تحميل ملف ونشر SHA-1، دون الحاجة إلى أي تضارب. إذا تم نشر المجموع الاختباري في مكان آخر — على VPN آمن، ومطبوع في بريد إلكتروني موقع، ومنشور في بنية تحتية مختلفة — فيجب أن يصطدم المهاجم، ويصبح ذلك غير ممكن. المجموع الاختباري جدير بالثقة مثل قناته. ولهذا السبب يتطلب التحقق من التنزيل أكثر من مجرد تجزئة.
حيث يظل الأمر باقيًا مع مخاطر أقل - تحديد المحتوى في إعدادات غير عدائية وانتقال Git المرحلي إلى SHA-256
بالنسبة للتوقيعات والشهادات، SHA-1 لا يمكن الدفاع عنه. سلاسل الشهادة من جذر موثوق به. إذا قام المرجع المصدق بتوقيع شهادتين مختلفتين باستخدام نفس SHA-1 الملخص، فإن هجوم التصادم يسمح للمهاجم بتزوير أي منهما. هذا ليس نظريًا: فقد تم توثيق الهجمات ضد المراجع المصدقة الوسيطة. من المحتمل أن يكون أي نظام توقيع يعتمد على SHA-1 قابلاً للتزوير بواسطة مهاجم يتمتع بموارد كافية. لقد قام كل مورد رئيسي للمتصفح ونظام التشغيل بإهمال SHA-1 في الشهادات. يجب أن تستخدم الشهادات الجديدة SHA-256. لقد تحدث بائعو المنصات بوضوح لأن التهديد حقيقي وفوري.
NIST، هيئة المعايير الأمريكية، حددت جدولًا زمنيًا واضحًا. اعتبارًا من 2024، لا ينبغي استخدام SHA-1 لأي تطبيقات جديدة. اعتبارًا من 2030، من المتوقع أن يتم إيقاف SHA-1 بالكامل من الأنظمة الفيدرالية. هذا ليس استنكارًا غامضًا؛ إنها مهمة ملموسة للمقاولين الحكوميين وإشارة إلى الصناعة. إن اتباع الجدول الزمني لـ NIST يضمن بقاء أنظمتك في صدارة منحنى الإيقاف بدلاً من التدافع بعد الموعد النهائي.
تدعم أدلة المستودع إهمال SHA-1، وليس تاريخ نشر NIST غير المقروء أو تاريخ التقاعد
يوثق مصدر المستودع SHA-1 كقابلية التشغيل البيني القديمة والأسماء التي توضح عمل التصادم، ولكنه لا يحتوي على جدول زمني لتقاعد هيئة المعايير. وبالتالي، يقوم هذا القسم بتصحيح المخطط التفصيلي من خلال التعامل مع الإهمال كمشكلة مخزون هندسية بدلاً من الاقتباس من رقم نشر غير مقروء أو تاريخ امتثال.
بالنسبة للبيئات التي تسيطر عليها السياسة، استشر السلطة التي تحكم هذا النشر وقم بتسجيل المستند الدقيق الذي تمت مراجعته. يدعم دليل المنتج هنا إجراءً أضيق: احتفظ بـ SHA-1 متاحًا لإعادة إنتاج القيم الموجودة، وصنفه على أنه غير مناسب للاستخدامات الأمنية الجديدة، واحسب استبدال SHA-256 حيثما يسمح البروتوكول المحيط بالترحيل.
مثال عملي - قائمة التحقق من الترحيل المطبقة على صفحة التحقق من التنزيل القديمة
يبدأ مسار الترحيل من SHA-1 عادةً بمخزون: أين يتم استخدام SHA-1؟ الشهادات والتوقيعات؟ الأولوية الفورية. مستودعات Git وعنونة المحتوى؟ أولوية متوسطة، اتبع وتيرة ترحيل Git. المجاميع الاختبارية المنشورة للتنزيلات؟ يعتمد على نموذج الثقة. المجاميع الاختبارية الداخلية لإلغاء البيانات المكررة أو الأرشفة؟ أولوية أقل، مزيد من الوقت للتخطيط. تكشف مرحلة الجرد عن مساحة السطح الحقيقية وتساعدك على تحديد الأولويات بناءً على المخاطر الفعلية بدلاً من الإلحاح المجرد.
لكل دور، يبدو الترحيل مختلفًا. ترقية الشهادات إلى SHA-256 على الفور. مرحلة مستودعات Git في مراجع SHA-256 تدريجيًا مع الحفاظ على SHA-1 للتوافق مع الإصدارات السابقة. يبدأ نشر المجموع الاختباري للتنزيل في كل من SHA-1 وSHA-256، ثم في النهاية SHA-256 فقط. يمكن التحقق من الملخصات القديمة SHA-1 في قاعدة بيانات المجموع الاختباري باستخدام حاسبة التجزئة ToolAcre SHA، ويجب أن تستخدم الإدخالات الجديدة SHA-256. تدعم الأداة كلا جانبي عملية النقل، مما يتيح لك التحقق من التجزئة القديمة وإنشاء تجزئات جديدة.
الوجبات الجاهزة: SHA-1 للمقارنة، SHA-256 للعمل الجديد - تتضمن حاسبة التجزئة ToolAcre SHA SHA-1 حتى يمكن التحقق من الملخصات القديمة، وليس كمصادقة
بالنسبة لمعظم المؤسسات، لا يكون الترحيل هو "إيقاف SHA-1 غدًا." إنها "فهم مكان استخدامها، وتحديد أولويات الأدوار الأمنية الحاسمة، والحصول على خطة متعددة السنوات." يجب أن ينتقل مستودع Git الذي يحتوي على سنوات من الالتزامات SHA-1 تدريجيًا، باستخدام الأدوات التي تتعامل مع كليهما. يجب أن تكون البنية الأساسية للشهادة قد تم ترحيلها بالفعل. يجب أن تكون المجاميع الاختبارية المنشورة خوارزمية مزدوجة أثناء فترة الانتقال. يؤدي الترحيل التدريجي إلى تقليل التغييرات الطارئة ويمنح الأنظمة وقتًا للتكيف مع الواقع الجديد.
توفر حاسبة التجزئة ToolAcre SHA كلا جانبي هذا الانتقال. يمكنك التحقق من ملخصات SHA-1 الموجودة من أنظمتك القديمة للتأكد من تطابق الملف معها. يمكنك حساب تجزئات SHA-256 لبدء نشر مسار الترحيل. لا تتظاهر الأداة بأن SHA-1 آمن؛ ويصنفه على أنه مكسور ويشرح السبب. ولكنه يتيح لك العمل مع التجزئات القديمة التي لا تزال بحاجة إلى الحفاظ عليها أثناء إنشاء الجسر إلى SHA-256 والتخطيط للإهمال.