मुझे वास्तव में सामान्य रूप से पहला दृष्टिकोण पसंद है।
- इसे समझना और लागू करना सरल है
- यह सुरक्षित है (मेरी जानकारी के लिए)
- यह एक असामान्य दृष्टिकोण नहीं है जो मैंने अतीत में देखा है
एक चीज़ जो मैंने पहले नहीं देखी थी, जिसे आपको ध्यान में रखना चाहिए, टाइमस्टैम्प का उपयोग टोकन को हैश करने के लिए किया जाता है, जो एक टीटीएल समाप्ति की आवश्यकता होती है जो बहुत कम होती है (जैसे 1 सेकंड) ताकि आप सत्यापित करें कि संदेश भेजा नहीं गया था 12 घंटे पहले एक संदेश से एक ही टाइमस्टैम्प और टोकन; स्पष्ट रूप से यह वैध के रूप में गणना करेगा लेकिन इस मामले में नहीं है।
यदि ये केवल दो ही विकल्प हैं जिन पर आप विचार कर रहे हैं, हालांकि मैं यह सुनिश्चित करना चाहता हूं कि आपने अन्य दृष्टिकोणों पर भी ध्यान दिया है, क्योंकि कई हैं। वास्तव में मैं सूची से अधिक जा रहा हूं। ये कुछ सामान्य सामान्य दृष्टिकोण हैं जो केवल यह देखने के लिए अध्ययन करने के लायक हैं कि क्या वे आपके उद्देश्य को बेहतर ढंग से फिट कर सकते हैं, और यदि उन्हें समझने के अलावा कुछ भी नहीं हो सकता है, तो आप जिस भी दृष्टिकोण के साथ चलते हैं, उसे कसने में मदद करने के लिए आपको कुछ विचार दे सकते हैं।
ध्यान दें, मैं सुरक्षा विशेषज्ञ नहीं हूं ।
OAuth / संघीय
इस दृष्टिकोण में आपके पास एक 3 पार्टी गारंटर है जहां उपभोग कोड टोकन / सर्टिफिकेट का अनुरोध करता है / आपके पास उनसे क्या है और आपके पास है, इस बिंदु पर, आपको इस बिंदु पर सभी 3 पार्टी से पूछना होगा कि क्या आपको कुंजी दी गई है कानूनी।
समर्थक:
- मानक आधारित
- मुद्दे अन्य लोगों के सिस्टम पर दूसरों द्वारा पाए जाएंगे ताकि आपको पता चलेगा कि असुरक्षा होती है या नहीं
- आपके द्वारा बहुत कम कार्य की आवश्यकता होगी
कोन:
- आपको अपनी मुख्य सेवा से बाहर करने के लिए तीसरे पक्ष के सेवादार और उनके एपीआई से निपटना होगा, या अपनी खुद की "तीसरी पार्टी" की मेजबानी करनी होगी।
- कई सेवाओं के लिए overkill, लेकिन वैचारिक रूप से विचार करने लायक
अतुल्यकालिक प्रमाण पत्र
यहां आपके पास अपने क्लाइंट को एक सार्वजनिक प्रमाणपत्र के साथ अपने संचार को एन्क्रिप्ट करना होगा, जब उन्होंने एक उपयोगकर्ता बनाया था। अपनी तरफ से आप उपयोगकर्ता के साथ जुड़ी निजी कुंजी का उपयोग करके डिक्रिप्ट करेंगे। आम तौर पर आप संचार को एक चुनौती-प्रतिक्रिया के साथ शुरू करते हैं, यह दिखाने के लिए कि वे एन्क्रिप्ट करने / डिक्रिप्ट कर सकते हैं जैसा कि आप उन्हें पहचानने की अपेक्षा करते हैं कि वे कौन होने का दावा करते हैं। यद्यपि "सिंक्रोनस" दृष्टिकोण संभव है, जो चुनौती-प्रतिक्रिया का उपयोग नहीं करते हैं, उनके पास थोड़ी कम सुरक्षा और कुछ समय के सिंक्रनाइज़ेशन मुद्दे हैं जो बहुत मुश्किल बना सकते हैं।
से नोवेल (हाँ मैं नोवेल पता है,? वास्तव में?)
टोकन वन-टाइम पासवर्ड जनरेट करने के आधार के रूप में एक चर का उपयोग करते हैं। इस चर को चुनौती कहा जाता है। पासवर्ड उत्पन्न करने के लिए उपयोग किए जाने वाले चर का निर्धारण करने के लिए दो मुख्य विधियां एसिंक्रोनस या सिंक्रोनस हैं।
अतुल्यकालिक या चुनौती-प्रतिक्रिया विधि के साथ, सर्वर सॉफ़्टवेयर टोकन को बाहरी चुनौती भेजता है --- एक बेतरतीब ढंग से उत्पन्न चर --- टोकन डिवाइस को एन्क्रिप्ट करने के लिए। टोकन इस चुनौती चर, एन्क्रिप्शन एल्गोरिथ्म, और प्रतिक्रिया उत्पन्न करने के लिए साझा रहस्य --- सही ढंग से एन्क्रिप्टेड पासवर्ड का उपयोग करता है।
सिंक्रोनस विधि के साथ, पासवर्ड उत्पन्न करने के लिए उपयोग किए जाने वाले चुनौती चर को टोकन और सर्वर द्वारा आंतरिक रूप से निर्धारित किया जाता है। प्रत्येक डिवाइस के भीतर एक समय काउंटर, इवेंट काउंटर, या समय और इवेंट काउंटर संयोजन चुनौती चर के आधार के रूप में उपयोग किया जाता है। क्योंकि टोकन और सर्वर प्रत्येक अलग-अलग और आंतरिक रूप से अपने स्वयं के काउंटर से चुनौती चर का निर्धारण करते हैं, इसलिए उनके समय काउंटर और इवेंट काउंटर के लिए सिंक्रनाइज़ रहना बहुत महत्वपूर्ण है। क्योंकि सर्वर और टोकन के लिए सिंक से बाहर निकलना इतना आसान है, अधिकांश कार्यान्वयन काउंटरों के बीच एक निश्चित मात्रा में बहाव की अनुमति देते हैं। आमतौर पर पासवर्ड की गणना के लिए इन काउंटर मानों की एक छोटी श्रृंखला या विंडो का उपयोग किया जाता है। हालाँकि, यदि टोकन और सर्वर इस विंडो से परे सिंक से बाहर निकलते हैं,
समर्थक:
- प्रमाण पत्र में सीए जड़ें होती हैं जो उन्हें विश्वसनीय और जाली बनाना मुश्किल बनाती हैं
- आसानी से प्रमाणित दुकानों के प्रबंधन और रखरखाव के लिए ऑपरेटिंग सिस्टम में मानक सुविधाएं हैं
- अच्छी तरह से अध्ययन किया दृष्टिकोण, इस पर उपलब्ध बहुत सारी जानकारी
- विभिन्न प्रकार की अन्य चीजों के साथ एक्सपायरी मानक प्रमाण पत्र की अंतर्निहित सुविधाएं हैं, वे आम तौर पर मजबूत हैं
कोन:
- कार्यक्रम के साथ काम करने के लिए प्रमाण पत्र मुश्किल हो सकते हैं
- यदि आपको बाहरी CA की आवश्यकता होती है, तो निर्भर करता है कि वह मुक्त नहीं हो सकता है
- रूट प्रमाणपत्र कॉन्फ़िगर किए गए हैं यह सुनिश्चित करने के लिए मैन्युअल रूप से प्रमाणित स्टोर बनाए रखने की आवश्यकता हो सकती है
NTLM
हंसो मत, अगर यह एक छोटी या आंतरिक एकमात्र सेवा है और आप एक विंडोज़ वातावरण में हैं, तो एक्सेस की गारंटी देने के लिए मानक NTLM प्रमाणीकरण का उपयोग करने में कुछ भी गलत नहीं है। खासकर यदि आप IIS के साथ काम कर रहे हैं तो यह सबसे आसान तरीका है। आसान बनाए रखने और कॉन्फ़िगर करने के साथ ही web.config में।
समर्थक:
- कॉन्फ़िगर करना, कार्यान्वित करना और बनाए रखना बेहद आसान है
कोन:
- न्यूनतम अंतर
- सार्वजनिक रूप से प्रमाणीकरण के लिए पर्याप्त नहीं है
Nonces
जब आपके प्रमाणीकरण दृष्टिकोण में गैर के साथ काम करते हैं, तो आप सेवा पर एक गैर प्राप्त करने के लिए एक विधि की आपूर्ति करते हैं। यह विधि प्रत्येक अनुरोध पर एक अद्वितीय मनमाना स्ट्रिंग या डेटा का टुकड़ा ("एक गैर")) लौटाती है। अन्य विधियों के लिए प्रत्येक अनुरोध को अब एक गैर-पुनर्प्राप्त करने की आवश्यकता होती है, और अनुरोध के लिए क्रिप्टो एल्गोरिथ्म में उपयोग किया जाता है। यहां मान यह है कि सर्वर उपयोग किए गए नॉनवेज का ट्रैक रखता है, और कभी भी एक नॉन के पुन: उपयोग की अनुमति नहीं देता है, यह पूरी तरह से पुनरावृत्ति के हमलों को रोकता है क्योंकि एक बार एक नॉन के साथ एक अनुरोध किया जाता है, उस नॉन के साथ एक अनुरोध फिर से कभी नहीं बनाया जा सकता है। जब से गैर-अनुरोधों का अनुरोध किया जाता है, तो वे उपलब्ध गैर-सूची की सूची में जोड़ दिए जाते हैं, क्योंकि उनका उपयोग किया जाता है, वे उपलब्ध सूची से उपयोग की गई सूची में चले जाते हैं।
समर्थक:
- Thwarts replay हमलों काफी अच्छी तरह से
- पूरी तरह से लागू करना या समझना मुश्किल नहीं है
कोन:
- ग्राहकों को प्रत्येक अनुरोध के लिए दो अनुरोध करने की आवश्यकता होती है (हालांकि केवल कुछ अनुरोधों के लिए गैर-आवश्यकता द्वारा कम किया जा सकता है )
- गैर-प्रबंधन के प्रबंधन की आवश्यकता होती है, जिसे लेन-देन होना चाहिए
- नॉनवेज के लिए अतिरिक्त अनुरोधों की आवश्यकता से नकारात्मक रूप से प्रदर्शन को प्रभावित करता है (लेन-देन के साथ काम करने की संसाधन लागत बढ़ जाती है)