هل يمكن العثور على مفتاح التحقق من الصحة ومفتاح فك التشفير بالقوة الغاشمة من قيمة ملف تعريف الارتباط المشفرة؟

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

سؤال

أنا أستخدم الكود التالي لإنشاء رمز مميز مشفر:

var ticket = new System.Web.Security.FormsAuthenticationTicket(
    2, 
    "", 
    DateTime.Now, 
    DateTime.Now.AddMinutes(10), 
    false, 
    "user id here");
var cipherText = System.Web.Security.FormsAuthentication.Encrypt(ticket);

يستخدم هذا الرمز المفتاح والخوارزمية المحددة في app/web.config :

<system.web>
    <machineKey validationKey="SOME KEY" 
                decryptionKey="SOME OTHER KEY" 
                validation="SHA1" />
</system.web>

لنفترض الآن أنني أعطيت النص المشفر الذي تم إنشاؤه إلى الشريك.هل هو قادر على القوة الغاشمة:

  1. القيمة المخزنة في التشفير (معرف المستخدم الذي لا يمثل معلومات حساسة ولا يزعجني كثيرًا)
  2. قيمة مفتاح التحقق ومفتاح فك التشفير المستخدم لإنشاء التشفير (سيكون هذا كارثيًا لأنه سيكون قادرًا على إنشاء الرموز المميزة وانتحال شخصية أي مستخدم)

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

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

المحلول

ما تصفه هنا هو هجوم نص عادي معروف.يتعلم المهاجم كلا من النصوص العادية والنصوص المشفرة المقابلة وهدفه هو العثور على المفاتيح.تم تصميم الأصفار الحديثة لتكون آمنة ضد هذا النوع من الهجمات.

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

وهذا يجعل تصميم تشفير جديد أمرًا صعبًا للغاية.لكن لحسن الحظ، لدينا بالفعل شفرات جيدة مثل AES.

ويجب أن أضيف أيضًا أن جميع الهجمات المذكورة أعلاه تفترض أن المهاجم يعرف جميع تفاصيل التشفير المستخدم.الشيء الوحيد الذي لا يعرفه هو المفتاح المستخدم.وهذا ما يُعرف بمبدأ كيرخوف.

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