it-swarm.asia

باستخدام اثنين من الأملاح لمصادقة المستخدم؟

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

أتذكر القراءة في مكان ما (لكنني لا أتذكر أين) مقالة حول استخدام اثنين أملاح (طويلة بما يكفي وتولد بشكل عشوائي):

  1. ملح عالمي واحد
  2. ملح فريد لكل دخول

ستكون التجزئة الناتجة هي: hash(globalSalt + password + uniqueSalt) (ترتيب التسلسل ليس مهمًا حقًا).

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

6
Wookai

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

بلدي يأخذ هو:

الملح الثابت (الذي تسميه عالمي) ذو قيمة إلى حد ما بسبب:

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

الملح لكل كلمة المرور مهم لأنه:

  • إنها سلسلة عشوائية ، فريدة لكل كلمة مرور ، يتم إنشاؤها على جانب الخادم ، ويتم تخزينها بنص عادي في قاعدة البيانات. بالنسبة لكلمات مرور N ، فإن هذا يجعل بفعالية مساحة البحث الإجمالية لـ جدول قوس قزح إرفاق N x N. هذا لا يمكن أن تتم مهاجمته بشكل فعال بواسطة جداول Rainbow المحسوبة مسبقًا اليوم بسبب الحجم الهائل لمجموعة البيانات.

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

التحرير: يرجى قراءة المقال الممتاز "كفى مع طاولات قوس قزح: ما تحتاج لمعرفته حول مخططات كلمة المرور الآمنة" . معظم ما يقال عن تجزئة كلمة المرور غير صحيح ، بما في ذلك نهج "MD5/SHA256 بالكامل مع الملح" الذي يستخدم كثيرًا.

8
Jesper Mortensen

لقد تم طرح هذا الأمر بالفعل على StackOverflow: ملح مزدوج لتجزئة كلمات المرور؟

4
John Conde

لقد قرأت للتو هذا السؤال وذكرتني بسؤال نشرته في SO منذ عام تقريبًا: معلومات شاملة حول أملاح التجزئة . قد تكون مهتمًا بقراءة السؤال والأجوبة حيث أنه يحتوي على بعض المعلومات الأخرى التي قد تكون مفيدة جدًا لأي شخص مهتم بمعرفة المزيد عن التجزئة.

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

1
evolve