सी # वेब-सर्विसेज में एन्क्रिप्शन


16

मैं अपने सी # वेब-सेवा में अपने साबुन संचार को एन्क्रिप्ट करने का एक आसान तरीका ढूंढ रहा हूं।

मैं WSE 3.0 में देख रहा था लेकिन ऐसा लगता है कि माइक्रोसॉफ्ट इसके लिए समर्थन छोड़ देता है, और इसलिए इसका उपयोग करने के लिए सीधा नहीं है।
ऐसा लगता है कि डब्ल्यूसीएफ एक विकल्प हो सकता है लेकिन मैं .NET 2.0 से अपग्रेड नहीं करना चाहता हूं।

कोई भी सरल, सीधा एन्क्रिप्शन विधि?

8

मुझे लगता है कि इससे मदद मिल सकती है; पिछले साल हमने वेब सर्विसेज को संपीड़ित करने के लिए इसका इस्तेमाल किया और यह बहुत अच्छा प्रदर्शन किया, मुझे विश्वास है कि इसे एन्क्रिप्शन कक्षाओं के साथ बढ़ाया जा सकता है;

Creating Custom SOAP Extensions - Compression Extension


0

शायद मैं निष्पक्ष हूं, लेकिन संचार को https के माध्यम से होने के लिए मजबूर करना स्वीकार्य होगा? मैं 2.0 पर चलने वाली वेब सेवाओं को विकसित करता हूं और वर्चुअल निर्देशिका पर https को लागू करने के लिए आईआईएस प्राप्त करने में सफलता मिली है।

वैकल्पिक रूप से, या इसके अतिरिक्त, आप HttpRequest.IsSecureConnection property देख सकते हैं।


1

शायद मैं अनुभवहीन जा रहा हूँ, लेकिन संचार के लिए मजबूर कर https के माध्यम से होने के लिए होगा स्वीकार्य हो? मैं 2.0 0 पर चलने वाली वेब सेवाएं विकसित करता हूं और सफलता प्राप्त करता हूं, केवल आईआईएस को वर्चुअल निर्देशिका पर https लागू करता है।

शायद जाने के लिए सबसे आसान तरीका हो सकता है यही कारण है कि है, लेकिन दुर्भाग्य से मैं नहीं कर आईआईएस विन्यास पर नियंत्रण है, और कि यह https चला सकते हैं गारंटी नहीं दे सकते।

उस मामले में, शायद सबसे अच्छा शर्त या तो मामले-दर-मामला सोप संदेशों के एन्क्रिप्ट भागों (सब के बाद, आप पूरे संदेश एन्क्रिप्टेड होने की जरूरत नहीं कर सकते हैं? - बस कुछ संवेदनशील क्षेत्रों) के लिए है, या आप सभी संदेशों को रोकने और सामग्री पर काम करने के लिए एक HttpModule का उपयोग करने का विकल्प चुन सकते हैं। किसी भी मामले में आपको शायद कस्टम प्रॉक्सी प्रदान करना होगा।


0

हम वास्तव में हमारी वेब सेवाओं, जो मूल रूप से पूर्व WCF विकसित किए गए में WSE 3.0 का उपयोग करें। सुरक्षा के लिए, हम System.Security में क्रिप्टोग्राफी कक्षाओं पर निर्मित एक SAML टोकन आधारित सिस्टम का उपयोग करते हैं।

यह बहुत अच्छी तरह से काम करता है। हालांकि, यह विधि किसी भी तरह से "सरल" नहीं है।


2

एसएसएल/टीएलएस का उपयोग नहीं कर रहे "एन्क्रिप्शन" प्रदान करने के लिए आप जो कुछ भी करते हैं वह कमजोर होने की संभावना है। अब आपको खुद से पूछना है, क्या यह रबड़-चिकन सुरक्षा उपाय पर सुविधाओं पर खर्च करने वाले देव घंटों को जलाने लायक है? एसा हो सकता हे।

डीपीएपीआई और Win32 क्रिप्ट 32 एपीआई जैसे .NET एपीआई स्थिर कुंजी के साथ डेटा के ब्लॉब्स को एन्क्रिप्ट करना आसान बनाता है। लेकिन आपके क्लाइंट कुंजी कैसे प्राप्त करेंगे? किसी भी स्थापित एसओएपी क्लाइंट को या तो अपनी कॉन्फ़िगरेशन में जला दिया जाना चाहिए, या असुरक्षित इंटरनेट पर इसे प्राप्त करना होगा।

यह समस्या एसएसएल/टीएलएस आपके लिए हल करती है; टीएलएस प्रमाण पत्र के साथ आप जो नृत्य करते हैं वह अविश्वसनीय चैनलों पर सार्वजनिक कुंजी को संप्रेषित करने की समस्या को हल करता है।


0

आप System.Security.Cryptography एक्सटेंशन का उपयोग कर सी # में पैरामीटर एन्क्रिप्शन का उपयोग कर सकते हैं।

अपने पैरामीटर को एन्क्रिप्ट करना और उन्हें डिक्रिप्ट करना कठिन होगा लेकिन अधिक सुरक्षित होगा।

How To: Encrypt and Decrypt Data Using a Symmetric (Rijndael) Key (C#/VB.NET)

मैं गया OTP के लिए इस aproach (एक बार पासवर्ड) वेब सेवा का उपयोग कर रहा हूँ, और यह मेरे लिए ठीक काम करता है।