سؤال

افترض أن هناك متغير سلسلة يحمل كلمة مرور نص عادي.

هل هناك أي إمكانية لقراءة كلمة المرور هذه باستخدام تفريغ ذاكرة. (لنفترض أن استخدام محرك الغش.) أنا في حيرة مع هذا الشيء JVM. هل توفر JVM نوعا من الحماية ضد هذا. إذا لم يكن هناك ما هي الممارسات التي أحتاج إلى استخدامها لتجنب هذا "السرقة".

إن تهديد عملي سيكون طروادة؛ يرسل شرائح تفريغ الذاكرة إلى حفلة خارجية.

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

المحلول

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

في الأساس، طالما أن "المهاجم" هو أيضا "المرسل"، فأنت في النهاية ستحصل في النهاية - وهذا هو السبب في أن صناعة الموسيقى والفيديو لا يمكن أن تحصل على DRM للعمل.

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

نصائح أخرى

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

ل خفض فرصة حدوث هذه كلمة المرور فقط في نص عادي عند الحاجة حقا، ثم تفريغها أو تشفيرها. شيء واحد يجب ملاحظة هنا هو أن JPassWordfield إرجاع Char [] بدلا من سلسلة. هذا لأنه ليس لديك سيطرة على متى ستتختفي السلسلة. على الرغم من أنه ليس لديك أيضا سيطرة عندما تختفي Char []، فيمكنك ملء الأمر مع غير المرغوب فيه عند الانتهاء من كلمة المرور.

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

هذا لا علاقة له ب Java - نفس المشكلة بالضبط (إذا كان ذلك هو حقا واحد) موجود للتطبيقات المكتوبة بأي لغة:

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

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

إذا كان البرنامج يعرف كلمة المرور، فيمكن لأي شخص باستخدام البرنامج استخراج كلمة المرور.

من الناحية النظرية، يمكنك فقط ربطه حتى مصحح الأخطاء ... قم بتعيين نقطة توقف ... وقراءة محتويات السلسلة

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