बाद में सादे रिट्रीवल के लिए मुझे उपयोगकर्ता के पासवर्ड भंडारण के लिए नैतिक रूप से कैसे संपर्क करना चाहिए?


1344

जैसा कि मैं अधिक से अधिक वेबसाइटों और वेब एप्लिकेशन का निर्माण जारी रखता हूं, मुझे अक्सर उपयोगकर्ता के पासवर्ड को इस तरह से संग्रहीत करने के लिए कहा जाता है कि उन्हें पुनर्प्राप्त किया जा सकता है यदि / जब उपयोगकर्ता के पास कोई समस्या है (या तो किसी भूल गए पासवर्ड लिंक को ईमेल करने के लिए, तो उन पर से चलें) फोन, आदि) जब मैं इस प्रथा के खिलाफ डटकर लड़ सकता हूं और मैं उनके वास्तविक पासवर्ड को संग्रहीत किए बिना पासवर्ड रीसेट और प्रशासनिक सहायता संभव बनाने के लिए बहुत सारी 'अतिरिक्त' प्रोग्रामिंग करता हूं।

जब मैं इसे नहीं लड़ सकता (या जीत नहीं सकता) तो मैं हमेशा पासवर्ड को किसी तरह से एनकोड करता हूं ताकि यह कम से कम, डेटाबेस में प्लेनटेक्स्ट के रूप में संग्रहीत न हो - हालांकि मुझे पता है कि अगर मेरा डीबी हैक हो गया है अपराधी को पासवर्ड क्रैक करने में ज्यादा समय नहीं लगेगा, जिससे मुझे असहज महसूस होगा।

एक आदर्श दुनिया में लोग अक्सर पासवर्ड अपडेट करते हैं और उन्हें कई अलग-अलग साइटों पर डुप्लिकेट नहीं करते हैं-दुर्भाग्य से मैं जानता हूं कि ऐसे लोग जिनके पास समान काम / घर / ईमेल / बैंक पासवर्ड है, और यहां तक ​​कि उन्हें स्वतंत्र रूप से मुझे तब दिया जाता है जब उन्हें सहायता की आवश्यकता होती है। मैं अपने वित्तीय निधन के लिए ज़िम्मेदार नहीं बनना चाहता अगर मेरी DB सुरक्षा प्रक्रिया किसी कारण से विफल हो जाती है।

नैतिक रूप से और नैतिक रूप से मैं यह रक्षा करने के लिए जिम्मेदार महसूस करता हूं कि कुछ उपयोगकर्ताओं के लिए क्या हो सकता है, उनकी आजीविका भले ही वे इसे बहुत कम सम्मान के साथ मान रहे हों। मैं निश्चित हूं कि हैशिंग और अलग-अलग एन्कोडिंग विकल्पों के लिए दृष्टिकोण और तर्क दिए जाने के कई रास्ते हैं, लेकिन क्या आपको स्टोर करने के लिए एक ही 'सर्वोत्तम अभ्यास' है? लगभग सभी मामलों में मैं PHP और MySQL का उपयोग कर रहा हूँ अगर उस तरीके से मुझे कोई फ़र्क पड़ता है जो मुझे बारीकियों को संभालना चाहिए।

बाउंटी के लिए अतिरिक्त जानकारी

मैं स्पष्ट करना चाहता हूं कि मुझे पता है कि यह ऐसा कुछ नहीं है जो आप करना चाहते हैं और ज्यादातर मामलों में ऐसा करने से इनकार करना सबसे अच्छा है। हालांकि, मैं इस दृष्टिकोण को लेने के गुण पर व्याख्यान की तलाश नहीं कर रहा हूं, अगर आप इस दृष्टिकोण को लेते हैं तो मैं सबसे अच्छा कदम उठा रहा हूं।

नीचे दिए गए एक नोट में मैंने यह बात कही कि बड़े पैमाने पर बुजुर्गों की ओर वेबसाइटें, मानसिक रूप से विकलांग, या बहुत युवा लोगों के लिए भ्रमित हो सकती हैं, जब उन्हें सुरक्षित पासवर्ड रिकवरी रूटीन करने के लिए कहा जाता है। यद्यपि हम इसे सरल और सांसारिक पा सकते हैं, उन मामलों में कुछ उपयोगकर्ताओं को सेवा में मदद करने के लिए अतिरिक्त सहायता की आवश्यकता होती है, जो उन्हें सिस्टम में मदद करता है या इसे सीधे ईमेल / प्रदर्शित करता है।

इस तरह की प्रणालियों में इन जनसांख्यिकी से अटैचमेंट दर एप्लिकेशन को प्रभावित कर सकती है यदि उपयोगकर्ताओं को इस स्तर तक पहुंच सहायता नहीं दी गई थी, तो कृपया इस तरह के सेटअप को ध्यान में रखकर जवाब दें।

सभी को धन्यवाद

यह बहुत सारी बहस के साथ एक मजेदार सवाल है और मैंने इसका आनंद लिया है। अंत में मैंने एक जवाब चुना कि दोनों पासवर्ड सुरक्षा को बरकरार रखते हैं (मुझे सादा पाठ या पुनर्प्राप्त करने योग्य पासवर्ड नहीं रखना होगा), लेकिन यह उस उपयोगकर्ता आधार के लिए भी संभव बनाता है जिसे मैंने निर्दिष्ट किए बिना बड़ी कमियों के बिना सिस्टम में लॉग इन करने के लिए निर्दिष्ट किया है। सामान्य पासवर्ड रिकवरी।

हमेशा की तरह लगभग 5 उत्तर थे जिन्हें मैं अलग-अलग कारणों से सही के रूप में चिह्नित करना चाहूंगा, लेकिन मुझे सबसे अच्छा एक चुनना था - बाकी सभी को +1 मिला। सभी को धन्यवाद!

इसके अलावा, स्टैक समुदाय में सभी को धन्यवाद जिन्होंने इस प्रश्न के लिए मतदान किया और / या इसे पसंदीदा के रूप में चिह्नित किया। मैं एक तारीफ के रूप में 100 वोट ले रहा हूं और आशा करता हूं कि इस चर्चा ने किसी और की उसी चिंता में मदद की है जो मेरे पास थी।


155
मुझे लगता है कि वह जानता है कि यह अच्छा नहीं है। वह अभी भी बताई गई आवश्यकताओं के तहत सबसे अच्छा समाधान ढूंढ रहा है।
22

33
दिन के अंत में आप जो भी कर रहे हैं वह सावधानी से एक कमजोर भेद्यता को लागू कर रहा है।
बदमाश

20
@ मिचेल ब्रूक्स - मैं चाहता हूं कि आप यह जान लें कि मैं पूरी तरह से CWE-257 के साथ समझौता कर रहा हूं और बस उस शब्दशः को उद्धृत करना पसंद करूंगा और हर बार मुझे पासवर्ड को प्लेनटेक्स्ट के रूप में पुनर्प्राप्त करने के लिए कहा जाता है। हालांकि, वास्तव में, क्लाइंट और उपयोगकर्ता शायद ही कभी NIST नियमों में रुचि रखते हैं और बस मुझे वैसे भी करना चाहते हैं। 90% समय मैं उन्हें अन्यथा मना सकता हूं, लेकिन उस 10% समय में जब मैं नहीं कर सकता कि मैं कार्रवाई का सबसे अच्छा पाठ्यक्रम निर्धारित करने की कोशिश कर रहा हूं - उन मामलों में CWE-257 मेरे हाथ में (दुर्भाग्य से) राख है।
शेन

81
@ एवीडी: सिस्टम का "कम मूल्य" इस मुद्दे पर बिल्कुल असर नहीं करता है क्योंकि लोग अपने पासवर्ड का पुन: उपयोग करते हैं । लोग इस सरल तथ्य को क्यों नहीं समझ सकते हैं? यदि आप कुछ "कम मूल्य" सिस्टम पर पासवर्ड क्रैक करते हैं, तो आपके पास अन्य "उच्च मूल्य" सिस्टम के लिए कई वैध पासवर्ड होंगे।
Aaronaught

20
एक अन्य बिंदु को भी चमक दिया गया है, जिसका उल्लेख मैंने अपने उत्तर में टिप्पणी स्ट्रीम में किया है: आप कैसे जानते हैं कि इन आवश्यकताओं के लिए पूछने वाला व्यक्ति विश्वसनीय है? क्या होगा अगर "प्रयोज्य" बहाना भविष्य में किसी बिंदु पर पासवर्ड चुराने के लिए एक वास्तविक इरादे का प्रतीक है? आपके naiveté में सिर्फ ग्राहकों और शेयरधारकों की लाखों की लागत हो सकती है। अंत में डूबने से पहले सुरक्षा विशेषज्ञों को इसे कितनी बार दोहराना चाहिए: सबसे आम और सबसे गंभीर सुरक्षा खतरे हमेशा आंतरिक होते हैं।
Aaronaught

जवाबों:


1037

कैसे इस समस्या पर एक और दृष्टिकोण या कोण लेने के बारे में? यह पूछें कि पासवर्ड को प्लेनटेक्स्ट में होना क्यों आवश्यक है: यदि ऐसा है कि उपयोगकर्ता पासवर्ड को पुनः प्राप्त कर सकता है, तो सख्ती से बोलना आपको वास्तव में उनके द्वारा सेट किए गए पासवर्ड को पुनः प्राप्त करने की आवश्यकता नहीं है (उन्हें याद नहीं है कि यह वैसे भी क्या है), आप उन्हें एक पासवर्ड देने में सक्षम होना चाहिए जिसका वे उपयोग कर सकते हैं

इसके बारे में सोचें: यदि उपयोगकर्ता को पासवर्ड पुनः प्राप्त करने की आवश्यकता है, तो यह इसलिए है क्योंकि वे इसे भूल गए हैं। जिस स्थिति में एक नया पासवर्ड पुराने के समान ही अच्छा है। लेकिन, आज उपयोग किए जाने वाले सामान्य पासवर्ड रीसेट तंत्रों की कमियों में से एक यह है कि रीसेट ऑपरेशन में उत्पन्न जनरेट पासवर्ड आम तौर पर यादृच्छिक वर्णों का एक गुच्छा होता है, इसलिए वे उपयोगकर्ता के लिए बस सही तरीके से टाइप करना मुश्किल है जब तक कि वे कॉपी-एन नहीं करते हैं- पेस्ट करें। यह कम समझदार कंप्यूटर उपयोगकर्ताओं के लिए एक समस्या हो सकती है।

उस समस्या के बारे में एक तरीका यह है कि ऑटो-जनरेट किए गए पासवर्ड प्रदान करें जो कम या ज्यादा प्राकृतिक भाषा पाठ हैं। जबकि प्राकृतिक भाषा के तार में वह एन्ट्रॉपी नहीं हो सकती है जो समान लंबाई के यादृच्छिक वर्णों की एक स्ट्रिंग है, ऐसा कुछ भी नहीं है जो कहता है कि आपके ऑटो-जनरेट किए गए पासवर्ड के लिए केवल 8 (या 10 या 12) वर्ण होने चाहिए। कई यादृच्छिक शब्दों को एक साथ स्ट्रिंग करके एक उच्च-एन्ट्रापी ऑटो-जनरेट पासफ़्रेज़ प्राप्त करें (उनके बीच एक स्थान छोड़ दें, ताकि वे अभी भी पहचानने योग्य और किसी भी व्यक्ति द्वारा टाइप करने योग्य हो जो पढ़ सकते हैं)। अलग-अलग लंबाई के छह यादृच्छिक शब्द संभवत: सही ढंग से टाइप करने के लिए आसान हैं और 10 यादृच्छिक वर्णों की तुलना में आत्मविश्वास के साथ, और वे एक उच्च एन्ट्रॉपी भी कर सकते हैं। उदाहरण के लिए, अपरकेस, लोअरकेस से यादृच्छिक रूप से खींचे गए 10 वर्ण पासवर्ड की एन्ट्रोपी, अंक और 10 विराम चिह्न (कुल 72 मान्य प्रतीकों के लिए) में 61.7 बिट्स की एन्ट्रॉपी होगी। 7776 शब्दों (डिक्लेयर का उपयोग करता है) के शब्दकोश का उपयोग करते हुए, जिसे छः शब्द पासफ़्रेज़ के लिए बेतरतीब ढंग से चुना जा सकता है, पासफ़्रेज़ में 77.4 बिट्स की एन्ट्रॉपी होगी। देखेंअधिक जानकारी के लिए डिसेवेयर एफएक्यू

  • लगभग 77 बिट्स एन्ट्रॉपी के साथ एक पासफ़्रेज़: "गद्य भड़कना टेबल एक्यूट फ्लेयर"

  • लगभग 74 बिट्स एन्ट्रापी वाला पासवर्ड: "K: & $ R ^ tt ~ qkD"

मुझे पता है कि मैं वाक्यांश लिखना पसंद करूंगा, और कॉपी-एन-पेस्ट के साथ, वाक्यांश उस पासवर्ड का उपयोग करने के लिए कम आसान नहीं है, इसलिए वहां कोई नुकसान नहीं है। यदि आपकी वेबसाइट (या जो भी संरक्षित संपत्ति है) बेशक, ऑटो-जेनरेट किए गए पासफ़्रेज़ के लिए 77 बिट्स एन्ट्रापी की आवश्यकता नहीं है, तो कम शब्द उत्पन्न करें (जो मुझे यकीन है कि आपके उपयोगकर्ता सराहना करेंगे)।

मैं उन तर्कों को समझता हूं कि पासवर्ड संरक्षित संपत्ति हैं जो वास्तव में उच्च स्तर का मूल्य नहीं रखते हैं, इसलिए पासवर्ड का उल्लंघन दुनिया का अंत नहीं हो सकता है। उदाहरण के लिए, मैं शायद परवाह नहीं करता अगर विभिन्न वेबसाइटों पर मेरे द्वारा उपयोग किए जाने वाले पासवर्डों में से 80% का उल्लंघन किया गया था: जो कुछ भी हो सकता है वह किसी को मेरे नाम से कुछ समय के लिए स्पैमिंग या पोस्ट करना है। यह बहुत अच्छा नहीं होगा, लेकिन ऐसा नहीं है कि वे मेरे बैंक खाते में तोड़ रहे हैं। हालाँकि, इस तथ्य को देखते हुए कि बहुत से लोग अपने वेब फोरम साइटों के लिए एक ही पासवर्ड का उपयोग करते हैं जैसा कि वे अपने बैंक खातों (और शायद राष्ट्रीय सुरक्षा डेटाबेस) के लिए करते हैं, मुझे लगता है कि उन 'कम-मूल्य' पासवर्ड को भी संभालना सबसे अच्छा होगा -recoverable।


93
पासफ़्रेज़ के लिए +1, जो वर्तमान में पासवर्ड की ताकत और उपयोगकर्ता को याद रखने का सबसे अच्छा संतुलन प्रदान करता है।
हारून

197
इसके अलावा, आप एक पूर्ण वाक्य बना सकते हैं जैसे <विशेषण> <संज्ञा> <क्रिया> <क्रिया विशेषण> है। हरी बिल्ली बेतहाशा उछल रही है। श्रेणियों के लिए सूची है। 1024 विकल्पों में से प्रत्येक के लिए आपके पास 40 बिट्स एन्ट्रॉपी है।
डोमिनिक वेबर

28
पासवर्ड से बचने के लिए +1 एक महत्वपूर्ण मुद्दे के रूप में उपयोग से बचने के लिए
lurscher

57
"इसके बारे में सोचो - अगर उपयोगकर्ता को पासवर्ड पुनर्प्राप्त करने की आवश्यकता है, तो यह इसलिए है क्योंकि वे इसे भूल गए हैं" - जरूरी नहीं कि यह सच है! मैं अक्सर अपना पासवर्ड प्राप्त करना चाहता हूं क्योंकि मैं लैपटॉप पर हूं, और मुझे पता है कि मेरी मशीन वापस घर में मेरा पासवर्ड संग्रहीत है, या यह कहीं सुरक्षित रूप से लिखा गया है, और मैं इसे एक नए के साथ जारी करके नहीं तोड़ना चाहता हूं ।
जोचिम

5
नई आईटी सुरक्षा एसई साइट पर उच्चतम स्कोरिंग प्रश्न इस एन्ट्रापी गणना की वैधता से संबंधित है। (खैर, तकनीकी रूप से, यह xkcd से संबंधित है जो @Pieter से जुड़ा हुआ है।)
चबूतरे

592

कल्पना कीजिए कि किसी ने एक बड़ी इमारत का निर्माण किया है - एक बार, आइए बताते हैं - और निम्नलिखित बातचीत होती है:

वास्तुकार: इस आकार और क्षमता के निर्माण के लिए, आपको यहाँ, और यहाँ आग से बाहर निकलने की आवश्यकता होगी।
ग्राहक: नहीं, यह बहुत जटिल है और बनाए रखने के लिए महंगा है, मैं किसी भी पक्ष के दरवाजे या पीछे के दरवाजे नहीं चाहता हूं।
वास्तुकार: सर, फायर एक्सिट्स वैकल्पिक नहीं हैं, वे शहर के फायर कोड के अनुसार आवश्यक हैं।
ग्राहक: मैं आपको बहस करने के लिए भुगतान नहीं कर रहा हूं। बस वही करो जो मैंने पूछा था।

क्या आर्किटेक्ट तब पूछता है कि आग से बाहर निकलने के बिना नैतिक रूप से इस इमारत का निर्माण कैसे किया जाए?

भवन और इंजीनियरिंग उद्योग में, बातचीत इस तरह समाप्त होने की सबसे अधिक संभावना है:

वास्तुकार: यह इमारत बिना आग के बाहर नहीं बनाई जा सकती। आप किसी अन्य लाइसेंस प्राप्त पेशेवर के पास जा सकते हैं और वह आपको वही बात बताएगा। मैं अब जा रहा हूँ; जब आप सहयोग करने के लिए तैयार हों तो मुझे वापस बुलाएं।

कंप्यूटर प्रोग्रामिंग एक लाइसेंस प्राप्त पेशा नहीं हो सकता है , लेकिन लोगों को अक्सर आश्चर्य होता है कि हमारे पेशे को एक नागरिक या मैकेनिकल इंजीनियर के रूप में समान सम्मान क्यों नहीं मिलता है - ठीक है, आगे नहीं देखें। उन व्यवसायों, जब कूड़ा (या एकमुश्त खतरनाक) आवश्यकताओं को सौंप दिया जाता है, बस मना कर देंगे। वे जानते हैं कि यह कहने का बहाना नहीं है, "ठीक है, मैंने अपना सर्वश्रेष्ठ प्रदर्शन किया, लेकिन उन्होंने जोर देकर कहा, और मैंने जो कहा है, वह मुझे पसंद आएगा।" वे उस बहाने अपना लाइसेंस खो सकते थे।

मैं नहीं जानता कि आप या आपके ग्राहक किसी सार्वजनिक रूप से कारोबार वाली कंपनी का हिस्सा हैं या नहीं, लेकिन किसी भी रिकवरी योग्य फॉर्म में पासवर्ड रखने से आपको कई तरह के सुरक्षा ऑडिट विफल हो जाएंगे। मुद्दा यह नहीं है कि कुछ "हैकर" के लिए यह कितना मुश्किल होगा, जो पासवर्ड पुनर्प्राप्त करने के लिए आपके डेटाबेस तक पहुंच प्राप्त करते हैं। अधिकांश सुरक्षा खतरे आंतरिक हैं। आपको किसी भी असंतुष्ट कर्मचारी को सभी पासवर्डों के साथ चलने और उच्चतम बोली लगाने वाले को बेचने से बचाने की आवश्यकता है। विषम एन्क्रिप्शन का उपयोग करना और एक अलग डेटाबेस में निजी कुंजी को संग्रहीत करना इस परिदृश्य को रोकने के लिए बिल्कुल कुछ नहीं करता है; हमेशा निजी डेटाबेस तक पहुंच रखने वाला कोई व्यक्ति होता है, और यह एक गंभीर सुरक्षा जोखिम है।

पासवर्ड को पुनर्प्राप्त करने योग्य रूप में संग्रहीत करने का कोई नैतिक या जिम्मेदार तरीका नहीं है। अवधि।


124
@Aaronaught - मुझे लगता है कि यह एक उचित और मान्य बिंदु है, लेकिन मुझे उस पर आप को घुमा देना चाहिए। आप एक कंपनी के लिए एक कर्मचारी के रूप में एक परियोजना पर काम कर रहे हैं और आपका बॉस कहता है 'यह हमारी प्रणाली की आवश्यकता है' (जो भी कारण हो)। क्या आप धर्मी आक्रोश से भरी नौकरी से चलते हैं? मुझे पता है कि जब मैं पूरी तरह से जिम्मेदार होने के लिए नियंत्रण में हूं, तो एक दायित्व है - लेकिन अगर कोई कंपनी ऑडिट या देयता की विफलता का जोखिम उठाती है, तो क्या यह मेरा कर्तव्य है कि मैं एक बिंदु साबित करने के लिए अपनी नौकरी का त्याग करूं, या मैं सर्वश्रेष्ठ की तलाश करूं और वे क्या कहते हैं करने के लिए सुरक्षित रास्ता बस शैतान का वकील निभा रहा है ..
शेन

44
मैं वकील नहीं हूं, लेकिन इस पर विचार करें। यदि आपका पर्यवेक्षक आपको कंपनी के हितों के खिलाफ कुछ करने का आदेश देता है, जैसे कि उन्हें आसानी से बची हुई देयता में उजागर करके, तो क्या आपका काम मानना ​​या विनम्रता से मना करना है? हां, वे आपके बॉस हैं, लेकिन उनके पास खुद का बॉस है, भले ही वह निवेशक ही क्यों न हों। यदि आप उनके सिर के ऊपर नहीं जाते हैं, तो आपके सुरक्षा छेद का शोषण होने पर किसका सिर घूमने वाला है? बस कुछ विचार करने के लिए।
स्टीवन सुदित

68
डेवलपर्स हमेशा यह कहने की कोशिश कर रहे हैं कि हमारी नौकरियां दूसरों की तुलना में कितनी कठिन हैं क्योंकि हमें हर समय बदलने वाली कचरा आवश्यकताएं मिलती हैं। खैर, यह क्यों का एक आदर्श उदाहरण है; हमारे पेशे को एक रीढ़ की जरूरत है। हमारे पेशे को यह कहने में सक्षम होने की आवश्यकता है "नहीं, यह स्वीकार्य आवश्यकता नहीं है, यह ऐसा कुछ नहीं है जिसे मैं अच्छे विश्वास में विकसित कर सकता हूं, आप मेरे ग्राहक / नियोक्ता हो सकते हैं, लेकिन मेरे पास आपके ग्राहकों और जनता के प्रति पेशेवर जिम्मेदारियां हैं," और अगर आप ऐसा चाहते हैं तो आपको कहीं और देखना होगा। "
हारून पकड़ा गया

36
@sfussenegger: आपको पृष्ठभूमि जानने की आवश्यकता नहीं है। यह अस्वीकार्य है। आप मान रहे हैं कि ग्राहक 100% भरोसेमंद है - क्या होगा यदि वह विशेष रूप से इस आवश्यकता के लिए पूछ रहा है तो वह बाद में पासवर्ड से बंद कर सकता है? सुरक्षा विकास में कुछ वस्तुओं में से एक है जो पत्थर में खुदी हुई हैं । कुछ चीजें हैं जो आप बस नहीं करते हैं, और पुनर्प्राप्त करने योग्य पासवर्ड संग्रहीत करना उनमें से दस है।
Aaronaught

37
ठीक है, चलो एक जोखिम मूल्यांकन करते हैं, यहीं और अभी। "यदि आप पासवर्ड को पुनर्प्राप्त करने योग्य रूप में संग्रहीत करते हैं, तो आप पासवर्ड के चोरी होने का एक गैर-तुच्छ जोखिम पैदा कर रहे हैं। यह भी संभावना है कि कम से कम कुछ उपयोगकर्ता अपने ई-मेल और बैंक खातों के लिए एक ही पासवर्ड का उपयोग करेंगे। यदि पासवर्ड चोरी हो गए हैं। और बैंक खातों को सूखा दिया जाता है, यह संभवत: सुर्खियों में आ जाएगा, कोई भी आपके साथ फिर से व्यापार नहीं करेगा, और आप संभवतः अस्तित्व से बाहर हो जाएंगे। " क्या हम अब बकवास काट सकते हैं? तथ्य यह है कि आप "नाजियों" शब्द को स्पष्ट रूप से लाते हैं, यह दर्शाता है कि आपके पास कोई कारण नहीं है।
Aaronaught

206

आप सार्वजनिक कुंजी के साथ पासवर्ड + नमक एन्क्रिप्ट कर सकते हैं। लॉगिन के लिए बस जाँच करें कि संग्रहीत मूल्य उपयोगकर्ता इनपुट + नमक से गणना मूल्य के बराबर है या नहीं। यदि कोई समय आता है, जब पासवर्ड को प्लेनटेक्स्ट में पुनर्स्थापित करने की आवश्यकता होती है, तो आप निजी कुंजी के साथ मैन्युअल रूप से या अर्ध-स्वचालित रूप से डिक्रिप्ट कर सकते हैं। निजी कुंजी कहीं और संग्रहीत की जा सकती है और इसके अलावा सममित रूप से एन्क्रिप्ट किया जा सकता है (जिसे पासवर्ड को डिक्रिप्ट करने के लिए एक मानव इंटरैक्शन की आवश्यकता होगी)।

मुझे लगता है कि यह वास्तव में विंडोज रिकवरी एजेंट के काम करने के तरीके के समान है ।

  • पासवर्ड एन्क्रिप्टेड स्टोर किए जाते हैं
  • लोग प्लेटेक्स्ट को डिक्रिप्ट किए बिना लॉगिन कर सकते हैं
  • पासवर्ड को प्लेनटेक्स्ट में पुनर्प्राप्त किया जा सकता है, लेकिन केवल एक निजी कुंजी के साथ, जिसे सिस्टम के बाहर संग्रहीत किया जा सकता है (यदि आप चाहते हैं तो बैंक में सुरक्षित)।

34
-1 कभी पासवर्ड नहीं "एन्क्रिप्टेड" किया जाना चाहिए यह CWE-257 का उल्लंघन है cwe.mitre.org/data/definitions/257.html
किश्ती

100
1. प्रश्न में कहा गया है कि पासवर्ड को प्लेनटेक्स्ट से पुनर्प्राप्त किया जाना चाहिए, इसलिए यह एक आवश्यकता है। 2. मैं यहां असममित एन्क्रिप्शन का उपयोग कर रहा हूं और सिमिट्रिक एन्क्रिप्शन का नहीं। डिक्रिप्ट की कुंजी दैनिक कार्यों के लिए आवश्यक नहीं है और इसे बैंक में सुरक्षित रखा जा सकता है। लिंक में तर्क मान्य है, लेकिन इस स्थिति पर लागू नहीं होता है।
स्टिफनव

57
यह सच है, लेकिन क्या आप इस बात से सहमत हो सकते हैं कि आवश्यकताओं को देखते हुए इसे करने का सबसे जिम्मेदार तरीका है? आप मुझे अपने CWE-257 के साथ पूरे दिन हिट कर सकते हैं, यह सुरक्षित रूप से भंडारण और क्रेडेंशियल्स के साथ काम करने की दिलचस्प समस्या को बदलने नहीं जा रहा है और यदि आवश्यक हो तो उन्हें उनके मूल रूप में पुनर्प्राप्त करने में सक्षम है।
स्टेफेनव

10
विंडोज रिकवरी एजेंट भी यहां एक खराब उदाहरण है, क्योंकि यह वास्तविक एन्क्रिप्शन से संबंधित है, पासवर्ड प्रबंधन से नहीं। एन्क्रिप्शन कुंजी पासवर्ड के समान नहीं है; प्रत्येक के आसपास के नियम और प्रथाएं पूरी तरह से अलग हैं। एन्क्रिप्शन और प्रमाणीकरण समान नहीं हैं। एन्क्रिप्शन गोपनीयता के लिए है - डेटा की सुरक्षा के लिए एक कुंजी का उपयोग किया जाता है । प्रमाणीकरण पहचान के लिए है , जहां कुंजी डेटा है (यह प्रमाणीकरण प्रक्रिया का एक कारक है)। इसलिए मैं दोहराता हूं, एन्क्रिप्शन और प्रमाणीकरण समान नहीं हैं। आप एक के सिद्धांतों को वैध रूप से लागू नहीं कर सकते।
हारून पकड़ा गया

16
+1 CWE-257 पर जुनूनी रूप से जोर देने की बात कहाँ है? यह एक कमजोरी (CWE) है, न कि भेद्यता (CVE)। बफर ओवरफ्लो के साथ पुनर्प्राप्त करने योग्य पासवर्ड की तुलना सेब और संतरे से की जा रही है। बस सुनिश्चित करें कि ग्राहक समस्या को समझता है (उसे ऐसा कुछ संकेत दें जो ऐसा कहता है - अन्यथा वह सवाल में कुछ भी याद नहीं कर सकता है) और आगे बढ़ें। इसके अतिरिक्त, आवश्यक सुरक्षा उपाय सिस्टम के मूल्य और किसी हमले के संभावित जोखिम पर निर्भर करते हैं। यदि एक सफल हमलावर केवल कुछ न्यूज़लेटर सदस्यता रद्द कर सकता है, तो किसी भी मुद्दे पर बहस करने का कोई कारण नहीं है।
sfussenegger

133

हार मत मानो। अपने ग्राहकों को समझाने के लिए आप जिस हथियार का उपयोग कर सकते हैं, वह गैर-प्रतिशोधात्मक है। यदि आप किसी भी तंत्र के माध्यम से उपयोगकर्ता पासवर्डों को फिर से बना सकते हैं, तो आपने अपने ग्राहकों को एक कानूनी गैर-प्रतिकार तंत्र दिया है और वे उस पासवर्ड पर निर्भर किसी भी लेनदेन को निरस्त कर सकते हैं, क्योंकि कोई भी तरीका नहीं है जिससे आपूर्तिकर्ता यह साबित कर सके कि उन्होंने पासवर्ड को फिर से संगठित नहीं किया है। और खुद के माध्यम से लेनदेन डाल दिया। यदि पासवर्ड सही ढंग से साइफरटेक्स्ट के बजाय डिजीज के रूप में संग्रहीत किया जाता है, तो यह असंभव है, या तो अंत-क्लाइंट ने लेनदेन को स्वयं निष्पादित किया या पासवर्ड को देखभाल करने के अपने कर्तव्य को भंग कर दिया। या तो उस मामले में जो उसके साथ दायित्व को छोड़ देता है। मैंने उन मामलों पर काम किया है, जहां सैकड़ों मिलियन डॉलर की राशि होगी। कुछ ऐसा नहीं जो आप गलत करना चाहते हैं।


2
वेबसर्वर लॉग एक अदालत में गिनती नहीं है? या इस मामले में उन्हें भी नकली माना जाएगा?
विंको वेर्सालोविच

10
@Vinko Vrsalovic, वेब सर्वर कोर्ट में SHOULDNT काउंट लॉग करता है, ऐसा करने के लिए आपको नॉन-रेपिडिएशन, ऑथेंटिकेशन प्रूफ, साक्ष्य की श्रंखला, इत्यादि को प्रमाणित करने की आवश्यकता होती है, जो कि वेबसर्वर लॉग स्पष्ट रूप से नहीं हैं।
AviD

7
बिल्कुल सही। आपूर्तिकर्ता को यह साबित करना होगा कि केवल ग्राहक ही उस लेनदेन को कर सकता है। एक वेब सर्वर लॉग ऐसा नहीं करता है।
user207421

सभी पासवर्ड वास्तव में "लेनदेन" के लिए आवश्यक नहीं हैं, इसलिए बोलने के लिए। मान लीजिए कि वेबसाइट एक वेबपेज बुकमार्किंग सूची विकसित करने के लिए है। इस मामले में देयता की सीमा (जिसे आमतौर पर वेबसाइट पर पंजीकरण करते समय टी एंड सी में कहा जाता है) शून्य है, क्योंकि कोई वित्तीय लेनदेन नहीं है। यदि वेबसाइट पर दूसरों को प्रभावित करने वाली कोई कार्रवाई नहीं है, तो हैक किए गए उपयोगकर्ता के लिए डेटा खो जाता है। कंपनी टीएंडसीपी द्वारा संरक्षित है।
Sablefoste

1
उस वेबसाइट पर @Sablefoste यदि उपयोगकर्ता कहीं और समान पासवर्ड का उपयोग करता है तो आप उसकी निजी साख को लीक करने का जोखिम पैदा कर रहे हैं। यदि आप कभी अभ्यास में शामिल नहीं होते हैं तो आप समस्या का कारण नहीं बन सकते।
user207421

94

आप नैतिक रूप से बाद में सादे रिट्रीवल के लिए पासवर्ड स्टोर नहीं कर सकते। यह इतना सरल है। यहां तक ​​कि जॉन स्कीट नैतिक रूप से पासवर्ड को बाद में सादे रिट्रीवल के लिए संग्रहीत नहीं कर सकता है। यदि आपके उपयोगकर्ता किसी न किसी तरह से सादे पाठ में पासवर्ड पुनः प्राप्त कर सकते हैं, तो संभवतः ऐसा हैकर भी कर सकता है जो आपके कोड में सुरक्षा भेद्यता पाता है। और यह केवल एक उपयोगकर्ता के पासवर्ड से समझौता नहीं किया जा रहा है, बल्कि उनमें से सभी।

यदि आपके ग्राहकों को इससे कोई समस्या है, तो उन्हें बताएं कि पासवर्ड को पुनर्प्राप्त करना कानून के विरुद्ध है। ब्रिटेन में किसी भी दर पर, डेटा संरक्षण अधिनियम 1998 (विशेष रूप से, अनुसूची 1, भाग II, पैरा 9) को डेटा नियंत्रकों को व्यक्तिगत डेटा को सुरक्षित रखने के लिए, अन्य बातों के अलावा, खाते में सुरक्षित तकनीकी उपायों का उपयोग करने की आवश्यकता होती है। डेटा से छेड़छाड़ किए जाने पर होने वाली हानि - जो साइटों के बीच पासवर्ड साझा करने वाले उपयोगकर्ताओं के लिए काफी हो सकती है। यदि उन्हें अभी भी इस तथ्य को टटोलने में परेशानी होती है कि यह एक समस्या है, तो उन्हें कुछ वास्तविक दुनिया उदाहरणों की ओर इंगित करें, जैसे कि यह

उपयोगकर्ताओं को लॉगिन को पुनर्प्राप्त करने की अनुमति देने का सबसे सरल तरीका उन्हें एक बार लिंक ई-मेल करना है जो उन्हें स्वचालित रूप से लॉग इन करता है और उन्हें सीधे एक पृष्ठ पर ले जाता है जहां वे एक नया पासवर्ड चुन सकते हैं। एक प्रोटोटाइप बनाएं और उन्हें एक्शन में दिखाएं।

इस विषय पर मैंने कुछ ब्लॉग पोस्ट लिखे हैं:

अद्यतन: हम अब उन कंपनियों के खिलाफ मुकदमों और अभियोगों को देखना शुरू कर रहे हैं जो अपने उपयोगकर्ताओं के पासवर्ड को ठीक से सुरक्षित करने में विफल रहते हैं। उदाहरण: लिंक्डइन को $ 5 मिलियन वर्ग कार्रवाई मुकदमा के साथ थप्पड़ मारा गया ; सोनी ने प्लेस्टेशन डेटा हैक पर £ 250,000 का जुर्माना लगाया । यदि मैं सही तरीके से याद करता हूं, तो लिंक्डइन वास्तव में अपने उपयोगकर्ताओं के पासवर्ड एन्क्रिप्ट कर रहा था, लेकिन इसका उपयोग करने वाला एन्क्रिप्शन प्रभावी होने के लिए बहुत कमजोर था।


8
@ जिमीकस - यह कम सुरक्षा प्रणाली पर करने के लिए एक अच्छी बात है, लेकिन यदि आप उच्च मूल्य के किसी भी डेटा को स्टोर कर रहे हैं, तो आपको यह मानना ​​होगा कि व्यक्तियों का ईमेल पहले से ही समझौता है और उन्हें डायरेक्ट लॉगिन लिंक भेजना आपके सिस्टम से समझौता करता है। एक संभव विकल्प के साथ मेरे सवाल का जवाब देने के लिए +1, लेकिन तर्क के रूप में एक दोष की ओर इशारा करते हुए। मैं नहीं चाहता कि पेप्पल एक सीधा लॉगिन लिंक ईएवीआर भेजे। यह विरोधाभास लग सकता है लेकिन मुझे हमेशा लगता है कि मेरा ईमेल खाता भ्रष्ट है - यह मुझे ईमानदार रखता है। ;)
शेन

बिल्कुल - मैं अपने बैंक से अपेक्षा करूंगा कि मैं कम से कम मुझे एक फोन करूं और अपना पासवर्ड रीसेट करने से पहले अपनी पहचान सत्यापित करूं ( अपना पासवर्ड वापस करूं)। मैंने यहां जो भी संकेत दिया है वह पासवर्ड सुरक्षा का पूर्ण न्यूनतम मानक है जो मैं किसी भी वेबसाइट से, कहीं भी उम्मीद करूंगा।
jammycakes

1
बैंक या पेपाल को अनदेखा करना जो आपके पास वैसे भी प्रतिबंध नहीं है; यदि आप मानते हैं कि उनके ईमेल से छेड़छाड़ की गई है, तो कोई ऑनलाइन तरीका कैसे संभव है? यदि आप एक उत्पन्न पासवर्ड ईमेल करते हैं, तो यह कैसे सुरक्षित है?
पीटर कूल्टन

मैं किसी एक व्यक्ति का पासवर्ड प्राप्त करने की बात नहीं कर रहा हूँ, मैं एक डेटाबेस से कई पासवर्ड प्राप्त करने की बात कर रहा हूँ। यदि कोई सिस्टम पासवर्ड को सादे पाठ में संग्रहीत करता है, तो एक हैकर संभावित रूप से आपके डेटाबेस से सभी पासवर्ड निकालने के लिए एक स्क्रिप्ट लिख सकता है।
जैमाइककेस

मैं ईमेल में लिंक / पासवर्ड भेजने के बारे में सोच रहा हूं, अज्ञात नेटवर्क नोड्स के माध्यम से सादे रूप में नेटवर्क के माध्यम से जा रहा हूं ...
जकूब

55

इस भाग को पढ़ने के बाद:

नीचे दिए गए एक नोट में मैंने यह बात कही कि बड़े पैमाने पर बुजुर्गों की ओर वेबसाइटें, मानसिक रूप से विकलांग, या बहुत युवा लोगों के लिए भ्रमित हो सकती हैं, जब उन्हें सुरक्षित पासवर्ड रिकवरी रूटीन करने के लिए कहा जाता है। यद्यपि हम इसे सरल और सांसारिक पा सकते हैं, उन मामलों में कुछ उपयोगकर्ताओं को सेवा में मदद करने के लिए अतिरिक्त सहायता की आवश्यकता होती है, जो उन्हें सिस्टम में मदद करता है या इसे सीधे ईमेल / प्रदर्शित करता है।

इस तरह की प्रणालियों में इन जनसांख्यिकी से अटैचमेंट दर एप्लिकेशन को प्रभावित कर सकती है यदि उपयोगकर्ताओं को इस स्तर तक पहुंच सहायता नहीं दी गई थी, तो कृपया इस तरह के सेटअप को ध्यान में रखकर जवाब दें।

अगर इन आवश्यकताओं में से कोई भी पुनर्प्राप्ति योग्य पासवर्ड सिस्टम को अनिवार्य करता है, तो मैं आश्चर्यचकित रह जाता हूं। उदाहरण के लिए: चाची माबेल ने कॉल किया और कहा "आपका इंटरनेट प्रोग्राम काम नहीं कर रहा है, मुझे अपना पासवर्ड नहीं पता है"। "ओके" ग्राहक सेवा ड्रोन कहता है "मुझे कुछ विवरणों की जांच करने दें और फिर मैं आपको एक नया पासवर्ड दूंगा । जब आप अगली बार इसमें लॉग इन करेंगे तो आपसे पूछेंगे कि क्या आप उस पासवर्ड को रखना चाहते हैं या इसे किसी ऐसी चीज़ में बदल सकते हैं जिसे आप याद रख सकें। और आसानी से।"

तब सिस्टम यह जानने के लिए सेट किया जाता है कि पासवर्ड रीसेट कब हुआ है और "क्या आप नया पासवर्ड रखना चाहते हैं या नया" संदेश चुनना चाहते हैं।

यह कम पीसी-साक्षर के लिए उनके पुराने पासवर्ड को कहा जाने से कितना बदतर है? और जब ग्राहक सेवा व्यक्ति शरारत करने के लिए उठ सकता है, तो यह भंग होने की स्थिति में डेटाबेस ही अधिक सुरक्षित होता है।

टिप्पणी करें कि मेरे सुझाव में क्या बुरा है और मैं एक समाधान सुझाऊंगा जो वास्तव में वही करता है जो आप शुरू में चाहते थे।


4
@ जॉन - मुझे लगता है कि यह एक पूरी तरह से व्यवहार्य समाधान है। हालांकि आंतरिक खतरों पर भड़कने की तैयारी करो! तुम्हें पता है, अगर मैं एक इंटरमीडिएट पासवर्ड रीसेट के साथ ऐसा करता था (तकनीकी अस्थायी रूप से पासवर्ड को एक अस्थायी मेस्योर के रूप में सेट करता है और मेबल को उसके पासवर्ड के रूप में 1234 टाइप करने के लिए कहता है), तो यह संभवतः एक सिस्टम पर काम करेगा जिसमें महत्वपूर्ण डेटा नहीं होगा। यदि यह एक उच्च सुरक्षा वाला वातावरण था, तो हमारे पास एक समस्या है, जहां हिरासत सेवा सीईओ के पासवर्ड को 1234 पर सेट कर सकती है और सीधे लॉग इन कर सकती है। कोई सही समाधान नहीं है, लेकिन यह बहुत सारे उदाहरणों में काम करता है। (+1)
शेन

5
मैंने सिर्फ इस जवाब पर ध्यान दिया। @ शेन, मुझे समझ में नहीं आता है कि आपने "आंतरिक खतरों" के बारे में भविष्यवाणी क्यों की। पासवर्ड बदलने की क्षमता एक उल्लेखनीय कमजोरी नहीं है; समस्या एक पासवर्ड की खोज करने की क्षमता है जो अन्य सेवाओं के लिए उपयोग किए जाने की संभावना है - उसका ई-मेल, उसका बैंक, उसकी ऑनलाइन शॉपिंग साइटें जिनके पास उसकी सीसी जानकारी संग्रहीत है। यह कमजोरी यहां प्रकट नहीं होती है; अगर बॉब माबेल के पासवर्ड को रीसेट करता है और उसे फोन पर बताता है, तो वह उसे उसके किसी अन्य खाते तक पहुंच नहीं देता है। हालाँकि, मैं लॉगिन पर एक पासवर्ड रीसेट "सुझाव" के बजाय मजबूर करूंगा ।
Aaronaught

@ चेतावनी - मुझे आपकी बात दिखाई देती है, लेकिन मैं ऐसा समय सोच रहा हूं, जहां ग्राहक सेवा के लोग सिस्टम के कुछ क्षेत्रों (जैसे पेरोल, अकाउंटिंग, आदि) से बाहर हैं और उन्हें सीधे पासवर्ड सेट करने की अनुमति है। अपने आप में एक सुरक्षा मुद्दा। मैं आपकी बात को देखता हूं, हालांकि इस प्रकार के सिस्टम के बारे में मैंने पूछा कि यह आंतरिक लेखा प्रणाली से काफी हद तक अलग है। हम मालिकाना आंतरिक प्रणालियों और पासवर्ड सुरक्षा के बारे में एक पूरी तरह से अलग चर्चा कर सकते हैं।
शेन

1
@ शने: तो सवाल और भी कम समझ में आता है। मैंने मान लिया कि आप चाहते थे कि कोई उन्हें फोन पर पासवर्ड पढ़कर सुनाए। यदि आप उपयोगकर्ताओं को कुछ स्वचालित स्व-सेवा प्रणाली के माध्यम से उनके पासवर्ड ई-मेल करना चाहते हैं, तो आप पासवर्ड के साथ पूरी तरह से दूर हो सकते हैं क्योंकि यह कुछ बहुत कमजोर के साथ "संरक्षित" किया जा रहा है। हो सकता है कि आप वास्तव में किस तरह के प्रयोज्य परिदृश्यों का समर्थन करने की कोशिश कर रहे हैं, इसके बारे में आपको और अधिक विशिष्ट होना चाहिए। हो सकता है कि विश्लेषण बाद में आपको दिखाएगा कि पुनर्प्राप्त करने योग्य पासवर्ड भी आवश्यक नहीं हैं।
एरोनियट

4
समर्थन व्यक्ति द्वारा प्रदान किया गया कोड शाब्दिक रूप से नया पासवर्ड होना जरूरी नहीं है। यह केवल एक बार कोड हो सकता है जो पासवर्ड-रीसेट फ़ंक्शन को अनलॉक करता है।
किगिलपिन

42

माइकल ब्रूक्स CWE-257 के बारे में मुखर रहे हैं - यह तथ्य कि आप जो भी विधि का उपयोग करते हैं, आप (व्यवस्थापक) अभी भी पासवर्ड को पुनर्प्राप्त कर सकते हैं। तो कैसे इन विकल्पों के बारे में:

  1. पासवर्ड को किसी और की सार्वजनिक कुंजी के साथ एन्क्रिप्ट करें - कुछ बाहरी प्राधिकरण। इस तरह से आप इसे व्यक्तिगत रूप से फिर से संगठित नहीं कर सकते हैं, और उपयोगकर्ता को उस बाहरी प्राधिकरण में जाना होगा और अपना पासवर्ड पुनः प्राप्त करने के लिए कहना होगा।
  2. एक दूसरे पासफ़्रेज़ से उत्पन्न कुंजी का उपयोग करके पासवर्ड एन्क्रिप्ट करें। इस एन्क्रिप्शन क्लाइंट-साइड में करें और इसे सर्वर से साफ़ कभी न करें। फिर, पुनर्प्राप्त करने के लिए डिक्रिप्शन क्लाइंट-साइड को फिर से अपने इनपुट से कुंजी को फिर से जेनरेट करके। बेशक, यह दृष्टिकोण मूल रूप से एक दूसरे पासवर्ड का उपयोग कर रहा है, लेकिन आप हमेशा उन्हें इसे लिखने के लिए कह सकते हैं, या पुराने सुरक्षा-प्रश्न दृष्टिकोण का उपयोग कर सकते हैं।

मुझे लगता है कि 1. बेहतर विकल्प है, क्योंकि यह आपको ग्राहक की कंपनी के भीतर किसी को निजी कुंजी रखने के लिए नामित करने में सक्षम बनाता है। सुनिश्चित करें कि वे स्वयं कुंजी बनाते हैं, और इसे एक सुरक्षित इत्यादि में निर्देशों के साथ संग्रहीत करते हैं। आप केवल सुरक्षा के लिए चुनाव भी जोड़ सकते हैं और पासवर्ड से आंतरिक तृतीय पक्ष को कुछ वर्णों की आपूर्ति कर सकते हैं ताकि उन्हें अनुमान लगाने के लिए पासवर्ड को दरार करना पड़े। यह। उपयोगकर्ता को इन पात्रों की आपूर्ति करते हुए, वे शायद याद रखेंगे कि यह क्या था!


8
और, ज़ाहिर है, आप डिक्रिप्शन के लिए अपनी कंपनी से कई लोगों की आवश्यकता के लिए किसी भी गुप्त-विभाजन तकनीक का उपयोग कर सकते हैं। लेकिन इनमें से कोई भी एक उपयोगकर्ता को अपने पासवर्ड को मेल करने में सक्षम होने की मूल आवश्यकताओं को पूरा नहीं करता है या कुछ रन-ऑफ-द-मिल प्रथम-स्तरीय फोन समर्थक उन्हें लॉग-इन के माध्यम से चलते हैं।
क्रिस्टोफर क्रेउत्जिग

27

इस सवाल के जवाब में उपयोगकर्ता के लिए सुरक्षा चिंताओं की बहुत चर्चा हुई है, लेकिन मैं लाभों का उल्लेख करना चाहूंगा। अब तक, मैंने सिस्टम पर संग्रहीत पासवर्ड को पुनर्प्राप्त करने के लिए उल्लिखित एक वैध लाभ नहीं देखा है। इस पर विचार करो:

  • क्या उपयोगकर्ता को अपना पासवर्ड उनके पास ईमेल करने से लाभ होता है? नहीं। वे एक एक बार उपयोग पासवर्ड रीसेट लिंक है, जो उम्मीद है कि उन्हें एक पासवर्ड वे चयन करने के लिए अनुमति होगी से अधिक लाभ प्राप्त होगा याद है।
  • क्या उपयोगकर्ता को स्क्रीन पर अपना पासवर्ड प्रदर्शित करने से लाभ होता है? नहीं, ऊपर के समान कारण के लिए; उन्हें एक नया पासवर्ड चुनना चाहिए।
  • क्या उपयोगकर्ता को पासवर्ड का समर्थन करने वाले व्यक्ति को पासवर्ड बोलने से लाभ होता है? नहीं; फिर से, यदि समर्थन व्यक्ति अपने पासवर्ड के लिए उपयोगकर्ता के अनुरोध को उचित रूप से प्रमाणित करता है, तो उपयोगकर्ता के नए पासवर्ड और इसे बदलने का अवसर दिया जाना अधिक है। इसके अलावा, फोन का समर्थन स्वचालित पासवर्ड रीसेट की तुलना में अधिक महंगा है, इसलिए कंपनी को भी लाभ नहीं होता है।

यह केवल वही लगता है जो पुनर्प्राप्त करने योग्य पासवर्ड से लाभान्वित हो सकते हैं वे दुर्भावनापूर्ण इरादे वाले या खराब एपीआई के समर्थक होते हैं जिन्हें तृतीय-पक्ष पासवर्ड विनिमय की आवश्यकता होती है (कृपया कभी भी एपीआई का उपयोग न करें!)। शायद आप अपने ग्राहकों को सच्चाई बताते हुए अपना तर्क जीत सकते हैं कि कंपनी को पुनर्प्राप्त करने योग्य पासवर्ड संग्रहीत करके कोई लाभ नहीं है और केवल देनदारियां हैं

इस प्रकार के अनुरोधों की पंक्तियों के बीच, आप देखेंगे कि आपके ग्राहक शायद समझ नहीं पा रहे हैं या वास्तव में इस बात की भी परवाह नहीं करते हैं कि पासवर्ड कैसे प्रबंधित किए जाते हैं। वे वास्तव में क्या चाहते हैं एक प्रमाणीकरण प्रणाली है जो उनके उपयोगकर्ताओं के लिए इतनी कठिन नहीं है। इसलिए, उन्हें यह बताने के लिए कि वे वास्तव में पुनर्प्राप्त करने योग्य पासवर्ड कैसे नहीं चाहते हैं, आपको प्रमाणीकरण प्रक्रिया को कम दर्दनाक बनाने के लिए उन्हें तरीकों की पेशकश करनी चाहिए, खासकर यदि आपको भारी सुरक्षा स्तरों की आवश्यकता नहीं है, तो, एक बैंक:

  • उपयोगकर्ता को उनके उपयोगकर्ता नाम के लिए उनके ईमेल पते का उपयोग करने की अनुमति दें। मैंने ऐसे अनगिनत मामले देखे हैं जहां उपयोगकर्ता अपना उपयोगकर्ता नाम भूल जाता है, लेकिन कुछ लोग अपना ईमेल पता भूल जाते हैं।
  • OpenID की पेशकश करें और उपयोगकर्ता के भूलने की बीमारी के लिए एक तृतीय-पक्ष भुगतान करें।
  • पासवर्ड प्रतिबंधों पर आसानी। मुझे यकीन है कि जब कोई वेब साइट "आप विशेष वर्णों का उपयोग नहीं कर सकते" या "आपका पासवर्ड बहुत लंबा है" या "आपका पासवर्ड प्रारंभ नहीं होना चाहिए" के कारण कुछ वेब साइट आपके पसंदीदा पासवर्ड की अनुमति नहीं देती है तो हम अविश्वसनीय रूप से नाराज हो जाते हैं। एक पत्र के साथ। " इसके अलावा, यदि उपयोग में आसानी पासवर्ड की ताकत से बड़ी चिंता है, तो आप छोटे पासवर्ड की अनुमति देकर या वर्ण वर्गों के मिश्रण की आवश्यकता न होने पर भी गैर-मूर्ख आवश्यकताओं को ढीला कर सकते हैं। ढीले प्रतिबंधों के साथ, उपयोगकर्ताओं को एक पासवर्ड का उपयोग करने की अधिक संभावना होगी जो वे नहीं भूलेंगे।
  • पासवर्ड समाप्त न करें।
  • उपयोगकर्ता को एक पुराने पासवर्ड का पुन: उपयोग करने की अनुमति दें।
  • उपयोगकर्ता को अपना पासवर्ड रीसेट प्रश्न चुनने की अनुमति दें।

लेकिन अगर आप किसी कारण से (और कृपया हमें कारण बताएं) , वास्तव में, वास्तव में, एक पुनर्प्राप्त करने योग्य पासवर्ड के लिए सक्षम होने की आवश्यकता है, तो आप उपयोगकर्ता को गैर-पासवर्ड देकर संभावित रूप से उनके अन्य ऑनलाइन खातों से समझौता करने से बचा सकते हैं- आधारित प्रमाणीकरण प्रणाली। क्योंकि लोग पहले से ही यूज़रनेम / पासवर्ड सिस्टम से परिचित हैं और वे एक अच्छी तरह से प्रयोग किया जाने वाला समाधान है, यह एक अंतिम उपाय होगा, लेकिन निश्चित रूप से पासवर्ड के लिए बहुत सारे रचनात्मक विकल्प हैं:

  • उपयोगकर्ता को एक संख्यात्मक पिन चुनने दें, अधिमानतः 4-अंक नहीं, और अधिमानतः केवल अगर जानवर-बल के प्रयासों के खिलाफ रक्षा की जाती है।
  • क्या उपयोगकर्ता ने एक छोटे से प्रश्न के साथ एक प्रश्न का चयन किया है जो केवल उन्हें उत्तर पता है, कभी नहीं बदलेगा, वे हमेशा याद रखेंगे, और वे अन्य लोगों का पता लगाने में कोई आपत्ति नहीं करेंगे।
  • क्या उपयोगकर्ता एक उपयोगकर्ता नाम दर्ज करता है और फिर अनुमान लगाने से बचाने के लिए पर्याप्त क्रमपरिवर्तन के साथ एक आसान-से-याद आकार तैयार करता है ( यह निफ्टी फोटो देखें कि फोन को अनलॉक करने के लिए G1 यह कैसे करता है)।
  • बच्चों की वेब साइट के लिए, आप उपयोगकर्ता नाम (एक पहचान की तरह) के आधार पर एक फजी जीव को स्वतः उत्पन्न कर सकते हैं और उपयोगकर्ता को एक गुप्त नाम देने के लिए कह सकते हैं। फिर उन्हें लॉग इन करने के लिए प्राणी के गुप्त नाम को दर्ज करने के लिए कहा जा सकता है।

मैंने अपनी टिप्पणियों में यहां जवाब दिया, अपनी प्रतिक्रिया में, चूंकि यह काफी लंबा था - मुझे लगता है कि विश्लेषण और उठाए गए मुद्दों की चर्चा की समीक्षा करना महत्वपूर्ण है। stackoverflow.com/questions/2283937/…
AviD

क्या उपयोगकर्ता को स्क्रीन पर अपना पासवर्ड प्रदर्शित करने से लाभ होता है? मेरी राय में - निश्चित रूप से हाँ! हर बार जब मैं इंटरनेट से अस्पष्ट पासवर्ड प्राप्त करता हूं, तो मैं धन्यवाद देता हूं कि मैं Apple को दिखाई दे सकता हूं इसलिए मुझे इसे 100 बार दर्द में नहीं रखना है। मैं कल्पना कर सकता हूं कि विकलांग व्यक्ति कैसा महसूस करेगा।
दिमित्री ज़ैतसेव

1
एक अस्पष्ट पासवर्ड प्रदर्शित करने से बेहतर क्यों है कि आप एक नया पासवर्ड चुनें जिसे आप याद रख सकें?
याकूब

@ जैकब: अधिक एन्ट्रापी?
अलेक्जेंडर शेकब्लिकिन

25

इस सवाल पर मैंने जो टिप्पणी की है, उसके अनुसार:
एक महत्वपूर्ण बिंदु को लगभग हर किसी ने बहुत पसंद किया है ... मेरी प्रारंभिक प्रतिक्रिया @Michael Brooks के समान थी, जब तक मुझे एहसास हुआ, @stefanw की तरह, कि यहाँ मुद्दा टूटी हुई आवश्यकताओं का है , लेकिन ये वही हैं जो वे हैं।
लेकिन फिर, यह मेरे लिए है कि मामला भी नहीं हो सकता है! यहां गायब होने वाला बिंदु, आवेदन की संपत्ति का बेजोड़ मूल्य है। सीधे शब्दों में, कम मूल्य प्रणाली के लिए, पूरी तरह से सुरक्षित प्रमाणीकरण तंत्र, जिसमें सभी प्रक्रिया शामिल है, ओवरकिल होगा, और गलत सुरक्षा विकल्प।
जाहिर है, एक बैंक के लिए, "सर्वोत्तम अभ्यास" एक जरूरी है, और सीडब्ल्यूई -257 को नैतिक रूप से उल्लंघन करने का कोई तरीका नहीं है। लेकिन कम मूल्य प्रणाली के बारे में सोचना आसान है, जहां यह इसके लायक नहीं है (लेकिन एक सरल पासवर्ड अभी भी आवश्यक है)।

यह याद रखना महत्वपूर्ण है, सच्ची सुरक्षा विशेषज्ञता उपयुक्त ट्रेडऑफ़ को खोजने में है, न कि हठपूर्वक "सर्वश्रेष्ठ प्रथाओं" को टालने में, जो कोई भी ऑनलाइन पढ़ सकता है।

इस तरह, मैं एक और उपाय सुझाता हूं:
सिस्टम के मूल्य पर निर्भर करता है, और केवल अगर सिस्टम "कम" संपत्ति (पहचान ही शामिल है) के साथ उचित रूप से कम मूल्य है, और उचित प्रक्रिया करने वाली व्यावसायिक आवश्यकताएं हैं असंभव (या पर्याप्त रूप से कठिन / महंगा), और ग्राहक को सभी केवेट्स के बारे में जागरूक किया जाता है ...
फिर केवल प्रतिवर्ती एन्क्रिप्शन की अनुमति देना उचित हो सकता है, जिसमें कोई विशेष घेरा नहीं होता है।
मैं केवल एन्क्रिप्शन के साथ परेशान नहीं करने के लिए कह रहा हूँ, क्योंकि यह लागू करने के लिए बहुत सरल / सस्ता है (यहां तक ​​कि निष्क्रिय कुंजी प्रबंधन पर विचार करना), और यह कुछ सुरक्षा प्रदान करता है (इसे लागू करने की लागत से अधिक)। इसके अलावा, यह देखने के लायक है कि उपयोगकर्ता को मूल पासवर्ड के साथ कैसे प्रदान किया जाए, चाहे वह ईमेल के माध्यम से हो, स्क्रीन पर प्रदर्शित हो, आदि।
क्योंकि यहां धारणा यह है कि चुराए गए पासवर्ड का मूल्य (कुल मिलाकर भी) काफी कम है, किसी भी मूल्य का ये समाधान मान्य हो सकते हैं।


चूंकि एक जीवंत चर्चा चल रही है, वास्तव में अलग-अलग पोस्ट और अलग-अलग टिप्पणियों में सेवरल जीवंत चर्चाएं हैं, मैं कुछ स्पष्टीकरण जोड़ूंगा, और कुछ बहुत अच्छे बिंदुओं पर प्रतिक्रिया दूंगा जो यहां कहीं और उठाए गए हैं।

शुरू करने के लिए, मुझे लगता है कि यहां सभी के लिए यह स्पष्ट है कि उपयोगकर्ता के मूल पासवर्ड को पुनर्प्राप्त करने की अनुमति देना, खराब अभ्यास है, और आम तौर पर एक अच्छा विचार नहीं है। यह बिल्कुल विवाद में नहीं है ...
आगे, मैं इस बात पर जोर दूंगा कि कई, नाय MOST, स्थितियों में - यह वास्तव में गलत है, यहां तक ​​कि बेईमानी, बुरा, और बदसूरत है

हालांकि, सवाल का सिद्धांत सिद्धांत के आसपास है , क्या कोई ऐसी स्थिति है जहां यह मना करने के लिए आवश्यक नहीं हो सकता है , और यदि हां, तो स्थिति के लिए सबसे सही तरीके से ऐसा कैसे करें ।

अब, @Thomas, @sfussenegger और कुछ अन्य लोगों के रूप में, उस प्रश्न का उत्तर देने का एकमात्र उचित तरीका, किसी भी (या काल्पनिक) स्थिति का गहन जोखिम विश्लेषण करना है, यह समझने के लिए कि दांव पर क्या है, कितना सुरक्षित है। , और उस संरक्षण को वहन करने के लिए अन्य मितव्ययिताएं क्या हैं।
नहीं, यह एक चर्चा नहीं है, यह एक वास्तविक-लाइव सुरक्षा पेशेवर के लिए बुनियादी, सबसे महत्वपूर्ण उपकरणों में से एक है। सर्वोत्तम अभ्यास एक बिंदु तक अच्छे होते हैं (आमतौर पर अनुभवहीन और हैक्स के लिए दिशानिर्देश के रूप में), उस बिंदु के बाद विचारशील जोखिम विश्लेषण होता है।

Y'know, यह मज़ेदार है - मैंने हमेशा खुद को सुरक्षा कट्टरपंथियों में से एक माना, और किसी तरह मैं उन तथाकथित "सुरक्षा विशेषज्ञों" के विपरीत पक्ष पर हूं ... खैर, सच्चाई यह है - क्योंकि मैं एक कट्टरपंथी हूं और वास्तविक वास्तविक जीवन सुरक्षा विशेषज्ञ - मैं उस सभी महत्वपूर्ण जोखिम विश्लेषण के बिना "बेस्ट प्रैक्टिस" हठधर्मिता (या CWE) को टालने में विश्वास नहीं करता ।
"सुरक्षा ज़ीलॉट से सावधान रहें जो अपने टूल बेल्ट में सब कुछ लागू करने के लिए त्वरित है, यह जानने के बिना कि वे किस वास्तविक मुद्दे के खिलाफ बचाव कर रहे हैं। अधिक सुरक्षा आवश्यक नहीं है कि अच्छी सुरक्षा के बराबर हो।"
जोखिम विश्लेषण, और सच्ची सुरक्षा कट्टरता, जोखिम, संभावित नुकसान, संभावित खतरों, पूरक मितव्ययिता, आदि के आधार पर एक चालाक, मूल्य / जोखिम-आधारित व्यापार की ओर इशारा करते हैं। कोई भी "सुरक्षा विशेषज्ञ" जो जोखिम विश्लेषण का संकेत नहीं दे सकता। उनकी सिफारिशों के आधार पर, या तार्किक ट्रेडऑफ़ का समर्थन करने के लिए, लेकिन इसके बजाय एक जोखिम विश्लेषण करने के तरीके को समझने के बिना भी हठधर्मिता और सीडब्ल्यूई को टालना पसंद करेंगे, शून्य हैं लेकिन सिक्योरिटी हैक्स, और उनके विशेषज्ञता वे टॉयलेट पेपर के लायक नहीं हैं जो उन्होंने इसे मुद्रित किया।

दरअसल, यह है कि हम कैसे हवाई सुरक्षा है कि हास्यास्पदता मिलता है।

लेकिन इससे पहले कि हम इस साइट में बनाने के लिए उपयुक्त ट्रेडऑफ़्स के बारे में बात करते हैं, आइए स्पष्ट जोखिमों पर एक नज़र डालें (स्पष्ट रूप से, क्योंकि हमारे पास इस स्थिति के बारे में सभी पृष्ठभूमि की जानकारी नहीं है, हम सभी परिकल्पना कर रहे हैं - क्योंकि सवाल यह है कि काल्पनिक क्या है स्थिति हो सकती है ...)
चलो एक कम मान प्रणाली है, अभी तक इतनी सुव्यवस्थित नहीं है कि यह सार्वजनिक पहुंच है - सिस्टम मालिक आकस्मिक प्रतिरूपण को रोकना चाहता है, फिर भी "उच्च" सुरक्षा उपयोग में आसानी के रूप में सर्वोपरि नहीं है। (हां, यह जोखिम को स्वीकार करने के लिए एक वैध व्यापार है कि कोई भी कुशल स्क्रिप्ट-किडी साइट को हैक कर सकता है ... रुको, क्या अब प्रचलन में एपीटी नहीं है ...?)
उदाहरण के लिए, मान लें कि मैं एक बड़ी पारिवारिक सभा के लिए एक सरल साइट की व्यवस्था कर रहा हूं, जिससे सभी को मंथन करने की अनुमति मिल सके कि हम इस वर्ष अपनी कैंपिंग यात्रा पर कहां जाना चाहते हैं। मैं कुछ गुमनाम हैकर के बारे में कम चिंतित हूं, या यहां तक ​​कि चचेरे भाई फ्रेड को बार-बार झील वेनमानामबिकिलिकी में जाने के लिए सुझाव देना पड़ रहा है, क्योंकि मैं चाची एर्मा के बारे में नहीं हूं जब वह जरूरत पड़ने पर लॉगऑन नहीं कर पा रहा था। अब, चाची एर्मा, एक परमाणु भौतिक विज्ञानी होने के नाते, पासवर्ड याद रखने में बहुत अच्छा नहीं है, या यहां तक ​​कि कंप्यूटर का उपयोग करने के साथ बिल्कुल भी नहीं है ... इसलिए मैं उसके लिए सभी घर्षण को दूर करना चाहता हूं। फिर से, मैं हैक के बारे में चिंतित नहीं हूं, मैं सिर्फ गलत लॉगिन की मूर्खतापूर्ण गलतियों को नहीं चाहता हूं - मैं जानना चाहता हूं कि कौन आ रहा है, और वे क्या चाहते हैं।

वैसे भी।
तो यहां हमारे मुख्य जोखिम क्या हैं, अगर हम एक-तरफ़ा हैश का उपयोग करने के बजाय सममित रूप से पासवर्ड एन्क्रिप्ट करते हैं?

  • उपयोगकर्ताओं को प्रतिरूपित करना? नहीं, मैंने पहले ही उस जोखिम को स्वीकार कर लिया है, दिलचस्प नहीं।
  • दुष्ट प्रशासक? ठीक है, हो सकता है ... लेकिन फिर से, मुझे परवाह नहीं है कि कोई व्यक्ति किसी अन्य उपयोगकर्ता, आंतरिक या नहीं का उपयोग कर सकता है ... और वैसे भी एक दुर्भावनापूर्ण व्यवस्थापक को आपके पासवर्ड से कोई फर्क नहीं पड़ने वाला है - यदि आपका व्यवस्थापक खराब हो गया है, तो वैसे भी इसका खेल।
  • एक और मुद्दा जो उठाया गया है, वह पहचान वास्तव में कई प्रणालियों के बीच साझा की गई है। आह! यह एक बहुत ही दिलचस्प जोखिम है, जिसके लिए एक करीब से देखने की आवश्यकता है।
    मुझे यह बताकर शुरू करना चाहिए कि यह वास्तविक पहचान नहीं है , बल्कि प्रमाण या प्रमाणिक साख है। ठीक है, चूंकि एक साझा पासवर्ड प्रभावी रूप से मुझे किसी अन्य सिस्टम (जैसे, मेरा बैंक खाता, या जीमेल) में प्रवेश करने की अनुमति देगा, यह प्रभावी रूप से समान पहचान है, इसलिए यह सिर्फ शब्दार्थ है ... सिवाय इसके कि यह नहीं है । पहचान को प्रत्येक प्रणाली द्वारा अलग-अलग प्रबंधित किया जाता है, इस परिदृश्य में (हालांकि थर्ड पार्टी आईडी सिस्टम हो सकता है, जैसे कि OAuth - फिर भी, इस प्रणाली में पहचान से अलग - बाद में इस पर अधिक)।
    इस प्रकार, यहां जोखिम का मुख्य बिंदु यह है कि उपयोगकर्ता स्वेच्छा से अपने (एक ही) पासवर्ड को कई अलग-अलग प्रणालियों में इनपुट करेगा - और अब, मैं (व्यवस्थापक) या मेरी साइट के किसी अन्य हैकर के लिए आंटी इरमा के पासवर्ड तक पहुंच होगी परमाणु मिसाइल स्थल

हममम।

क्या यहाँ कुछ भी आपको बंद लगता है?

यह होना चाहिए।

आइए इस तथ्य से शुरू करें कि परमाणु मिसाइल प्रणाली की रक्षा करना मेरी ज़िम्मेदारी नहीं है , मैं सिर्फ एक फ़्राकिन परिवार आउटिंग साइट (मेरी बेटी के लिए) का निर्माण कर रहा हूं। तो इसकी जिम्मेदारी किसकी है? उम्म ... परमाणु मिसाइल प्रणाली के बारे में कैसे? ओह।
दूसरा, अगर मैं किसी का पासवर्ड चुराना चाहता था (कोई है जो बार-बार सुरक्षित साइटों, और नहीं-तो-सुरक्षित लोगों के बीच एक ही पासवर्ड का उपयोग करने के लिए जाना जाता है) - मैं आपकी साइट को हैक करने से क्यों परेशान होगा? या अपने सममित एन्क्रिप्शन के साथ संघर्ष कर रहा है? गोशर्डनीटल, मैं बस अपनी खुद की सरल वेबसाइट डाल सकता हूं , उपयोगकर्ताओं को जो भी वे चाहते हैं, उसके बारे में बहुत महत्वपूर्ण समाचार प्राप्त करने के लिए साइन अप करना है ... पफ़ो प्रेस्टो, मैंने उनके पासवर्ड "चुराए"।

हां, उपयोगकर्ता शिक्षा हमेशा हमें हनी में काटने के लिए वापस आती है, है ना?
और इस बारे में आप कुछ भी नहीं कर सकते हैं ... भले ही आप अपनी साइट पर उनके पासवर्ड हैश करने के लिए थे, और टीएसए के बारे में सब कुछ सोच सकते हैं, आपने उनके पासवर्ड को संरक्षण नहीं जोड़ा है , अगर वे रखने जा रहे हैं अपने पासवर्ड को हर उस स्थान पर चिपका दें जहाँ वे टकराते हैं। ईवीएन परेशान करने की कोशिश मत करो।

दूसरा तरीका रखो, तुम उनके पासवर्ड के मालिक नहीं हो , इसलिए तुम जैसा काम करना चाहो, करना बंद करो।

तो, मेरे प्रिय सुरक्षा विशेषज्ञ, एक बूढ़ी महिला के रूप में वेंडी से पूछते थे, "जोखिम कहां है?"

ऊपर उठाए गए कुछ मुद्दों के जवाब में कुछ और बिंदु:

  • CWE एक कानून, या विनियमन या एक मानक भी नहीं है। का संग्रह है सामान्य कमजोरियों , अर्थात "सर्वश्रेष्ठ प्रथाओं" का उलटा।
  • साझा पहचान का मुद्दा एक वास्तविक समस्या है, लेकिन यहां naysayers द्वारा गलत समझा (या गलत तरीके से प्रस्तुत किया गया)। यह (और खुद की पहचान को साझा करने का मुद्दा है!), कम-मूल्य वाले सिस्टम पर पासवर्ड को क्रैक करने के बारे में नहीं। यदि आप कम-मूल्य और उच्च-मूल्य प्रणाली के बीच एक पासवर्ड साझा कर रहे हैं, तो समस्या पहले से ही है!
  • वैसे, पिछला बिंदु वास्तव में AGAINST होगावैसे इन कम मूल्य प्रणालियों और उच्च मूल्य वाले बैंकिंग सिस्टम दोनों के लिए OAuth और इसी तरह का उपयोग करके ।
  • मुझे पता है कि यह सिर्फ एक उदाहरण था, लेकिन (दुख की बात है) एफबीआई सिस्टम वास्तव में सबसे सुरक्षित नहीं है। आपकी बिल्ली के ब्लॉग के सर्वरों की तरह बिल्कुल नहीं, लेकिन न ही वे कुछ अधिक सुरक्षित बैंकों को पार करते हैं।
  • स्प्लिट ज्ञान, या दोहरे नियंत्रण, एन्क्रिप्शन कुंजियों का केवल सैन्य में ही नहीं होता है, वास्तव में पीसीआई-डीएसएस को अब मूल रूप से सभी व्यापारियों से इसकी आवश्यकता होती है , इसलिए इसका वास्तव में अब तक कहीं बाहर नहीं हुआ है (यदि मूल्य इसे सही ठहराता है)।
  • उन सभी के लिए जो शिकायत कर रहे हैं कि इस तरह के प्रश्न हैं जो डेवलपर पेशे को इतना बुरा बनाते हैं: यह उन जैसे उत्तर हैं, जो सुरक्षा पेशे को और भी बदतर बनाते हैं। फिर से, व्यवसाय-केंद्रित जोखिम विश्लेषण वह है जो आवश्यक है, अन्यथा आप खुद को बेकार बनाते हैं। गलत होने के अलावा।
  • मुझे लगता है कि यह एक अच्छा विचार है कि सिर्फ एक नियमित डेवलपर को लेने और उस पर अधिक सुरक्षा जिम्मेदारियों को छोड़ने के लिए, अलग-अलग सोचने के लिए प्रशिक्षण के बिना, और सही ट्रेडऑफ़ देखने के लिए नहीं है। कोई अपराध नहीं है, आप में से उन लोगों के लिए, मैं इसके लिए हूँ - लेकिन अधिक प्रशिक्षण क्रम में है।

वाह। कितनी लंबी पोस्ट है ...
लेकिन आपके मूल प्रश्न का उत्तर देने के लिए, @ शने:

  • ग्राहक को चीजों को करने का उचित तरीका समझाएं।
  • अगर वह फिर भी जिद करता है, तो कुछ और समझाइए, जोर दीजिए, बहस कीजिए। जरूरत पड़ने पर टैंट्रम फेंक दें।
  • उसे बिजनेस रिस्पांस समझाएं। विवरण अच्छे हैं, आंकड़े बेहतर हैं, एक लाइव डेमो आमतौर पर सबसे अच्छा है।
  • IF HE STILL जोर देता है, और वैध व्यावसायिक कारण प्रस्तुत करता है - यह आपके लिए एक निर्णय कॉल करने का समय है:
    क्या यह साइट कम-से-कोई-मूल्य नहीं है? क्या यह वास्तव में एक वैध व्यवसाय मामला है? क्या यह आपके लिए काफी अच्छा है? क्या कोई अन्य जोखिम नहीं है जिस पर आप विचार कर सकते हैं, जो कि वैध व्यावसायिक कारणों से आगे निकल जाएगा? (और निश्चित रूप से, ग्राहक एक दुर्भावनापूर्ण साइट नहीं है, लेकिन thats duh)।
    यदि हां, तो ठीक आगे बढ़ें। यह आवश्यक प्रक्रिया में लगाने के लिए प्रयास, घर्षण और खोए हुए उपयोग (इस काल्पनिक स्थिति में) के लायक नहीं है। कोई भी अन्य निर्णय (फिर, इस स्थिति में) एक बुरा व्यापार है।

तो, नीचे की रेखा, और एक वास्तविक उत्तर - एक सरल सममित एल्गोरिथ्म के साथ इसे एन्क्रिप्ट करें, मजबूत ACLs और अधिमानतः DPAPI या इस तरह के साथ एन्क्रिप्शन कुंजी की रक्षा करें, इसे दस्तावेज करें और क्लाइंट के पास (उस निर्णय को करने के लिए पर्याप्त वरिष्ठ) साइन अप करें। यह।


5
पासवर्डों "नहीं" महंगा संपत्ति और फेसबुक / जीमेल / अपने बैंक के साथ अपने कम मूल्य साइट के बीच साझा कर रहे हैं यहां तक कि कम मूल्य साइटों पर, एक महंगी संपत्ति।
jammycakes

3
मुझे लगता है कि यहां समस्या यह है कि उपर्युक्त समूह के उपयोगकर्ता कई अलग-अलग सुरक्षा स्तरों (बैंकिंग से नुस्खा ब्लॉग्स) के सभी अनुप्रयोगों के लिए एक ही पासवर्ड का उपयोग करते हैं। तो सवाल यह है कि अगर यह डेवलपर की जिम्मेदारी है कि वह खुद से भी यूजर्स की सुरक्षा करे। मैं जरूर कहूंगा, हां!
इस्कॉन

7
मैं माफी चाहता हूँ, लेकिन पहचान ही है एक उच्च मूल्य संपत्ति, अवधि। कोई अपवाद नहीं, कोई बहाना नहीं। कोई फर्क नहीं पड़ता कि आपकी साइट कितनी छोटी और असंगत है। और एक साझा पासवर्ड वह पहचान है यदि यह हैकर को आपके उपयोगकर्ताओं के फेसबुक खातों, जीमेल खातों, बैंक खातों इत्यादि में शामिल करता है, यह शब्दार्थ के साथ कुछ भी नहीं है, लेकिन परिणाम के साथ यह सब कुछ करना है। बस किसी से पूछें जो हैकर के हमले से प्रभावित था जैसे कि यह एक: theregister.co.uk/2009/08/24/4chan_pwns_christians
jammycakes

2
@ जैकब, किस दुनिया में आपके मुवक्किल के खिलाफ मुकदमा चलेगा क्योंकि एर्मा के अन्य सिस्टम पर खातों से समझौता किया गया है? यहां तक ​​कि आपके ग्राहक की ओर से घोर लापरवाही भी दी गई (जो कि एक दिया हुआ नहीं है, जैसा कि मैंने विस्तार से बताया है), और इस तथ्य को स्वीकार करता है कि यह साबित करने के लिए कोई रास्ता नहीं है कि आपकी वजह से दूसरी प्रणाली का उल्लंघन हुआ है, कोई कानूनी कार्रवाई नहीं हुई है एक सिस्टम से दूसरे सिस्टम पर किसी भी तरह के नुकसान का दावा करें। यह पक्षपात के साथ अदालत से बाहर फेंक दिया जाएगा, और वादी में अवमानना ​​का पता लगाएगा। हालाँकि, एर्मा कई शर्तों की सेवा के उल्लंघन के लिए गलत हो सकती हैं ...
एवीडी

5
@ जेकॉब, यह बहुत गलत है। सिर्फ इसलिए कि पासवर्ड समान होता है (जो स्पष्ट रूप से आपकी TOS और उनकी सुरक्षा नीति का उल्लंघन करेगा), उनका कोई भी कानूनी रूप से दोनों को सम्‍मिलित करने के लिए खड़ा नहीं है। यह भी तथ्य यह है कि साबित होता है कि यह असंभव के पास झकना होगा। एक तरफ के रूप में, मैं यह भी बताऊंगा कि कोई एलएडब्ल्यू नहीं है, जिसके लिए एक यादृच्छिक कंपनी की आवश्यकता नहीं है, जब तक कि विशिष्ट नियम प्रासंगिक न हों। और उसके ऊपर, पासवर्ड एन्क्रिप्ट किए गए हैं (!), इसलिए शिथिलता एक क्षमा निष्कर्ष से बहुत दूर है।
AviD

21

कैसे एक आधे घर के बारे में?

एक मजबूत एन्क्रिप्शन के साथ पासवर्ड स्टोर करें, और रीसेट सक्षम न करें।

पासवर्ड रीसेट करने के बजाय, एक-बार पासवर्ड भेजने की अनुमति दें (जिसे पहले लॉगऑन होते ही बदलना होगा)। उपयोगकर्ता को तब जो कुछ भी पासवर्ड चाहिए उसे बदलने दें (पिछले वाले, यदि वे चुनते हैं)।

आप पासवर्ड रीसेट करने के लिए इसे एक सुरक्षित तंत्र के रूप में "बेच" सकते हैं।


आप जानते हैं, मैंने कई स्थितियों में इसका इस्तेमाल किया है (आमतौर पर यह मेरा मिडल ग्राउंड है), लेकिन मैंने लोगों से कहा है कि एंड यूज़र को सिर्फ इंटरेक्शन नहीं मिल रहा है और इसके लिए उन्हें समर्थन देने की जरूरत है। पासवर्ड 'उस व्यवसाय के मॉडल में परिस्थितियों के कारण। मैं हालांकि मानता हूं कि जब संभव हो तो यह बेहतर है।
शेन

आप अपने ग्राहक को उनके डीबी के बुरे हाथों में पड़ने के जोखिम के बारे में बता सकते हैं और उन्हें चोरी के पासवर्ड का प्रचार करवा सकते हैं ... चारों ओर बहुत सारे उदाहरण हैं।
Oded

6
उन्हें "डिज़ाइन" पर साइन अप करने के लिए कहें, एक जोड़ा क्लॉज़ के साथ कि वे आपको मुकदमा नहीं कर सकते हैं यदि आपने उन्हें चेतावनी दी थी कि क्या वास्तव में ऐसा होता है ... कम से कम तब आप खुद को कवर करते हैं।
१।

4
-1 पासवर्ड "एन्क्रिप्टेड" कभी नहीं होना चाहिए यह CWE-257 cwe.mitre.org/data/definitions/257.html
बदमाश

34
@ मिचेल ब्रूक्स: एक ही टिप्पणी को बार-बार डाउनवोट और कॉपी-पेस्ट करने की आवश्यकता नहीं है; हम सभी जानते हैं कि यह बुरा अभ्यास है। शेन ने कहा कि उनके पास इस मामले में उत्तोलन का अभाव है, हालांकि, और इसलिए अगली सबसे अच्छी बात प्रस्तावित है।
जोहान्स गोर्सेट

13

किसी उपयोगकर्ता को अपने मूल पासवर्ड को पुनः प्राप्त करने की अनुमति देने का एकमात्र तरीका उपयोगकर्ता की अपनी सार्वजनिक कुंजी के साथ इसे एन्क्रिप्ट करना है।उसके बाद ही उपयोगकर्ता अपने पासवर्ड को डिक्रिप्ट कर सकता है।

तो कदम होगा:

  1. उपयोगकर्ता आपकी साइट पर (बेशक एसएसएल पर) एक पासवर्ड सेट किए बिना रजिस्टर करता है। उन्हें स्वचालित रूप से लॉग इन करें या एक अस्थायी पासवर्ड प्रदान करें।
  2. आप भविष्य के पासवर्ड पुनर्प्राप्ति के लिए उनकी सार्वजनिक PGP कुंजी संग्रहीत करने की पेशकश करते हैं।
  3. वे अपनी सार्वजनिक PGP कुंजी अपलोड करते हैं।
  4. आप उनसे एक नया पासवर्ड सेट करने के लिए कहेंगे।
  5. वे अपना पासवर्ड जमा करते हैं।
  6. आपके पास सबसे अच्छा पासवर्ड हैशिंग एल्गोरिथ्म उपलब्ध है (जैसे bcrypt) का उपयोग करके पासवर्ड हैश। अगले लॉग-इन को मान्य करते समय इसका उपयोग करें।
  7. आप सार्वजनिक कुंजी के साथ पासवर्ड एन्क्रिप्ट करते हैं, और अलग से स्टोर करते हैं।

उपयोगकर्ता को तब अपना पासवर्ड पूछना चाहिए, आप एन्क्रिप्टेड (हैशेड नहीं) पासवर्ड के साथ जवाब दें। यदि उपयोगकर्ता भविष्य में अपना पासवर्ड पुनर्प्राप्त करने में सक्षम नहीं होना चाहता है (वे केवल इसे सेवा-जनरेट किए गए एक पर रीसेट कर पाएंगे), चरण 3 और 7 को छोड़ दिया जा सकता है।


5
अधिकांश उपयोगकर्ताओं के पास PGP कुंजी नहीं है (मेरे पास अभी भी एक नहीं है; उद्योग में 20 वर्षों के बाद, मैंने कभी आवश्यकता महसूस नहीं की है), और यह एक घर्षण रहित प्रक्रिया नहीं है। इसके अलावा, एक निजी कुंजी वास्तव में वैसे भी वास्तविक पासवर्ड के लिए सिर्फ एक प्रॉक्सी है। यह एक पासवर्ड के लिए एक पासवर्ड है, दूसरे शब्दों में; यह नीचे सभी तरह से कछुए है।
रॉबर्ट हार्वे

1
@RobertHarvey का लक्ष्य किसी उपयोगकर्ता को साइट के कर्मचारियों या किसी हैकर को इस पर पहुंचने की अनुमति दिए बिना अपना पासवर्ड पुनर्प्राप्त करने की अनुमति देना है। यह सुनिश्चित करने के लिए कि उपयोगकर्ता के स्वयं के कंप्यूटर पर पुनर्प्राप्ति प्रक्रिया होती है, आप इसे लागू करते हैं। पीजीपी के लिए अच्छी तरह से विकल्प हो सकते हैं जो उसी को प्राप्त कर सकते हैं। सभी तरह से नीचे कछुए हो सकते हैं (शायद रास्ते में कुछ हाथी), लेकिन मुझे कोई और रास्ता नहीं दिखता। सामान्य आबादी के लिए (व्यक्तिगत रूप से लक्षित होने की संभावना नहीं है) अपने पासवर्डों को थोड़ा कागज पर रखें, और उन्हें सेवा से पुनर्प्राप्त करने में असमर्थ होने के कारण, हम वर्तमान में अधिक सुरक्षित होंगे
निकोलस शैंक्स

मुझे यह पसंद है क्योंकि यह सभी को एक PGP सार्वजनिक कुंजी रखने के लिए मजबूर करता है, जो कि, अजीब तरह से, एक बहुत ही नैतिक चीज़ है।
Lodewijk

आप सिर्फ एक उत्पन्न कर सकते हैं और इसे उपयोगकर्ता को दे सकते हैं।
My1

@RobertHarvey आप सही हो सकते हैं कि यह "एक घर्षण रहित प्रक्रिया नहीं" है, लेकिन यह बिजली उपयोगकर्ताओं के लिए एक अतिरिक्त सेवा हो सकती है, जिसे नियमित उपयोगकर्ता इसे अनदेखा कर सकते हैं। पीके के तर्क के बारे में "पासवर्ड के लिए एक पासवर्ड" होने के रूप में, याद रखें कि यह सिद्धांत में कई पासवर्डों के लिए हो सकता है ; आप विभिन्न सेवाओं के लिए अलग-अलग पासवर्ड का उपयोग कर सकते हैं, और एक ही कुंजी का उपयोग करके उन सभी को एन्क्रिप्ट कर सकते हैं। तब PK केवल एक पासवर्ड से अधिक मूल्यवान होगा। शायद यह एक पासवर्ड मैनेजर (?) के लिए तुलनीय तरीके से है। यह मेरे लिए तुरंत स्पष्ट नहीं है कि इसके परिणाम क्या हो सकते हैं ...
केजरतन

12

मुझे लगता है कि असली सवाल आपको खुद से पूछना चाहिए: 'मैं लोगों को समझाने में बेहतर कैसे हो सकता हूं?'


4
@ स्नेग - ठीक है, मैं एक उग्र स्वभाव का आदमी हूं, लेकिन कभी-कभी यह एक बॉस और कभी-कभी एक ग्राहक होता है, इसलिए मेरे पास हमेशा कोई फायदा नहीं होता है मुझे उन्हें एक या दूसरे तरीके से समझाने की आवश्यकता होती है। मैं दर्पण में कुछ और अभ्यास करूँगा .. हालांकि;)
शेन

यह सुनिश्चित करने के लिए कि आपको वास्तव में अपनी क्षमता और संचार कौशल के अलावा किसी अन्य लाभ उठाने की आवश्यकता नहीं है। यदि आप कुछ करने का बेहतर तरीका जानते हैं लेकिन लोग नहीं सुनते हैं ... इसके बारे में सोचें।
z- बॉस

7
@ z- बॉस - जाहिर तौर पर आपने कुछ ऐसे प्रमुखों के साथ काम नहीं किया है, जिनके साथ काम करने में मुझे खुशी मिली है। कभी-कभी यह मायने नहीं रखता कि आपकी जीभ सोने में रंगी हुई है और आप एक दिन में Google Chrome को पुन: क्रमित कर सकते हैं (जो वास्तव में इसे उपयोगी बना सकता है) वे अभी भी हिलेंगे नहीं।
शेन

11

मेरे साथ भी वही दिक्कत है। और इसी तरह मैं हमेशा सोचता हूं कि कोई मेरे सिस्टम को हैक करे, यह "अगर" का नहीं बल्कि "जब" का मामला है।

इसलिए, जब मुझे एक वेबसाइट करनी होगी जो एक वसूली योग्य गोपनीय जानकारी जमा करने की आवश्यकता है, जैसे क्रेडिट कार्ड या पासवर्ड, तो मैं क्या करूं:

  • के साथ एन्क्रिप्ट: खुलता है (स्ट्रिंग $ डेटा, स्ट्रिंग $ विधि, स्ट्रिंग $ पासवर्ड)
  • डेटा arg :
    • संवेदनशील जानकारी (जैसे उपयोगकर्ता पासवर्ड)
    • यदि आवश्यक हो तो क्रमबद्ध करें, उदाहरण के लिए यदि जानकारी कई संवेदनशील जानकारी की तरह डेटा की एक सरणी है
  • पासवर्ड arg : ऐसी जानकारी का उपयोग करें जिसे केवल उपयोगकर्ता ही जानता है जैसे:
    • उपयोगकर्ता लाइसेंस प्लेट
    • सामाजिक सुरक्षा संख्या
    • उपयोगकर्ता फोन नंबर
    • उपयोगकर्ता माता का नाम
    • एक यादृच्छिक स्ट्रिंग ईमेल द्वारा भेजा गया और / या रजिस्टर समय पर एसएमएस द्वारा
  • विधि arg :
    • "सिफ-256-cbc" जैसे एक सिफर विधि चुनें
  • कभी डेटाबेस पर "पासवर्ड" तर्क में इस्तेमाल किया जानकारी (या जो भी जगह प्रणाली में) की दुकान

जब इस डेटा को पुनःप्राप्त करने के लिए आवश्यक हो तो बस "खुलता है_decrypt ()" फ़ंक्शन का उपयोग करें और उपयोगकर्ता से जवाब मांगें। जैसे: "अपना पासवर्ड प्राप्त करने के लिए प्रश्न का उत्तर दें: आपका सेलफोन नंबर क्या है?"

PS 1 : कभी भी डेटाबेस में संग्रहीत डेटा के रूप में उपयोग नहीं किया जाता है। यदि आपको उपयोगकर्ता सेलफोन नंबर को संग्रहीत करने की आवश्यकता है, तो डेटा को एन्कोड करने के लिए इस जानकारी का उपयोग कभी न करें। हमेशा एक ऐसी जानकारी का उपयोग करें जो केवल उपयोगकर्ता जानता है या कि यह किसी गैर-रिश्तेदार को जानना मुश्किल है।

PS 2 : क्रेडिट कार्ड की जानकारी के लिए, जैसे "एक क्लिक खरीदना", मैं जो भी करता हूं वह लॉगिन पासवर्ड का उपयोग करता है। यह पासवर्ड डेटाबेस (sha1, md5, आदि) में हैशेड है, लेकिन लॉगिन समय पर मैं सत्र में सादा-पाठ पासवर्ड या गैर-स्थायी (मेमोरी में) सुरक्षित कुकी को संग्रहीत करता हूं। यह सादा पासवर्ड कभी भी डेटाबेस में नहीं रहता है, वास्तव में यह हमेशा मेमोरी में रहता है, खंड के अंत में नष्ट हो जाता है। जब उपयोगकर्ता "एक क्लिक खरीद" बटन पर क्लिक करता है तो सिस्टम इस पासवर्ड का उपयोग करता है। यदि उपयोगकर्ता को फेसबुक, ट्विटर, आदि जैसी सेवा के साथ लॉग इन किया गया था, तो मैं पासवर्ड खरीदने के लिए फिर से संकेत देता हूं (ठीक है, यह पूरी तरह से "क्लिक" नहीं है) या फिर उस सेवा के कुछ डेटा का उपयोग करें जिसे उपयोगकर्ता लॉगिन करने के लिए उपयोग करता है। (facebook id की तरह)।


9

क्रेडेंशियल सुरक्षित करना एक बाइनरी ऑपरेशन नहीं है: सुरक्षित / सुरक्षित नहीं। सुरक्षा सभी जोखिम मूल्यांकन के बारे में है और इसे सातत्य पर मापा जाता है। सुरक्षा कट्टरपंथी इस तरह से सोचने से नफरत करते हैं, लेकिन बदसूरत सच्चाई यह है कि कुछ भी पूरी तरह से सुरक्षित नहीं है। कड़े पासवर्ड आवश्यकताओं, डीएनए नमूने, और रेटिना स्कैन के साथ हशेड पासवर्ड अधिक सुरक्षित हैं, लेकिन विकास और उपयोगकर्ता अनुभव की कीमत पर। प्लेनटेक्स्ट पासवर्ड बहुत कम सुरक्षित होते हैं लेकिन लागू करने के लिए सस्ते होते हैं (लेकिन इससे बचना चाहिए)। दिन के अंत में, यह एक उल्लंघन की लागत / लाभ विश्लेषण के लिए नीचे आता है। आप सुरक्षित किए जा रहे डेटा के मूल्य और उसके समय-मूल्य के आधार पर सुरक्षा को लागू करते हैं।

किसी के पासवर्ड की जंगली में कीमत क्या है? दी गई प्रणाली में प्रतिरूपण की लागत क्या है? एफबीआई कंप्यूटरों के लिए, लागत भारी हो सकती है। बॉब की एक-बंद पांच-पृष्ठ वेबसाइट के लिए, लागत नगण्य हो सकती है। एक पेशेवर अपने ग्राहकों को विकल्प प्रदान करता है और, जब सुरक्षा की बात आती है, तो किसी भी कार्यान्वयन के फायदे और जोखिमों का पता लगाता है। यह दोगुना है इसलिए यदि ग्राहक कुछ ऐसा अनुरोध करता है जो कि उद्योग के मानकों पर विफल होने के कारण उन्हें जोखिम में डाल सकता है। यदि कोई ग्राहक विशेष रूप से दो-तरफ़ा एन्क्रिप्शन का अनुरोध करता है, तो मैं आपको अपनी आपत्तियों का दस्तावेज़ देना सुनिश्चित करूँगा, लेकिन आपको उस सर्वोत्तम तरीके से लागू करने से नहीं रोकना चाहिए जिसे आप जानते हैं। दिन के अंत में, यह ग्राहक का पैसा है। हाँ,

यदि आप दो-तरफ़ा एन्क्रिप्शन के साथ पासवर्ड स्टोर कर रहे हैं, तो सुरक्षा सभी प्रमुख प्रबंधन के लिए नीचे आती है। Windows व्यवस्थापकीय खातों और पासवर्ड के साथ निजी कुंजी को प्रमाणपत्र तक पहुंच को प्रतिबंधित करने के लिए तंत्र प्रदान करता है। यदि आप अन्य प्लेटफ़ॉर्म पर होस्ट कर रहे हैं, तो आपको यह देखना होगा कि आपके पास उन पर क्या विकल्प उपलब्ध हैं। जैसा कि दूसरों ने सुझाव दिया है, आप असममित एन्क्रिप्शन का उपयोग कर सकते हैं।

कोई कानून नहीं है (न ही यूके में डेटा संरक्षण अधिनियम), जिसके बारे में मुझे पता है कि विशेष रूप से कहा गया है कि पासवर्ड को एक तरफ़ा हैश का उपयोग करके संग्रहीत किया जाना चाहिए। इनमें से किसी भी कानून में केवल आवश्यकता ही उचित है सुरक्षा के लिए कदम उठाए जाएं। यदि डेटाबेस तक पहुंच प्रतिबंधित है, तो सादा पासवर्ड भी इस तरह के प्रतिबंध के तहत कानूनी रूप से अर्हता प्राप्त कर सकता है।

हालाँकि, यह एक और पहलू को प्रकाश में लाता है: कानूनी पूर्वता। यदि कानूनी पूर्वता बताती है कि आपको उस उद्योग को दिए गए एक-तरफ़ा हैश का उपयोग करना होगा जिसमें आपका सिस्टम बनाया जा रहा है, तो वह पूरी तरह से अलग है। यही वह बारूद है जिसका उपयोग आप अपने ग्राहक को समझाने के लिए करते हैं। उस पर रोक लगाते हुए, एक उचित जोखिम मूल्यांकन प्रदान करने के लिए सबसे अच्छा सुझाव, अपनी आपत्तियों का दस्तावेजीकरण करें और सिस्टम को सबसे सुरक्षित तरीके से लागू करें जो आप ग्राहक की आवश्यकताओं को दे सकते हैं।


10
आपका जवाब पूरी तरह से अनदेखा करता है कि पासवर्ड कई साइटों / सेवाओं पर पुन: उपयोग किए जाते हैं, जो इस विषय के लिए केंद्रीय है और यही कारण है कि पुनर्प्राप्त करने योग्य पासवर्ड को एक गंभीर कमजोरी माना जाता है। एक सुरक्षा पेशेवर गैर-तकनीकी ग्राहक को सुरक्षा निर्णय नहीं सौंपता है; एक पेशेवर जानता है कि उसकी जिम्मेदारियां भुगतान करने वाले ग्राहक से परे हैं और उच्च जोखिम और शून्य इनाम के साथ विकल्प प्रदान नहीं करता है । -1 रैंटिक पर एक भारी भारी और तथ्यों पर बहुत प्रकाश के लिए - और वास्तव में सवाल का जवाब देने के लिए भी नहीं।
हारून

4
फिर, आप पूरी तरह से जोखिम मूल्यांकन की अनदेखी कर रहे हैं। अपने तर्क का उपयोग करने के लिए, आप सिर्फ 1-वे हैश पर रोक नहीं सकते। आपको ALSO में जटिलता की आवश्यकताएं, पासवर्ड की लंबाई, पासवर्ड का पुनः उपयोग प्रतिबंध आदि शामिल होना चाहिए। यह तर्क देते हुए कि उपयोगकर्ता गूंगे पासवर्ड का उपयोग करेंगे या पासवर्ड का पुन: उपयोग करना एक पर्याप्त व्यावसायिक औचित्य नहीं है यदि सिस्टम अप्रासंगिक और स्पष्ट रूप से है, तो मैंने सवाल का जवाब दिया। संक्षिप्त जवाब: एक एसटीडी कार्यान्वयन का उपयोग करने के लिए धक्का, अपनी आपत्तियों का दस्तावेजीकरण करें यदि आप ओवरराइड किए जाते हैं और आगे बढ़ते हैं।
थॉमस

7
और फिर से आप यह दोहराते हैं कि कम-मूल्य प्रणाली के लिए इनमें से कोई भी मायने नहीं रखता है! उपयोगकर्ता के पासवर्ड के मूल्य का आपके सिस्टम पर उपयोगकर्ता के खाते के मूल्य से कोई लेना-देना नहीं है। यह एक रहस्य है , और एक जिसे आपको हमेशा रखना चाहिए। मेरी इच्छा है कि मैं टिप्पणी के लिए एक और -1 दे सकूँ जो यह प्रदर्शित करे कि आप अभी भी यहाँ के मुद्दों को नहीं समझते हैं।
हारून

5
जोखिम मूल्यांकन मुख्य मुद्दा है। पासवर्ड का पुन: उपयोग एक बहुत बड़े मुद्दों में केवल एक संभावित मुद्दा है। फोब्स की आवश्यकता क्यों नहीं है? आवश्यकता क्यों नहीं है कि व्यक्ति आपके कार्यालय में प्रवेश करने के लिए ड्राइव करता है? जोखिमों का उचित मूल्यांकन किए बिना, इन सवालों का जवाब देने का कोई तरीका नहीं है। आपकी दुनिया में, सब कुछ एक जोखिम है इसलिए हर प्रणाली को एफबीआई स्तर की लॉगिन सुरक्षा की आवश्यकता होती है। यह बस नहीं है कि वास्तविक दुनिया कैसे काम करती है।
थॉमस

7
यहाँ केवल एक ही चीज़ स्पष्ट है कि आपका पूरा तर्क एक फिसलन ढलान से अधिक कुछ नहीं है और आप उस तथ्य को कवर करने के लिए "जोखिम मूल्यांकन" जैसे buzzwords के साथ पाठकों को स्टीमर करने की कोशिश कर रहे हैं। बाकी का आश्वासन दिया जो भी सिस्टम "एफबीआई" का उपयोग करता है वह एक bcrypt हैश और न्यूनतम पासवर्ड लंबाई की तुलना में कहीं अधिक सुरक्षित होने जा रहा है। यदि उद्योग-मानक प्रमाणीकरण प्रणालियों की आवश्यकता होती है, तो मुझे "सुरक्षा कट्टरपंथी" बना देता है, तो मुझे लगता है कि मैं एक कट्टरपंथी हूं; व्यक्तिगत रूप से, यह जानने के लिए मुझे पीड़ा होती है कि वहाँ के लोग पैसे के लिए मेरी सुरक्षा का त्याग करने को तैयार हैं । वह अनैतिक है
१।

8

उपयोगकर्ता के सुरक्षा प्रश्न के उत्तर को एन्क्रिप्शन कुंजी का एक हिस्सा बनाएं, और सुरक्षा प्रश्न के उत्तर को सादे पाठ के रूप में संग्रहीत न करें (इसके बजाय)


उपयोगकर्ता प्रश्न का अलग-अलग उत्तर दे सकता है। कुछ प्रश्न लंबे उत्तर देते हैं जो बाद में फिर से लिखना आसान हो जाता है।
मोनोमैन

5
सुरक्षा प्रश्न एक बुरा विचार है। एक बार जानकारी का उल्लंघन होने पर आप अपनी माँ को उसका पहला नाम कैसे बदल सकते हैं? पीटर गुटमैन इंजीनियरिंग सुरक्षा भी देखें ।
jww

7

मैं एक जीने के लिए कई-कारक प्रमाणीकरण प्रणालियों को लागू करता हूं, इसलिए मेरे लिए यह सोचना स्वाभाविक है कि आप पासवर्ड रीसेट कर सकते हैं या पुनर्निर्माण कर सकते हैं, जबकि अस्थायी रूप से केवल रीसेट / मनोरंजन वर्कफ़्लो के लिए उपयोगकर्ता को प्रमाणित करने के लिए एक कम कारक का उपयोग कर सकते हैं। विशेष रूप से कुछ अतिरिक्त कारकों के रूप में ओटीपी (वन-टाइम पासवर्ड) का उपयोग, जोखिम का बहुत कम करता है यदि सुझाए गए वर्कफ़्लो के लिए समय विंडो कम है। हमने स्मार्टफ़ोन के लिए सॉफ़्टवेयर OTP जनरेटर लागू किया है (जो कि अधिकांश उपयोगकर्ता पहले से ही पूरे दिन अपने साथ रखते हैं) बड़ी सफलता के साथ। कमर्शियल प्लग के शिकायत आने से पहले, जो मैं कह रहा हूँ, वह यह है कि हम पासवर्ड को आसानी से पुनःप्राप्ति योग्य या रिसेटेबल बनाए रखने में निहित जोखिमों को कम कर सकते हैं, जब वे किसी उपयोगकर्ता को प्रमाणित करने के लिए उपयोग किए जाने वाले एकमात्र कारक नहीं हैं।


एकाधिक-कारक प्रमाणीकरण प्रणाली से एक कारक को अस्थायी रूप से निकालना वास्तव में बहुत अधिक सुरक्षित साधन है ताकि कई साइटों पर देखे गए "गुप्त प्रश्न" सिस्टम की तुलना में एक पासवर्ड रीसेट किया जा सके। लेकिन पासवर्ड को पुनर्प्राप्त करने योग्य प्रारूप में संग्रहीत करने के लिए, मुझे यकीन नहीं है कि यह कैसे मदद करता है, जब तक कि आप किसी तरह से दूसरे कारक का उपयोग नहीं कर रहे हैं पहले को एन्क्रिप्ट या बाधित करने के लिए, और मुझे यकीन नहीं है कि यह एक SecurID जैसी चीज के साथ कैसे संभव है। क्या तुम समझा सकते हो?
Aaronaught

@Aaronaught मैंने जो कहा है, यदि आपको पुनर्प्राप्त करने योग्य पासवर्ड की आवश्यकता है, तो अंतर्निहित जोखिम कम है यदि यह एकमात्र प्रमाणीकरण कारक नहीं है, और यह अंतिम उपयोगकर्ता के लिए भी आसान है, अगर यह वर्कफ़्लो कारकों का पुन: उपयोग करता है, तो वह / उसके पास पहले से ही मौजूद है और वर्तमान पहुंच है, यह याद रखने की कोशिश करने की तुलना में कि शायद 'गुप्त उत्तर' भी भूल गए हैं या समय-सीमित लिंक या अस्थायी पासवर्ड का उपयोग करते हुए, दोनों असुरक्षित चैनलों के माध्यम से भेजे गए हैं (जब तक कि आप क्लाइंट प्रमाण पत्र के साथ एस-माइम का उपयोग नहीं कर रहे हैं, या पीजीपी, दोनों सही एसोसिएशन और समाप्ति / प्रतिस्थापन के प्रबंधन पर विशेष रूप से खर्च करते हैं)
मोनोमन

1
मुझे लगता है कि यह सब सच है, लेकिन सार्वजनिक समझौता करने का जोखिम कम से कम है; पुनर्प्राप्त करने योग्य पासवर्ड के साथ और अधिक गंभीर मुद्दा आंतरिक सुरक्षा है और संभावित रूप से असंतुष्ट कर्मचारी को हजारों ग्राहकों के ई-मेल पासवर्ड या फ़िशर्स और स्पैमर को बेचने के लिए एक कुटिल सीईओ के साथ चलने की अनुमति देता है। दो-कारक प्रमाणीकरण पहचान की चोरी और पासवर्ड का अनुमान लगाने में बहुत अच्छा है, लेकिन वास्तव में वास्तविक पासवर्ड डेटाबेस को सुरक्षित रखने के लिए तालिका में बहुत अधिक नहीं लाता है।
हारून को

5

क्षमा करें, लेकिन जब तक आपके पास उनके पासवर्ड को डिकोड करने का कोई तरीका है, तब तक कोई रास्ता नहीं है कि यह सुरक्षित हो जाए। इसे डटकर लड़ें, और हारने पर सी.आई.ए.


5

बस इस दिलचस्प और गर्म चर्चा में आया था। हालांकि मुझे सबसे ज्यादा आश्चर्य हुआ, निम्नलिखित मूल प्रश्न पर कितना कम ध्यान दिया गया:

  • Q1। वे कौन से वास्तविक कारण हैं जिन पर उपयोगकर्ता सादा पाठ संग्रहीत पासवर्ड का उपयोग करने पर जोर देता है? इसका इतना मूल्य क्यों है?

उपयोगकर्ता जो जानकारी बड़े या युवा हैं, वास्तव में उस प्रश्न का उत्तर नहीं देते हैं। लेकिन ग्राहकों की चिंता को समझे बिना उचित निर्णय कैसे किया जा सकता है?

अब यह क्यों मायने रखता है? क्योंकि अगर ग्राहकों के अनुरोध का वास्तविक कारण वह प्रणाली है जिसका उपयोग करना कठिन है, तो शायद सटीक कारण को संबोधित करने से वास्तविक समस्या हल हो जाएगी?

जैसा कि मेरे पास यह जानकारी नहीं है और मैं उन ग्राहकों से बात नहीं कर सकता, मैं केवल अनुमान लगा सकता हूं: यह प्रयोज्यता के बारे में है, ऊपर देखें।

एक और सवाल मैंने पूछा है:

  • Q2। यदि उपयोगकर्ता को पहले पासवर्ड याद नहीं है, तो पुराना पासवर्ड क्यों मायने रखता है?

और यहाँ संभव उत्तर है। यदि आपने बिल्ली को "मियाउमियु" कहा है और उसका नाम पासवर्ड के रूप में इस्तेमाल किया है, लेकिन आप भूल गए, तो क्या आप यह याद रखना पसंद करेंगे कि यह क्या था या "# zy * RW (ew)" जैसा कुछ भेजा जा रहा था?

एक और संभावित कारण यह है कि उपयोगकर्ता इसे नए पासवर्ड के साथ आने के लिए एक कठिन काम मानता है! इसलिए पुराने पासवर्ड को वापस भेजना उस दर्दनाक काम से उसे बचाने का भ्रम देता है।

मैं सिर्फ इसका कारण समझने की कोशिश कर रहा हूं। लेकिन जो भी कारण है, वह कारण है न कि वह कारण जिसे संबोधित किया जाना है।

उपयोगकर्ता के रूप में, मुझे चीजें सरल चाहिए! मैं कड़ी मेहनत नहीं करना चाहता!

अगर मैं समाचार पत्रों को पढ़ने के लिए किसी समाचार साइट में लॉग इन करता हूं, तो मैं 1111 को पासवर्ड के रूप में टाइप करना चाहता हूं और इसके माध्यम से !!!

मुझे पता है कि यह असुरक्षित है लेकिन मुझे अपने "खाते" तक किसी की पहुँच की क्या परवाह है? हाँ, वह खबर भी पढ़ सकता है!

क्या साइट मेरी "निजी" जानकारी संग्रहीत करती है? आज मैं जो खबर पढ़ता हूं? फिर यह साइट की समस्या है, मेरी नहीं! क्या साइट प्रमाणित उपयोगकर्ता को निजी जानकारी दिखाती है? तो फिर यह पहली जगह में नहीं दिखा!

यह समस्या के प्रति उपयोगकर्ता के रवैये को प्रदर्शित करने के लिए है।

इसलिए संक्षेप में, मुझे नहीं लगता कि सादे पाठ पासवर्ड (जिसे हम जानते हैं कि यह असंभव है) को "सुरक्षित रूप से" स्टोर करना एक समस्या है, बल्कि ग्राहकों को वास्तविक चिंता का समाधान कैसे करना है।


4

खोए / भूल गए पासवर्ड को हैंडल करना:

कोई भी कभी भी पासवर्ड पुनर्प्राप्त करने में सक्षम नहीं होना चाहिए।

यदि उपयोगकर्ता अपने पासवर्ड भूल गए हैं, तो उन्हें कम से कम अपने उपयोगकर्ता नाम या ईमेल पते पता होना चाहिए। अनुरोध करने पर, उपयोगकर्ता तालिका में एक GUID उत्पन्न करें और उपयोगकर्ता के ईमेल पते के पैरामीटर के रूप में मार्गदर्शिका वाले लिंक वाला एक ईमेल भेजे।

लिंक के पीछे का पेज यह सत्यापित करता है कि पैरामीटर गाइड वास्तव में मौजूद है (शायद कुछ टाइमआउट लॉजिक के साथ), और उपयोगकर्ता से एक नया पासवर्ड मांगता है।

यदि आपको उपयोगकर्ताओं को हॉटलाइन मदद करने की आवश्यकता है, तो अपने अनुदान मॉडल में कुछ भूमिकाएं जोड़ें और हॉटलाइन भूमिका को अस्थायी रूप से पहचाने गए उपयोगकर्ता के रूप में लॉगिन करने की अनुमति दें। ऐसे सभी हॉटलाइन लॉगिन लॉग इन करें। उदाहरण के लिए, बुग्जिला एडिंस के लिए इस तरह के एक प्रतिरूपण सुविधा प्रदान करता है।


GUID एक बुरा विचार है, लगभग यादृच्छिक रूप से पर्याप्त नहीं है और bruteforce के लिए आसान है। इसके साथ अन्य समस्याएँ हैं, देखें stackoverflow.com/questions/664673/…
AviD

3

पंजीकरण से पहले सादा कूटशब्द ईमेल करने के बारे में क्या है, इसे एन्क्रिप्ट करने और खो जाने से पहले? मैंने बहुत सारी वेबसाइटें देखी हैं, और उस उपयोगकर्ता के ईमेल से उस पासवर्ड को प्राप्त करना आपके सर्वर / कंप्यूटर पर इसे छोड़ने की तुलना में अधिक सुरक्षित है।


मैं यह नहीं मानूंगा कि ईमेल किसी अन्य प्रणाली की तुलना में अधिक सुरक्षित है। हालांकि यह मेरे हाथों से कानूनी चिंता का विषय है लेकिन अभी भी किसी को अपना ईमेल खोने / हटाने का मुद्दा है और अब मैं वापस स्क्वायर में जा रहा हूं।
शेन

एक पासवर्ड रीसेट प्रदान करें और प्लेटेक्स्ट पासवर्ड ईमेल करें। मुझे लगता है कि इस विषय पर आप सबसे ज्यादा कर सकते हैं, पासवर्ड की एक प्रति रखे बिना।
कैसरफा

यह बिल्कुल भयानक विचार है। यह दोनों अप्रभावी हैं (कई उपयोगकर्ता वास्तव में पढ़ने के बाद ईमेल हटाते हैं) और इससे भी बदतर आप की रक्षा करने की कोशिश कर रहे हैं (क्योंकि ई-मेल डिफ़ॉल्ट रूप से अनएन्क्रिप्टेड है और अविश्वसनीय नेटवर्क से गुजरता है)। उपयोगकर्ता को यह सुझाव देने के लिए बेहतर है कि वे पासवर्ड का एक नोट खुद बनाते हैं, कम से कम अपने आप को एक ईमेल भेजते हैं जो जानकारी कभी भी ईमेल सर्वर से दूर नहीं जाती है, पूरे इंटरनेट पर नहीं!
बेन वोइग्ट

3

यदि आप पुनर्प्राप्त करने योग्य पासवर्ड को स्टोर करने की आवश्यकता को अस्वीकार नहीं कर सकते हैं, तो इस बारे में आपके काउंटर-तर्क के रूप में कैसे।

हम या तो ठीक से हैश पासवर्ड कर सकते हैं और उपयोगकर्ताओं के लिए एक रीसेट तंत्र का निर्माण कर सकते हैं, या हम सिस्टम से सभी व्यक्तिगत पहचान योग्य जानकारी को निकाल सकते हैं। आप उपयोगकर्ता वरीयताओं को सेट करने के लिए एक ईमेल पते का उपयोग कर सकते हैं, लेकिन इसके बारे में है। भविष्य की यात्राओं पर प्राथमिकताओं को स्वचालित रूप से खींचने और उचित अवधि के बाद डेटा को फेंकने के लिए एक कुकी का उपयोग करें।

एक विकल्प जिसे अक्सर पासवर्ड नीति के साथ अनदेखा किया जाता है वह यह है कि क्या पासवर्ड की वास्तव में आवश्यकता है। यदि केवल एक ही चीज़ है जो आपकी पासवर्ड नीति ग्राहक सेवा कॉल का कारण है, तो शायद आप इससे छुटकारा पा सकते हैं।


जब तक आपके पास पासवर्ड के साथ एक ई-मेल पता जुड़ा हुआ है, और वह पासवर्ड पुनर्प्राप्त करने योग्य है, तब तक आपने पासवर्ड के पुन: उपयोग के कारण संभावित रूप से उस ई-मेल पते के लिए पासवर्ड लीक कर दिया है। यह वास्तव में यहाँ प्राथमिक चिंता का विषय है। वास्तव में कोई अन्य व्यक्तिगत रूप से पहचान योग्य जानकारी नहीं है जो मायने रखती है।
एरोनट्यूट

1
आपने मेरी बात को पूरी तरह याद किया। यदि आपको वास्तव में पासवर्ड की आवश्यकता नहीं है, तो एक संग्रह न करें। डेवलपर्स अक्सर "यही तरीका है कि हम इसे करते हैं" सोच में फंस जाते हैं। कभी-कभी यह पूर्व-कल्पित धारणाओं को बाहर निकालने में मदद करता है।
एनोप्रेस

2

उपयोगकर्ताओं को वास्तव में करो में पुनर्प्राप्त करने की आवश्यकता है (जैसे बताया जा सकता है) कि वे क्या पासवर्ड भूल गए थे, या क्या उन्हें सिस्टम पर प्राप्त करने में सक्षम होना चाहिए? अगर वे वास्तव में चाहते हैं कि लॉगऑन करने के लिए एक पासवर्ड है, तो एक रूटीन क्यों नहीं है कि बस पुराने पासवर्ड (जो भी हो) को एक नए पासवर्ड में बदल दें जो समर्थन व्यक्ति उस व्यक्ति को दे सकता है जिसने अपना पासवर्ड खो दिया है?

मैंने सिस्टम के साथ काम किया है जो ठीक यही करता है। समर्थन व्यक्ति के पास यह जानने का कोई तरीका नहीं है कि वर्तमान पासवर्ड क्या है, लेकिन इसे नए मूल्य पर रीसेट कर सकते हैं। बेशक इस तरह के सभी रीसेट को कहीं न कहीं लॉग इन किया जाना चाहिए और अच्छा व्यवहार यह होगा कि उपयोगकर्ता को एक ईमेल जनरेट किया जाए जो यह बताए कि पासवर्ड रीसेट हो गया है।

एक और संभावना है कि एक साथ दो पासवर्डों को एक खाते तक पहुंच की अनुमति हो। एक "सामान्य" पासवर्ड है जिसे उपयोगकर्ता प्रबंधित करता है और दूसरा एक कंकाल / मास्टर कुंजी की तरह है जो केवल सहायक कर्मचारियों द्वारा जाना जाता है और सभी उपयोगकर्ताओं के लिए समान है। इस तरह से जब किसी उपयोगकर्ता को कोई समस्या होती है तो समर्थन व्यक्ति मास्टर कुंजी के साथ खाते में लॉगिन कर सकता है और उपयोगकर्ता को अपना पासवर्ड जो भी हो, बदलने में मदद कर सकता है। कहने की जरूरत नहीं है, मास्टर कुंजी के साथ सभी लॉगिन सिस्टम द्वारा भी लॉग किया जाना चाहिए। एक अतिरिक्त उपाय के रूप में, जब भी मास्टर कुंजी का उपयोग किया जाता है, तो आप समर्थन व्यक्तियों को क्रेडेंशियल भी मान्य कर सकते हैं।

-EDIT- मास्टर कुंजी नहीं होने के बारे में टिप्पणियों के जवाब में: मैं मानता हूं कि यह बुरा है क्योंकि मेरा मानना ​​है कि उपयोगकर्ता के अलावा किसी और को उपयोगकर्ता के खाते तक पहुंच की अनुमति देना बुरा है। यदि आप प्रश्न को देखते हैं, तो इसका पूरा आधार यह है कि ग्राहक ने अत्यधिक सुरक्षा वाले वातावरण को अनिवार्य कर दिया है।

एक मास्टर कुंजी की जरूरत नहीं है के रूप में बुरा पहले लग रहे हो जाएगा। मैं एक रक्षा संयंत्र में काम करता था जहाँ उन्हें कुछ अवसरों पर "विशेष पहुँच" रखने के लिए मेनफ्रेम कंप्यूटर ऑपरेटर की आवश्यकता होती थी। उन्होंने बस विशेष पासवर्ड को एक सीलबंद लिफाफे में रखा और उसे ऑपरेटर की मेज पर टैप कर दिया। पासवर्ड का उपयोग करने के लिए (जिसे ऑपरेटर को पता नहीं था) उसे लिफाफा खोलना था। शिफ्ट के प्रत्येक बदलाव पर शिफ्ट सुपरवाइजर की नौकरियों में से एक यह देखना था कि क्या लिफाफा खोला गया था और यदि ऐसा है तो तुरंत पासवर्ड बदल दिया गया है (दूसरे विभाग द्वारा) और नया पासवर्ड नए लिफाफे में डाल दिया गया और प्रक्रिया शुरू हो गई एक बार फिर। ऑपरेटर से पूछताछ की जाएगी कि उसने इसे क्यों खोला था और इस घटना को रिकॉर्ड के लिए दस्तावेज किया जाएगा।

हालांकि यह एक ऐसी प्रक्रिया नहीं है जिसे मैं डिज़ाइन करूंगा, इसने काम किया और उत्कृष्ट जवाबदेही प्रदान की। सब कुछ लॉग इन किया गया था और समीक्षा की गई थी, साथ ही सभी ऑपरेटरों के पास डीओडी की गुप्त मंजूरी थी और हमारे पास कभी कोई दुर्व्यवहार नहीं था।

समीक्षा और निरीक्षण के कारण, सभी ऑपरेटरों को पता था कि अगर उन्होंने लिफाफा खोलने के विशेषाधिकार का दुरुपयोग किया तो वे तत्काल बर्खास्तगी और संभावित आपराधिक अभियोजन के अधीन थे।

इसलिए मुझे लगता है कि असली जवाब यह है कि यदि कोई सही काम करना चाहता है तो लोग उन लोगों को काम पर रखते हैं जिन पर वे भरोसा कर सकते हैं, पृष्ठभूमि की जांच कर सकते हैं और उचित प्रबंधन की निगरानी और जवाबदेही का इस्तेमाल कर सकते हैं।

लेकिन फिर अगर इस गरीब साथी के ग्राहक के पास अच्छा प्रबंधन होता तो वे पहली बार में इस तरह के सिक्योरिटी कॉम्प्लिमेंटेड सॉल्यूशन के लिए नहीं कहते थे, अब क्या करेंगे?


एक मास्टर कुंजी भयानक रूप से जोखिम भरा होगा, सहायक कर्मचारियों के पास हर खाते तक पहुंच होगी - और एक बार जब आप उस कुंजी को किसी उपयोगकर्ता को दे देते हैं, तो उनके पास मास्टर कुंजी और हर चीज तक पहुंच होती है।
कार्सन मायर्स

एक मास्टर कुंजी एक भयानक विचार है, क्योंकि अगर कोई इसे पता चलता है (या दुर्घटना से इसका खुलासा किया है), तो वे इसका फायदा उठा सकते हैं। प्रति खाता पासवर्ड रीसेट तंत्र के रूप में बहुत बेहतर है।
फिल मिलर

मैं उत्सुक हूं, मुझे लगा कि डिफ़ॉल्ट रूप से लिनक्स में रूट स्तर तक पहुंच के साथ एक सुपर उपयोगकर्ता खाता था? क्या सिस्टम पर सभी फ़ाइलों को एक्सेस करने के लिए "मास्टर कुंजी" नहीं है?
जॉनीबोट्स

@JonnyBoats हाँ, यह है। यही कारण है कि मैक ओएस एक्स जैसे आधुनिक यूनिक्स जड़ खाते को अक्षम करते हैं।
निकोलस शैंक्स

@ निकोलस शैंक्स: रूट खाते को अक्षम करें, या रूट खाते पर इंटरेक्टिव लॉगिन को अक्षम करें? असीमित अनुमतियों के साथ अभी भी बहुत सारे कोड चल रहे हैं।
बेन वोइग्ट

2

इस विषय के बारे में थोड़ा समझने के बाद, मेरा मानना ​​है कि यदि आप एक साइनॉन / पासवर्ड के साथ एक वेबसाइट बना रहे हैं, तो आपको अपने सर्वर पर प्लेनटेक्स्ट पासवर्ड भी नहीं देखना चाहिए। पासवर्ड को हैशेड किया जाना चाहिए, और शायद नमकीन, इससे पहले कि यह क्लाइंट को छोड़ दे।

अगर आपको प्लेनटेक्स्ट पासवर्ड कभी नहीं दिखता है, तो रिट्रीवल का सवाल ही नहीं उठता।

इसके अलावा, मैं (वेब ​​से) इकट्ठा करता हूं कि (कथित तौर पर) कुछ एल्गोरिदम जैसे एमडी 5 को अब सुरक्षित नहीं माना जाता है। मेरे पास खुद को जज करने का कोई तरीका नहीं है, लेकिन यह विचार करने के लिए कुछ है।


1

एक स्टैंडअलोन सर्वर पर एक डीबी खोलें और प्रत्येक वेब सर्वर को एक एन्क्रिप्टेड रिमोट कनेक्शन दें जो इस सुविधा की आवश्यकता है।
इसमें रिलेशनल डीबी होना जरूरी नहीं है, यह एफ़टीपी एक्सेस के साथ एक फाइल सिस्टम हो सकता है, टेबल और पंक्तियों के बजाय फ़ोल्डर्स और फ़ाइलों का उपयोग कर सकता है।
यदि आप कर सकते हैं तो वेब सर्वर को केवल लिखने की अनुमति दें।

साइट के DB में पासवर्ड के गैर-पुनर्प्राप्ति योग्य एन्क्रिप्शन को स्टोर करें (चलो इसे "पास-ए" कहते हैं) जैसे सामान्य लोग करते हैं :)
प्रत्येक नए उपयोगकर्ता (या पासवर्ड परिवर्तन) पर रिमोट डीबी में पासवर्ड की एक सादे प्रतिलिपि स्टोर करें। सर्वर की आईडी, उपयोगकर्ता की आईडी और "पास-ए" इस पासवर्ड के लिए एक समग्र कुंजी का उपयोग करें। तुम भी रात में बेहतर सोने के लिए पासवर्ड पर एक द्वि-दिशात्मक एन्क्रिप्शन का उपयोग कर सकते हैं।

अब किसी को पासवर्ड प्राप्त करने के लिए और यह संदर्भ के लिए है (साइट आईडी + यूजर आईडी + "पास-ए"), उसे निम्न करना होगा:

  1. ("पास-ए", उपयोगकर्ता आईडी) जोड़ी या जोड़े प्राप्त करने के लिए वेबसाइट के डीबी को हैक करें।
  2. कुछ कॉन्फिग फाइल से वेबसाइट की आईडी प्राप्त करें
  3. दूरस्थ पासवर्ड DB में खोजें और हैक करें।

आप पासवर्ड पुनर्प्राप्ति सेवा की पहुंच को नियंत्रित कर सकते हैं (इसे केवल एक सुरक्षित वेब सेवा के रूप में बेनकाब करें, प्रति दिन केवल कुछ निश्चित पासवर्ड पुनर्प्राप्ति की अनुमति दें, इसे मैन्युअल रूप से करें, आदि), और यहां तक ​​कि इस "विशेष सुरक्षा व्यवस्था" के लिए अतिरिक्त शुल्क लें।
पासवर्ड पुनर्प्राप्ति डीबी सर्वर बहुत छिपा हुआ है क्योंकि यह कई कार्यों को पूरा नहीं करता है और बेहतर तरीके से सुरक्षित किया जा सकता है (आप कसकर अनुमति, प्रक्रियाओं और सेवाओं को दर्जी कर सकते हैं)।

सभी के सभी, आप हैकर के लिए कठिन काम करते हैं। किसी भी एक सर्वर पर सुरक्षा भंग होने की संभावना अभी भी समान है, लेकिन सार्थक डेटा (खाते और पासवर्ड का मेल) को इकट्ठा करना मुश्किल होगा।


3
यदि ऐप सर्वर इसे एक्सेस कर सकता है, तो ऐप सर्वर तक पहुंच रखने वाला कोई भी व्यक्ति हो सकता है (यह एक हैकर या दुर्भावनापूर्ण अंदरूनी सूत्र हो)। यह शून्य अतिरिक्त सुरक्षा प्रदान करता है।
मोल्फ

1
यहां अतिरिक्त सुरक्षा यह है कि एप्लिकेशन सर्वर का डीबी पासवर्ड धारण नहीं करता है (इसलिए पासवर्ड डीबी के लिए - एक दूसरी हैक की आवश्यकता है), और पासवर्ड डीबी अनियमित गतिविधि के खिलाफ बेहतर सुरक्षा कर सकता है, क्योंकि आप पासवर्ड पुनर्प्राप्ति सेवा की पहुंच को नियंत्रित करते हैं। इसलिए आप थोक डेटा पुनर्प्राप्ति का पता लगा सकते हैं, साप्ताहिक आधार पर पुनर्प्राप्ति एसएसएच कुंजी को बदल सकते हैं, या स्वचालित पास पुनर्प्राप्ति की अनुमति भी नहीं दे सकते हैं, और यह सब मैन्युअल रूप से कर सकते हैं। यह समाधान पासवर्ड DB के लिए किसी अन्य आंतरिक एन्क्रिप्शन योजना (जैसे सार्वजनिक + निजी कुंजी, नमक, आदि) पर भी फिट बैठता है।
आमिर अरद

1

एक अन्य विकल्प जो आपने नहीं माना होगा वह ईमेल के माध्यम से कार्रवाई की अनुमति देता है। यह थोड़ा बोझिल है, लेकिन मैंने इसे एक क्लाइंट के लिए लागू किया है, जिसे सिस्टम के कुछ हिस्सों को देखने (केवल पढ़ने) के लिए उपयोगकर्ताओं को "बाहर" की आवश्यकता होती है। उदाहरण के लिए:

  1. एक बार उपयोगकर्ता पंजीकृत होने के बाद, उनकी पूर्ण पहुँच होती है (एक नियमित वेबसाइट की तरह)। पंजीकरण में एक ईमेल शामिल होना चाहिए।
  2. यदि डेटा या एक्शन की आवश्यकता है और उपयोगकर्ता को अपना पासवर्ड याद नहीं है, तो वे अभी भी नियमित " सबमिट " बटन के ठीक बगल में एक विशेष " मुझे अनुमति के लिए ईमेल " बटन पर क्लिक करके कार्रवाई कर सकते हैं ।
  3. फिर अनुरोध को हाइपरलिंक के साथ ईमेल पर भेजा जाता है और पूछा जाता है कि क्या वे कार्रवाई करना चाहते हैं। यह एक पासवर्ड रीसेट ईमेल लिंक के समान है, लेकिन पासवर्ड रीसेट करने के बजाय यह वन-टाइम एक्शन करता है
  4. उपयोगकर्ता तब "हां" पर क्लिक करता है, और यह पुष्टि करता है कि डेटा दिखाया जाना चाहिए, या कार्रवाई की जानी चाहिए, डेटा का पता चला, आदि।

जैसा कि आपने टिप्पणियों में उल्लेख किया है, यह ईमेल से समझौता किए जाने पर काम नहीं करेगा, लेकिन यह पासवर्ड रीसेट न करने के बारे में @joachim की टिप्पणी को संबोधित करता है। आखिरकार, उन्हें पासवर्ड रीसेट का उपयोग करना होगा, लेकिन वे ऐसा अधिक सुविधाजनक समय पर, या आवश्यकतानुसार किसी व्यवस्थापक या मित्र की सहायता से कर सकते हैं।

इस समाधान के लिए एक ट्विस्ट एक तीसरे पक्ष के विश्वसनीय व्यवस्थापक को कार्रवाई अनुरोध भेजना होगा। यह बुजुर्गों, मानसिक रूप से विकलांग, बहुत युवा या अन्यथा भ्रमित उपयोगकर्ताओं के मामलों में सबसे अच्छा काम करेगा। बेशक इसके लिए इन लोगों को अपने कार्यों का समर्थन करने के लिए एक विश्वसनीय प्रशासक की आवश्यकता होती है।


1

साल्ट-एंड-हैश उपयोगकर्ता का पासवर्ड सामान्य है। उपयोगकर्ता को लॉग इन करते समय, उपयोगकर्ता के पासवर्ड (नमस्कार / हैशिंग के बाद) दोनों की अनुमति दें, लेकिन यह भी अनुमति दें कि उपयोगकर्ता ने सचमुच मिलान करने के लिए क्या दर्ज किया है।

यह उपयोगकर्ता को अपने गुप्त पासवर्ड को दर्ज करने की अनुमति देता है, लेकिन उन्हें अपने पासवर्ड के नमकीन / हैशेड संस्करण में प्रवेश करने की भी अनुमति देता है, जो कि डेटाबेस से कोई भी पढ़ेगा।

मूल रूप से, नमकीन / हैशेड पासवर्ड को "सादा-पाठ" पासवर्ड भी बनाएं।


आपको क्या लगता है कि उपयोगकर्ता ने डेटाबेस में संग्रहीत हैशेड पासवर्ड में सीधे दर्ज किए गए की तुलना करना आवश्यक है? किस तरह की कार्यक्षमता आपको देता है? साथ ही, ऐसा करते समय डेटाबेस से उपयोगकर्ता द्वारा डाले गए पासवर्ड और हैशेड पासवर्ड के बीच निरंतर-समय तुलना समारोह को लागू करना बेहद महत्वपूर्ण है। अन्यथा, समय के अंतर के आधार पर हैशेड पासवर्ड निर्धारित करना लगभग तुच्छ संभव है।
आर्टजोम बी

1
@ArtjomB। सवाल यह पूछता है कि ग्राहक के समर्थन (CS) को उपयोगकर्ता के पासवर्ड को सुरक्षित रखने के लिए कैसे कहा जाए और अपने भूल गए पासवर्ड को दर्ज करने के माध्यम से उपयोगकर्ता से बात / ईमेल करें। हैशेड संस्करण को एक सादे-पाठ पासवर्ड के रूप में उपयोग करने योग्य बनाया जा सकता है, सीएस इसे पढ़ सकता है और उपयोगकर्ता अपने भूल गए पासवर्ड के बदले में इसका उपयोग कर सकता है। CS इसका उपयोग उपयोगकर्ता के रूप में लॉग-इन करने के लिए भी कर सकता है और कार्य के माध्यम से उनकी मदद कर सकता है। यह उन उपयोगकर्ताओं को भी अनुमति देता है जो स्वचालित रूप से भूल गए पासवर्ड सिस्टम से सुरक्षित हैं, क्योंकि वे जो पासवर्ड दर्ज करते हैं और उपयोग करते हैं वह हैशेड है।
एलियट

समझा। मैंने इसकी संपूर्णता में प्रश्न नहीं पढ़ा है। पूरे सिस्टम की तुच्छ टूट को रोकने के लिए एक निरंतर-समय की तुलना का उपयोग अभी भी आवश्यक है।
आर्टजोम बी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.