डाइजेस्ट और बेसिक ऑथेंटिकेशन में क्या अंतर है ?
डाइजेस्ट और बेसिक ऑथेंटिकेशन में क्या अंतर है ?
जवाबों:
डाइजेस्ट ऑथेंटिकेशन एक हैश फंक्शन को लागू करके एन्क्रिप्टेड रूप में क्रेडेंशियल्स का संचार करता है: उपयोगकर्ता नाम, पासवर्ड, सर्वर ने नॉन वैल्यू, HTTP विधि और अनुरोधित यूआरआई की आपूर्ति की।
जबकि बेसिक ऑथेंटिकेशन नॉन-एनक्रिप्टेड बेस 64 एनकोडिंग का उपयोग करता है ।
इसलिए, बेसिक ऑथेंटिकेशन का आमतौर पर केवल वही उपयोग किया जाना चाहिए, जहां ट्रांसपोर्ट लेयर सिक्योरिटी जैसे कि https दिया जाता है।
देखें RFC-2617 सभी रक्तमय जानकारी के लिए।
HTTP बेसिक एक्सेस ऑथेंटिकेशन
बेसिक ऑथेंटिकेशन हमारे क्रिप्टोग्राफ़िक स्ट्रिंग को जनरेट करने के लिए base64 एन्कोडिंग (एन्क्रिप्शन नहीं) का उपयोग करता है जिसमें उपयोगकर्ता नाम और पासवर्ड की जानकारी होती है। HTTP बेसिक को SSL पर लागू करने की आवश्यकता नहीं है, लेकिन यदि आप नहीं करते हैं, तो यह बिल्कुल भी सुरक्षित नहीं है। इसलिए मैं इसके बिना उपयोग करने के विचार का मनोरंजन करने वाला नहीं हूं।
पेशेवरों:
विपक्ष:
सारांश में - यदि आपके पास ग्राहकों का नियंत्रण है, या यह सुनिश्चित कर सकता है कि वे एसएसएल का उपयोग करते हैं, तो HTTP बेसिक एक अच्छा विकल्प है। एसएसएल की सुस्ती को केवल एक अनुरोध करने की गति से रद्द किया जा सकता है
मूल प्रमाणीकरण का सिंटैक्स
Value = username:password
Encoded Value = base64(Value)
Authorization Value = Basic <Encoded Value>
//at last Authorization key/value map added to http header as follows
Authorization: <Authorization Value>
क्रिप्टोग्राफिक परिणाम उत्पन्न करने के लिए HTTP डाइजेस्ट एक्सेस ऑथेंटिकेशन डाइजेस्ट एक्सेस ऑथेंटिकेशन हैशिंग (यानी पाचन को छोटे टुकड़ों में काटे जाने के तरीके) का उपयोग करता है। HTTP डाइजेस्ट एक्सेस प्रमाणीकरण प्रमाणीकरण का एक अधिक जटिल रूप है जो निम्नानुसार काम करता है:
पेशेवरों:
विपक्ष:
सारांश में , HTTP डाइजेस्ट स्वाभाविक रूप से कम से कम दो हमलों के लिए असुरक्षित है, जबकि एसएसएल पर एसएसएल बेसिक के साथ पासवर्ड के लिए मजबूत एन्क्रिप्शन का उपयोग करने वाला सर्वर इन कमजोरियों को साझा करने की संभावना कम है।
यदि आपके पास अपने ग्राहकों पर नियंत्रण नहीं है, लेकिन वे एसएसएल के बिना मूल प्रमाणीकरण करने का प्रयास कर सकते हैं, जो डाइजेस्ट की तुलना में बहुत कम सुरक्षित है।
RFC 2069 डाइजेस्ट एक्सेस ऑथेंटिकेशन सिंटैक्स
Hash1=MD5(username:realm:password)
Hash2=MD5(method:digestURI)
response=MD5(Hash1:nonce:Hash2)
RFC 2617 डाइजेस्ट एक्सेस ऑथेंटिकेशन सिंटैक्स
Hash1=MD5(username:realm:password)
Hash2=MD5(method:digestURI)
response=MD5(Hash1:nonce:nonceCount:cnonce:qop:Hash2)
//some additional parameters added
पोस्टमैन में निम्नानुसार दिखता है:
ध्यान दें:
आइए हम दो HTTP प्रमाणीकरण Wireshark
(भेजे गए या प्राप्त पैकेट का विश्लेषण करने के लिए टूल) का उपयोग करने के बीच अंतर देखते हैं ।
1. Http बेसिक ऑथेंटिकेशन
जैसे ही क्लाइंट सही उपयोगकर्ता नाम में टाइप करता है : पासवर्ड , जैसा कि वेब-सर्वर द्वारा अनुरोध किया गया है, वेब-सर्वर डेटाबेस में जांच करता है यदि क्रेडेंशियल सही हैं और संसाधन तक पहुंच देता है।
यहां बताया गया है कि पैकेट कैसे भेजे और प्राप्त किए जाते हैं:
पहले पैकेट में ग्राहक संसाधन पर POST विधि का उपयोग करके क्रेडेंशियल भरते हैं - lab/webapp/basicauth
। HTTP प्रतिक्रिया कोड 200 ओके के साथ सर्वर को वापस करते हैं , अर्थात, उपयोगकर्ता नाम: पासवर्ड सही थे।
अब, Authorization
शीर्ष लेख में यह दिखाया गया है कि यह बेसिक ऑथराइजेशन है जिसके बाद कुछ रैंडम स्ट्रिंग है। यह स्ट्रिंग क्रेडेंशियल (कोलन सहित ) का एन्कोडेड (बेस 64) संस्करण है admin:aadd
।
२। Http डाइजेस्ट प्रमाणीकरण (आरएफसी 2069)
अब तक हमने देखा है कि बेसिक ऑथेंटिकेशन नेटवर्क पर प्लेनटेक्स्ट में यूजरनेम: पासवर्ड भेजता है । लेकिन डाइजेस्ट ऑथ हश एल्गोरिथ्म का उपयोग करके पासवर्ड का एक एचएएच भेजता है ।
यहां ग्राहक द्वारा किए गए अनुरोधों और सर्वर से प्रतिक्रिया दिखाने वाले पैकेट हैं।
जैसे ही क्लाइंट सर्वर द्वारा अनुरोध किए गए क्रेडेंशियल टाइप करता है, पासवर्ड को response
एक एल्गोरिथ्म का उपयोग करके परिवर्तित किया जाता है और फिर सर्वर को भेजा जाता है, यदि सर्वर डेटाबेस में उसी प्रतिक्रिया होती है, जैसा कि क्लाइंट द्वारा दिया गया सर्वर सर्वर तक पहुंच प्रदान करता है , अन्यथा 401 त्रुटि।
इसके बाद के संस्करण में Authorization
, response
स्ट्रिंग के मूल्यों का उपयोग कर गणना की जाती है Username
, Realm
, Password
, http-method
, URI
और Nonce
छवि में दिखाया गया है:
इसलिए, हम देख सकते हैं कि डाइजेस्ट ऑथेंटिकेशन अधिक सुरक्षित है क्योंकि इसमें हैशिंग (एमडी 5 एन्क्रिप्शन) शामिल है, इसलिए पैकेट स्निफर टूल पासवर्ड को सूँघ नहीं सकता है, हालांकि बेसिक ऑथेंट में सटीक पासवर्ड विंडसर पर दिखाया गया था।
मूल प्रमाणीकरण क्रिप्टोग्राफिक स्ट्रिंग बनाने के लिए आधार 64 एन्कोडिंग का उपयोग करता है जिसमें उपयोगकर्ता नाम और पासवर्ड की जानकारी होती है।
डाइजेस्ट एक्सेस ऑथेंटिकेशन क्रिप्टोग्राफ़िक परिणाम उत्पन्न करने के लिए हैशिंग विधियों का उपयोग करता है