مدخل مبسّط · 10 دقائق

كلمات المرور: أساس التحقق من الهوية وحدوده الأمنية

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

بقلم محمد الحسن جعبور
Read this article in Englishنُشر أيضًا على LinkedIn ↗
رسم يوضح هجوم تخمين كلمة المرور عبر الإنترنت ضد خدمة تسجيل دخول

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

وتبدأ معظم عمليات تسجيل الدخول حتى اليوم بسؤال بسيط:

ما السر الذي تعرفه؟

والإجابة المعتادة هي كلمة المرور.

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

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

وهذا التوتر بين الأمن وسهولة التذكر يفسر جانبًا كبيرًا من مشكلات كلمات المرور.

ما الذي تثبته كلمة المرور فعليًا؟

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

ما تثبته هو أن الجهة التي تحاول الدخول تعرف السر المرتبط بالحساب.

وهذا فرق مهم؛ لأن أي شخص يعرف السر قد يتمكن من استخدامه.

يمكن للمستخدم الشرعي كتابة كلمة المرور.

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

وهنا يظهر القيد الأساسي في التحقق باستخدام كلمات المرور:

يستطيع النظام التحقق من صحة السر، لكن السر نفسه لا يخبر النظام بمن يستخدمه.

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

كيف تتحقق الخدمة من كلمة المرور؟

ينبغي ألا تحتفظ الخدمة المصممة بصورة صحيحة بكلمة مرور المستخدم كنص مقروء.

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

وتُحفظ قيمة التحقق الناتجة بدلًا من كلمة المرور الأصلية.

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

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

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

وتتطلب إرشادات NIST الحالية تخزين كلمات المرور التي يتم التحقق منها مركزيًا بطريقة مقاومة للهجمات غير المتصلة، باستخدام التجزئة مع Salt وكلفة حسابية مناسبة.

التخمين عبر الإنترنت يختلف عن التخمين غير المتصل

يمكن أن يحدث تخمين كلمة المرور في بيئتين مختلفتين جدًا.

التخمين عبر الإنترنت

في الهجوم عبر الإنترنت، يرسل المهاجم محاولات تسجيل الدخول إلى خدمة التحقق الحقيقية.

تستطيع الخدمة رؤية هذه المحاولات وتطبيق وسائل حماية مثل:

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

تحد هذه الإجراءات من عدد التخمينات التي يستطيع المهاجم إرسالها عبر واجهة تسجيل الدخول الطبيعية.

التخمين غير المتصل

يبدأ الهجوم غير المتصل عندما يحصل المهاجم، نتيجة اختراق قاعدة بيانات أو نظام، على قيم التحقق المرتبطة بكلمات المرور.

يمكنه بعد ذلك اختبار التخمينات محليًا دون إرسال كل محاولة إلى الخدمة الحقيقية.

وهذا يغيّر طبيعة الهجوم.

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

ولهذا قد تظل كلمة المرور الضعيفة أو المتوقعة معرضة للخطر حتى عندما تستخدم الخدمة Salt وتجزئة مناسبة.

لماذا تفشل كلمات المرور عمليًا؟

الخيارات المتوقعة

يميل المستخدمون إلى اختيار أسرار يسهل تذكرها.

ويستفيد المهاجمون من هذا السلوك نفسه.

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

ولهذا قد تستوفي كلمة شائعة متبوعة بـ 1! قاعدة قديمة تفرض أرقامًا ورموزًا، من دون أن تصبح مقاومة فعليًا للتخمين.

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

إعادة استخدام كلمة المرور

حتى كلمة المرور القوية تصبح خطرة عندما تُستخدم في أكثر من خدمة.

لنفترض أن الخدمة (A) تعرضت لاختراق وتم كشف بيانات دخول أحد المستخدمين.

يمكن للمهاجم عندها تجربة البريد الإلكتروني وكلمة المرور نفسيهما في الخدمات (B) و(C) و(D).

يُعرف هذا الأسلوب باسم حشو بيانات الاعتماد (Credential Stuffing).

ولا يحتاج المهاجم هنا إلى كسر تشفير الخدمات الأخرى. فقد حولت إعادة استخدام كلمة المرور اختراقًا في خدمة واحدة إلى فرصة للدخول في خدمات أخرى.

استخدام كلمة مختلفة لكل حساب يحد من هذا الانتقال.

التصيّد

لا يحتاج المهاجم دائمًا إلى التخمين.

يمكن لصفحة تصيّد أن تحاكي صفحة تسجيل الدخول الحقيقية وتطلب من المستخدم إدخال كلمة المرور مباشرة.

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

رسم يوضح انتقال بيانات الدخول من المستخدم إلى موقع مصرفي مزيف

في هجوم التصيّد تصبح الواجهة — وليس تكوين كلمة المرور وحده — نقطة الفشل.

وتصنف إرشادات NIST كلمات المرور صراحةً على أنها غير مقاومة للتصيّد.

البرمجيات الخبيثة والأجهزة المخترقة

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

فقد تتمكن البرمجيات الخبيثة، أو إضافات المتصفح الضارة، أو برامج تسجيل لوحة المفاتيح، أو تطبيق مخترق من التقاط بيانات الدخول أو التلاعب بمسار التحقق.

وهذا يعيدنا إلى الفكرة الرئيسة في المقال السابق: أمن التحقق من الهوية يعتمد على النظام الذي يحيط بوسيلة التحقق.

ماذا تقول الإرشادات الحديثة عن كلمات المرور؟

تغيرت النصائح المتعلقة بكلمات المرور كثيرًا مقارنة بالقواعد التقليدية التي اعتاد عليها كثير من المستخدمين.

تركز إرشادات NIST SP 800-63B-4 الحالية لكلمات المرور التي يتم التحقق منها مركزيًا على الطول، ومنع الكلمات الضعيفة أو المكشوفة، والحد من محاولات التخمين، والتخزين الآمن بدلًا من فرض قواعد تعقيد عشوائية.

ومن أبرز المبادئ الموجهة للخدمات:

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

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

استخدم كلمة مرور طويلة وفريدة لكل حساب، ولا تعتمد على ذاكرتك لإدارة جميع كلمات المرور.

مديرو كلمات المرور يغيرون طبيعة المشكلة

يعالج مدير كلمات المرور أحد أصعب الجوانب المتعلقة باستخدام كلمات المرور: من غير الواقعي أن يتذكر المستخدم عددًا كبيرًا من الكلمات القوية والفريدة.

يمكن لمدير كلمات المرور إنشاء بيانات دخول عالية العشوائية وربط كل كلمة بالخدمة المناسبة.

ويحقق ذلك فائدتين أساسيتين.

أولًا، تكون الكلمات المولدة أقل اعتمادًا على الأنماط البشرية المتوقعة.

وثانيًا، تمنع الكلمات الفريدة استخدام كلمة مسربة من خدمة واحدة للوصول تلقائيًا إلى خدمة أخرى.

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

لكن مديري كلمات المرور ليسوا حلًا كاملًا بصورة تلقائية.

فالأنظمة المختلفة تفرض مفاضلات مختلفة تتعلق بـ:

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

في دراستنا المنشورة في ACM Computing Surveys، قيّمنا مديري كلمات المرور وأساليب التحقق الثنائي عبر أبعاد شملت سهولة الاستخدام، وقابلية النشر، والأمن، والخصوصية.

وتوضح المقارنة لماذا لا ينبغي اختزال اختيار مدير كلمات المرور في الادعاء بأن منتجًا أو بنية واحدة هي «الأفضل» بصورة مطلقة.

السؤال الأدق هو:

ما المخاطر التي يقللها هذا التصميم، وما المخاطر التي تبقى؟

لماذا تحتاج كلمات المرور إلى طبقة إضافية؟

يمكن لمدير كلمات المرور أن يجعل التخمين وإعادة استخدام كلمات المرور أكثر صعوبة بكثير.

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

وهنا يمكن لعامل تحقق إضافي أن يغيّر ما يحتاج المهاجم إلى تجاوزه.

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

يساعد مدير كلمات المرور في إنشاء بيانات دخول قوية وفريدة وإدارتها بسهولة.

أما العامل الثاني فيرفع الحاجز أمام المهاجم بعد كشف كلمة المرور.

ولا ينبغي اعتبار أي منهما حلًا سحريًا.

لكن الجمع بينهما يمكن أن يعالج أجزاء مختلفة من نموذج التهديد.

الارتباط بالأبحاث: هل يمكن تجنب حفظ كلمات مرور الحسابات؟

تعتمد معظم مديري كلمات المرور التقليدية على حماية مجموعة من كلمات مرور الحسابات وإتاحتها عندما يحتاجها المستخدم.

في أبحاثنا حول مدير كلمات المرور دون حفظ HIPPO، درسنا سؤالًا معماريًا مختلفًا:

هل يمكن لمدير كلمات المرور توفير كلمات قوية ومخصصة لكل موقع دون أن يعرف أو يحفظ كلمة المرور الرئيسة للمستخدم أو كلمات مرور حساباته؟

اقترح العمل الأصلي المنشور في ACM Symposium on Applied Computing توليد كلمة مرور قوية وفريدة لكل خدمة اعتمادًا على كلمة المرور الرئيسة للمستخدم ومفتاح تشفيري خاص بالخدمة.

ثم وسع عملنا اللاحق المنشور في IEEE Transactions on Information Forensics and Security هذا التصميم وقيّمه تجريبيًا.

ولا يعني ذلك أن بنية واحدة تحل كل تحديات كلمات المرور.

بل يوضح مبدأ تصميميًا أوسع:

مكان حفظ بيانات الدخول — أو عدم حفظها أصلًا — يغير نموذج التهديد للنظام.

وتزداد أهمية هذا السؤال مع تحول مديري كلمات المرور إلى مكونات مركزية في أنظمة الهوية الرقمية.

ممارسات أفضل لاستخدام كلمات المرور

بالنسبة لمعظم المستخدمين، يمكن البدء بالآتي:

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

الخلاصة

ما تزال كلمات المرور جزءًا أساسيًا من التحقق الرقمي لأنها قليلة التكلفة، ومألوفة، ويمكن نشرها على نطاق واسع.

وفي المقابل، فإن حدودها معروفة جيدًا.

يمكن تخمين كلمة المرور.

ويمكن إعادة استخدامها.

ويمكن سرقتها بالتصيّد.

ويمكن التقاطها من جهاز مخترق.

وحتى عندما تكون قوية، قد يفشل النظام المحيط بها في موضع آخر.

لذلك لا ينبغي أن يكون الهدف البحث عن كلمة مرور «مثالية».

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

وهذا يقود إلى السؤال الطبيعي التالي:

ما الذي يتغير عندما يتطلب التحقق أكثر من عامل واحد؟

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

المراجع

  1. Digital Identity Guidelines: Authentication and Authenticator Management — NIST SP 800-63B-4
  2. An In-Depth Analysis of Password Managers and Two-Factor Authentication Tools
  3. Building and Testing a Hidden-Password Online Password Manager
  4. A Hidden-Password Online Password Manager

النقاش والأسئلة

شارك في النقاش.

هل لديك سؤال، أو وجهة نظر مختلفة، أو تجربة عملية مرتبطة بهذا الموضوع؟ أرحب بالنقاشات الهادفة حول الأفكار والأدلة المطروحة في هذا المقال.

تواصل عبر LinkedInتواصل معي