فحص ملفات ISO في لينكس: المجموع الاختباري، وGPG، وأفضل الممارسات

  • تتضمن عملية التحقق من صحة ملف ISO التحقق من سلامته باستخدام مجموعات التحقق ومن صحته باستخدام توقيعات GPG.
  • تتيح لك أدوات md5sum و sha1sum و sha256sum حساب وفحص التجزئات بسهولة من خلال الطرفية.
  • تُعد ملفات SHA256SUMS و SHA256SUMS.gpg أساسية للتحقق من أن التنزيلات تتطابق مع الصور الرسمية.
  • إن إنشاء ونشر ملفات التحقق الخاصة بك يسهل على المستخدمين الآخرين التحقق من تنزيلاتهم بسرعة وأمان.

التحقق من صحة ملفات ISO في نظام لينكس باستخدام المجموع الاختباري وبرنامج GPG

عند تنزيل توزيعة GNU/Linux، فإن الشيء المعتاد هو تنزيل قم بإنشاء صورة ISO وابدأ في إنشاء محرك أقراص USB قابل للتشغيل. دون التفكير ملياً فيما قد يكون حدث خلال العملية. الحقيقة هي، رغم أن الأمور غالباً لا تسير على ما يرام، أننا نثق ثقة عمياء بأن ملف ISO أصلي، وأنه لم يتم التلاعب به، وأن التنزيل لم يتعرض للتلف.

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

ماذا يعني التحقق من معيار ISO: النزاهة والمصداقية؟

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

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

يتم التحقق من الأصالة من خلال التوقيعات الرقمية GPG مرتبطة بالمفاتيح العامة للمطورينمن الناحية العملية، يقوم التوزيع بتوقيع الملف الذي يحتوي على المجاميع الاختبارية (على سبيل المثال، SHA256SUMS) وتقوم أنت بالتحقق من أن هذا التوقيع يتوافق مع مفتاح المشروع الرسمي وأنه لم يتم تعديله.

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

مجموع التحقق من ملف ISO لنظام لينكس

ما هو مجموع التحقق ولماذا يتم استخدامه في ملفات ISO؟

مجموع التحقق هو نتيجة تطبيق مجموع التحقق على ملف. دالة تجزئة تشفيرية تولد سلسلة فريدة بالنسبة لهذا المحتوى. عادةً ما يتم تمثيل هذه السلسلة بالنظام الست عشري (الأحرف من 0 إلى 9 و af) ولها طول ثابت، بغض النظر عن حجم الملف الأصلي.

في سياق توزيعات جنو/لينكس، تُستخدم مجموعات التحقق لـ تحقق من أن البيانات لم تتغير منذ أن نشر المشروع الصورةإذا أنتج ملفان نفس قيمة التجزئة باستخدام نفس الخوارزمية، فإنهما يُعتبران (عمليًا) متطابقين. أما إذا لم تتطابق قيمة التجزئة، فإن اختلاف بت واحد يكفي لتغيير القيمة تمامًا، مما يسمح لنا باكتشاف المشكلة.

توجد العديد من خوارزميات التجزئة، ولكن الخوارزميات التي ستراها في أغلب الأحيان مرتبطة بملفات ISO هي: MD5 و SHA-1 وعائلة SHA-2 (SHA-256 و SHA-384 و SHA-512...)في صفحات التنزيل الخاصة بتوزيعات Debian و Ubuntu و Fedora وغيرها، غالبًا ما يقدمون ملفات بأسماء مثل MD5SUMS أو SHA1SUMS أو SHA256SUMS إلى جانب ملفات ISO.

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

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

أنواع الملفات التي ستجدها عند تنزيل ملف ISO

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

ستجد عادةً شيئًا كهذا (قد تختلف الأسماء قليلاً بين التوزيعات):

  • distribution-name-version-architecture.isoالصورة نفسها، وهي ما ستقوم بنسخه على محرك أقراص USB أو DVD. على سبيل المثال، ubuntu-20.04-desktop-amd64.iso، والتي تشير إلى التوزيعة والإصدار والنسخة (سطح المكتب/الخادم) والبنية.
  • MD5SUMSملف نصي يتضمن قائمة بتجزئات MD5 للصور المتوفرة في ذلك المجلد. يربط كل سطر تجزئة باسم ملف.
  • MD5SUMS.gpgتوقيع GPG لملف MD5SUMS، تم إنشاؤه باستخدام مفتاح المطورين. ويُستخدم للتحقق من أن ملف تجزئة MD5 صادر بالفعل من المشروع ولم يتم تعديله.
  • SHA256SUMSهذا الملف يُعادل خوارزمية MD5SUMS ولكنه يستخدم خوارزمية SHA-256. يُنصح بإعطائه الأولوية إذا كان متوفرًا.
  • SHA256SUMS.gpg: التوقيع الرقمي SHA256SUMS GPG، المستخدم لضمان صحته.

في بعض التوزيعات، ستجد أيضًا ملفات مثل SHA1SUMS أو SHA512SUMS أو ملفات مشابهة. جميعها تتبع نفس المبدأ: قائمة بالمجاميع، وتوقيع GPG مرتبط بها (اختياري). حتى تتمكن من التحقق من عدم التلاعب بالقائمة.

إذا قمت بتنزيل ملف ISO باستخدام HTTP/HTTPS بدلاً من ذلك في برنامج BitTorrent، تتضمن معظم البرامج بالفعل نظام تحقق. تعتمد المعالجة الداخلية على أجزاء من البيانات وتجزئات جزئية، مما يقلل بشكل كبير من احتمالية الحصول على ملف ISO تالف. ومع ذلك، إذا كنت ترغب في التأكد تمامًا من صحة الملف، فمن الأفضل التحقق من توقيع GPG الخاص بملف التجزئة.

دوال التجزئة في لينكس

كيف تعمل دوال التجزئة (MD5، SHA-1، SHA-256...)

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

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

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

حسّنت خوارزمية SHA-1 بعض نقاط ضعف خوارزمية MD5، ولكن تم تحديد مشاكل التصادم أيضًا، وهي تُعتبر غير مناسب للتطبيقات الجديدة التي تتطلب مستوى عالٍ من الأمانتُعد عائلة SHA-2 (وخاصة SHA-256) حاليًا الخيار الأكثر توازنًا بين الأمان والأداء للتحقق من ISO.

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

أدوات لينكس لحساب والتحقق من المجموع الاختباري

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

أكثر الأوامر شيوعاً التي ستصادفها هي:

  • md5sum: يقوم بحساب والتحقق من مجاميع MD5.
  • sha1sum: يقوم بحساب والتحقق من مجاميع SHA-1.
  • sha256sum: يقوم بحساب والتحقق من مجاميع SHA-256.
  • sha512sum: يقوم بحساب والتحقق من مجاميع SHA-512.

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

cd Descargas
sha256sum nombre-de-tu-imagen.iso

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

بالإضافة إلى حساب التجزئات الفردية، تتيح لك هذه الأدوات نفسها التحقق من ملفات متعددة في وقت واحد باستخدام وضع الفحص باستخدام الخيار -cوهنا يأتي دور ملف MD5SUMS أو SHA256SUMS الذي قمت بتنزيله مع ملفات ISO.

التحقق من سلامة ملف ISO باستخدام ملفات المجموع

في السيناريو المعتاد، تقوم بتنزيل كلٍ من صورة ISO وملف SHA256SUMS الخاص بها (وملف MD5SUMS أو SHA1SUMS إن وُجد) من الموقع الرسمي للتوزيعة. بنية هذا الملف بسيطة للغاية: يحتوي كل سطر على رمز التجزئة، ومسافة، وعلامة نجمة أو مسافة إضافية (اختياريًا)، واسم الملف.

للتحقق من ملف ISO باستخدام ملف المجموع، ما عليك سوى الانتقال إلى المجلد الذي يحتوي على قم بتشغيل كل من الصورة وملف SHA256SUMS.:

sha256sum -c SHA256SUMS

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

nombre-distro.iso: OK

في حالة وجود اختلافات، سواء كان ذلك بسبب تلف ملف ISO أو بسبب لا يتطابق الملف مع قائمة المجاميعسترى رسائل كهذه:

nombre-distro.iso: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match

وينطبق الإجراء نفسه على MD5 و SHA-1 عن طريق استبدال الأداة والملف المناسبين، على سبيل المثال:

md5sum -c MD5SUMS
sha1sum -c SHA1SUMS

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

توقيعات GPG: التحقق من صحة المبالغ

لقد تحدثنا حتى الآن عن النزاهة فقط، لكن العنصر الثاني مفقود: تأكد من أن ملف المجاميع يأتي بالفعل من المشروع وليس من شخصٍ اخترق الخادم. وهنا يأتي دور GnuPG (gpg)، الأداة القياسية للتعامل مع التشفير بالمفتاح العام في نظام GNU/Linux.

تُوقّع معظم التوزيعات الرئيسية ملفات التجزئة الخاصة بها (مثل SHA256SUMS.gpg) باستخدام مفتاح خاص مرتبط بالمطورين. أنت، كمستخدم، تقوم بتنزيل هذا التوقيع واستخدامه. المفتاح العام للمشروع للتحقق أن ملف SHA256SUMS لم يتم تعديله.

عادةً ما تكون آلية العمل مع توزيعة مثل أوبونتو كالتالي، بمجرد تثبيت gpg ودخولك إلى مجلد التنزيلات:

gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS

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

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

gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0xD94AA3F0EFE21092

يؤدي هذا إلى تنزيل المفتاح ذي المعرّف المحدد من خادم المفاتيح الرسمي. بعد الاستيراد، قم بتشغيل أمر التحقق من التوقيع مرة أخرى باستخدام SHA256SUMS، وستحصل الآن على تأكيد صحة التوقيع وهو مرتبط بالمفتاح "Ubuntu CD Image Automatic Signing Key (2012)" "أو نظام تشغيل مشابه آخر حسب التوزيعة."

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

مثال عملي: التحقق من صحة نسخة ISO حديثة لنظام أوبونتو

لفهم هذا بوضوح، تخيل أنك تقوم بتنزيل ملف ISO لنظام أوبونتو (على سبيل المثال، إصدار LTS حديث) من الموقع الرسمي. ستجد في تلك الصفحة روابط لملف ISO، وملف SHA256SUMS، وتوقيعه SHA256SUMS.gpg، وكلها في نفس المجلد أو مجلد قريب منه.

الخطوات التي ستتبعها ستكون بشكل أساسي كما يلي:

أولا، قم بتنزيل ملف ISO المناسب لبنية نظامك. (على سبيل المثال، صورة سطح المكتب AMD64 ذات 64 بت)، بالإضافة إلى ملفات SHA256SUMS و SHA256SUMS.gpg المقابلة لهذا الإصدار.

بعد ذلك، وبعد تثبيت gpg على نظامك، يمكنك التحقق من توقيع ملف sums باستخدام:

gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS

إذا أخبرك برنامج gpg أنه لا يمكنه العثور على المفتاح، فيمكنك الحصول عليه من خادم المفاتيح المرتبط بالمشروع عن طريق تشغيل أمر مشابه لما يلي:

gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0xD94AA3F0EFE21092

بمجرد استيراد المفتاح والتحقق من صحة توقيع ملف SHA256SUMS، يمكنك بعد ذلك التحقق من ملف ISO مقابل تلك القائمة باستخدام:

sha256sum -c SHA256SUMS

سيقوم الأمر بفحص جميع الملفات وعرض رسالة لكل ملف مدرج. بالنسبة لملف ISO الذي تم تنزيله حديثًا، يجب أن ترى شيئًا مشابهًا لما يلي: "ubuntu-XX.XX-desktop-amd64.iso: مجموع التطابقات" أو "موافق"، مما يؤكد أن الصورة المحلية تطابق تمامًا الصورة التي نشرها المطورون.

تحقق يدويًا من مجموع التحقق الفردي

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

تخيل أنك قمت بتنزيل ملف ISO لـ Red Hat، وأن الموقع الإلكتروني يعرض فقط قيمة تجزئة SHA-1 لتلك الصورة. في مجلد العمل الخاص بك، قم بتشغيل الأمر التالي:

sha1sum redhat7-x64.iso

سيعيد الأمر شيئًا مثل:

2ac2f3368e6c9fe4d7201d85ad85528698aeaf08 redhat7-x64.iso

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

التحقق من العديد من ملفات ISO في وقت واحد

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

لنفترض أن لديك ستة ملفات ISO مختلفة في مجلد واحد، وقمت بتنزيل ملفات MD5SUM وSHA1SUM وSHA256SUM. لإجراء فحص MD5، يمكنك القيام بما يلي:

md5sum -c MD5SUM

ستُدرج المخرجات كل ملف ISO مع عبارة "موافق" أو "فشل" بناءً على تطابق المجموع أم لا. وينطبق الأمر نفسه على SHA-1 وSHA-256، مع تغيير الأداة والملف فقط.

sha1sum -c SHA1SUM
sha256sum -c SHA256SUM

إذا قمتَ بتعديل ملف ISO عمدًا، أو إذا تَلِفَ بسبب عطل في القرص، فسترى ذلك. فشلت علامات الإدخال المحددة فقط بينما يبقى كل شيء آخر على ما يرام، ستنبهك البرامج برسالة مثل "تحذير: لم يتطابق مجموع التحقق المحسوب 1"، حتى تعرف أن هناك خطأ ما.

كيفية إنشاء ملفات التحقق الخاصة بك

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

على سبيل المثال، إذا قمت بإعداد عدة صور ISO في دليل وتريد إنشاء ملف MD5SUM يحتوي على جميعها، فيمكنك القيام بما يلي:

md5sum *.iso > MD5SUM

سيقوم الأمر بفحص جميع ملفات ISO في المجلد وحفظ قائمة التجزئات والأسماء في ملف MD5SUM. وبالمثل، يمكنك إنشاء مستندات باستخدام SHA-1 أو SHA-256.

sha1sum *.iso > SHA1SUM
sha256sum *.iso > SHA256SUM

بنشر ملفات التحقق هذه مع ملفاتك، سيتمكن أي شخص من تشغيلها md5sum -c، sha1sum -co sha256sum -c قم بفحصها وتحقق من أن عمليات التنزيل قد تمت بنجاح وأنه لم يقم أحد بتغييرها أثناء النقل.

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

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

أنشئ بسهولة محرك أقراص USB متعدد الإقلاع باستخدام Ventoy
المادة ذات الصلة:
كيفية إنشاء محرك أقراص USB متعدد الإقلاع بسهولة باستخدام Ventoy