security पासवर्ड लवण: बनाम बनाम




hash password-protection (3)

मैंने Django में पासवर्ड हैशिंग के कार्यान्वयन को देखा और देखा कि यह नमक तैयार करता है , इसलिए हैश को sha1(salt + password) जैसे बनाया गया है, उदाहरण के लिए।

मेरी राय में, नमक दो उद्देश्यों के लिए अच्छा है

  1. इंद्रधनुष तालिका देखने की रोकथाम

    ठीक है, नमक जोड़ने / जोड़ने से पहले इंद्रधनुष तालिकाओं के लिए वास्तव में कोई अंतर नहीं होता है

  2. जानवर बल / शब्दकोश हमलों के खिलाफ सख्त

    मेरा सवाल यही है यदि कोई चोरी पासवर्ड पासवर्ड से एक पासवर्ड पर हमला करना चाहता है, तो उसे बहुत से पासवर्ड (जैसे डिक्शनरी शब्द या [A-Za-z0- 9] क्रमपरिवर्तनों की कोशिश करना होगा)।

    मान लें कि मेरा पासवर्ड "abcdef" है, नमक "नमक" है और हमलावर सभी [az] {6} पासवर्डों की कोशिश करता है।

    प्रीपेड नमक के साथ, एक hash("salt") हिशोष होना चाहिए, हैश एल्गोरिथम के राज्य को स्टोर करना होगा और फिर प्रत्येक क्रमचय के लिए उस बिंदु से जाना चाहिए। यही है, सभी क्रमपरिवर्तनों के माध्यम से जाकर 26 ^ 6 कॉपी-हैश-एल्गोरिथम-राज्य-संरचना संचालन और 26 ^ 6 hash(permutation of [az]{6}) परिचालनों को ले जाएगा। चूंकि हैश एल्गोरिथम की नकल की स्थिति बहुत तेज़ है, नमक यहां शायद ही कोई जटिलता जोड़ता है, भले ही यह कितना लंबा हो।

    लेकिन, एक जोड़ नमक के साथ, हमलावर को प्रत्येक क्रम-चिह्न के लिए hash(permutation of [az]{6} + salt) गणना करनी चाहिए, जिससे 26 ^ 10 हैश ऑपरेशन हो सकते हैं। तो जाहिर है, नमक की लंबाई के आधार पर लम्बे जोड़ना जटिलता जोड़ता है

मुझे विश्वास नहीं है कि यह ऐतिहासिक कारणों के लिए है क्योंकि डीजेंगो नया नहीं है तो लंबर को तैयार करने में क्या मतलब है?


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

और आपकी चाल नमक को संसाधित करने के बाद हैश-फ़ंक्शन की आंतरिक स्थिति की पूर्व-गणना की जाती है तो संभवत: नमक खींचने में आसान नहीं है जब तक कि नमक की लंबाई अंतर्निहित ब्लॉक-साइफर के ब्लॉक-लंबाई से मेल खाती है।


अगर नमक की स्थिति बनती है, तो हमलावर नमक के लिए हैश राज्य डेटाबेस बना सकता है (मानना ​​है कि नमक एक हैशिंग चरण बनाने के लिए पर्याप्त है) और तब शब्दकोश हमले चलाते हैं

लेकिन अगर नमक जोड़ दिया जाता है, तो हमलावर पासवर्ड शब्दकोश के लिए ऐसा डेटाबेस बना सकता है और साथ ही नमक के हश की गणना भी कर सकता है यह देखते हुए कि नमक पासवर्ड की तुलना में आमतौर पर छोटा होता है (जैसे 4 अक्षर नमक और 8 वर्ण), यह तेज़ हमले होगा


आप निश्चित रूप से वैध बिंदु बना रहे हैं; लेकिन, वास्तव में, यदि आप समय को बढ़ाने के लिए चाहते हैं तो यह हैश की गणना करने के लिए ले जाता है, बस अब हैश का उपयोग करें SHA1 के बजाय SHA256, उदाहरण के लिए।





salt