تمت إزالة خوارزمية SHA-1 خطيرة من مكتبات SSH


تعقيد الهجمات على SHA-1. يعتمد السعر على حساب سعر الإيجار لـ GTX 1060 بسعر 35 دولارًا أمريكيًا في الشهر.

وبعد ذلك بكثير من جميع الآخرين ، قرر مطورو المكتبات لـ SSH تعطيل وظيفة التشفير SHA-1 القديمة افتراضيًا بشكل افتراضي. اليوم ، سيكلف اختيار مفتاح مصادقة الخادم SHA-1 ، أي التعارض مع البادئة المحددة ، على مجموعة GPU المستأجرة 45 ألف دولار ، كما هو موضح في الجدول أعلاه. وهذا يجعل الهجوم متاحًا ليس فقط لأجهزة استخبارات الدولة ، ولكن أيضًا للعملاء التجاريين.

تم الإعلان عن تعطيل SHA-1 بشكل افتراضي من قبل مطوري OpenSSH openSSH ( ملاحظات الإصدار ) ومكتبات libssh ( تغيير الكود ).

تم تطوير خوارزمية التجزئة الآمنة (SHA) بواسطة وكالة الأمن القومي بالتعاون مع NIST. تم تقديم الإصدار الأول من SHA-0 في عام 1993 ، ولكن سرعان ما استدعت وكالة الأمن القومي هذا الإصدار ، مستشهدة بخطأ اكتشفوه ولم يتم الكشف عنه أبدًا.

تم نشر إصدار ثابت من NSA في عام 1995 ، وكان يطلق عليه SHA-1.

تنشئ دالة التجزئة التشفير SHA-1 (خوارزمية التجزئة الآمنة 1) سلسلة 160 بت تسمى ملخص التجزئة. من الناحية النظرية ، يجب أن تكون الملخصات فريدة لكل ملف أو رسالة أو أي مدخلات أخرى للدالة. كقيمة إدخال ، يقبل SHA-1 رسالة لا تزيد عن2641بت ، أي حوالي 2 إكسابايت.

من الواضح أن نطاق القيم الهضمية أصغر من نطاق قيم الإدخال. لكن من الناحية العملية ، لا ينبغي أن تكون التصادمات الهضمية مجدية ، نظرًا لقدرات أداء موارد الحوسبة الحالية. لسوء الحظ ، لم تعد SHA-1 تستوفي هذا المعيار.

في عام 2017 ، قدم موظفو Google ومركز الرياضيات وعلوم الكمبيوتر في أمستردام الطريقة الأولى لتوليد تصادمات لـ SHA-1 .

نشروا دليلاً: وثيقتان PDF بمحتويات مختلفة ولكن نفس التوقيعات الرقمية SHA-1.


  $ls -l sha*.pdf 
  -rw-r--r--@ 1 amichal  staff  422435 Feb 23 10:01 shattered-1.pdf
  -rw-r--r--@ 1 amichal  staff  422435 Feb 23 10:14 shattered-2.pdf
  $shasum -a 1 sha*.pdf
  38762cf7f55934b34d179ae6a4c80cadccbb7f0a  shattered-1.pdf
  38762cf7f55934b34d179ae6a4c80cadccbb7f0a  shattered-2.pdf



على موقع shattered.it ، يمكنك التحقق من أي ملف لمعرفة ما إذا كان مدرجًا في مساحة التصادمات المحتملة. أي أنه من الممكن التقاط مجموعة بيانات أخرى (ملف) بنفس التجزئة. ناقل الهجوم واضح: يمكن للمهاجم استبدال ملف "جيد" بنسخته بإشارة مرجعية أو ماكرو ضار أو أداة تنزيل حصان طروادة. وسيكون لهذا الملف "السيئ" نفس التجزئة أو التوقيع الرقمي.

في السنوات الأخيرة ، توقفت العديد من البرامج والخدمات عن استخدام SHA-1 بعد أن أظهر الباحثون طرقًا عملية لتزوير التوقيعات الرقمية باستخدام SHA-1. رأي الخبراء بالإجماع هو أن هذه الخوارزمية ليست آمنة الآن في جميع السياقات الأمنية تقريبًا.

أعربت Google منذ فترة طويلة عن عدم الثقة في SHA-1 ، خاصة باستخدام هذه الميزة لتوقيع شهادات TLS. في عام 2014 ، أعلن فريق تطوير Chrome عن الإلغاء التدريجي لـ SHA-1.

في عام 2017 ، استخدم الباحثون بنية Google الأساسية لإجراء العمليات الحسابية والتحقق من الحسابات النظرية للمقدار الذي سيستغرقه البحث عن التصادم. يقول المطورون أن هذا كان أحد أكبر الحوسبة التي قامت بها Google على الإطلاق. في المجموع ، تم إجراء تسعة كوينتيليون حسابات SHA-1 (9،223،372،036،854،775،808) ، الأمر الذي تطلب 6500 سنة معالج في المرحلة الأولى و 110 سنة من وحدة معالجة الرسومات في المرحلة الثانية من الهجوم.

كتل رسائل بنفس تجزئة SHA-1


في عام 2019 ، أظهر الباحثان Gaetan Laurent و Thomas Peyrin هجومًا على العثور على تعارض مع البادئة المختارة ، وهو أمر منطقي عمليًا لاختيار مفاتيح تشفير PGP / GnuPG محددة. أخيرًا ، في يناير 2020 ، تمكن المؤلفون من تحسين الهجوم بأمر من الحجم وتقليل تكلفته النظرية إلى سعر مقبول تجاريًا (انظر الجدول أعلاه و pdf ). للتوضيح ، قاموا بإنشاء زوج من مفاتيح PGP / GnuPG مختلفة بنفس شهادات SHA-1.

كدفاع ضد هجوم على العثور على تصادمات SHA-1 ، يوصى بالتبديل إلى وظائف تجزئة تشفير أفضل SHA-256 و SHA-3.

يستشهد مطورو OpenSSH ، الذين كتبوا في ملاحظات الإصدار الأخير ، بهذه الدراسة اعتبارًا من يناير 2020: "الآن يمكنك تنفيذ هجمات بالبادئة المحددة باستخدام خوارزمية SHA-1 بأقل من 50 ألف دولار أمريكي. لهذا السبب ، سنقوم في المستقبل القريب بتعطيل خوارزمية توقيع المفتاح العام الافتراضية ssh-rsa. لسوء الحظ ، لا تزال هذه الخوارزمية مستخدمة على نطاق واسع. على الرغم من وجود بدائل أفضل ، فقد ظلت لفترة طويلة خوارزمية توقيع المفتاح العام الوحيدة المحددة بواسطة SSH RFC الأصلي. "

من بين أفضل البدائل ، يتصل مطورو OpenSSH بخوارزميات RFC8332 RSA SHA-2 (مدعومة من OpenSSH 7.2 ويتم استخدامها بالفعل افتراضيًا إذا كان الخادم والعميل يدعمها) ، ssh-ed25519 (مدعوم من 6.5) و RFC5656 ECDSA (من الإصدار 5.7) .

للتحقق من أن الخادم يستخدم خوارزمية SHA-1 ضعيفة عند إنشاء المفتاح العام للمصادقة ، حاول الاتصال به بعد إزالة خوارزمية ssh-rsa من قائمة المسموح بها في ssh (1) :

ssh -oHostKeyAlgorithms=-ssh-rsa user@host

إذا فشل التحقق ولم تكن أنواع المفاتيح الأخرى متاحة ، فيجب تحديث برنامج الخادم.

في الإصدارات المستقبلية من OpenSSH ، سيتم تمكين خيار UpdateHostKeys افتراضيًا ، حيث يتحول العميل تلقائيًا إلى أفضل الخوارزميات. يمكن تنشيطه يدويًا.

من الواضح أن الإغلاق الكامل لـ SHA-1 سيستغرق الكثير من الوقت. لا يتوقع Gaetan Laurent من المعهد الوطني للأبحاث في علوم الكمبيوتر والأتمتة (فرنسا) ، أحد المؤلفين المشاركين في دراسة يناير ، أن يقوم مطورو OpenSSH بذلك بسرعة: "عندما يقومون بتعطيل SHA-1 تمامًا ، سيكون من المستحيل الاتصال من الإصدار الجديد من OpenSSH إلى الجهاز القديم خادم SSH ، - يكتبهو. - على الأرجح ، قبل ذلك سيتخذون سلسلة من الخطوات التدريجية (مع تحذيرات عالية). من ناحية أخرى ، في الأنظمة المضمنة مع SSH التي لم يتم تحديثها لسنوات عديدة ، ربما تكون هناك الكثير من المشاكل الأمنية ، لذلك قد لا يكون الأمر سيئًا للغاية لتعطيل عملهم ... على أي حال ، أنا سعيد جدًا بهذه الخطوة ، هذا بالضبط ما أردنا تحقيقه :-) ".

بعد أن أعلن OpenSSH و libssh عن خطط لتعطيل SHA-1 ، أصبحت قائمة مستخدمي SHA-1 أقصر ، لكنها لم تختف. لا تزال الميزة مدعومة في أحدث الإصدارات من مكتبة OpenSSL ، والتي تستخدمها العديد من مواقع الويب وخدمات الإنترنت لتنفيذ HTTPS وبروتوكولات التشفير الأخرى. أحدث نسخة من مترجم GNU Collection ، التي تم إصدارها في وقت سابق من هذا الشهر ، تم توقيعها رقميًا باستخدام تجزئة SHA-1.

لينوس تورفالدسقالأن تصادمات التجزئة في مستودعات Git لا تشكل خطرًا أمنيًا. وأوضح أن هناك اختلافًا كبيرًا بين استخدام تجزئة التشفير للتوقيعات الرقمية في أنظمة التشفير ولإنشاء "تعريف المحتوى" في نظام مثل Git. عندما تكون جميع البيانات في المجال العام ، فإن الهجوم الحقيقي يكاد يكون مستحيلاً. يعطي مؤلفو العمل العلمي مثالاً على هجوم على وثائق بنفس البادئة. هذا الهجوم ناجح لأن البادئة نفسها "مغلقة" داخل المستند ، مثل النقطة. إذا كان لدينا مصدر مفتوح في المستودع ، فهذه مسألة مختلفة تمامًا. من الصعب عمل مثل هذه البادئة من شفرة المصدر (فقط من النقطة). بمعنى آخر ، لإنشاء بادئة متطابقة ثم إنشاء فروع الكود بنفس تجزئة SHA-1 ، سيكون عليك إدخال بعض البيانات العشوائية في الكود ، والتي سيتم ملاحظتها على الفور. يقول لينوسأن هناك أماكن يمكنك فيها إخفاء البيانات ، ولكنgit fsckيمسك بالفعل مثل هذه الحيل. ومع ذلك ، لدى Linus خطة للابتعاد عن استخدام SHA-1 حتى لا يضطر أي شخص إلى تحويل مستودعاته.

All Articles