
شريك مؤسس GitHub سكوت شاكوني: انتقال Git 3.0 إلى SHA-256 سيكون خطأً مكلفًا
يؤكد شريك مؤسس GitHub وGitButler سكوت شاكوني في مقال مدوّنة أن نقل خوارزمية التجزئة الافتراضية في Git 3.0 من SHA-1 إلى SHA-256 سيكون تغييرًا مكلفًا وعديم الجدوى عمليًا للمنظومة البيئية.
نشر شريك مؤسس GitHub وGitButler سكوت شاكوني مقال مدوّنة يؤكد فيه أن تغيير خوارزمية التجزئة الافتراضية في Git 3.0 من SHA-1 إلى SHA-256 سيكون خطأً مكلفًا؛ فوفقًا له، تُعدّ الترحيل تكلفة باهظة بينما الفائدة ضئيلة.
نُشر المقال في مدوّنة GitButler ويُجادل بأن التغيير غير معروف تقريبًا.
لماذا ينتقل Git 3.0 إلى SHA-256
Git هو قاعدة بيانات قائمة على المحتوى: كل ملف وشجرة وcommit يُخزَّن بتجزئة المحتوى، ويتضمن commit تجزئة الأب ويربط التاريخ كاملًا ببعضه. اختار لينوس تورفالدس SHA-1 في عام 2005.
يُعتبر SHA-1 اليوم مكسورًا نصفًا: أظهر هجمتا SHAttered عام 2017 وSHA-1 is a Shambles عام 2020 إمكانية تصادمات اصطناعية، رغم عدم تسجيل هجوم حقيقي. ولهذا يخطط Git 3.0 لاستبدال الخوارزمية الافتراضية بـ SHA-256؛ التغيير مدرج في قائمة التغييرات غير المتوافقة مع الإصدارات السابقة.
الحجج ضد الترحيل
الحجة الرئيسية لشاكوني هي أن الثقة لا تُبنى على التجزئة. يستشهد بلينوس تورفالدس منذ عام 2005: "أعتقد حقًا أن الناس لا يجب أن يعتبروا sha1 آمنًا؛ الأمان الحقيقي منتشر". الهجمات الحقيقية تتم عبر مشرفين مخترقين ومستودعات حزم وليس عبر تصادم التجزئة.
التكاليف واسعة: المستودعات الجديدة تُنشأ افتراضيًا بـ SHA-256، والقديمة تبقى على SHA-1 ولا يمكن خلط التنسيقات؛ submodules تعمل فقط بنفس تنسيق الأب. التحويل يعيد كتابة كل الكائنات والتوقيعات، ويكسر الروابط القديمة والأدوات المعتمدة على تجزئات من 40 رمزًا، والعديد من المكتبات لا تملك دعمًا كاملًا.
البديل: رؤوس تجزئة مستقلة للشجرة
يقترح شاكوني بدلاً من ترحيل المنظومة "رؤوس تجزئة مستقلة للشجرة": عند التوقيع، تُجزّأ محتويات الشجرة بشكل مستقل بخوارزمية ثانية (SHA-256 أو BLAKE3) وتُضاف كرأس في الكائن الموقّع، بحيث يغطي التوقيع كلتا التجزئتين. للهجوم سيكون مطلوبًا تصادم في كلتا الخوارزميتين؛ ووفقًا للمؤلف، هذا النهج أكثر أمانًا من SHA-256 وحده.
الفكرة ليست جديدة: git-evtag لكولين والترز يضيف منذ 2015 مجموع تحقق Git-EVTag-v0-SHA512 للوسوم الموقّعة. على نموذج شاكوني الأولي، تم تجزئة شجرة Chromium بحجم 35 غيغابايت و2.1 مليون ملف في 5 ثوانٍ على M5 Mac.
يدعو المقال إلى إعادة النظر في القرار؛ وبرأي شاكوني، سيستغرق الترحيل سنوات، وفي حال إضعاف SHA-256 ستعود المنظومة إلى نفس الوضع.
SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي
نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.