تساءلت دائمًا عن كيفية الاستفادة من المجموع الاختباري؟ توضح لك هذه المقدمة ما تعنيه وكيفية استخدام الأدوات المناسبة للتحقق من سلامة الملف.
من المحتمل أنك رأيت إشارات إلى التجزئة أو المجاميع الاختبارية عند تنزيل برنامج من الإنترنت. في كثير من الأحيان ، سيتم عرض البرنامج ، ثم بالقرب من الرابط يوجد مجموع اختباري. قد يتم تسمية المجموع الاختباري باسم MD5 أو SHA أو مع بعض الأسماء المشابهة الأخرى. فيما يلي مثال على استخدام إحدى الألعاب القديمة المفضلة لدي من التسعينيات باسم Nethack :
كثير من الناس لا يعرفون بالضبط ما تعنيه هذه المعلومات أو كيفية التعامل معها. في هذه المقالة ، أناقش الغرض من التجزئة ، إلى جانب كيفية استخدامها.
أهداف التشفير
في هذا القسم الأول ، أريدك أن تتخلص من شيء ما. على وجه التحديد ، أريدك أن تفك الارتباط في ذهنك بين الكلمة تشفير وكلمة سرية . يتصور الكثير منا أن هاتين الكلمتين مترادفتان عندما لا يكون الأمر كذلك في الواقع. يمكن أن يوفر التشفير ، الذي يتضمن التشفير ، السرية ، ولكنه يمكن أن يلبي أيضًا أهدافًا أخرى.
يوجد في الواقع ثلاثة أهداف للتشفير:
- السرية - لمنع قراءة محتوى الملف من قبل المستخدمين غير المصرح لهم
- الأصالة - لإثبات مصدر الملف
- النزاهة - لإثبات أن الملف لم يتغير بشكل غير متوقع
هذا هو المفهوم الثالث ، النزاهة ، الذي نهتم به هنا. في هذا السياق ، تعني النزاهة إثبات أن البيانات لم تتغير بشكل غير متوقع. إثبات النزاهة مفيد في العديد من السيناريوهات:
- تنزيلات الإنترنت مثل توزيعات Linux أو البرامج أو ملفات البيانات
- نقل ملفات الشبكة عبر NFS أو SSH أو بروتوكولات أخرى
- التحقق من تثبيتات البرامج
- مقارنة قيمة مخزنة ، مثل كلمة المرور ، بقيمة أدخلها المستخدم
- النسخ الاحتياطية التي تقارن ملفين لمعرفة ما إذا تم تغييرهما
ما هو التجزئة؟
يستخدم التشفير التجزئة لتأكيد عدم تغيير الملف. التفسير البسيط هو أن طريقة التجزئة نفسها تُستخدم في ملف في نهاية كل تنزيل عبر الإنترنت. يتم تجزئة الملف على خادم الويب بواسطة مسؤول الويب ، ويتم نشر نتيجة التجزئة. يقوم المستخدم بتنزيل الملف ويطبق نفس طريقة التجزئة. تتم مقارنة نتائج التجزئة أو المجاميع الاختبارية . إذا كان المجموع الاختباري للملف الذي تم تنزيله هو نفسه الموجود في الملف الأصلي ، فسيكون الملفان متطابقين ، ولم تكن هناك تغييرات غير متوقعة بسبب تلف الملف ، وهجمات man-in-the-middle ، وما إلى ذلك.
التجزئة هي عملية أحادية الاتجاه. لا يمكن عكس النتيجة المجزأة لكشف البيانات الأصلية. المجموع الاختباري هو سلسلة من المخرجات ذات حجم معين. من الناحية الفنية ، هذا يعني أن التجزئة ليست تشفيرًا لأن التشفير يهدف إلى عكسه (فك تشفيره).
ما نوع تشفير التجزئة الذي قد تستخدمه مع Linux؟
ملخص الرسائل وخوارزمية التجزئة الآمنة
في Linux ، من المحتمل أن تتفاعل بإحدى طريقتين للتجزئة:
- MD5
- SHA256
أدوات التشفير هذه مدمجة في معظم توزيعات Linux ، بالإضافة إلى macOS. لا يتضمن Windows عادةً هذه الأدوات المساعدة ، لذلك يجب عليك تنزيلها بشكل منفصل عن البائعين الخارجيين إذا كنت ترغب في استخدام تقنية الأمان هذه. أعتقد أنه من الرائع أن تكون أدوات الأمان مثل هذه جزءًا من Linux و macOS.
ملخص الرسالة مقابل خوارزمية التجزئة الآمنة
ما الفرق بين ملخص الرسالة وخوارزميات التجزئة الآمنة؟ يكمن الاختلاف في الرياضيات المعنية ، لكن الاثنين يحققان أهدافًا متشابهة. قد يفضل مسؤولو النظام أحدهما على الآخر ، ولكن بالنسبة لمعظم الأغراض ، فإنهم يعملون بشكل مشابه. ومع ذلك ، فهي ليست قابلة للتبادل. لن تكون التجزئة التي تم إنشاؤها باستخدام MD5 على أحد طرفي الاتصال مفيدة إذا تم استخدام SHA256 على الطرف الآخر. يجب استخدام نفس طريقة التجزئة على كلا الجانبين.
ينشئ SHA256 تجزئة أكبر ، وقد يستغرق مزيدًا من الوقت وقوة الحوسبة لإكماله. يعتبر نهجًا أكثر أمانًا. من المحتمل أن يكون MD5 جيدًا بما يكفي لمعظم فحوصات السلامة الأساسية ، مثل تنزيلات الملفات.
أين تجد التجزئة في لينكس؟
يستخدم Linux التجزئة في العديد من الأماكن والمواقف. يمكن إنشاء المجاميع الاختبارية يدويًا بواسطة المستخدم. سترى بالضبط كيفية القيام بذلك لاحقًا في المقالة. بالإضافة إلى ذلك ، يتم تضمين إمكانات التجزئة مع /etc/shadow،rsync وغيرها من المرافق.
على سبيل المثال ، كلمات المرور المخزنة في /etc/shadowالملف هي في الواقع تجزئات. عند تسجيل الدخول إلى نظام Linux ، تقارن عملية المصادقة قيمة التجزئة المخزنة مع نسخة مجزأة من كلمة المرور التي كتبتها. إذا كانت المجاميع الاختباريتان متطابقتين ، فستكون كلمة المرور الأصلية وما كتبته متطابقين. بمعنى آخر ، لقد أدخلت كلمة المرور الصحيحة. يتم تحديد ذلك ، مع ذلك ، دون فك تشفير كلمة المرور المخزنة على نظامك. تحقق من أول حرفين من الحقل الثاني لحساب المستخدم الخاص بك في /etc/shadow. إذا كان الحرفان هما $ 1 ، فسيتم تشفير كلمة مرورك باستخدام MD5. إذا كانت الأحرف 5 دولارات ، فسيتم تشفير كلمة مرورك باستخدام SHA256. إذا كانت القيمة 6 دولارات، SHA512 قيد الاستخدام. يتم استخدام SHA512 على الجهاز الظاهري Fedora 33 الخاص بي ، كما هو موضح أدناه:
كيفية إنشاء المجاميع الاختبارية يدويًا
استخدام أدوات التجزئة بسيط للغاية. سوف أطلعك على سيناريو سهل للغاية لإنجازه على كمبيوتر معمل أو أي نظام Linux متاح لديك. الغرض من هذا السيناريو هو تحديد ما إذا كان الملف قد تغير أم لا.
أولاً ، افتح محرر النصوص المفضل لديك وأنشئ ملفًا باسم original.txtسطر نص يقرأ: المعلومات الأصلية.
[damon@localhost ~]$ vim original.txt
[damon@localhost ~]$ cat original.txt
Original information.
[damon@localhost ~]$بعد ذلك ، قم بتشغيل الملف من خلال خوارزمية التجزئة. سأستخدم MD5 في الوقت الحالي. الأمر هو md5sum. هنا مثال:
[damon@localhost ~]$ md5sum original.txt
80bffb4ca7cc62662d951326714a71be original.txt
[damon@localhost ~]$لاحظ قيمة المجموع الاختباري الناتجة. هذه القيمة كبيرة بما يكفي بحيث يصعب التعامل معها. دعنا نخزن هذه القيمة للاستخدام المستقبلي عن طريق إعادة توجيهها إلى ملف:
[damon@localhost ~]$ md5sum original.txt > hashes.txt
[damon@localhost ~]$ cat hashes.txt
80bffb4ca7cc62662d951326714a71be original.txt
[damon@localhost ~]$في هذه المرحلة ، لديك ملف أصلي. انسخ هذا الملف إلى /tmpالدليل بالاسم duplicate.txt. انسخ الملف باستخدام الأمر التالي (تأكد من نسخه وليس نقله):
[damon@localhost ~]$ cp original.txt /tmp/duplicate.txt
[damon@localhost ~]$قم بتشغيل الأمر التالي لإنشاء مجموع اختباري للملف المنسوخ:
[damon@localhost ~]$ md5sum /tmp/duplicate.txt
80bffb4ca7cc62662d951326714a71be /tmp/duplicate.txt
[damon@localhost ~]$بعد ذلك ، قم بإلحاق نتيجة التجزئة بملفنا hashes.txtثم قارن بين الاثنين. كن حذرًا جدًا في استخدام >>عامل إعادة توجيه الإلحاق هنا ، لأنه >سيحل محل قيمة تجزئة original.txtالملف.
قم بتشغيل الأمر التالي:
[damon@localhost ~]$ md5sum /tmp/duplicate.txt >> hashes.txt
[damon@localhost ~]$ cat hashes.txt
80bffb4ca7cc62662d951326714a71be original.txt
80bffb4ca7cc62662d951326714a71be /tmp/duplicate.txt
[damon@localhost ~]$نتيجتا التجزئة متطابقتان ، لذلك لم يتغير الملف أثناء عملية النسخ.
بعد ذلك ، قم بمحاكاة التغيير. اكتب الأمر التالي لتغيير /tmp/duplicate.txtمحتويات الملف ، ثم أعد تشغيل md5sumالأمر باستخدام >>عامل الإلحاق:
[damon@localhost ~]$ hostname >> /tmp/duplicate.txt
[damon@localhost ~]$ md5sum /tmp/duplicate.txt >> hashes.txt
[damon@localhost ~]$أنت تعلم أن duplicate.txtالملف لم يعد مطابقًا original.txtللملف ، ولكن دعنا نثبت ذلك:
[damon@localhost ~]$ cat hashes.txt
80bffb4ca7cc62662d951326714a71be original.txt
80bffb4ca7cc62662d951326714a71be /tmp/duplicate.txt
1f59bbdc4e80240e0159f09ecfe3954d /tmp/duplicate.txt
[damon@localhost ~]$قيمتا المجموع الاختباري غير متطابقتين ، وبالتالي فإن الملفين اللذين تم إنشاء المجاميع الاختبارية منهما ليسا متطابقين.
في المثال أعلاه ، قمت بمقارنة قيم التجزئة يدويًا من خلال عرضها مع cat. يمكنك استخدام --checkالخيار md5sumلإجراء المقارنة لنا. لقد قمت بتضمين كلتا الطريقتين أدناه:
[damon@localhost ~]$ cat hashes.txt
80bffb4ca7cc62662d951326714a71be original.txt
80bffb4ca7cc62662d951326714a71be /tmp/duplicate.txt
1f59bbdc4e80240e0159f09ecfe3954d /tmp/duplicate.txt
[damon@localhost ~]$ md5sum --check hashes.txt
original.txt: OK
/tmp/duplicate.txt: FAILED
/tmp/duplicate.txt: OK
md5sum: WARNING: 1 computed checksum did NOT match
[damon@localhost ~]$يمكنك تكرار الخطوات السابقة استبدال sha256sumلل md5sumالأوامر لنرى كيف تعمل هذه العملية باستخدام خوارزمية SHA. يتضمن sha256sumالأمر أيضًا --check checksumخيارًا يقارن التجزئات الناتجة ويعرض رسالة توضح ما إذا كانت الملفات مختلفة أم لا.
ملاحظة : إذا قمت بنقل الملفات بين Linux و macOS و Windows ، فلا يزال بإمكانك استخدام التجزئة للتحقق من سلامة الملفات. لإنشاء قيمة تجزئة على macOS ، قم بتشغيل md5الأمر. للقيام بذلك في Windows ، يجب عليك تنزيل برنامج تابع لجهة خارجية. أنا شخصياً أستخدم md5checker . تأكد من فهم الترخيص لهذه المرافق. قد تتمكن من استخدام PowerShell cmdlet get-filehash، بناءً على إصدار PowerShell الذي قمت بتثبيته.
يتم إحتوائه
تؤكد التجزئة أن البيانات لم تتغير بشكل غير متوقع أثناء نقل الملف أو التنزيل أو أي حدث آخر. يُعرف هذا المفهوم باسم تكامل الملف. التجزئة لا تخبرك بما تغير ، فقط هذا الشيء تغير. بمجرد أن تخبرك التجزئة أن ملفين مختلفين ، يمكنك استخدام أوامر مثل diffاكتشاف الاختلافات الموجودة.



