ما هو البديل لكلمة مرور اليوم عندما لا يتم تخزين كلمة المرور النصية المستحقة على منتج خدمة الويب؟

StackOverflow https://stackoverflow.com/questions/3109232

سؤال

سيناريو:

يحتوي منتج خدمة الويب على تجزئة SHA-1 فقط من كلمات المرور المخزنة في قاعدة البيانات. نحتاج إلى مصادقة مستخدمي خدمة الويب باستخدام مجموعة اسم المستخدم/كلمة المرور.


ملفات أمان خدمات الويب usernametoken يسمح لنا بإضافة رؤوس الصابون لهذا الغرض:

يتم تقديم العنصر في WSS: مستندات أمان الرسائل الصابون كوسيلة لتوفير اسم مستخدم.

داخل العنصر ، يمكن تحديد عنصر. لا تقتصر كلمات المرور من type passwordtext و passworddigest على كلمات المرور الفعلية ، على الرغم من أن هذه حالة شائعة. (146-151)

نوع كلمة المرور ، يعني نوع كلمة المرور أنه يتم إرسال كلمة المرور عبر السلك كنص عادي يمثل مشكلة أمان إذا لم نستخدم آليات أمان مستوى النقل. PasswordDigest يتجنب إرسال كلمات مرور النص العادي ويرسل تجزئة. ولكن لتجنب إعادة تشغيل الهجوم (أي المهاجم باستخدام WiRetAP لالتقاط كلمة مرور التجزئة وإعادة تقديمها بطلب آخر) ، يضيف كلمة المرور الطابع الزمني ورقم عشوائي إلى كلمة المرور قبل حساب التجزئة. تؤدي هذه الإضافة إلى اتباع القيود:

لاحظ أنه لا يمكن استخدام Passwordigest إلا إذا كانت كلمة المرور النصية العادية (أو ما يعادل كلمة المرور) متاحة لكل من الطلب والمستلم. (196-197)


ولكن في حالتنا ليس لدينا كلمة مرور نصية. سؤالي هو: ما هو البديل الذي لدينا آخر لإتاحة كلمات مرور النص العادي على الخادم؟

هل كانت مفيدة؟

المحلول

يمكن استخدام SHA-1 بشكل مثالي ككلمة كلمة مرور "نص عادي".

  • اسأل المستخدم كلمة المرور
  • تحويله إلى SHA-1
  • قم بتشغيله من خلال كلمة المرور
  • سيفعل الخادم نفس الشيء مع SHA-1 في قاعدة البيانات
  • سيجد الخادم أنه يتطابق ويسمح بالوصول
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top