वर्तमान में मेरे पास एक रोल-आपकी स्वयं की एप्लिकेशन सुरक्षा सेवा है जो मेरे उद्यम में चलता है और - अधिकांश भाग-बैठक व्यवसाय आवश्यकताओं के लिए है।एसएसएल सत्र दृढ़ता और सुरक्षित कुकीज़
जिस मुद्दे का मैं वर्तमान में सामना कर रहा हूं वह यह है कि सेवा परंपरागत रूप से (naively) उपयोगकर्ता के स्रोत आईपी पर निर्भर करती है जो सत्र अपहरण के खिलाफ बचाव के रूप में निरंतर स्थिर रहता है - उद्यम में वेब अनुप्रयोग सीधे जनता के लिए उपलब्ध नहीं होते हैं और यह था अतीत में मेरे लिए पूरी तरह स्वीकार्य है कि किसी दिए गए सत्र में उपयोगकर्ता का पता स्थिर रहे।
दुर्भाग्य से यह अब मामला नहीं है और इसलिए मुझे ऐसे समाधान पर स्विच करने के लिए मजबूर किया गया है जो स्रोत आईपी पर भरोसा नहीं करता है। मैं ऐसे समाधान को लागू करना पसंद करूंगा जो वास्तव में मूल डिजाइनर के इरादे को पूरा करता है (यानी सत्र अपहरण को रोकना)।
मेरा शोध अब तक this चालू हो गया है, जो अनिवार्य रूप से "एसएसएल सत्र कुंजी के साथ आपके प्रमाणीकरण टोकन हैश को नमक" कहता है।
इसके चेहरे पर, यह एक सही समाधान की तरह लगता है, हालांकि मुझे इस योजना के वास्तविक दुनिया के कार्यान्वयन के कारण अव्यवहारिक है क्योंकि क्लाइंट और सर्वर किसी भी समय प्रभावी ढंग से हो सकता है - प्रभावी ढंग से मनमाने ढंग से - एसएसएल सत्र को दोबारा बातचीत करने का विकल्प चुनते हैं और इसलिए कुंजी बदलते हैं।
इसपरिदृश्य मैं envisioning कर रहा हूँ:
- एसएसएल सत्र की स्थापना की और कुंजी पर सहमत हुए।
- क्लाइंट एप्लिकेशन स्तर पर सर्वर पर प्रमाणीकृत करता है (यानी उपयोगकर्ता नाम और पासवर्ड के माध्यम से)।
- सर्वर एक सुरक्षित कुकी लिखता है जिसमें SSL सत्र कुंजी शामिल है।
- कुछ ऐसा होता है जो सत्र पुन: बातचीत का कारण बनता है। उदाहरण के लिए, मुझे लगता है कि आईई बिना किसी कारण के टाइमर पर करता है।
- क्लाइंट पुरानी सत्र कुंजी वाले सर्वर से अनुरोध सबमिट करता है (क्योंकि पुन: बातचीत के कोई अनुप्रयोग स्तर का ज्ञान नहीं था, इसलिए क्लाइंट को नए, अद्यतन हैश को लिखा जाने का कोई मौका नहीं था)।
- सर्वर ग्राहक के मैच विफलता हैश के कारण क्रेडेंशियल, आदि
यह एक असली मुद्दा है को खारिज कर दिया या यह मेरी ओर से एक ग़लतफ़हमी एक की वजह से (कम से कम कहने के लिए) से कम एकदम सही है की समझ एसएसएल कैसे काम करता है?
करने के लिए अपने कुकीज़ सेट लेकिन इस कैश समाधान समस्या यह है कि ग्राहक अचानक नया SSL सत्र कुंजी है कि आवेदन के बारे में पता नहीं है का उपयोग करता है का समाधान नहीं होगा। ग्राहक को यह कहना होगा कि "अब मैं एक नई एसएसएल सत्र कुंजी का उपयोग करता हूं" या सर्वर को एक महत्वपूर्ण परिवर्तन के बारे में एप्लिकेशन को सूचित करना होगा। – Gumbo
नहीं, ग्राहक पुराने सत्र कुंजी के आधार पर एक कुकी में भेज देगा (सत्र को फिर से बातचीत करने से कुकी साफ़ नहीं होगी)। नमक केवल अनुमान लगाने में मुश्किल बनाने के लिए है, यह कुछ भी हो सकता है। एसएसएल सत्र कुंजी सिर्फ सही आकार के बारे में आसान है, और उपयुक्त रूप से entropic है। – MarkusQ
@ मार्कस्क्यू, यह सुनिश्चित नहीं है कि अगर मैं वास्तव में मशीन ए से मशीन बी तक कुकी कॉपी करता हूं और फिर मशीन ए (एक नए एसएसएल सत्र पर) के रूप में मास्कराइड करता हूं तो – vladr