سؤال

لقد قمت بتطبيق خادم/عميل Kerberos باستخدام Sockets في Java ، حيث يرسل العميل خدمة TGT إلى الخادم ، ويعرف الخادم أن العميل أصيل.

شاغلي الرئيسي هو الهجوم "Man-in-Middle". يمكن لشخص ما التقاط TGT ، ويتظاهر بأنه العميل.

في تطبيق Java الخالص ، لا توجد مشكلة ، حيث يتم تشفير المزيد من التواصل مع مفاتيح جلسة الخدمة (GSSContext.wrap ()/GSSContext.unwrap ()) ، والتي لا يوجد بها Snooper.

ولكن يجب إعادة كتابة تطبيق العميل في C#.

أعتقد أن خياريين للحفاظ على التواصل المشفر هما:

  1. اكتب أساليب WRAP () و UNFER () في C#
  2. استخدام SSL/TLS.

هل الخيار 1 ممكن ، قبل أن أنظر إلى SSL كخيار؟

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

المحلول

يتضمن الخيار 1 بعض عمليات نقل التعليمات البرمجية الثقيلة التي قد يكون لديك أو لا يكون لديك وقت للقيام به. الخيار 2 يبدو جيدا.

هناك خيار 3 يعتمد على قيودك ، استخدم قناة TCP مشفرة خاصة ، والتي يجب أن تكون أسرع من SSL/TLS ، ولكن كما قلت قد لا تكون قابلة للتطبيق. يمكن أن يستخدم التشفير المتماثل ، بعد تهيئته بواسطة مفاتيح الجلسة (السرية)

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