هل من الممكن تطبيق مكالمات خدمة الويب من العميل المعروف فقط؟

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

سؤال

سيناريو:

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

هل هناك أي تنفيذ معروف يفرض هذا؟ PKI، مفاتيح التأمين؟

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

المحلول

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

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

يجب أن يثق الخادم الخاص بك أبدا ما يأتي من جانب العميل.

تحرير استئناف

على الرغم من أنه لا يمكنك 100٪ ضمان عميل مفترض في الخادم الخاص بك هو أو ليس تطبيقك أو بعض "المحاكي" الذي تم إجراؤه بواسطة ثلثيين، يمكنك تعقيد الأشياء لهم. إنها ممارسة شائعة في لعبة مكافحة الغش في بعض الأحيان، عشوائيا، وجعل تطبيق العميل سؤال خدعة مثل "ما هو التجزئة من main.exe الخاص بك من الإزاحة A للإزاحة ب؟" أو "من الآن على حزمة حزمة من نوع الحزمة 0x07 مع نوع الحزمة 0x5f". بمجرد اكتشاف وهمية، يدخل الخادم في "وضع سخيف"، والعمل العاطفي، والقائمة السوداء IP الخاصة بهم في هذا الوضع لعدة ساعات حتى لا يمكنهم التأكد من ما يفعله برنامجهم خطأ.

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

نصائح أخرى

WS-Security يوفر تشفير X509.

يتضمن جزء من هذا التنفيذ إمكانية إعطاء عملاء معينين فقط المفتاح العام الذي تم إنشاؤه. بهذه الطريقة، يمكن فقط عملائك المختارين الاتصال بالخدمة.

أسهل طريقة هي أمان الرسائل باستخدام شهادات العميل والخادم. أفضل طريقة لاستيراد Certin Certs في آلات الخادم الخاصة بك والتعريف الصلب إبهام Client CerT في ملف App.config. الاتجاه الآخر هو التفاوض على Certs التي لم أحاول من قبل.

إذا كنت تستخدم IIS لاستضافة الخدمة ثم شهادات العميل باستخدام SSL هو خيار آخر.

MSDN رابط على WCF الأمن.

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