ما هو SHAttered؟ شرح هجمات الاصطدام SHA-1
في اليوم الأول من عام 2016 ، أنهى موزيلا دعمًا لتقنية أمان ضعيفة تسمى SHA-1 في متصفح الويب Firefox. على الفور تقريبا ، عكسوا قرارهم ، لأنه من شأنه أن يقطع الوصول إلى بعض المواقع القديمة. ولكن في فبراير عام 2017 ، أصبحت مخاوفهم حقيقة: فقد قام الباحثون باختراق SHA-1 من خلال إنشاء أول هجوم اصطدام حقيقي. هذا ما يعنيه كل ذلك.
ما هو SHA-1?
SHA في SHA-1 تعني خوارزمية التجزئة آمنة, وببساطة ، يمكنك التفكير فيه كنوع من مشكلة الرياضيات أو الطريقة التي يكدس البيانات التي يتم وضعها فيه. تم تطويره بواسطة وكالة الأمن القومي الأمريكية ، وهو مكون أساسي في العديد من التقنيات المستخدمة لتشفير عمليات الإرسال المهمة على الإنترنت. يمكن أن تستخدم أساليب التشفير الشائعة SSL و TLS ، التي ربما سمعت عنها ، وظيفة هاش مثل SHA-1 لإنشاء الشهادات الموقعة التي تراها في شريط أدوات المتصفح.
لن نتعمق في الرياضيات وعلوم الكمبيوتر لأي من وظائف SHA ، لكن إليك الفكرة الأساسية. "التجزئة" هو رمز فريد يعتمد على مدخلات أي بيانات. حتى السلسلة الصغيرة العشوائية من الأحرف المدخلة في دالة هاش مثل SHA-1 ستعيد عددًا محددًا من الأحرف ، مما يجعل (من المحتمل) استرجاع سلسلة الأحرف مرة أخرى إلى البيانات الأصلية. هذه طريقة عمل تخزين كلمات المرور عادة. عند إنشاء كلمة مرور ، يتم تجزئة إدخال كلمة المرور وتخزينها بواسطة الخادم. عند عودتك ، عند كتابة كلمة المرور الخاصة بك ، يتم تجزئتها مرة أخرى. إذا كان يتطابق مع التجزئة الأصلية ، فيمكن افتراض أن الإدخال هو نفسه ، وسيتم منحك إمكانية الوصول إلى بياناتك.
تعتبر وظائف التجزئة مفيدة في المقام الأول لأنها تجعل من السهل معرفة ما إذا كان المدخلات ، على سبيل المثال ، ملف أو كلمة مرور ، قد تغيرت. عندما تكون بيانات الإدخال سرية ، مثل كلمة المرور ، من المستحيل تقريبًا عكس التجزئة واسترداد البيانات الأصلية (المعروفة أيضًا باسم "المفتاح"). يختلف هذا الأمر قليلاً عن "التشفير" ، الذي يتمثل هدفه في جمع البيانات بغرض إلغاء تحديدها لاحقًا باستخدام الشفرات والمفاتيح السرية. المقصود ببساطة Hash لضمان تكامل البيانات-للتأكد من أن كل شيء هو نفسه. يستخدم Git ، برنامج التحكم في الإصدار والتوزيع لرمز المصدر المفتوح ، تجزئة SHA-1 لهذا السبب بالذات.
هذا كثير من المعلومات الفنية ، ولكن ببساطة: التجزئة ليست هي نفسها مثل التشفير ، منذ ذلك الحين يتم استخدامه لتحديد ما إذا كان قد تم تغيير الملف.
كيف تؤثر هذه التكنولوجيا عليّ?
لنفترض أنك بحاجة إلى زيارة موقع ويب بشكل خاص. يستخدم البنك الذي تتعامل معه ، والبريد الإلكتروني الخاص بك ، وحتى حسابك على Facebook ، التشفير للحفاظ على البيانات التي ترسلها بشكل خاص. سيوفر موقع الويب الاحترافي التشفير عن طريق الحصول على شهادة من جهة موثوق بها - طرف ثالث ، موثوق بها للتأكد من أن التشفير على المستوى ، خاص بين الموقع والمستخدم ، وعدم التجسس عليه من قبل أي طرف آخر. هذه العلاقة مع الطرف الثالث ، ودعا السلطات المصدقة, أو CA, أمر بالغ الأهمية ، نظرًا لأن أي مستخدم يمكنه إنشاء شهادة "موقعة ذاتيًا" - يمكنك حتى إجراء ذلك بنفسك على جهاز يعمل بنظام التشغيل Linux مع Open SSL. سيمانتيك وديجيكيرت هما شركتان معروفتان على نطاق واسع ، على سبيل المثال.
دعنا نجري سيناريوًا نظريًا: تريد How-To Geek الاحتفاظ بتسجيل الدخول في جلسات المستخدمين بشكل خاص مع التشفير ، لذلك فإنها تقدم طلبًا إلى CA مثل Symantec with a طلب توقيع الشهادة, أو المسؤولية الاجتماعية للشركات. هم يخلقون المفتاح العمومي و مفتاح سري لتشفير وفك تشفير البيانات المرسلة عبر الإنترنت. يرسل طلب CSR المفتاح العمومي إلى Symantec مع معلومات حول موقع الويب. يتحقق Symantec من المفتاح مقابل سجله للتحقق من عدم تغيير البيانات من قبل جميع الأطراف ، لأن أي تغيير بسيط في البيانات يجعل التجزئة مختلفة جذريًا.
يتم توقيع تلك المفاتيح العامة والشهادات الرقمية بواسطة وظائف هاش ، لأن من السهل رؤية مخرجات هذه الوظائف. مفتاح عام وشهادة مع تجزئة تم التحقق منه من Symantec (في مثالنا) ، سلطة ، يؤكد على مستخدم How-To Geek أن المفتاح لم يتغير ، ولم يتم إرساله من شخص خبيث.
نظرًا لأنه من السهل مراقبة التشويش واستحالة (قد يقول البعض "صعبًا") ، فإن توقيع علامة التجزئة الصحيحة يعني أنه يمكن الوثوق بالشهادة والاتصال ، وأنه يمكن الاتفاق على إرسال البيانات مشفرة من طرف إلى آخر . ولكن ماذا لو التجزئة لم يكن في الواقع فريدة من نوعها?
ما هو هجوم الاصطدام ، وهل من الممكن في العالم الحقيقي?
قد تكون سمعت عن "مشكلة عيد الميلاد" في الرياضيات ، على الرغم من أنك ربما لم تكن تعرف ما تم استدعاؤه. الفكرة الأساسية هي أنه إذا جمعت مجموعة كبيرة من الأشخاص ، فستكون هناك احتمالات كبيرة بأن يكون هناك شخصان أو أكثر سيحصلان على نفس عيد الميلاد. أعلى مما كنت تتوقع ، في الواقع بما فيه الكفاية أنه يبدو وكأنه صدفة غريبة. في مجموعة صغيرة تصل إلى 23 شخصًا ، هناك احتمال بنسبة 50٪ أن يشارك اثنان في عيد ميلاد.
هذا هو الضعف المتأصل في جميع التجزئة ، بما في ذلك SHA-1. من الناحية النظرية ، يجب أن تقوم الدالة SHA بإنشاء تجزئة فريدة لأي بيانات يتم وضعها ، ولكن كلما زاد عدد التجزئة ، يصبح من المحتمل أكثر أن تقوم أزواج مختلفة من البيانات بإنشاء نفس التجزؤة. لذلك يمكن إنشاء شهادة غير موثوق بها مع تجزئة مماثلة لشهادة موثوق بها. إذا قاموا بتثبيت تلك الشهادة غير الموثوقة ، فقد يتنكروا على أنها موثوقة ، ويوزعون بيانات ضارة.
يُطلق على العثور على تجزئات متطابقة داخل ملفين هجوم الاصطدام. من المعروف أن هجوم تصادم واسع النطاق واحد على الأقل قد حدث بالفعل لقطاعات MD5. ولكن في 27 من شباط 2017 ، أعلنت شركة جوجل SHAttered ، وهي أول عملية اصطدام مُصنعة لـ SHA-1. تمكنت Google من إنشاء ملف PDF يحتوي على تجزئة SHA-1 نفسه كملف PDF آخر ، على الرغم من احتوائه على محتوى مختلف.
تم إجراء SHAttered على ملف PDF. ملفات PDF عبارة عن تنسيق ملفات نسبيًا. يمكن إجراء الكثير من التغييرات الصغيرة على مستوى البتات دون منع القراء من فتحها أو التسبب في أي اختلافات مرئية. تُستخدم ملفات PDF غالبًا لتقديم برامج ضارة. في حين أن SHAttered يمكن أن يعمل على أنواع أخرى من الملفات ، مثل ISOs ، يتم تحديد الشهادات بشكل صارم ، مما يجعل مثل هذا الهجوم غير محتمل.
ما مدى سهولة أداء هذا الهجوم؟ اعتمد SHAttered على طريقة اكتشفها مارك ستيفنز في عام 2012 والتي تطلبت عمليات أكثر من 2 ^ 60.3 (9.223 quintillion) SHA-1 - عدد مذهل. ومع ذلك ، فإن هذه الطريقة لا تزال أقل من 100،000 مرة من العمليات المطلوبة لتحقيق نفس النتيجة مع القوة الغاشمة. وجدت جوجل أنه مع 110 بطاقات رسومات متطورة تعمل بالتوازي ، سوف يستغرق الأمر ما يقرب من عام واحد لإحداث تصادم. استئجار هذا الوقت حساب من Amazon AWS سيكلف حوالي 110،000 دولار. ضع في اعتبارك أنه مع انخفاض الأسعار لأجزاء الكمبيوتر ويمكنك الحصول على مزيد من الطاقة مقابل أقل ، تصبح الهجمات مثل SHAttered أسهل في الانسحاب.
قد يبدو مبلغ 110،000 دولار كأنه جزء كبير ، ولكنه ضمن نطاق القدرة على تحمل التكاليف بالنسبة لبعض المؤسسات - مما يعني أن الحياة السيبرانية قد تصوغ توقيعات المستندات الرقمية ، وتتداخل مع أنظمة النسخ الاحتياطي والتحكم في الإصدارات مثل Git و SVN ، أو تجعل Linux Linux الخبيث تبدو شرعية.
لحسن الحظ ، هناك عوامل تخفيف من مثل هذه الهجمات. نادرا ما يستخدم SHA-1 للتوقيعات الرقمية بعد الآن. لم تعد المراجع المصدقة تقدم شهادات موقّعة باستخدام SHA-1 ، وسقط كل من Chrome و Firefox دعمًا لها. عادةً ما يتم إصدار توزيعات Linux بشكل متكرر أكثر من مرة واحدة كل عام ، مما يجعل من غير العملي أن يقوم المهاجم بإنشاء نسخة ضارة ، ثم يقوم بتوليد واحد مبطن ليحصل على نفس SHA-1 hash.
من ناحية أخرى ، تحدث بعض الهجمات على أساس SHAttered بالفعل في العالم الحقيقي. يستخدم نظام التحكم في إصدار SVN SHA-1 للتمييز بين الملفات. سيؤدي تحميل ملفي PDF بتجزئة SHA-1 متطابقة إلى مستودع SVN إلى تلفها.
كيف يمكنني حماية نفسي من هجمات SHA-1?
ليس هناك الكثير للمستخدم العادي للقيام به. إذا كنت تستخدم checksums لمقارنة الملفات ، يجب عليك استخدام SHA-2 (SHA-256) أو SHA-3 بدلاً من SHA-1 أو MD5. وبالمثل ، إذا كنت مطورًا ، فتأكد من استخدام خوارزميات التجزئة الأكثر حداثة مثل SHA-2 أو SHA-3 أو bcrypt. إذا كنت قلقًا من أن SHAttered قد تم استخدامه لإعطاء ملفين مختلفين في نفس التجزؤ ، فقد أصدرت Google أداة على موقع SHAttered يمكن أن تحقق لك.
الاعتمادات صورة: ليغو فايرفوكس ، الكثير من التجزئة ، من فضلك لا يضر مؤلف الويب غير معروف ، غوغل.