شيفرة هذه الصفحة لم تبدأ العمل.

فتح index.html مباشرة من مجلد يمنع المتصفح من تحميل وحدات JavaScript، فلا يحدث شيء عند اختيار طول. قدّم المجلد عبر HTTP بدلا من ذلك:

powershell -ExecutionPolicy Bypass -File serve.ps1

ثم افتح http://localhost:8080/.

كلمة مرور وعبارة مرور — واحدة قوية عشوائية، مصنوعة في متصفحك

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

اللغة: العربية
عرض الشيفرة المصدرية
كلمات مرورك وعبارات مرورك لا تُرفع أبدا. لا يوجد خادم.

كل محرف يأتي من crypto.getRandomValues، وهو المولّد التعمياني الخاص بالمتصفح، وكل كلمة من قائمة تُشحَن في هذا المجلد باسم src/wordlist.js. ولا يوجد fetch ولا XMLHttpRequest ولا sendBeacon في أي موضع من src/، فليس ثمّة مسار شيفرة تبلغ به كلمةُ مرور صُنِعت هنا إلينا ولا إلى أحد سوانا — ولا يُكتَب شيء في التخزين كذلك، فإعادةُ تحميل هذه الصفحة تُتلِف كل كلمة مرور عرضتها عليك قط.

فحص حي: جارٍ الفحص…

دون اتصال: جارٍ الفحص…

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

1 اختر ماذا تصنع

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

2 اضبطها

الطول الطول يغلب كل ما عداه. فإضافةُ محرف واحد إلى أبجدية من أربعة وتسعين محرفاً تساوي أكثر من أي قاعدة عن أي المحارف يجب أن تظهر فيها.

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

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

بلا محارف متشابهة تُسقِط I l 1 | وO 0، لكلمة مرور لا بدّ من قراءتها عن شاشة وكتابتها في مكان آخر. أضِف محرفاً أو اثنين من الطول ثمناً لذلك.

الكلمات أربع كلمات هي الصورة المشهورة وهي دون ما يستحق الاستعمال اليوم. والستّ هي الأرضية المعقولة لأي شيء يهمّ، والسبع لكلمة المرور التي تحرس كل ما عداها.

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

بين الكلمات الرقمُ العشوائي وحده من هذه هو الذي يضيف شيئاً، لأنه اختيار جديد عند كل وصلة لا قاعدة. أما البقية فعن ما سيقبله الحقل الذي تلصق فيه — والمسافة أقرؤها وأرجحُها أن تُفسَد.

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

أنهِها برمز للاستمارة المُصِرّة نفسها. والرقم اختيار حقيقي ويساوي 3.3 بتّاً؛ والرمز يُسحَب من ثمانية ويساوي 3.

20
المحارف التي يُسحَب منها

3 خذها

أو اصنع عدة دفعة واحدة القائمة المنزَّلة ملفٌّ نصّي صِرف تكتبه هذه الصفحة مما هو على شاشتك أصلاً. يحفظه متصفحك، على قرصك أنت، ولا شيء يرسله إلى أي مكان — لكنّ ملفاً مملوءاً بكلمات المرور على قرص يظل ملفاً مملوءاً بكلمات المرور على قرص. انقلها إلى مدير كلمات مرور واحذفه.

— بتّاً من العشوائية

على المهاجم أن يمرّ على — احتمالاً كي يتيقّن من إيجادها.

ما الذي يفترضه ذلك التقدير

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

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

1

لا شيء هنا يُتذكَّر

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

عرض بصيغة Markdown

كيف تصنع كلمة مرور قوية دون أن يراها موقع

  1. اختر كلمة مرور أو عبارة مرور. كلمةُ المرور مجرى محارف عشوائية: قصيرة في التخزين، عسيرة في الكتابة، وهي بالضبط الصواب لمئات الحسابات التي يملؤها عنك مدير كلمات المرور. أما عبارةُ المرور فكلماتٌ تُسحَب عشوائياً من قائمة: أطول، لكنها تُحفَظ وتُنطَق، وذلك ما تحتاج إليه للأسرار القليلة التي عليك كتابتها من الذاكرة — كلمة مرور مدير كلمات المرور نفسه، وكلمة حاسوبك، ورمز استرداد هاتفك.
  2. اضبط الطول، أو عدد الكلمات. هذا هو الإعداد الذي يهمّ والبقيةُ في الغالب لا تهمّ. فعشرون محرفاً، أو ست كلمات، أرضيةٌ معقولة لأي شيء يستحق الحماية؛ وزِد عليها للحساب الذي يتيح لأحدهم إعادة تعيين كل ما عداه. والقراءة التي تحته تتحرّك وأنت تسحب، فترى ماذا يشتري كل محرف إضافي.
  3. فعِّل القواعد التي ستصرّ عليها الاستمارة. «واحد على الأقل من كل نوع»، ورقمٌ في الآخر، ورمزٌ من القائمة القصيرة التي يقبلها كل موقع. ولا شيء من هذه يزيد شيئاً قوةً — بل الأولى تضعفه قليلاً جداً، والصفحة طرحت ذلك أصلاً — لكنها كيف تتجاوز استمارة تسجيل دون أن تولّد ستاً على التوالي.
  4. اقرأ الرقم، لا اللون. تُعَدُّ البتّات من الإعدادات التي أنتجت السلسلة: حجمُ الأبجدية، وعددُ السحبات، ولا شيء غير ذلك. وذلك قياس حقيقي، على خلاف المؤشِّر الذي في صفحة التسجيل، فهو لا يستطيع إلا تقييم المحارف التي أمامه ولا سبيل له إلى معرفة هل اخترتها أنت أم مولّد.
  5. انسخها، وضعها في مكان، قبل أن تغادر. لا سجلّ هنا ولا سبيل إلى استرجاعها؛ وإعادةُ تحميل الصفحة تُتلِفها. الصقها في مدير كلمات المرور أولاً وفي استمارة التسجيل ثانياً، كي يكون الذي عليه تذكّرها قد حصل عليها قبل أن يقع خطب.
  6. خذ دفعة إن احتجت إلى واحدة. المِزلاج الذي في الأسفل يصنع حتى مئة دفعة واحدة ويحفظها ملفاً نصّياً صِرفاً، تكتبه هذه الصفحة مما هو على شاشتك أصلاً. وهو مفيد لتأسيس حسابات أو لتوزيع بيانات دخول أولية، وجديرٌ بالحذف في اللحظة التي تصير فيها في مكان أفضل: فملفٌّ مملوء بكلمات المرور على قرصك يظل ملفاً مملوءاً بكلمات المرور.

أسئلة

هل تُرسَل كلمات المرور إلى أي مكان، أو تُخزَّن؟

لا هذا ولا ذاك. تُصنَع في متصفحك، على جهازك أنت، وليست لهذه الأداة وظيفة شبكية من أي نوع — فهي لا تجلب شيئاً ولا ترسل شيئاً أبداً. ولا يُكتَب شيء في التخزين كذلك: لا localStorage، ولا كعكة، ولا سجلّ. أعِد تحميل الصفحة فتذهب كل كلمة مرور عرضتها عليك، من الشاشة ومن ذاكرتها هي. وContent-Security-Policy الخاصة بالصفحة تُسمّي كل عنوان يجوز لها الاتصال به وليس واحد منها لنا، فليس ثمّة مكان تُجمَع فيه كلمة مرور حتى لو حاول شيء.

من أين تأتي العشوائية؟

من crypto.getRandomValues، وهو المولّد الذي توفّره المتصفحات للاستعمال التعمياني، يبذره نظام تشغيلك ويعيد بذره من مجمع العشوائية الخاص به. وهو المصدر نفسه الذي يستعمله المتصفح لمادة مفاتيح TLS. أما Math.random فلا يُستعمَل في أي موضع من هذه الأداة، وذلك التمييز ليس تشدّقاً: فـ Math.random مولّدٌ حسابي سريع يمكن إعادة بناء حالته الداخلية كلها من بضع مخرجات متتالية، فمولّدُ كلمات مرور مبنيٌّ عليه ينتج كلمات مرور تبدو عشوائية ويمكن تعدادها عند كل من رأى واحدة منها.

هل كلمة المرور المصنوعة في متصفح بجودة واحدة من برنامج سطح مكتب؟

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

كلمة مرور أم عبارة مرور — أيّهما ينبغي أن أستعمل فعلاً؟

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

كم ينبغي أن يكون طول كلمة المرور؟

عشرون محرفاً على الأبجدية الكاملة نحو 130 بتّاً وهي بعد النقطة التي يكفّ عندها الطول عن أن يكون الشيء الذي يُقلِق. وستة عشر لا بأس بها. واثنا عشر أرضيةٌ لأي شيء يهمّك فقدُه، وهي الأرضية لا الهدف. ودون ذلك تعتمد على أن الموقع خزّنها كما ينبغي، وهو رهانٌ توحي إشعارات الاختراق في العشرين سنة الماضية بألا تراهنه. والطول يغلب كل إعداد آخر على الصفحة؛ فإضافةُ محرف واحد تساوي أكثر من أي قاعدة عن أي المحارف يجب أن تظهر.

كم كلمة ينبغي أن تكون في عبارة المرور؟

ستٌّ من القائمة الطويلة، وسبعٌ إن كانت تحرس كلمات مرور أخرى. فالصورة الشهيرة ذات الكلمات الأربع رُسِمت في 2011، وهي 51 بتّاً، وهي في متناول هجوم غير متصل جادّ اليوم. والخمس 64. والستّ 77، وهي بعد أي شيء سينفقه مهاجم على حساب عادي واحد. وكل كلمة إضافية من القائمة الطويلة تضيف 12.9 بتّاً، والكلماتُ هي الجزء الوحيد الذي يضيف شيئاً — أما الشُّرَط والأحرف الكبيرة فلا.

ما «البتّ»، ولماذا تعدّه هذه الصفحة؟

البتُّ مضاعفة. فستون بتّاً تعني أنه كان ثمّة 2^60 نتيجة متساوية الاحتمال تستطيع هذه الصفحة إنتاجها، فالمهاجم الذي يعرف كيف تعمل بالضبط يبقى أمامه ذلك العدد ليجرّبه. وهي خاصية العملية لا خاصية السلسلة: فالصفحة تستطيع ذكرها بالضبط لأنها هي التي اختارت وهي تعرف كم اختياراً اتخذت. وذلك هو الفرق بين هذا وبين الشريط الملوَّن في استمارة تسجيل، فهو يقرأ المحارف ويخمّن. وعلى ذلك الشريط تسجّل correct horse battery staple نتيجةً سيئة وهي تساوي 44 بتّاً، وتسجّل P@ssw0rd! نتيجةً حسنة وهي لا تساوي شيئاً تقريباً.

لماذا تُضعِف «يجب أن تحوي رمزاً» كلمةَ المرور؟

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

ما هذه القائمة، وهل يهمّ أن المهاجم يستطيع تنزيلها؟

هي قوائم diceware الخاصة بمؤسسة الحدود الإلكترونية (EFF)، مشحونة دون تعديل: 7,776 كلمة للطويلة و1,296 للقصيرة. وقد بُنِيت لهذا بالضبط — لا شيء مسيء، ولا كلمات متجانسة، ولا أزواج تلتحم فتصير كلمة ثالثة، وفي القصيرة لا كلمة هي بداية أخرى. ولا، لا يهمّ أن القائمة علنية: فالقوة المذكورة هنا تفترض أن المهاجم عنده القائمة، وأنه ينظر في مصدر هذه الصفحة، ويعرف كل إعداد استعملته. والشيء الوحيد الذي لا يعرفه أيُّ الـ 7,776 خرجت في كل مرة. وذلك الافتراض هو ما يجعل الرقم جديراً بالثقة.

أليست عبارةُ المرور هجومَ قاموس ينتظر أن يقع؟

ليست كذلك حين تُختار الكلمات على هذا النحو. فهجوم القاموس ينجح في مقابل العبارات التي يختارها الناس، لأن الناس يختارون كلمات يمشي بعضها مع بعض، بترتيب معقول، من الآلاف القليلة التي يستعملونها كل يوم. وهذه الصفحة تختار كل كلمة مستقلةً، بانتظام، من قائمة ثابتة، دون اكتراث بحسن قراءة الناتج — ولذلك لا يُقرأ حسناً عادةً. والمهاجم الذي يعرف القائمة والطول يبقى أمامه 7,776 مرفوعةً إلى عدد الكلمات.

هل أستطيع استرجاع كلمة مرور بعد أن أغادر الصفحة؟

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

هل نسخُها إلى الحافظة آمن؟

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

هل ينبغي أن أستعمل الواحدة نفسها في أكثر من موضع؟

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

هل هو مجاني، وهل أحتاج إلى حساب؟

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

هل يعمل دون اتصال؟

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