منع هجوم preimage على مجموعة محدودة من القيم

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

  •  29-09-2019
  •  | 
  •  

سؤال

لقد سألت عن تكلفة إدارة هجوم preimage على تجزئة أرقام الضمان الاجتماعي. الجواب الممتاز لقد حصلت على أن نوع أرقام الضمان الاجتماعي لا يحتوي إلا على 366،000،000 تجزئة ، مما يجعل من السهل تشغيل هجوم preimage.

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

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

المحلول

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

هناك طريقتان تكميلين لتخفيف المخاطر عند استخدام أسرار الانترانية المنخفضة:

  • استخدم التجزئة المتكررة/المتكررة لجعل كل "تخمين" أكثر تكلفة للمهاجم.
  • استخدم الأملاح لمنع مشاركة التكلفة. يجب على المهاجم دفع هجوم البحث الكامل لكل كلمة مرور/SSN التي يتم هجومها.

طريقة واحدة لجعل التجزئة أكثر تكلفة هي تجزئة تسلسل ن نسخ من البيانات ، مع أ ن أكبر قدر ممكن (اعتمادًا على قوة الحوسبة للعملاء ، وفي النهاية صبر المستخدم). على سبيل المثال ، لـ (Dummy) SSN "123456789" ، استخدم H (123456789123456789123456789 ... 123456789). سوف تحسب ن بالملايين هنا ؛ على جهاز كمبيوتر أساسي ، يمكن لـ SHA-256 معالجة مائة ميغابايت بسهولة في الثانية.

أ ملح هي جزء من البيانات العامة التي يتم استخدامها على طول البيانات إلى التجزئة (SSN) ، والتي تختلف لكل مستخدم. لا يحتاج الملح إلى أن يكون سراً ، لكن لا ينبغي إعادة استخدامه (أو على الأقل ليس في كثير من الأحيان). نظرًا لأن SSN يميل إلى أن يكون دائمًا (لدى الفرد SSN فريد طوال حياته) ، يمكنك استخدام اسم المستخدم كملح (يتناقض مع كلمات المرور ، حيث يمكن للمستخدم تغيير كلمة المرور الخاصة به ، ويجب استخدام ملح جديد لكل شيء كلمة السر الجديدة). وبالتالي ، إذا كان لدى المستخدم Bob Smith SSN 123456789 ، فسوف ينتهي بك الأمر باستخدام: H ("Bob Smith 123456789 Bob Smith 123456789 Bob Smith 123456789 ... Smith 123456789") مع التكرار الكافي لجعل العملية بطيئة بما فيه الكفاية.

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

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