अगर हमें HTTPS है तो हमें REST सेवा सुरक्षा की आवश्यकता क्यों है


13

मैं इस उत्कृष्ट लेख http://www.thebuzzmedia.com/designing-a-secure-rest-ap-without-oauth-authentication/ का संदर्भ देता हूं, जो वेब सेवा के लिए सुरक्षा जैसे अमेज़ॅन की बात करता है। हालाँकि मुझे टीम में एक सवाल पूछा गया था कि अगर हमें पहले से ही HTTPS का उपयोग करना है तो हमें इसकी आवश्यकता क्यों है। मैं जवाब देने में असमर्थ था क्योंकि यह वास्तव में मुझे लगता है कि वे सही हो सकते हैं, हालांकि आंत मुझे अन्यथा बताती है।

REST सेवाएँ प्रदान करने के दौरान भी ऐसे स्थान हैं जहाँ HTTPS काम नहीं कर सकता है? 3 पार्टी वेबसाइटों की तरह?

यदि किसी को सार्वजनिक सेवाओं पर वेब सेवा हासिल करने का अनुभव है, तो कृपया अपने अनुभव के साथ कुछ प्रकाश डालें।

अग्रिम में धन्यवाद।

संपादित करें: स्पष्ट करने के लिए मैं उपयोगकर्ता प्रमाणीकरण की नहीं बल्कि ग्राहक प्रमाणीकरण की बात कर रहा हूं। उपयोगकर्ता प्रमाणीकरण को HTTPS + REST पर सादा पाठ माना जा सकता है।

मेरी चिंता यह है कि यह अभी भी किसी को भी मेरे क्लाइंट के बिना वेब सेवा का उपयोग करने की अनुमति देता है क्योंकि सब कुछ प्लेय पाठ है हालांकि HTTPS से अधिक क्लाइंट अंत बिंदु अभी भी क्लाइंट एप्लिकेशन के बिना मेरी वेब सेवा का उपयोग कर सकता है।


3
Security.stackexchange.com के लिए सबसे उपयुक्त है ?
ज्वेरीच

1
हो सकता है कि आप सही हों, लेकिन मेरा सवाल मोर संबंधित है।

जवाबों:


13

अगर हमें पहले से ही HTTPS का उपयोग करना है, तो हमें Gmail - या उपयोगकर्ता खातों के साथ कोई अन्य साइट देने की आवश्यकता क्यों है? उत्तर वही है जो आपके प्रश्न का उत्तर है।

HTTPS प्रदान करता है, सबसे पहले और सबसे महत्वपूर्ण, सर्वर और क्लाइंट के बीच एक एन्क्रिप्टेड कनेक्शन।

HTTPS में निहित विश्वास प्रमुख सर्टिफिकेट अथॉरिटी पर आधारित है जो ब्राउज़र सॉफ़्टवेयर में पहले से इंस्टॉल आता है (यह "I ट्रस्ट सर्टिफिकेट अथॉरिटी (उदाहरण के लिए VeriSign / Microsoft / etc।) यह कहने के बराबर है कि मुझे किस पर भरोसा करना चाहिए"।

जब तक सर्वर प्रत्येक उपयोगकर्ता को एक प्रमाण पत्र नहीं देता , तब तक सर्वर क्लाइंट पर कुछ अन्य प्रमाणीकरण विधि के बिना भरोसा नहीं कर सकता।


क्षमा करें, आप गलत समझ रहे हैं या मैं स्पष्ट नहीं था। Amazon APi डॉक्स में कहा गया है कि हमें HTTPS का उपयोग करना चाहिए लेकिन अगर हम ऐसा नहीं करते हैं तो हम अनुरोध पर हस्ताक्षर करते हैं। उपयोगकर्ता नाम पासवर्ड इस बिंदु पर अप्रासंगिक है।

3
उच्च स्तर पर, आपको आदेशों को स्वीकार करने के लिए सर्वर को अपनी पहचान साबित करने की आवश्यकता है। क्लाइंट प्रमाणीकरण HTTPS के माध्यम से किया जा सकता है, और यह संदेश हस्ताक्षर का उपयोग करके भी किया जा सकता है।
मैट बॉल

1
यदि आप क्लाइंट प्रमाणीकरण के लिए HTTPS का उपयोग करना चाहते हैं, तो आपको प्रत्येक उपयोगकर्ता को सार्वजनिक कुंजी प्रमाणपत्र जारी करने की आवश्यकता है, जैसा कि मेरे उत्तर में अंतिम लिंक में वर्णित है। इन प्रमाण पत्रों को पासपोर्ट का इलेक्ट्रॉनिक संस्करण समझें।
मैट बॉल

1
आप "प्रत्येक उपयोगकर्ता को एक प्रमाण पत्र दें" मेरे प्रश्न के उत्तर के लिए लिंक करें। मुझे लगता है कि पूरी निजी सार्वजनिक कुंजी और हस्ताक्षर अभी भी एक वेब सेवा में दोनों छोरों को ठीक से सुरक्षित करने के लिए आवश्यक है, इसलिए सर्वर पर एक एसएसएल पर्याप्त नहीं है। आपका उत्तर इस प्रकार निकटतम है। आपका बहुत बहुत धन्यवाद।
अभिषेक दुजारी

1
+1 यह बहुत अच्छा है कि आप क्लाइंट प्रमाणपत्रों का उल्लेख करते हैं लेकिन यह आवश्यक नहीं है कि सर्वर प्रमाणपत्र जारी करे। उन्हें केवल एक विश्वसनीय सीए द्वारा हस्ताक्षरित करने की आवश्यकता है; मूल रूप से सर्वर सर्वर कैसे काम करते हैं, उसी के समान है।
जिम्मीजम्स

3

एचटीटीपीएस ईव्सड्रॉपिंग और "मैन इन द मिडल" हमलों को रोकने में बहुत अच्छा है। चूंकि यह एक सत्र के लिए सभी ट्रैफ़िक को एन्क्रिप्ट करता है।

लेकिन जैसा कि ज्यादातर लोग डिफ़ॉल्ट प्रमाणपत्रों का उपयोग कर रहे हैं जो उनके ब्राउज़र के साथ आए थे और उन्हें पता नहीं है कि कैसे अपना स्वयं का व्यक्तिगत प्रमाण पत्र बनाएं या इसका उपयोग करने के लिए ब्राउज़र को कॉन्फ़िगर करें।

यह उपयोगकर्ता प्रमाणीकरण के लिए HTTPS को बहुत बेकार बनाता है, जैसे कि ईव्सड्रॉपिंग आदि से प्रमाणीकरण संवाद की रक्षा करना।


मुझे लगता है कि आप जो पूछ रहे हैं, उसके बहुत करीब हूं। तो आप सुझाव देते हैं कि हमें अभी भी क्लाइंट पक्ष पर अनुरोध पर हस्ताक्षर करना चाहिए, भले ही हम HTTPS का उपयोग करें?

2

HTTPS चैनल को सुरक्षित करने के बारे में है, यह साबित नहीं करने के लिए कि कॉलर कौन है, या कई अन्य चीजों पर विचार करने की आवश्यकता है। प्रमाणीकरण, प्राधिकरण और परिवहन परत एन्क्रिप्शन केवल एक छोटा सा हिस्सा है जिसे आपको विचार करने की आवश्यकता है। वेब एप्लिकेशन से संबंधित कई ज्ञात कमजोरियाँ REST एपिस पर बहुत अधिक लागू होती हैं। आपको इनपुट सत्यापन, सत्र क्रैकिंग, अनुचित त्रुटि संदेश, आंतरिक कर्मचारी कमजोरियों और इतने पर विचार करना होगा। यह एक बड़ा विषय है।

रॉबर्ट


0

आप क्लाइंट एसएसएल प्रमाणपत्रों का दृष्टिकोण अपना सकते हैं और सुरक्षा को एपीआई से अलग कर सकते हैं। इस दृष्टिकोण के लिए बड़ा नकारात्मक यह है कि ऑपरेशन ओवरहेड जो अधिक महंगा हो जाएगा और अधिक से अधिक ग्राहक आपकी एपीआई का उपभोग करेंगे।

किसी भी दर पर, सार्वजनिक रूप से उपभोग की जाने वाली अधिकांश सेवाओं के लिए HTTP मूल प्रमाणीकरण ठीक है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.