الصورة الذهنية عند معظم الناس شخصٌ بقلنسوة يكتب تخمينات في مربّع تسجيل الدخول. ذلك الهجوم حقيقي، وهو أيضًا الهجوم الذي يصدّه كل نظام جادّ أصلًا: فبعد خمس محاولات خاطئة يُقفل الحساب، ويُحدّ معدّل الطلبات من عنوان IP، ويُطلب عامل ثانٍ. فلا يحصل المهاجم على أكثر من بضع مئات من التخمينات.
أما الهجوم الذي يهمّ فيقع في مكان آخر تمامًا، ويحصل على المليارات.
الهجوم الذي يقع فعلًا
تُخترق شركة وتُنسخ قاعدة بيانات مستخدميها. لا تحتوي تلك القاعدة على كلمات المرور — فأي نظام كفؤ يخزّن بصمة لكل واحدة، وهي قيمة ثابتة الطول لا يمكن عكسها. ما صار عند المهاجم الآن قائمة بصمات، على عتاده هو، بلا حدّ لمعدّل المحاولات، وبلا قفل، وبلا تسجيل.
يخمّنون دون اتّصال. احسب بصمة كلمة مرور مرشّحة، وقارنها بالقائمة، ثم كرّر. تتوقّف السرعة كلّيًّا على دالة البصمة التي اختارتها الشركة:
- MD5 أو SHA-1 — عشرات المليارات من التخمينات في الثانية على بطاقة رسوميات حديثة واحدة. هاتان لا تزالان تظهران في قواعد البيانات المخترقة.
- SHA-256 بلا ملح — مليارات في الثانية. السرعة فضيلة في المجاميع الاختبارية وكارثة في كلمات المرور.
- bcrypt أو scrypt أو Argon2 — بضع عشرات الآلاف في الثانية، بحكم التصميم. هذه الدوالّ بطيئة عمدًا ونهمة للذاكرة، وذلك يكلّف الخادم ميكروثوانٍ في كل تسجيل دخول ويكلّف المهاجم مضاعفًا قدره مليون.
لست أنت من يختار أيّها حماك. فذلك القرار اتّخذه من بنى الموقع قبل سنوات، ولن يُقال لك قطّ ما الذي اختاره. هذه أهمّ حقيقة منفردة في أمان كلمات المرور، وهي تدفع إلى سلوك واحد بعينه: لا تعِد استعمال كلمة مرور أبدًا، لأنك لا تستطيع أن تعرف أي المواقع سيسلّم كلمتك.
المهاجمون لا يخمّنون عشوائيًّا
القوة الغاشمة — تجريب aaaa ثم aaab ثم aaac — هي الملاذ الأخير لا الأول. ترتيب العمل هكذا:
1. قوائم الكلمات. كل كلمة مرور من كل اختراق سابق، مجموعة ومرتّبة حسب التكرار. مئات الملايين من كلمات المرور الحقيقية التي اختارها أناس حقيقيون. فإن ظهرت كلمتك يومًا في تسريب، فهي التخمين رقم واحد، ولا قيمة لطولها.
2. التشويه بالقواعد. خذ كل كلمة وطبّق عليها التحويلات التي يجريها البشر بلا استثناء تقريبًا. اجعل الحرف الأول كبيرًا. أضف رقمًا في الآخر. أضف سنة. أضف علامة تعجّب. استبدل a بـ@، وe بـ3، وo بـ0. تضمّ مجموعات القواعد القياسية عشرات الآلاف من هذه، وتُطبَّق على كل كلمة في القائمة.
لهذا ليست P@ssw0rd! كلمة مرور ذكية. فهي كلمة password وقد طُبِّقت عليها أربع من أشيع القواعد، وتسقط في أقل من ثانية. تبدو الاستبدالات مبتكَرة لأنك ابتكرتها بنفسك. يبتكر الجميع الاستبدالات نفسها.
3. الهجمات الهجينة وهجمات القناع. كلمة معروفة زائد سنة من أربعة أرقام. ثمانية محارف أولها كبير وأوسطها خمسة صغيرة وآخرها رقمان. هذا بالضبط الشكل الذي تدفع الناس إليه قاعدة «يجب أن تحتوي على حرف كبير وحرف صغير ورقم». فقواعد التعقيد ضيّقت فضاء البحث بدل أن توسّعه.
4. عندها فقط، القوة الغاشمة. عند هذه النقطة تكون معظم قاعدة البيانات قد كُسرت أصلًا.
لماذا يغلب الطول التعقيد
العشوائية — عدد الاحتمالات التي على المهاجم أن يمرّ بها — تساوي log₂(alphabet size) × length. الطول يضاعف. أما الأبجدية فداخل لوغاريتم لا غير.
الانتقال من أبجدية من 62 محرفًا إلى أبجدية من 95 محرفًا بإضافة الرموز يشتري لك 0.6 بتّ لكل محرف. أما إضافة محرف واحد فتشتري لك 5.9 بتّ. الطول يفوز بمرتبة كاملة، في كل مرة.
بالأرقام: كلمة مرور من ثمانية محارف تستعمل كل رمز في لوحة المفاتيح تساوي نحو 52 بتًّا. كلمة مرور من ستة عشر محرفًا لا تستعمل إلا الحروف الصغيرة تساوي نحو 75 بتًّا. الثانية أصعب كسرًا بنحو ثمانية ملايين مرة، وأسهل بكثير في الكتابة على هاتف.
لهذا تنجح عبارة المرور. أربع كلمات عشوائية من قائمة فيها ألفا كلمة تساوي نحو 44 بتًّا؛ وستّ كلمات تساوي 66 بتًّا ويمكنك أن تنطقها بصوت عالٍ. الكلمة الحاسمة هي عشوائية — فالكلمات التي اخترتها بنفسك ليست كذلك، لأن اختيار البشر للكلمات يتكتّل بشدّة، ولأن عبارة من كتاب أو أغنية موجودة في قائمة كلمات أصلًا.
كم يستغرق ذلك فعلًا؟
خذ 100 مليار تخمين في الثانية — مهاجم جيّد التمويل في مواجهة بصمة سريعة. في المتوسّط تُكسر كلمة المرور بعد البحث في نصف الفضاء:
- 8 محارف، حروف صغيرة فقط — أقل من ثانية
- 8 محارف، حروف كبيرة وصغيرة وأرقام — نحو 3 دقائق
- 8 محارف، كل شيء — نحو 3 ساعات
- 12 محرفًا، حروف كبيرة وصغيرة وأرقام — نحو 30 سنة
- 16 محرفًا، حروف صغيرة فقط — نحو 6 ملايين سنة
كل رقم من هذه يفترض أن كلمة المرور ليست في قائمة كلمات ولا تتبع نمطًا. فإن كانت كذلك، فلا ينطبق منها شيء والجواب «فورًا». يمكنك تمرير أيّ منها عبر فاحص القوة، الذي يجري الحساب ويشير على حدة إلى الأنماط التي لا يراها الحساب.
أين أخطأت النصيحة
القواعد التي تعلّمها معظمنا — ثمانية محارف، وحرف كبير، ورقم، ورمز، وتغيير كل تسعين يومًا — جاءت من وثيقة كتبها بيل بور في NIST سنة 2003. قال علنًا منذ ذلك الحين إنه نادم عليها. أما المراجعة الصادرة سنة 2017، NIST Special Publication 800-63B، فقد نقضت معظمها، والتعليل يستحقّ القراءة:
- قواعد التركيب تأتي بعكس المراد. فهي تدفع الجميع نحو الأشكال المتوقَّعة نفسها، وذلك بالضبط ما يستغلّه هجوم القناع.
- انتهاء الصلاحية الإجباري يضعف كلمات المرور. فمن يُجبَر على التغيير كل تسعين يومًا يختار
Summer2024!ثمAutumn2024!. غيّرها حين يكون لديك سبب يجعلك تظنّ أنها انكشفت، لا حسب التقويم. - ينبغي تشجيع الطول ويجب قبول كلمات المرور الطويلة. فالموقع الذي يضع حدًّا أقصى عند ستة عشر محرفًا يخبرك أن شيئًا خاطئًا يجري خلف الكواليس — فكلمة المرور المحسوبة بصمتها كما ينبغي حجمها ثابت مهما طال المدخل.
- افحصها مقابل قوائم الاختراقات المعروفة بدل فرض قواعد محارف اعتباطية.
الملح، ولماذا تختلف كلمة المرور نفسها
الملح قيمة عشوائية تُخزّن بجانب كل بصمة وتُخلط قبل حسابها. فبدونه تعطي كلمات المرور المتطابقة بصمات متطابقة — فيكسر المهاجم واحدة ويحصل على كل حساب شاركها، وتنجح جداول قوس قزح المحسوبة سلفًا. أما مع ملح فريد لكل مستخدم، فيجب مهاجمة كل كلمة مرور على حدة.
التمليح ليس اختياريًّا ولم يكن كذلك منذ عقود. فحين يقول تقرير اختراق إن «كلمات المرور كانت بلا ملح»، فمعناه أن قاعدة البيانات كلها سقطت بسرعة أشيع كلمة مرور فيها.
ماذا تفعل فعلًا
استعمل مدير كلمات مرور وكلمة مرور مختلفة في كل مكان. هذا هو الجواب كله، وما عداه تفصيل. إعادة الاستعمال هي ما يحوّل اختراق شركة واحدة إلى مشكلتك أنت، ولا قدر من الذكاء في كلمة مرور واحدة يصلح ذلك.
دعه يولّدها. عشرون محرفًا عشوائيًّا لا تراها قطّ أفضل قطعًا من أي شيء يمكن حفظه، لأنك لن تكتبها أصلًا. خصّص عبارة المرور التي تُحفظ للاثنتين اللتين يجب أن تعرفهما عن ظهر قلب: كلمة المرور الرئيسية لمدير كلمات المرور، وتسجيل الدخول إلى جهازك.
شغّل عاملًا ثانيًا حيثما توفّر، وآثر تطبيق مصادقة أو مفتاحًا عتاديًّا على الرسائل النصية، فهي عرضة لتبديل شريحة الهاتف. وجود عامل ثانٍ يعني أن كلمة مرور مكسورة وحدها لا تكفي.
لا تكتب كلمة مرور حقيقية أبدًا في فاحص قوة يرفعها. فالطلب يذهب إلى خادم، عبر شبكة، إلى سجلّات لا تراها. هذا النوع الوحيد من الأدوات الذي يقرّر فيه مكانُ تشغيلها هل يجوز استعمالها أصلًا. هذا الفاحص والمولّد يعملان في متصفّحك، ويمكنك التأكّد بقطع اتّصالك بالإنترنت ومراقبتهما وهما يواصلان العمل.
الخلاصة
تُكسر كلمات المرور دون اتّصال، بالجملة، بمليارات التخمينات في الثانية، انطلاقًا من قوائم كلمات مرور حقيقية ومن الطرق المتوقَّعة التي يعدّلها بها الناس. الطول يغلب التعقيد لأنه يضاعف بدل أن يجمع. إعادة الاستعمال هي العطل الذي يحوّل اختراق غيرك إلى اختراقك. استعمل مديرًا، واجعلها طويلة، وأضف عاملًا ثانيًا.