سؤال

سؤالي الأول: هل سمعت هذا من تجزئة السلسلة 2 مرات (على سبيل المثالsha1(sha1(كلمة المرور)) ) لأن الثانية تجزئة له طول ثابت, هل هذا صحيح??

بلدي السؤال الثاني الذي هو أكثر أمانا ؟ (var1 و var2 2 سلاسل):

  1. sha1(var1 + sha1(var2))
  2. sha1(var1 + var2)

إذا كان واحد 1, هل يستحق الأداء التكلفة ؟

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

المحلول

من خلال تجزئة السلسلة مرتين ، يتم زيادة خطر التصادم الذي هو سيئة من الناحية الأمنية.

بدلا من وجود مبلغ لا حصر له من المدخلات تؤدي إلى 2128 ممكن نواتج سيكون لديك 2128 ممكن المدخلات تؤدي إلى ربما أقل من 2128 النواتج.

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

نصائح أخرى

  • sha1(var1 + sha1(var2))
  • sha1(var1 + var2)

لا هو آمن جدا.لا إعادة اختراع العجلة. HMAC وقد تم تصميم هذا ؛ على وجه الخصوص ، فإنه يأخذ خطوات (الحشو ، الخ) لتجنب المشاكل مع بعض نقاط الضعف في بعض خوارزميات التجزئة التفاعل بشدة مع ما سبق 'بسيطة' تطبيقات.

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

وقال القائم طبق الأصل الهجمات قد لا تعمل ضد مزدوجة تجزئة ...ولكن!قد لا تزال تعمل.أنا لست مؤهل أن أقول أي و إن كنت تسأل هذا هنا, ربما أنت إما لا.بالتأكيد الاصطدام الهجمات التي هي كل ما عملي مع MD5 اليوم لا يعوقها ضعف التجزئة.

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

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

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

باستخدام واحد فقط و لا الملح يسمح لها بسهولة أن تحل.

هناك عدد كبير من الجداول التي تحتوي على طن من هذه التجزئات حتى واحد تجزئة مع الملح لا يمكن حلها في القادم الى لا شيء.

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

ديناميكية الملح التي تضاف إلى كلمة المرور سوف تساعد أكثر من ذلك بكثير ثم التجزئة متعددة.التجزئة متعددة لا تضيف الكثير إلى ذلك.

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

هو var1 + var2 سيكون نفسه في توقع الحالة ؟ أعني أن الطرح الأول ينبغي أن تكون على ما يرام في هذه الحالة عليك تجنب تجزئة الاصطدام.عن كونه يستحق التكلفة ، هذا سؤال يجب أن تجيب.هو تجنب الاصطدام يستحق التكلفة.

عن خوارزمية sha, فمن المفترض أن حقا التدافع النتائج.حتى تطبيق ذلك مرات عديدة لا ينبغي أن يكون أفضل النتائج ، أو تطبيقه إلى "أكثر عشوائية" الإدخال ينبغي أن يؤدي إلى نتائج أفضل.

تجزئة السلسلة عدة مرات سوف يعقد مهمة المهاجم في حالة هجوم القاموس ، مما يجعل من "أطول" إلى القوة الغاشمة.السؤال الأول غير واضح ، ولكن التجزئة متعددة ليست أقل أمنا لأن الثانية تجزئة له طول ثابت.

ولكن الأهم من عدة التجزئة ، الملح ضروري لتحسين الأمن.

بخصوص سؤالك الثاني, وأود أن أقول أنه ليس من اليسير جدا أن أقول أي من 2 هو الأكثر أمانا ، أعتقد الذهاب مع الخيار 2 هو حقا بما فيه الكفاية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top