इस सवाल पर मैंने जो टिप्पणी की है, उसके अनुसार:
एक महत्वपूर्ण बिंदु को लगभग हर किसी ने बहुत पसंद किया है ... मेरी प्रारंभिक प्रतिक्रिया @Michael Brooks के समान थी, जब तक मुझे एहसास हुआ, @stefanw की तरह, कि यहाँ मुद्दा टूटी हुई आवश्यकताओं का है , लेकिन ये वही हैं जो वे हैं।
लेकिन फिर, यह मेरे लिए है कि मामला भी नहीं हो सकता है! यहां गायब होने वाला बिंदु, आवेदन की संपत्ति का बेजोड़ मूल्य है। सीधे शब्दों में, कम मूल्य प्रणाली के लिए, पूरी तरह से सुरक्षित प्रमाणीकरण तंत्र, जिसमें सभी प्रक्रिया शामिल है, ओवरकिल होगा, और गलत सुरक्षा विकल्प।
जाहिर है, एक बैंक के लिए, "सर्वोत्तम अभ्यास" एक जरूरी है, और सीडब्ल्यूई -257 को नैतिक रूप से उल्लंघन करने का कोई तरीका नहीं है। लेकिन कम मूल्य प्रणाली के बारे में सोचना आसान है, जहां यह इसके लायक नहीं है (लेकिन एक सरल पासवर्ड अभी भी आवश्यक है)।
यह याद रखना महत्वपूर्ण है, सच्ची सुरक्षा विशेषज्ञता उपयुक्त ट्रेडऑफ़ को खोजने में है, न कि हठपूर्वक "सर्वश्रेष्ठ प्रथाओं" को टालने में, जो कोई भी ऑनलाइन पढ़ सकता है।
इस तरह, मैं एक और उपाय सुझाता हूं:
सिस्टम के मूल्य पर निर्भर करता है, और केवल अगर सिस्टम "कम" संपत्ति (पहचान ही शामिल है) के साथ उचित रूप से कम मूल्य है, और उचित प्रक्रिया करने वाली व्यावसायिक आवश्यकताएं हैं असंभव (या पर्याप्त रूप से कठिन / महंगा), और ग्राहक को सभी केवेट्स के बारे में जागरूक किया जाता है ...
फिर केवल प्रतिवर्ती एन्क्रिप्शन की अनुमति देना उचित हो सकता है, जिसमें कोई विशेष घेरा नहीं होता है।
मैं केवल एन्क्रिप्शन के साथ परेशान नहीं करने के लिए कह रहा हूँ, क्योंकि यह लागू करने के लिए बहुत सरल / सस्ता है (यहां तक कि निष्क्रिय कुंजी प्रबंधन पर विचार करना), और यह कुछ सुरक्षा प्रदान करता है (इसे लागू करने की लागत से अधिक)। इसके अलावा, यह देखने के लायक है कि उपयोगकर्ता को मूल पासवर्ड के साथ कैसे प्रदान किया जाए, चाहे वह ईमेल के माध्यम से हो, स्क्रीन पर प्रदर्शित हो, आदि।
क्योंकि यहां धारणा यह है कि चुराए गए पासवर्ड का मूल्य (कुल मिलाकर भी) काफी कम है, किसी भी मूल्य का ये समाधान मान्य हो सकते हैं।
चूंकि एक जीवंत चर्चा चल रही है, वास्तव में अलग-अलग पोस्ट और अलग-अलग टिप्पणियों में सेवरल जीवंत चर्चाएं हैं, मैं कुछ स्पष्टीकरण जोड़ूंगा, और कुछ बहुत अच्छे बिंदुओं पर प्रतिक्रिया दूंगा जो यहां कहीं और उठाए गए हैं।
शुरू करने के लिए, मुझे लगता है कि यहां सभी के लिए यह स्पष्ट है कि उपयोगकर्ता के मूल पासवर्ड को पुनर्प्राप्त करने की अनुमति देना, खराब अभ्यास है, और आम तौर पर एक अच्छा विचार नहीं है। यह बिल्कुल विवाद में नहीं है ...
आगे, मैं इस बात पर जोर दूंगा कि कई, नाय MOST, स्थितियों में - यह वास्तव में गलत है, यहां तक कि बेईमानी, बुरा, और बदसूरत है ।
हालांकि, सवाल का सिद्धांत सिद्धांत के आसपास है , क्या कोई ऐसी स्थिति है जहां यह मना करने के लिए आवश्यक नहीं हो सकता है , और यदि हां, तो स्थिति के लिए सबसे सही तरीके से ऐसा कैसे करें ।
अब, @Thomas, @sfussenegger और कुछ अन्य लोगों के रूप में, उस प्रश्न का उत्तर देने का एकमात्र उचित तरीका, किसी भी (या काल्पनिक) स्थिति का गहन जोखिम विश्लेषण करना है, यह समझने के लिए कि दांव पर क्या है, कितना सुरक्षित है। , और उस संरक्षण को वहन करने के लिए अन्य मितव्ययिताएं क्या हैं।
नहीं, यह एक चर्चा नहीं है, यह एक वास्तविक-लाइव सुरक्षा पेशेवर के लिए बुनियादी, सबसे महत्वपूर्ण उपकरणों में से एक है। सर्वोत्तम अभ्यास एक बिंदु तक अच्छे होते हैं (आमतौर पर अनुभवहीन और हैक्स के लिए दिशानिर्देश के रूप में), उस बिंदु के बाद विचारशील जोखिम विश्लेषण होता है।
Y'know, यह मज़ेदार है - मैंने हमेशा खुद को सुरक्षा कट्टरपंथियों में से एक माना, और किसी तरह मैं उन तथाकथित "सुरक्षा विशेषज्ञों" के विपरीत पक्ष पर हूं ... खैर, सच्चाई यह है - क्योंकि मैं एक कट्टरपंथी हूं और वास्तविक वास्तविक जीवन सुरक्षा विशेषज्ञ - मैं उस सभी महत्वपूर्ण जोखिम विश्लेषण के बिना "बेस्ट प्रैक्टिस" हठधर्मिता (या CWE) को टालने में विश्वास नहीं करता ।
"सुरक्षा ज़ीलॉट से सावधान रहें जो अपने टूल बेल्ट में सब कुछ लागू करने के लिए त्वरित है, यह जानने के बिना कि वे किस वास्तविक मुद्दे के खिलाफ बचाव कर रहे हैं। अधिक सुरक्षा आवश्यक नहीं है कि अच्छी सुरक्षा के बराबर हो।"
जोखिम विश्लेषण, और सच्ची सुरक्षा कट्टरता, जोखिम, संभावित नुकसान, संभावित खतरों, पूरक मितव्ययिता, आदि के आधार पर एक चालाक, मूल्य / जोखिम-आधारित व्यापार की ओर इशारा करते हैं। कोई भी "सुरक्षा विशेषज्ञ" जो जोखिम विश्लेषण का संकेत नहीं दे सकता। उनकी सिफारिशों के आधार पर, या तार्किक ट्रेडऑफ़ का समर्थन करने के लिए, लेकिन इसके बजाय एक जोखिम विश्लेषण करने के तरीके को समझने के बिना भी हठधर्मिता और सीडब्ल्यूई को टालना पसंद करेंगे, शून्य हैं लेकिन सिक्योरिटी हैक्स, और उनके विशेषज्ञता वे टॉयलेट पेपर के लायक नहीं हैं जो उन्होंने इसे मुद्रित किया।
दरअसल, यह है कि हम कैसे हवाई सुरक्षा है कि हास्यास्पदता मिलता है।
लेकिन इससे पहले कि हम इस साइट में बनाने के लिए उपयुक्त ट्रेडऑफ़्स के बारे में बात करते हैं, आइए स्पष्ट जोखिमों पर एक नज़र डालें (स्पष्ट रूप से, क्योंकि हमारे पास इस स्थिति के बारे में सभी पृष्ठभूमि की जानकारी नहीं है, हम सभी परिकल्पना कर रहे हैं - क्योंकि सवाल यह है कि काल्पनिक क्या है स्थिति हो सकती है ...)
चलो एक कम मान प्रणाली है, अभी तक इतनी सुव्यवस्थित नहीं है कि यह सार्वजनिक पहुंच है - सिस्टम मालिक आकस्मिक प्रतिरूपण को रोकना चाहता है, फिर भी "उच्च" सुरक्षा उपयोग में आसानी के रूप में सर्वोपरि नहीं है। (हां, यह जोखिम को स्वीकार करने के लिए एक वैध व्यापार है कि कोई भी कुशल स्क्रिप्ट-किडी साइट को हैक कर सकता है ... रुको, क्या अब प्रचलन में एपीटी नहीं है ...?)
उदाहरण के लिए, मान लें कि मैं एक बड़ी पारिवारिक सभा के लिए एक सरल साइट की व्यवस्था कर रहा हूं, जिससे सभी को मंथन करने की अनुमति मिल सके कि हम इस वर्ष अपनी कैंपिंग यात्रा पर कहां जाना चाहते हैं। मैं कुछ गुमनाम हैकर के बारे में कम चिंतित हूं, या यहां तक कि चचेरे भाई फ्रेड को बार-बार झील वेनमानामबिकिलिकी में जाने के लिए सुझाव देना पड़ रहा है, क्योंकि मैं चाची एर्मा के बारे में नहीं हूं जब वह जरूरत पड़ने पर लॉगऑन नहीं कर पा रहा था। अब, चाची एर्मा, एक परमाणु भौतिक विज्ञानी होने के नाते, पासवर्ड याद रखने में बहुत अच्छा नहीं है, या यहां तक कि कंप्यूटर का उपयोग करने के साथ बिल्कुल भी नहीं है ... इसलिए मैं उसके लिए सभी घर्षण को दूर करना चाहता हूं। फिर से, मैं हैक के बारे में चिंतित नहीं हूं, मैं सिर्फ गलत लॉगिन की मूर्खतापूर्ण गलतियों को नहीं चाहता हूं - मैं जानना चाहता हूं कि कौन आ रहा है, और वे क्या चाहते हैं।
वैसे भी।
तो यहां हमारे मुख्य जोखिम क्या हैं, अगर हम एक-तरफ़ा हैश का उपयोग करने के बजाय सममित रूप से पासवर्ड एन्क्रिप्ट करते हैं?
- उपयोगकर्ताओं को प्रतिरूपित करना? नहीं, मैंने पहले ही उस जोखिम को स्वीकार कर लिया है, दिलचस्प नहीं।
- दुष्ट प्रशासक? ठीक है, हो सकता है ... लेकिन फिर से, मुझे परवाह नहीं है कि कोई व्यक्ति किसी अन्य उपयोगकर्ता, आंतरिक या नहीं का उपयोग कर सकता है ... और वैसे भी एक दुर्भावनापूर्ण व्यवस्थापक को आपके पासवर्ड से कोई फर्क नहीं पड़ने वाला है - यदि आपका व्यवस्थापक खराब हो गया है, तो वैसे भी इसका खेल।
- एक और मुद्दा जो उठाया गया है, वह पहचान वास्तव में कई प्रणालियों के बीच साझा की गई है। आह! यह एक बहुत ही दिलचस्प जोखिम है, जिसके लिए एक करीब से देखने की आवश्यकता है।
मुझे यह बताकर शुरू करना चाहिए कि यह वास्तविक पहचान नहीं है , बल्कि प्रमाण या प्रमाणिक साख है। ठीक है, चूंकि एक साझा पासवर्ड प्रभावी रूप से मुझे किसी अन्य सिस्टम (जैसे, मेरा बैंक खाता, या जीमेल) में प्रवेश करने की अनुमति देगा, यह प्रभावी रूप से समान पहचान है, इसलिए यह सिर्फ शब्दार्थ है ... सिवाय इसके कि यह नहीं है । पहचान को प्रत्येक प्रणाली द्वारा अलग-अलग प्रबंधित किया जाता है, इस परिदृश्य में (हालांकि थर्ड पार्टी आईडी सिस्टम हो सकता है, जैसे कि OAuth - फिर भी, इस प्रणाली में पहचान से अलग - बाद में इस पर अधिक)।
इस प्रकार, यहां जोखिम का मुख्य बिंदु यह है कि उपयोगकर्ता स्वेच्छा से अपने (एक ही) पासवर्ड को कई अलग-अलग प्रणालियों में इनपुट करेगा - और अब, मैं (व्यवस्थापक) या मेरी साइट के किसी अन्य हैकर के लिए आंटी इरमा के पासवर्ड तक पहुंच होगी परमाणु मिसाइल स्थल
हममम।
क्या यहाँ कुछ भी आपको बंद लगता है?
यह होना चाहिए।
आइए इस तथ्य से शुरू करें कि परमाणु मिसाइल प्रणाली की रक्षा करना मेरी ज़िम्मेदारी नहीं है , मैं सिर्फ एक फ़्राकिन परिवार आउटिंग साइट (मेरी बेटी के लिए) का निर्माण कर रहा हूं। तो इसकी जिम्मेदारी किसकी है? उम्म ... परमाणु मिसाइल प्रणाली के बारे में कैसे? ओह।
दूसरा, अगर मैं किसी का पासवर्ड चुराना चाहता था (कोई है जो बार-बार सुरक्षित साइटों, और नहीं-तो-सुरक्षित लोगों के बीच एक ही पासवर्ड का उपयोग करने के लिए जाना जाता है) - मैं आपकी साइट को हैक करने से क्यों परेशान होगा? या अपने सममित एन्क्रिप्शन के साथ संघर्ष कर रहा है? गोशर्डनीटल, मैं बस अपनी खुद की सरल वेबसाइट डाल सकता हूं , उपयोगकर्ताओं को जो भी वे चाहते हैं, उसके बारे में बहुत महत्वपूर्ण समाचार प्राप्त करने के लिए साइन अप करना है ... पफ़ो प्रेस्टो, मैंने उनके पासवर्ड "चुराए"।
हां, उपयोगकर्ता शिक्षा हमेशा हमें हनी में काटने के लिए वापस आती है, है ना?
और इस बारे में आप कुछ भी नहीं कर सकते हैं ... भले ही आप अपनी साइट पर उनके पासवर्ड हैश करने के लिए थे, और टीएसए के बारे में सब कुछ सोच सकते हैं, आपने उनके पासवर्ड को संरक्षण नहीं जोड़ा है , अगर वे रखने जा रहे हैं अपने पासवर्ड को हर उस स्थान पर चिपका दें जहाँ वे टकराते हैं। ईवीएन परेशान करने की कोशिश मत करो।
दूसरा तरीका रखो, तुम उनके पासवर्ड के मालिक नहीं हो , इसलिए तुम जैसा काम करना चाहो, करना बंद करो।
तो, मेरे प्रिय सुरक्षा विशेषज्ञ, एक बूढ़ी महिला के रूप में वेंडी से पूछते थे, "जोखिम कहां है?"
ऊपर उठाए गए कुछ मुद्दों के जवाब में कुछ और बिंदु:
- CWE एक कानून, या विनियमन या एक मानक भी नहीं है। का संग्रह है सामान्य कमजोरियों , अर्थात "सर्वश्रेष्ठ प्रथाओं" का उलटा।
- साझा पहचान का मुद्दा एक वास्तविक समस्या है, लेकिन यहां naysayers द्वारा गलत समझा (या गलत तरीके से प्रस्तुत किया गया)। यह (और खुद की पहचान को साझा करने का मुद्दा है!), कम-मूल्य वाले सिस्टम पर पासवर्ड को क्रैक करने के बारे में नहीं। यदि आप कम-मूल्य और उच्च-मूल्य प्रणाली के बीच एक पासवर्ड साझा कर रहे हैं, तो समस्या पहले से ही है!
- वैसे, पिछला बिंदु वास्तव में AGAINST होगावैसे इन कम मूल्य प्रणालियों और उच्च मूल्य वाले बैंकिंग सिस्टम दोनों के लिए OAuth और इसी तरह का उपयोग करके ।
- मुझे पता है कि यह सिर्फ एक उदाहरण था, लेकिन (दुख की बात है) एफबीआई सिस्टम वास्तव में सबसे सुरक्षित नहीं है। आपकी बिल्ली के ब्लॉग के सर्वरों की तरह बिल्कुल नहीं, लेकिन न ही वे कुछ अधिक सुरक्षित बैंकों को पार करते हैं।
- स्प्लिट ज्ञान, या दोहरे नियंत्रण, एन्क्रिप्शन कुंजियों का केवल सैन्य में ही नहीं होता है, वास्तव में पीसीआई-डीएसएस को अब मूल रूप से सभी व्यापारियों से इसकी आवश्यकता होती है , इसलिए इसका वास्तव में अब तक कहीं बाहर नहीं हुआ है (यदि मूल्य इसे सही ठहराता है)।
- उन सभी के लिए जो शिकायत कर रहे हैं कि इस तरह के प्रश्न हैं जो डेवलपर पेशे को इतना बुरा बनाते हैं: यह उन जैसे उत्तर हैं, जो सुरक्षा पेशे को और भी बदतर बनाते हैं। फिर से, व्यवसाय-केंद्रित जोखिम विश्लेषण वह है जो आवश्यक है, अन्यथा आप खुद को बेकार बनाते हैं। गलत होने के अलावा।
- मुझे लगता है कि यह एक अच्छा विचार है कि सिर्फ एक नियमित डेवलपर को लेने और उस पर अधिक सुरक्षा जिम्मेदारियों को छोड़ने के लिए, अलग-अलग सोचने के लिए प्रशिक्षण के बिना, और सही ट्रेडऑफ़ देखने के लिए नहीं है। कोई अपराध नहीं है, आप में से उन लोगों के लिए, मैं इसके लिए हूँ - लेकिन अधिक प्रशिक्षण क्रम में है।
वाह। कितनी लंबी पोस्ट है ...
लेकिन आपके मूल प्रश्न का उत्तर देने के लिए, @ शने:
- ग्राहक को चीजों को करने का उचित तरीका समझाएं।
- अगर वह फिर भी जिद करता है, तो कुछ और समझाइए, जोर दीजिए, बहस कीजिए। जरूरत पड़ने पर टैंट्रम फेंक दें।
- उसे बिजनेस रिस्पांस समझाएं। विवरण अच्छे हैं, आंकड़े बेहतर हैं, एक लाइव डेमो आमतौर पर सबसे अच्छा है।
- IF HE STILL जोर देता है, और वैध व्यावसायिक कारण प्रस्तुत करता है - यह आपके लिए एक निर्णय कॉल करने का समय है:
क्या यह साइट कम-से-कोई-मूल्य नहीं है? क्या यह वास्तव में एक वैध व्यवसाय मामला है? क्या यह आपके लिए काफी अच्छा है? क्या कोई अन्य जोखिम नहीं है जिस पर आप विचार कर सकते हैं, जो कि वैध व्यावसायिक कारणों से आगे निकल जाएगा? (और निश्चित रूप से, ग्राहक एक दुर्भावनापूर्ण साइट नहीं है, लेकिन thats duh)।
यदि हां, तो ठीक आगे बढ़ें। यह आवश्यक प्रक्रिया में लगाने के लिए प्रयास, घर्षण और खोए हुए उपयोग (इस काल्पनिक स्थिति में) के लायक नहीं है। कोई भी अन्य निर्णय (फिर, इस स्थिति में) एक बुरा व्यापार है।
तो, नीचे की रेखा, और एक वास्तविक उत्तर - एक सरल सममित एल्गोरिथ्म के साथ इसे एन्क्रिप्ट करें, मजबूत ACLs और अधिमानतः DPAPI या इस तरह के साथ एन्क्रिप्शन कुंजी की रक्षा करें, इसे दस्तावेज करें और क्लाइंट के पास (उस निर्णय को करने के लिए पर्याप्त वरिष्ठ) साइन अप करें। यह।