محاولة لتطبيق فكرة كلمة المرور مع قالب/خطوات يختارها المستخدم

السلام عليكم،

سابقا طرح موضوع بعنوان "فكرة - كلمة مرور ديناميكية من خلال النموذج هل تراها فكرة جيدة ؟"

https://arabia.io/go/10789

ما رأيكم بمحاولة تطبيق فكرة مشابهة، حيث المستخدم يدخل قالب + كلمة المرور:

عناصر:

  • كلمة المرور - يدخلها المستخدم و يختارها

  • القالب - يدخله المستخدم و يختاره (يشبه الكود البرمجي)

  • هاش كلمة المرور النهائي - يتم عمله داخل الخادم - يخزن في قاعدة البيانات

  • سلسلة قصيرة من بايتات عشوائية (تستعمل كـ salt) - تولد من PRNG في الخادم - يخزن في قاعدة البيانات

لنعتبر أن المستخدم اختار كقالب:

loop(len(password) times){hash=sha256(password+hash}
final_output=salt+hash

و ذلك يطلب منه مع كلمة المرور لما يريد الدخول. و في خانة أخرى من الصفحة يكتب كلمة المرور.

salt=make_random_bytes(len=32)

original_final_hash و salt يتم حسابهما/توليدهما داخل الخادم لما يسجل المستخدم أو يغير كلمة المرور ثم يحفظان داخل قاعدة البيانات بدون تغيير.

و يتم برمجة دالة تعالج القالب لتنفذه و تعوض المتغيرات و عناصر القالب محددة مسبقا مثل عنصر loop و دالة حساب طول كلمة و دالة الهاش...إلخ من عناصر أساسية. ثم ما يخرج من بيانات من القالب (final_output) سيتم حساب الهاش الخاص به:

new_final_hash=sha256(final_output)

ثم يقارن new_final_hash مع original_final_hash

تلك كانت الطريقة لتخزين كلمة المرور بأمان أكثر...

ما الذي تزيده هذه الطريقة أو ما الجديد فيها؟

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

هل هناك عيوب كبيرة؟

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

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

  • يمكن أن يختار المستخدم قالب سيء يضعف من التشفير. ربما على الموقع/البرنامج أن يقترح قالب على المستخدم إن لم يعرف ماذا يفعل.

  • موجهة للمستخدم المتقدم.


وعليكم السلام،

فكرة رائعة في وجهة نظري.

اسمح لي بطرح بعض الحلول للعيوب التي ذكرتها:

١. يمكن إنشاء أداة يتم تحديد القالب من خلالها بدلاً من كتابته ككود، وذلك مثلاً يكون مربع به خطوات، ومجموعة اختيارات، يقوم المستخدم بسحب كل اختيار ووضعه في خطوة، مثلاً يضع في الخطوة الاولى تكرار بعدد مرات معين، والخطوة الثانية اضافة الـ hash، وهكذا. في النهاية يكون المستخدم حدد القالب لكن بدون كتابة كود، فربما تكون هذه الطريقة ابسط على المستخدم.

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

٣. كذلك يمكن حفظ بعض القوالب كنماذج منشورة، بحيث يمكن للمستخدم استعمال احدها، وبذلك يوفر وقت انشاء قالب خاص، وكذلك يوفر وقت وجهد تذكر وادخال قالبه الخاص عند تسجيل الدخول، بمجرد اختيار القالب الذي يستعمله من النماذج المنشورة اثناء التسجيل وكذلك اثناء تسجيل الدخول.

هذا ما لدي من أفكار حتى الآن، لكن فعلاً متحمس لفكرتك وأجدها رائعة.

لا تنسى أن "القالب" بأهمية كلمة المرور.

لكن لا أهمية له بدون كلمة المرور، وكذلك العكس.

٣. كذلك يمكن حفظ بعض القوالب كنماذج منشورة، بحيث يمكن للمستخدم استعمال احدها، وبذلك يوفر وقت انشاء قالب خاص، وكذلك يوفر وقت وجهد تذكر وادخال قالبه الخاص عند تسجيل الدخول، بمجرد اختيار القالب الذي يستعمله من النماذج المنشورة اثناء التسجيل وكذلك اثناء تسجيل الدخول.

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

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