Diceware: كيف يصنع حجر النرد كلمة سر أفضل منك

نُشر في بقلم David Carrero

فكّر في كلمة عشوائية. الآن، أول ما يخطر ببالك.

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

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

مهندس وخمسة أحجار نرد وقائمة

في عام 1995، نشر Arnold G. Reinhold على صفحته الإلكترونية طريقة أسماها Diceware. الفكرة من البساطة بحيث يُغيظك أنها تحتاج إلى شرح: إذا كانت المشكلة أن الإنسان لا يُحسن الاختيار العشوائي، فانزع عن الإنسان الاختيار.

الإجراء كله يسع ثلاثة أسطر:

  1. ترمي خمسة أحجار نرد وتدوّن النتائج بالترتيب. لنقل إنها خرجت 4-2-6-1-3.
  2. تبحث عن 42613 في قائمة.
  3. تلك كلمتك. وتُعيد الكرّة للكلمة التالية.

القائمة تضمّ 7776 مدخلًا، وهذا العدد ليس اعتباطيًا: إنه 6⁵، أي كل النتائج الممكنة لخمسة أحجار نرد. كل تركيبة — من 11111 إلى 66666 — تشير إلى مدخل مختلف، فلا يبقى واحد خارج القائمة ولا يتكرّر واحد. القائمة الأصلية تخلط كلمات إنجليزية قصيرة مع بعض المقاطع والأرقام والرموز المفردة، وذلك تحديدًا لأن العثور على 7776 كلمة جيدة أصعب مما يبدو.

المهم ليس القائمة. المهم هو النرد.

لماذا 12.9 بت هي 12.9 بت

هنا الجزء الذي لا يكاد أحد يفهمه، وهو الوحيد الذي يهمّ.

إنتروبيا كلمة Diceware الواحدة هي log₂(7776) = 12.9 بت. هذا حساب، لا أمان: هناك 7776 نتيجة ولها جميعًا الاحتمال نفسه بالضبط.

قارن ذلك بما يحدث حين تختار أنت. لو طلبت منك كلمة من معجم فيه 7776 كلمة، تبدو العملية الحسابية نفسها — فهناك أيضًا 7776 خيارًا — لكنها ليست كذلك، لأنك لا تختارها باحتمال متساوٍ. ستختار كلمات شائعة، كلمات تعجبك، كلمات رأيتها اليوم. ذلك المعجم يساوي 12.9 بت على الورق وأقلّ من ذلك بكثير داخل رأسك، والمهاجم يرتّب قائمته حسب التواتر ويجرّب أولًا ما يختاره الناس. الإنتروبيا ليست عدد الخيارات المتاحة: بل عدد الخيارات المتبقّية بعد خصم ما يعرفه المهاجم عن أذواقك.

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

ولهذا تصعد الحسابات كما ينبغي. كل كلمة تضيف:

  • خمس كلمات: نحو 64 بت.
  • ست كلمات: نحو 77 بت.
  • سبع كلمات: نحو 90 بت.

إنه جمع نظيف، لا ضرب سحري، لأن كل رمية مستقلّة عن الأخريات. يوصي Reinhold بألّا تنزل عن خمس كلمات، وبستّ أو أكثر لما يهمّ فعلًا. يمكنك رؤية الأثر في المولّد: إضافة كلمة تضيف القدر نفسه دائمًا، وهذا الـ”دائمًا“ هو الاختراع كله.

السرّ ليس القائمة

الاعتراض يأتي من تلقاء نفسه: إذا كانت القائمة علنية، أفلا يسهُل كسرها؟

لا، ويجدر قول ذلك على مهل. الـ12.9 بت تفترض أصلًا أن المهاجم يملك القائمة. وتفترض كذلك أنه يعرف أنك تستخدم Diceware، وأنه يعرف كم كلمة في عبارتك، وأنه يعرف الترتيب الذي تكتبها به. كل ذلك مخصوم سلفًا. الشيء الوحيد الذي لا يعرفه هو ما خرج في نردك، وهذا بالضبط ما تعدّه حين تقول ”77 بت“.

وهو عكس ما نفعله مع P@ssw0rd، حيث يقوم كل الرجاء على ألّا يخطر لأحد استبدال الـa بـ@. سيخطر له. إنها من أوائل القواعد التي تطبّقها أي أداة هجوم بالمعجم. إن راودتك التجربة، فجرّبها في المُدقِّق وانظر كم تصمد.

مؤسسة EFF والقوائم البديلة

في عام 2016، نشرت Electronic Frontier Foundation قوائم كلماتها الخاصة لعبارات النرد. القائمة الطويلة تحتفظ بالـ7776 مدخلًا — الأحجار الخمسة نفسها، والـ12.9 بت نفسها — لكنها تغيّر المحتوى: خارجًا المقاطع الغريبة والرموز، وداخلًا كلمات دارجة يسهل كتابتها وتمييز بعضها من بعض. ونشروا أيضًا قوائم قصيرة من 1296 كلمة (6⁴، أربعة أحجار نرد، 10.3 بت للكلمة): واحدة بكلمات أقصر وأسهل حفظًا، وأخرى مصمّمة بحيث تتميّز كل كلمة عن سواها بأحرفها الأولى فيمكن إكمالها تلقائيًا. وفي المقابل، تساوي كل رمية أقلّ ويلزم الرمي مرّات أكثر.

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

الطرق الثلاث لإفساد الأمر

يفشل Diceware بثلاث طرق، وثلاثتها الخطأ نفسه: الإنسان يعود ليدسّ يده.

  • أن ترمي ثم تعيد الرمي لأن ”هذه لا تعجبني“. إن رفضت النتائج فأنت لم تعد تستعمل النرد: أنت تستعمل ذوقك ونردًا للديكور. ما يخرج يخرج.
  • أن تعيد ترتيب الكلمات كي تبدو جملة مفيدة. الترتيب أيضًا جزء من الرمية.
  • أن ”تحسّنها“ بعلامة ! في آخرها وحرف كبير في أولها. هذا لا يضيف شيئًا أمام مهاجم يعرف أن الناس يضعون ! في الآخر وحرفًا كبيرًا في الأول. إن كان عليك الامتثال لسياسة حمقاء فافعل، لكن لا تظنّ أنك ربحت أمانًا: ربحته حين رميت مرّة أخرى.

وتحذير كان Reinhold يذكره منذ البداية: النرد العادي يفي بالغرض تمامًا — نرد الكازينوهات أدقّ، لكنه غير ضروري — ويُستحسن الرمي على سطح أملس، والنتيجة تُدوَّن كما خرجت.

الخلاصة

عبارة من ست كلمات مسحوبة بالنرد أطول في الكتابة من P@ssw0rd، وأسهل في التذكّر من Tr0ub4dor&3، وأغلى في الكسر من كلتيهما بمراتب كثيرة. لا لأنها أكثر تعقيدًا — وهي ليست كذلك، فهي ست كلمات عادية — بل لأنها الشيء الوحيد في كلمة سرّك الذي لم تقرّره أنت.

هذه هي نكتة Diceware كاملةً: أفضل كلمة سر يمكن أن تملكها هي تلك التي لا رأي لك فيها.


المصادر: Arnold G. Reinhold، «The Diceware Passphrase Home Page» وقائمته المكوّنة من 7776 كلمة (1995) · Electronic Frontier Foundation، قوائم كلمات لعبارات كلمات السر بالنرد (2016) · والحساب قابل للتحقق: 6⁵ = 7776 وlog₂(7776) ≈ 12.92 بت للكلمة.

← العودة إلى المدونة