encryption - उपयोगकर्ता पासवर्ड नमक के लिए इष्टतम लंबाई क्या है?




hash salt (4)

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


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

नमक केवल इतना लंबा होना चाहिए ताकि प्रत्येक उपयोगकर्ता का नमक अद्वितीय हो। यादृच्छिक 64-बिट लवण एक बिलियन पंजीकृत उपयोगकर्ताओं के साथ भी दोहराने की संभावना नहीं है, इसलिए यह ठीक होना चाहिए। एक बार दोहराया नमक अपेक्षाकृत मामूली सुरक्षा चिंता है, यह एक हमलावर को एक बार में दो खातों की खोज करने की अनुमति देता है लेकिन कुल मिलाकर पूरे डेटाबेस पर खोज को तेज नहीं करेगा। यहां तक ​​कि 32-बिट लवण भी अधिकांश उद्देश्यों के लिए स्वीकार्य हैं, यह सबसे बुरी स्थिति में हमलावर की खोज लगभग 58% की गति होगी। 64 बिट्स से अधिक बढ़ते लवण की लागत अधिक नहीं है लेकिन ऐसा करने के लिए कोई सुरक्षा कारण नहीं है।

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

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


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

उदाहरण के लिए यदि आप SHA-512 का उपयोग करने के लिए 256 बिट नमक का उपयोग करने जा रहे हैं, इसलिए SHA-512 द्वारा प्रदान की गई सुरक्षा 256 बिट है।


हैशिंग पासवर्ड के लिए वर्तमान में स्वीकार किए गए मानक प्रत्येक पासवर्ड के लिए एक नया 16 वर्ण लंबा नमक बनाते हैं और नमक को पासवर्ड हैश के साथ स्टोर करते हैं।

वास्तव में यादृच्छिक नमक बनाने के लिए उचित क्रिप्टोग्राफिक देखभाल की जानी चाहिए।


Wikipedia :

लिनक्स, बीएसडी यूनिक्स, और सोलारिस में उपयोग किए जाने वाले SHA2-crypt और bcrypt विधियों में 128 बिट्स का लवण है। ये बड़े नमक मूल्य निकट भविष्य के लिए इन प्रणालियों के खिलाफ पासवर्ड की लगभग किसी भी लंबाई के लिए प्रीकंप्यूशन हमलों को बनाते हैं।

128-बिट (16-बाइट) नमक पर्याप्त होगा। आप 128/4 128 / 4 = 32 हेक्साडेसिमल अंकों के अनुक्रम के रूप में इसका प्रतिनिधित्व कर सकते हैं।





salt