Restful वेब सेवाओं को कैसे सुरक्षित करें?


88

मुझे सुरक्षित Restful वेब सेवाओं को लागू करना होगा । मैंने पहले से ही Google का उपयोग करके कुछ शोध किया था लेकिन मैं फंस गया हूं।

विकल्प:

टीएलएस (HTTPS) +

क्या विचार करने के लिए अधिक संभावित विकल्प हैं? OAuth तो क्या संस्करण? क्या इससे भी फर्क पड़ता है? मैंने अब तक OAuth 2.0 को बियर टोकन के साथ पढ़ा है (जो कि हस्ताक्षर के बिना है) असुरक्षित है

मुझे REST आधारित प्रमाणीकरण पर एक और बहुत दिलचस्प लेख मिला है

सुरक्षित अपने बाकी एपीआई ... सही तरीका है

जवाबों:


59

एक और, बहुत ही सुरक्षित तरीका है। यह ग्राहक प्रमाणपत्र है। पता है कि जब आप https पर उनसे संपर्क करते हैं तो सर्वर एसएसएल सर्टिफिकेट कैसे पेश करते हैं? अच्छी तरह से सर्वर एक ग्राहक से एक प्रमाण पत्र का अनुरोध कर सकते हैं ताकि वे जानते हैं कि ग्राहक वह है जो वे कहते हैं कि वे हैं। ग्राहक सीरियलों को उत्पन्न करते हैं और आपको एक सुरक्षित चैनल पर देते हैं (जैसे कि USB कुंजी के साथ आपके कार्यालय में आना - अधिमानतः गैर-ट्रोजन USB कुंजी)।

आप अपने वेब सर्वर में सर्टिफिकेट क्लाइंट सर्टिफिकेट्स (और उनके साइनर्स सर्टिफिकेट्स, यदि आवश्यक हो) की सार्वजनिक कुंजी लोड करते हैं , और वेब सर्वर उन लोगों के अलावा किसी से भी कनेक्शन स्वीकार नहीं करेंगे , जिनके पास सिर्फ़ निजी कुंजी है। इसके बारे में जानता है। यह HTTPS लेयर पर चलता है, जिससे आप OAuth (अपनी आवश्यकताओं के आधार पर) जैसे एप्लिकेशन-स्तर प्रमाणीकरण को पूरी तरह से छोड़ सकते हैं। आप एक परत को दूर कर सकते हैं और एक स्थानीय प्रमाणपत्र प्राधिकरण बना सकते हैं और ग्राहकों से प्रमाणपत्र अनुरोध पर हस्ताक्षर कर सकते हैं, जिससे आप 'उन्हें कार्यालय में आने के लिए' और 'सर्वर पर लोड भार' को छोड़ सकते हैं।

गर्दन में दर्द? पूर्ण रूप से। सब कुछ के लिए अच्छा है? नहीं। बहुत सुरक्षित है? हाँ।

यह ग्राहकों को उनके प्रमाणपत्रों को सुरक्षित रखने पर निर्भर करता है (वे अपनी निजी कुंजियों को ऑनलाइन पोस्ट नहीं कर सकते हैं), और इसका उपयोग आमतौर पर तब किया जाता है जब आप ग्राहकों को एक सेवा बेचते हैं, लेकिन फिर किसी को रजिस्टर करने और कनेक्ट करने देते हैं।

वैसे भी, यह वह समाधान नहीं हो सकता है जिसे आप खोज रहे हैं (यह शायद ईमानदार नहीं है), लेकिन यह एक और विकल्प है।


ठीक है, अब मैं उलझन में हूं कि कौन सा बेहतर है, यह दृष्टिकोण या दूसरा उत्तर । क्या आप विस्तृत कर सकते हैं? : D
fikr4n

आपका उत्तर मास्टर्स के लिए एकदम सही होगा लेकिन नौसिखिए के लिए इसका भ्रम। क्या आप पढ़ने के लिए कुछ विस्तार से जानकारी या लिंक प्रदान कर सकते हैं?
राजन रावल

यदि प्रमाण पत्र स्व-हस्ताक्षरित हैं, तो क्या यह अभी भी "बहुत सुरक्षित" है?
जॉयस

@ जॉइस मैं नहीं सोचूंगा। चूँकि आप विश्वसनीय नहीं हैं (कोई अपराध नहीं है), आपके द्वारा हस्ताक्षरित (अपने स्वयं के प्रमाण पत्र के साथ) जिन विश्वासियों पर भरोसा नहीं किया जा सकता है। मेरा मानना ​​है कि स्व हस्ताक्षरित सेटर परीक्षण के लिए अधिक उपयोगी हैं।
mmmast

अंतिम उपयोगकर्ता (ग्राहक) के पास एक ग्राहक प्रमाणपत्र होता है, जिसकी सार्वजनिक कुंजी सर्वर के साथ साझा की जाती है, यदि ग्राहक की मशीन हैक हो जाती है और उनके ग्राहक प्रमाणपत्र चोरी हो जाते हैं तो क्या पूरी तरह से "बहुत सुरक्षित" चीज नहीं गिरती है?
mbmast

18

HTTP बेसिक + HTTPS एक सामान्य तरीका है।


3
मुझे नहीं लगता कि http डाइजेस्ट आपको http बेसिक पर कुछ भी दे रहा है अगर वे दोनों https के ऊपर हैं।
pc1oad1etter

3
आप गंभीरता से टोन के बिना HTTP डाइजेस्ट के लाभों के बारे में उपयोगी जानकारी जोड़ने के लिए स्वागत करते हैं।
PC1oad1etter

9

यदि OAuth संस्करणों के बीच चयन किया जाता है, तो OAuth 2.0 के साथ जाएं।

OAuth बियरर टोकन केवल एक सुरक्षित परिवहन के साथ उपयोग किया जाना चाहिए।

OAuth बियरर टोकन केवल सुरक्षित या असुरक्षित हैं क्योंकि यह ट्रांसपोर्ट बातचीत को प्रोत्साहित करता है। एचटीटीपीएस रिप्ले हमलों से बचाने का ख्याल रखता है, इसलिए यह आवश्यक नहीं है कि वाहक टोकन के लिए भी रीप्ले से बचाव करे।

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

यदि आपको कई प्रतिभागियों से गुजरने वाले पेलोड को सुरक्षित करने की आवश्यकता है, तो आपको HTTPS / SSL से अधिक कुछ चाहिए, क्योंकि HTTPS / SSL केवल ग्राफ़ के एक लिंक को एन्क्रिप्ट करता है। यह OAuth का दोष नहीं है।

बियरर टोकन ग्राहकों के लिए प्राप्त करना आसान है, ग्राहकों के लिए एपीआई कॉल के लिए उपयोग करना आसान है और व्यापक रूप से Google, फेसबुक और कई अन्य सेवाओं से एपीआई का सामना करने वाले सार्वजनिक रूप से सुरक्षित करने के लिए (HTTPS के साथ) उपयोग किया जाता है।

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