ما هو الملح الموجود في كلمة مرور Linux ولماذا هو مهم؟

آخر تحديث: 04/12/2025
نبذة عن الكاتب: إسحاق
  • الملح عبارة عن سلسلة عشوائية تتم إضافتها إلى كلمة المرور قبل التجزئة لتحقيق تجزئات فريدة لكل مستخدم.
  • لينكس يقوم بتخزين التجزئة والملح والخوارزمية في /etc/shadow، مما يعزز الأمان ضد هجمات القاموس وجداول قوس قزح.
  • تتطلب الممارسات الجيدة أملاحًا طويلة وعشوائية وفريدة من نوعها، إلى جانب خوارزميات تجزئة قوية و قواعد البيانات محمية بشكل جيد.
  • يجب دمج تمليح كلمات المرور في سياسات الأمان الأوسع التي تتضمن كلمات مرور قوية، والمصادقة الثنائية، ومديري كلمات المرور.

الملح في تجزئة كلمة المرور في لينكس

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

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

ما هو الملح بالضبط في تجزئة كلمة المرور؟

تعريف الملح في تجزئة كلمة المرور

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

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

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

من المهم أن نفهم أن الملح ليس سرًا في حد ذاته: إنها ليست كلمة مرور أو مفتاح خاصوظيفتها هي إدخال العشوائية والتفرد في عملية التجزئة. لا يزال الأمان يعتمد على استخدام كلمات مرور قوية y خوارزميات التجزئة المناسبة، ويفضل أن تكون مصممة خصيصًا لكلمات المرور (مثل bcrypt، وscrypt، وArgon2)، على الرغم من أن العديد من أنظمة Linux الكلاسيكية تستخدم إصدارات SHA-256 أو SHA-512.

كيفية عمل تمليح كلمة المرور خطوة بخطوة

كيف تعمل عملية تمليح كلمة المرور

يمكن تلخيص عملية التمليح في سلسلة من الخطوات البسيطة إلى حد ما، ولكن مع تأثير كبير على الأمن:

  هجوم الإغراء: ما هو وكيفية منعه بأمان

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

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

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

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

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

مزايا استخدام الملح في تجزئة كلمات المرور

فوائد استخدام الملح في كلمات المرور

السبب الرئيسي لاستخدام التمليح هو يعزز أمان كلمات المرور المخزنة ضد مجموعة واسعة من الهجمات. ولكن من المفيد تفصيل الفوائد المحددة.

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

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

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

  كريبتوس ​​ك4: ما هو، وكيف ولد اللغز، ولماذا لا يزال يرفض الاستسلام.

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

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

كيفية تنفيذ Linux لتمليح كلمة المرور (/etc/shadow)

في أنظمة Linux ومتغيرات *NIX الأخرى، لا يتم تخزين كلمات مرور المستخدم في /etc/passwd، ولكن في الملف / الخ / الظليخزن هذا الملف، الذي يمكن الوصول إليه فقط بواسطة المستخدم الفائق، تجزئات كلمة المرور إلى جانب معلومات إضافية، وهو المكان الذي يظهر فيه استخدام الملح وخوارزمية التجزئة بوضوح.

تحتوي الأسطر الموجودة في /etc/shadow على بنية مشابهة لما يلي:

المستخدم: $id$sal$hash: حقول إضافية…

الرمز $ افصل الأجزاء المختلفة. يشير الجزء الأول بعد اسم المستخدم إلى نوع الخوارزمية مُستخدَم. على سبيل المثال، $ $ 1 يمثل عادة MD5، $ $ 5 SHA-256 و $ $ 6 SHA-512، وهي الخوارزمية الأكثر شيوعًا في التوزيعات الحديثة لأنها توفر أمانًا أكبر من المخططات القديمة المستندة إلى DES أو MD5.

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

إذا كنت تريد فحص المستخدمين الذين لديهم كلمات مرور مشفرة والخوارزمية المستخدمة بسرعة، فيمكنك استخدام أمر مثل grep '\$' /etc/shadowفي هذا السياق، يُستخدم رمز الدولار ($) لتحديد الأسطر التي تحتوي على علامات التجزئة بالصيغة الحديثة. يجب وضع علامة عكسية (back-slash) بعد الرمز، لأنه يُشير في التعبيرات العادية إلى "نهاية السطر".

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

الفرق بين تجزئة كلمة المرور والتمليح

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

  تصفية الخروج: ما هي، وكيف تعمل، وكيف تحمي عملك

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

يأتي التمليح على وجه التحديد لحل هذا الضعف: إنه يتعلق بـ إضافة بيانات عشوائية إلى كلمة المرور قبل تجزئتها. والنتيجة هي أنه حتى لو اختار مستخدمان "casa" كلمة مرور، فستكون تجزئات قاعدة البيانات مختلفة تمامًا، إذ سيستخدم أحدهما، على سبيل المثال، "casa+7Ko#" والآخر "casa8p?M" كسلسلة تجزئتها المسبقة.

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

استخدام الملح في لينكس مع mkpasswd

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

يسمح لك بناء الجملة الأساسي لـ mkpasswd بتحديد كلمة المرور التي سيتم تشفيرها وسلسلة من الخيارات مثل نوع الخوارزمية (على سبيل المثال، des، md5، sha-256، sha-512) باستخدام الخيار -mفي الأنظمة الحديثة، الشيء المعقول الذي يجب فعله هو اختيار SHA-512 على أقل تقدير، أو حتى من خلال مخططات أكثر قوة إذا كان التوزيع يدعمها.

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

يمكن التحقق من ذلك بسهولة: إذا شفّرت كلمة مرور "password123" عدة مرات باستخدام mkpasswd، باستخدام SHA-512 وقيمة عشوائية، فستحصل على قيم تجزئة مختلفة تمامًا. أما إذا مررت قيمة القيمة نفسها باستخدام -S، فستظل قيمة التجزئة متطابقة دائمًا، لأن تركيبة كلمة المرور + القيمة العشوائية لا تتغير.

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

ما هي النظافة الرقمية؟
المادة ذات الصلة:
النظافة الرقمية: السلامة والرفاهية والنظام في حياتك على الإنترنت