दिलचस्प पोस्ट
एक्लेप्से में जर्सी मेवेन क्विकस्टार्ट मूलरूप शैली हास्केल पर्वतमाला और फ्लोट्स सी ++ में कार्य करने के लिए ऑब्जेक्ट कैसे पास करें? कुछ संदर्भों को पार करते समय मैं एक्सप्रेस जर्दे में कैसे पुनर्निर्देशित करूं? पायथन स्ट्रिंग स्वरूपण:% बनाम। प्रारूप सी ++ फ़ंक्शन में एक स्थिर वैरिएबल का जीवनकाल क्या है? लैंपडा को एक पाश के अंदर बनाना फेसबुक ग्राफ़ एपीआई का इस्तेमाल करते हुए पेज की तरह 'पसंद' जावास्क्रिप्ट के साथ एक सीएसएस मूल्य प्राप्त करें जावास्क्रिप्ट – चयन के आधार पर फार्म बदलने में परिवर्तन? क्या एल्गोरिथ्म एक वर्तनी परीक्षक में सुझाव देता है? डुप्लिकेट कुंजी पर MySQL – अंतिम प्रविष्टि आईडी? डिस्पैचर। वर्तमान डिस्पैचर बनाम एप्लिकेशन। वर्तमान। डिस्पैचर दूरस्थ ट्रैकिंग पर मौजूद नहीं होने वाली स्थानीय ट्रैकिंग शाखाओं को कैसे छेड़ने के लिए सी # विभाजन स्ट्रिंग्स?

आपका पासवर्ड नमस्कार: सर्वोत्तम व्यवहार?

मैं हमेशा जिज्ञासु रहा हूं … हैशिंग के लिए एक पासवर्ड नमस्कार करते समय बेहतर होता है: उपसर्ग, या पोस्टफिक्स? क्यूं कर? या क्या यह बात है, जब तक आप नमक?

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

तो जो बेहतर तरीका है, और क्यों? क्या कोई ऐसा तरीका है जो एक हैश टकराव का मौका घटता है? मेरे Googling विषय पर एक सभ्य विश्लेषण नहीं किया है।

संपादित करें: लोगों के महान उत्तर! मुझे खेद है कि मैं केवल एक जवाब चुन सकता था। 🙂

वेब के समाधान से एकत्रित समाधान "आपका पासवर्ड नमस्कार: सर्वोत्तम व्यवहार?"

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

आपको उन तीन चीज़ों पर विचार करना चाहिए:

  1. नमक को आपके द्वारा स्टोर किए जाने वाले प्रत्येक पासवर्ड के लिए अलग होना चाहिए। (यह काफी आम गलतफहमी है।)
  2. एक क्रिप्टोग्राफ़िक रूप से सुरक्षित यादृच्छिक संख्या जनरेटर का उपयोग करें।
  3. एक लंबा पर्याप्त नमक चुनें। जन्मदिन की समस्या के बारे में सोचो

डेव शेरहमैन ने एक और सवाल का उत्कृष्ट जवाब दिया है कि उपयोगकर्ता के नाम (या अन्य व्यक्तिगत डेटा) के बजाय आपको बेतरतीब ढंग से उत्पन्न लवण का उपयोग क्यों करना चाहिए? यदि आप उन सुझावों का पालन करते हैं, तो यह वास्तव में कोई फर्क नहीं पड़ता कि आपने अपने नमक में कहाँ रखा है

मुझे लगता है कि यह सभी शब्दार्थ है इससे पहले या बाद में इसे किसी विशेष खतरा मॉडल के अलावा कोई फर्क नहीं पड़ता।

तथ्य यह है कि इंद्रधनुष तालिकाओं को हराने वाला है।

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

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

जैसा मैंने कहा। यह शब्दार्थ है पासवर्ड के लिए एक अलग नमक चुनें, एक लंबा नमक, और इसमें अजीब अक्षर शामिल करें जैसे प्रतीक और एएससीआईआई कोड: © ¤¡

असली जवाब, जो किसी को भी नहीं लगता है, यह है कि दोनों गलत हैं यदि आप अपना स्वयं का क्रिप्टो कार्यान्वित कर रहे हैं, तो चाहे कितना छोटा हिस्सा आपको लगता है कि आप कर रहे हैं, आप गलती करने जा रहे हैं

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

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

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

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

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

सबसे पहले, शब्द "इंद्रधनुष तालिका" का लगातार दुरुपयोग किया जाता है। एक "इंद्रधनुष" तालिका सिर्फ एक खास प्रकार की लुकअप तालिका है, जो कि एक विशेष प्रकार की डेटा संपीड़न को चाबियाँ प्रदान करता है। अंतरिक्ष के लिए गणना के आधार पर, एक लुकअप तालिका जो 1000 टीबी ले जाती है, उसे हजार बार संकुचित किया जा सकता है ताकि इसे छोटे ड्राइव ड्राइव पर संग्रहीत किया जा सके।

आपको हैश के बारे में पासवर्ड लुकअप तालिकाओं, इंद्रधनुष या अन्यथा के बारे में चिंतित होना चाहिए।

@ Onebyone.livejournal.com:

हमलावर में 'इंद्रधनुष तालिकाओं' शामिल हैं जिसमें शब्दकोश शब्द की हथेली नहीं है, लेकिन हॅश गणना को अंतिम रूप देने से पहले ही हैश गणना की स्थिति से।

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

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

इसके अलावा पासवर्ड हैशिंग एल्गोरिदम जैसे पीबीकेडीएफ अपने हैश फ़ंक्शन को कई बार बनाते हैं (इसे पीबीकेडीएफ -2 को दोबारा शुरू करने के लिए सिफारिश की जाती है, प्रत्येक बार दो बार दो बार एसएचए -1 लागू करना) इस हमले को दुगुना अव्यवहारिक बनाने के लिए

BCrypt हैश अगर मंच एक प्रदाता है मैं प्यार करता हूँ कि आप लवण बनाने के बारे में चिंता न करें और यदि आप चाहते हैं तो आप उन्हें भी मजबूत कर सकते हैं।

नमक को सम्मिलित करना पासवर्ड में वर्णों की एक मनमाना संख्या कम से कम उम्मीद की जाती है, और इसलिए सबसे अधिक "सुरक्षित" सामाजिक रूप से है, लेकिन सामान्य मामले में यह वास्तव में बहुत महत्वपूर्ण नहीं है, जब तक आप लंबे, अनूठे-प्रति-पासवर्ड का उपयोग कर रहे हैं नमक के लिए तार