एसएसएल बनाम SASL
ऐसा नहीं है कि SASL एक प्रोटोकॉल लेकिन एक अमूर्त परत नहीं है सच है। यह भी सच है कि एसएसएल और एसएएसएल समान सुविधाएं प्रदान करने के प्रकार हैं। उनमें से दोनों प्रमाणीकरण, डेटा हस्ताक्षर और एन्क्रिप्शन प्रदान करते हैं।
एसएसएल परिवहन परत पर किया जाता है और यह सामान्यतः प्रोटोकॉल के नीचे पारदर्शी है। उदाहरण के लिए, आप एलडीएपी या HTTP पर एसएसएल का उपयोग कर सकते हैं। हालांकि, कुछ मामलों में, सुरक्षित मोड में स्विच करने के लिए मौजूदा प्रोटोकॉल में संशोधन आवश्यक है। उदाहरण के लिए, एसएसएल के उपयोग को शुरू करने के लिए पीओपी 3 और आईएमएपी को STARTTLS कमांड के लिए बढ़ाया गया है। उस कोण से, यह एसएएसएल क्या कर रहा है के समान है।
दूसरी तरफ, एसएएसएल क्षमता प्रदान करने के लिए कई प्रोटोकॉल भी बढ़ाए जाते हैं। Here प्रोटोकॉल की सूची है। फिर, पीओपी 3 और आईएमएपी उनमें से दो हैं और वे प्रमाणीकरण शुरू करने के लिए विभिन्न आदेशों का उपयोग कर रहे हैं।
तो, हमें एसएसएल का उपयोग कब करना चाहिए और हमें एसएएसएल का उपयोग कब करना चाहिए?
एसएसएल और एसएएसएल के बीच एक स्पष्ट अंतर यह है कि एसएएसएल आपको क्लाइंट को प्रमाणीकृत करने के लिए विभिन्न तंत्र चुनने की अनुमति देता है जबकि एसएसएल प्रमाण पत्र के आधार पर प्रमाणीकरण करने के लिए बाध्य है। एसएएसएल में, आप जीएसएसएपीआई, केर्बेरोस, एनटीएलएम, आदि का उपयोग करना चुन सकते हैं
इस अंतर के कारण, कुछ स्थितियां हैं, यह एसएएसएल का उपयोग करने के लिए और अधिक अंतर्ज्ञानी है लेकिन एसएसएल नहीं है। उदाहरण के लिए, आपका ग्राहक एप्लिकेशन अंतिम उपयोगकर्ता को प्रमाणीकृत करने के लिए केर्बेरोज का उपयोग कर रहा है। आपके सर्वर को क्लाइंट को प्रमाणीकृत करने की आवश्यकता है। चूंकि आपके क्लाइंट एप्लिकेशन में पहले से ही केर्बेरोज प्रमाण-पत्र हैं (केर्बेरोज शब्दावली, टिकट में), सर्वर के साथ प्रमाणित करने के लिए केर्बेरोस क्रेडेंशियल्स का उपयोग करना समझ में आता है। बेशक, आप हमेशा एक ही काम करने के लिए एसएसएल सेट कर सकते हैं। हालांकि, इसका मतलब मौजूदा केर्बेरोज बुनियादी ढांचे के शीर्ष पर है, आपको सर्टिफिकेट अथॉरिटी इंफ्रास्ट्रक्चर सेट अप करना होगा और किसी भी तरह से केर्बेरोस क्रेडेंशियल्स के साथ क्लाइंट सर्टिफिकेट को सहसंबंधित करना होगा। यह करने योग्य है लेकिन बहुत काम है।
इसके अलावा, कभी-कभी, आपको कुछ विशेषताओं का उपयोग करने की आवश्यकता होती है जो केवल एसएएसएल तंत्र में उपलब्ध हैं लेकिन एसएसएल नहीं। उदाहरण के लिए, केर्बेरोज आपको क्लाइंट से सर्वर पर टिकट अग्रेषित करने की अनुमति देता है ताकि सर्वर क्लाइंट की तरफ से कुछ संसाधन पूछने के लिए टिकट का उपयोग कर सके। एक आम उदाहरण यह है कि आपके पास एक एप्लिकेशन सर्वर और डेटाबेस है। क्लाइंट एप्लिकेशन एप्लिकेशन सर्वर के साथ प्रमाणित करता है और एप्लिकेशन सर्वर को क्लाइंट के क्रेडेंशियल का उपयोग कर क्लाइंट से व्यवहार करने के लिए डेटाबेस से पूछताछ की आवश्यकता होती है। एसएसएल आपको यह सुविधा प्रदान नहीं कर सकता है लेकिन केर्बेरो इसका समर्थन करता है। तो, उस स्थिति में, आपको एसएएसएल का उपयोग करना चुनना होगा।
कुछ मामलों में, आप एसएसएल का उपयोग करना चाहते हैं लेकिन एसएएसएल नहीं। उदाहरण के लिए, प्रोटोकॉल को विस्तारित करना एक विकल्प नहीं है या आप प्रोटोकॉल के नीचे उपयोग किए गए प्रत्येक एकल पैकेट को एन्क्रिप्ट करना चाहते हैं।
कैसे जीएसएसएपीआई करबरोस और SASL
से संबंधित है इस wiki page के अनुसार, दोनों जीएसएसएपीआई और करबरोस SASL में mechansim समर्थित हैं। जीएसएसएपीआई एक सामान्य प्रोग्रामिंग इंटरफ़ेस है। विचार है कि आवेदन लेखक को एक ही सामान्य एपीआई का प्रमाणीकरण, एन्क्रिप्शन इत्यादि करने के लिए उपयोग करना है, भले ही प्रोटोकॉल का उपयोग किस प्रकार किया जाता है। जीएसएसएपीआई केर्बेरो लागू करता है। तो, आप केर्बेरोस प्रमाणीकरण करने के लिए जीएसएसएपीआई का उपयोग कर सकते हैं।
कैसे JAAS SASL
से संबंधित है ईमानदारी से कहूं तो मैं एक जावा विशेषज्ञ नहीं हूँ। जो मैंने पढ़ा है, उससे लगता है कि जेएएएस सिर्फ एक प्लग करने योग्य प्रमाणीकरण ढांचा है। मुझे लगता है कि विचार जीएसएसएपीआई के समान है। प्रमाणीकरण विधि का उपयोग करने के बावजूद यह एक प्रोग्रामिंग इंटरफ़ेस प्रदान करना है। जबकि जीएसएसएपीआई प्रमाणीकरण और सुरक्षित संदेश विनिमय पर ध्यान केंद्रित कर रहा है, जेएएएस प्रमाणीकरण और प्रमाणीकरण पर ध्यान केंद्रित कर रहा है। मुझे कोई सबूत नहीं मिला कि जेएएएस एसएएसएल तंत्र में से एक है। मेरा मानना है कि जावा लाइब्रेरी से कुछ सहायक कक्षाएं होनी चाहिए जो आपको कस्टम एसएएसएल तंत्र को लागू करने में मदद करेंगी। कस्टम एसएएसएल तंत्र को लागू करते समय, यह केवल जेएएएस का उपयोग करने के लिए समझ में आता है।
एक प्रमाणीकरण परत और एक सुरक्षित परिवहन परत काफी अलग चीज है, हालांकि दोनों को प्रमाणीकरण करने के लिए उपयोग किया जा सकता है। लेकिन अगर आप इस सवाल से पूछते हैं तो मैं सोच रहा हूं कि क्या आप हल करने में कोई समस्या ढूंढ रहे हैं, या यदि आप किसी समस्या को हल करने की कोशिश कर रहे हैं। –
मैं यह पता लगाने की कोशिश कर रहा हूं कि मेरे जावा क्लाइंट और सर्वर को एक दूसरे के साथ संवाद करते समय उपयोगकर्ता डेटा/अनुरोध/प्रतिक्रियाओं की सुरक्षा के लिए एसएसएल या एसएएसएल का उपयोग करने की आवश्यकता है, तो यह बाद वाला होगा (किसी समस्या को हल करने का प्रयास कर रहा है)। – IAmYourFaja