ट्रॉय हंट अपने लेख में कुछ उत्कृष्ट बिंदु बनाते हैं, जो कुछ भी आप कभी भी एक सुरक्षित पासवर्ड रीसेट सुविधा के निर्माण के बारे में जानना चाहते थे । सबसे अधिक प्रासंगिक अंश हैं:
[टी] यहाँ दो सामान्य दृष्टिकोण हैं:
- सर्वर पर एक नया पासवर्ड बनाएं और इसे ईमेल करें
- एक अद्वितीय URL ईमेल करें जो रीसेट प्रक्रिया को सुविधाजनक बनाएगा
इसके विपरीत बहुत मार्गदर्शन करने के बावजूद, पहला बिंदु वास्तव में वह नहीं है जहां हम होना चाहते हैं। ऐसा करने के साथ समस्या यह है कि इसका अर्थ है एक निरंतर पासवर्ड - एक जिसे आप किसी भी समय वापस जा सकते हैं और उपयोग कर सकते हैं - अब एक असुरक्षित चैनल पर भेजा गया है और आपके इनबॉक्स में रहता है।
...
लेकिन पहले दृष्टिकोण के साथ एक और बड़ी समस्या यह है कि यह किसी खाते के दुर्भावनापूर्ण लॉकआउट को सरल बनाता है। अगर मुझे किसी ऐसे व्यक्ति का ईमेल पता पता है, जो किसी वेबसाइट पर खाता रखता है, तो जब भी मैं बस अपना पासवर्ड रीसेट करके कृपया उसे इसमें से बाहर निकाल सकता हूं; यह सिल्वर प्लैटर पर सेवा हमले से इनकार है! यही कारण है कि एक रीसेट कुछ ऐसा है जो केवल ऐसा करने के लिए अनुरोधकर्ता के अधिकार को सफलतापूर्वक सत्यापित करने के बाद ही होना चाहिए।
जब हम रीसेट URL के बारे में बात करते हैं, तो हम एक वेबसाइट पते के बारे में बात कर रहे हैं जो रीसेट प्रक्रिया के इस विशिष्ट उदाहरण के लिए अद्वितीय है।
...
हम जो करना चाहते हैं, वह एक अद्वितीय टोकन बनाता है जिसे ईमेल में रीसेट URL के हिस्से के रूप में भेजा जा सकता है, फिर उपयोगकर्ता के खाते के साथ सर्वर पर एक रिकॉर्ड से मिलान किया जाता है और इस तरह ईमेल खाते के मालिक की पुष्टि करना वास्तव में रीसेट करने का प्रयास है। कुंजिका। उदाहरण के लिए, टोकन "3ce7854015cd38c862cb9e14a1ae552b" हो सकता है और रीसेट करने वाले उपयोगकर्ता की आईडी के साथ एक तालिका में संग्रहीत किया जाता है और जिस समय टोकन उत्पन्न हुआ था (उस पर एक पल में अधिक)। जब ईमेल बाहर भेजा जाता है, तो इसमें "रीसेट / आईडी? = 3ce7854015cd38c862cb9e14a1ae552b" जैसे URL शामिल होते हैं और जब उपयोगकर्ता इसे लोड करता है, तो पृष्ठ टोकन के अस्तित्व की जांच करता है और फलस्वरूप उपयोगकर्ता की पहचान की पुष्टि करता है और पासवर्ड की अनुमति देता है। बदल जाओ।
...
दूसरी चीज़ जो हम रीसेट URL के साथ करना चाहते हैं, वह समय सीमा टोकन को सीमित करना है ताकि रीसेट प्रक्रिया को एक निश्चित अवधि के भीतर पूरा किया जाना चाहिए, एक घंटे के भीतर।
...
अंत में, हम यह सुनिश्चित करना चाहते हैं कि यह एक बार की प्रक्रिया है। एक बार रीसेट प्रक्रिया पूरी हो जाने के बाद, टोकन को हटा दिया जाना चाहिए ताकि रीसेट URL अब कार्यशील न हो। पिछले बिंदु के साथ, यह सुनिश्चित करना है कि एक हमलावर के पास बहुत सीमित खिड़की है जिसमें वे रीसेट URL का दुरुपयोग कर सकते हैं। यदि निश्चित रूप से रीसेट प्रक्रिया सफलतापूर्वक पूरी हो गई है, तो निश्चित रूप से टोकन की आवश्यकता नहीं है।
वह सूचना लीक, कैप्चा, दो-कारक प्रमाणीकरण, और निश्चित रूप से पासवर्ड की तरह बुनियादी सर्वोत्तम प्रथाओं से बचने के बारे में कई और अच्छे बिंदु बनाता है। मुझे लगता है कि यह ध्यान रखना महत्वपूर्ण है कि मैं ट्रॉय के साथ सुरक्षा प्रश्नों की उपयोगिता पर असहमत हूं, अभ्यास के ब्रूस श्नीयर की संदेहवाद को प्राथमिकता देता हूं :
इन सभी प्रश्नों का बिंदु समान है: एक बैकअप पासवर्ड। यदि आप अपना पासवर्ड भूल जाते हैं, तो गुप्त प्रश्न आपकी पहचान को सत्यापित कर सकता है ताकि आप दूसरा पासवर्ड चुन सकें या आपके पास अपना वर्तमान पासवर्ड ई-मेल कर सकें। यह एक ग्राहक सेवा के दृष्टिकोण से एक महान विचार है - एक उपयोगकर्ता कुछ यादृच्छिक पासवर्ड की तुलना में अपने पहले पालतू जानवर के नाम को भूल जाने की संभावना कम है - लेकिन सुरक्षा के लिए भयानक। गुप्त प्रश्न का उत्तर अच्छे पासवर्ड की तुलना में अनुमान लगाना बहुत आसान है, और जानकारी अधिक सार्वजनिक है।