العربية

أدوات المطورين · SHA حاسبة التجزئة

المجموع الاختباري المطابق ليس توقيعًا: النزاهة مقابل الأصالة

· لماذا يهم

شا-256 التشفير حماية

المجموع الاختباري على نفس الصفحة مثل التنزيل مقابل التوقيع على مستند مفتاح عمومي منفصل
الرسم التوضيحي المتجه الأصلي ToolAcre

يتيح SHA-256 المنشور للمستخدمين اكتشاف التنزيل التالف، ولكن إذا كان المهاجم يتحكم في الصفحة، فإنه يتحكم في المجموع الاختباري أيضًا. يفصل هذا المنشور بين النزاهة والأصالة ويشرح ما تضيفه التوقيعات.

المجموع الاختباري الموجود في نفس صفحة التنزيل - لماذا يحمي من الفساد ولكن ليس ضد مضيف مخترق

يتم نشر إصدار البرنامج مع المجموع الاختباري SHA-256 على نفس صفحة التنزيل. يمكن للمستخدمين جلب الأرشيف وتجزئته ومقارنة النتيجة بالقيمة المنشورة. إذا كانت متطابقة، فإن التنزيل غير تالف. هذا هو التحقق من النزاهة، وهو فحص حقيقي ومفيد. ومع ذلك، إذا قام أحد المهاجمين باختراق خادم الويب الذي يستضيف الإصدار، فيمكنه استبدال الملف الثنائي، وإعادة حساب SHA-256، وتحديث المجموع الاختباري على الصفحة. يتحقق المستخدم من المجموع الاختباري ويبدو أن البرامج الضارة للمهاجم تأتي من الناشر. لقد عمل النظام تمامًا كما تم تصميمه، لكنه فشل في الإجابة على السؤال الذي اعتقد المستخدم أنه يطرحه.

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

ما يثبته التجزئة هو أن اثنين من المدخلات هما نفس البايتات، ولا شيء عن من قام بإنتاجهما

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

الأصالة هي خاصية الادعاء حول من أنتج البيانات. السؤال "هل جاء هذا الملف من الناشر الذي أثق به؟" يختلف جوهريًا عن السؤال "هل تم تعديل هذا الملف؟" لا يمكن للتجزئة في حد ذاتها الإجابة على سؤال الأصالة لأنه يمكن لأي شخص حساب التجزئة. يمكن للمهاجم الذي يقوم بتعديل الملف حساب التجزئة الجديدة ونشرها بنفس السهولة التي يستطيع بها الناشر الشرعي. التجزئة متماثلة؛ يتمتع كل من المدافع والمهاجم بنفس القدرة الحسابية.

متطلبات القناة الموثوقة - لماذا يكون المجموع الاختباري جديرًا بالثقة بقدر المكان الذي حصلت عليه فيه

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

إذا تم نشر المجموع الاختباري بشكل منفصل، على خادم مختلف، مع عناصر تحكم وصول مختلفة، فإنه يوفر المزيد من الدفاع. سيحتاج المهاجم الذي يقوم باختراق الموقع الأساسي إلى اختراق كلا الموقعين لتزييف زوج مطابق. وهذا أفضل، لكنه لا يزال يعتمد على نقطتي تحكم مستقلتين تظلان آمنتين. ويجب على المهاجم الآن اختراق نظامين بدلاً من نظام واحد، مما يزيد من تكلفة الهجوم. لكنها لا تزال غير دليل على صحتها؛ إنه مجرد هجوم أكثر تكلفة.

تربط التوقيعات التجزئة بالهوية - كيف يضيف التوقيع على الملخص باستخدام مفتاح خاص الأصالة

يعالج التوقيع الرقمي هذا الأمر عن طريق ربط البيانات بهوية باستخدام التشفير. يقوم الناشر بإنشاء زوج مفاتيح: مفتاح خاص يحتفظون به سرًا ومفتاح عام ينشرونه. يقومون بتوقيع الملف عن طريق حساب الملخص ثم تشفير ذلك الملخص باستخدام مفتاحهم الخاص. والنتيجة هي التوقيع. يتحقق المستخدم من التوقيع عن طريق فك تشفيره باستخدام المفتاح العام للناشر والتحقق من تطابق النتيجة مع الملخص المحسوب للملف المستلم. يخلق التشفير عدم تناسق لا يمكن للمجموع الاختباري تحقيقه.

إذا نجح هذا، فسيتم إثبات شيئين: تطابق البيانات مع الملخص الذي وقعه الناشر، والمفتاح الخاص المستخدم للتوقيع عليه يتطابق مع المفتاح العام المنشور. وهذا يثبت أن الناشر هو من قام بإنشائه، وليس فقط ما فعله المهاجم. يجب أن يأتي المفتاح العام عبر قناة آمنة — عادةً ما تكون شهادة من مرجع مصدق موثوق به — ولكن بمجرد حصولك على المفتاح العام، يمكنك التحقق من التوقيعات من هذا الناشر إلى أجل غير مسمى. يتطلب الهجوم الآن سرقة المفتاح الخاص، وهو أمر أصعب بكثير من اختراق خادم الويب.

مثال عملي - ثلاثة سيناريوهات للتهديد (مرآة فاسدة، صفحة مخترقة، مصدر خبيث من الداخل) والمجموع الاختباري والتوقيع الذي يلتقطه كل منهما

وتوضح ثلاثة سيناريوهات للتهديد الفرق. السيناريو الأول: مرآة التنزيل تالفة بسبب خطأ عشوائي. المجموع الاختباري يمسك به. التوقيع يمسك به. كلاهما يعمل بشكل جيد على قدم المساواة لأنه لا يحتاج أي منهما إلى هزيمة المهاجم. السيناريو الثاني: تم اختراق المرآة بواسطة مهاجم يقوم باستبدال الملف والمجموع الاختباري. فشل المجموع الاختباري في الحماية؛ لا يزال التوقيع يعمل، لأن المهاجم ليس لديه المفتاح الخاص ولا يمكنه تزوير توقيع صالح. يمكن للمهاجم نشر أي شيء، لكن التوقيع يثبت أنه ليس من الناشر.

السيناريو الثالث: تم اختراق CDN ولكن تم نشر التوقيع من خلال قناة مختلفة. لا يمكن الوثوق بالمجموع الاختباري الموجود على CDN، ولكن التحقق من التوقيع لا يزال يعمل، لأن التحقق من السلامة مرتبط بشكل مشفر بمفتاح الناشر، وليس بالقناة. يجب على المهاجم الآن تزوير التوقيع، الأمر الذي يتطلب المفتاح الخاص. التوقيع هو التحقق الوحيد الذي ينجو من اختراق الخادم. ولهذا السبب فإن التوقيعات ضرورية للتأكد من صحتها؛ فهي الأداة الوحيدة التي تثبت الهوية على الرغم من تسوية القناة.

دور TLS وحدوده — يحمي أمان النقل التنزيل أثناء الرحلة، وليس خادم الناشر

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

ولهذا السبب فإن النقل والنزاهة والأصالة هي طبقات منفصلة. TLS يؤمن القناة، ويقارن الملخص وحدات البايت ويربط التوقيع نتيجة التحقق بالتحكم في المفتاح الخاص. لا ينبغي وصف أي طبقة بأنها تثبت الخاصية التي توفرها طبقة أخرى، حتى عندما يجمع سير عمل الإصدار بشكل معقول بين الثلاثة.

ما لا يغطيه هذا هو توزيع المفاتيح وجذور الثقة، وهي الجزء الصعب من التوقيعات

التوزيع الرئيسي هو الحدود الصعبة التي لا تتجاوزها حاسبة الملخص هذه. لا يزال مدقق التوقيع بحاجة إلى مفتاح عام أو سلسلة شهادات أصلية وسياسة للتدوير والإلغاء والخوارزميات المقبولة. يثبت التوقيع الصحيح رياضيًا بموجب مفتاح غير موثوق به فقط أن صاحب هذا المفتاح غير الموثوق به وقع على البايتات.

وبناءً على ذلك، تتوقف السيناريوهات التي تم العمل عليها حيث يتوفر مفتاح موثوق به بالفعل. وهي لا تنص على تثبيت الشهادة أو البنية التحتية للمفتاح العام أو مراسم إصدار المفتاح. تحتاج خيارات النشر هذه إلى تصميم خاص بها تمت مراجعته؛ يوفر ToolAcre الملخص البسيط الذي قد يتم توقيعه، وليس جذر الثقة المستخدم للتحقق من صحة الهوية.

الوجبات الجاهزة: المجاميع الاختبارية للنزاهة، والتوقيعات للأصالة - تقوم حاسبة التجزئة ToolAcre SHA بحساب الملخصات؛ يعد التحقق من هوية من قام بنشرها خطوة منفصلة

تقوم حاسبة التجزئة ToolAcre SHA بحساب الجانب التكاملي لهذا التحقق. استخدمه لتجزئة الملف الذي تم تنزيله والتحقق من القيمة المنشورة. إذا كانت متطابقة، فإن التنزيل غير تالف. ولكن إذا كانا متطابقين لأن أحد المهاجمين أعاد كتابة كليهما، فلن يتمكن التحقق من النزاهة وحده من اكتشافهما. الأداة صادقة بشأن هذا القيد ولا تدعي التحقق من صحتها. من أجل النزاهة فقط، تكون المجاميع الاختبارية سريعة وجيدة. من أجل الأصالة، تحتاج إلى التوقيعات. TLS يوفر أمان النقل للتنزيل نفسه. يتم تشفير الاتصال بالخادم والمصادقة عليه، لذلك لا يمكن للمهاجم الموجود على الشبكة تعديل الملف أثناء النقل. ومع ذلك، TLS لا يساعد إذا تم اختراق الخادم نفسه. يمكن للخادم المخترق أن يخدم أي ملف عبر أي اتصال TLS آمن. وهذا هو سبب أهمية التحقق على مستوى التطبيق - المجموع الاختباري والتوقيعات - بشكل منفصل عن أمن النقل.

النمط الشائع في إصدارات البرامج هو نشر المجموع الاختباري والتوقيعات. المجاميع الاختبارية ملائمة؛ يمكن للمستخدمين التحقق منها بسرعة باستخدام أمر Shell من سطر واحد. توفر التوقيعات الأصالة للمستخدمين الذين لديهم المفتاح العام للناشر. يمكن للمستخدم التحقق من المجموع الاختباري أولاً للحصول على تمريرة سلامة سريعة، ثم التحقق من التوقيع مقابل المفتاح المخزن في حلقة المفاتيح GPG الخاصة به للتأكد من صحتها. يخدم الفحصان أغراضًا مختلفة ويمكن وضعهما في طبقات للدفاع بعمق. الجزء الصعب من التوقيعات هو توزيع المفاتيح والثقة. أنت بحاجة إلى المفتاح العام للناشر، وعليك أن تثق في أنه ملكه بالفعل. هذه هي المشكلة التي يتعين على سلطات التصديق حلها: فهي توقع شهادات الناشر، ويتم تحميل شهادات CA الجذر مسبقًا في المتصفحات وأنظمة التشغيل. بالنسبة لمشروع أصغر، يمكنك نشر مفتاح GPG على موقع ويب منفصل ومحصن أو على خادم مفتاح عام. المجموع الاختباري رخيص للتحقق منه؛ تتطلب التوقيعات إدارة جذور الثقة. التعقيد الإضافي هو ثمن الأصالة.