2009-12-10 21 views
9

ठीक है, मैं नमक का उपयोग करने के कारण को समझने की कोशिश कर रहा हूं।हैशिंग के दौरान "नमक" का उद्देश्य क्या है?

जब कोई उपयोगकर्ता पंजीकृत करता है तो मैं उसके लिए एक अद्वितीय नमक उत्पन्न करता हूं जिसे मैं डीबी में संग्रहीत करता हूं। तब मैंने इसे और SHA1 के साथ पासवर्ड हैश किया है। और जब वह लॉग इन कर रहा है तो मैं इसे sha1($salt.$password) के साथ पुनः-हैश करता हूं।

लेकिन अगर कोई मेरे डेटाबेस को हैक करता है तो वह हैश पासवर्ड और नमक देख सकता है।

क्या नमक के साथ पासवर्ड को बस से ज्यादा क्रैक करना मुश्किल है? मुझे समझ नहीं आता ...

क्षमा करें यदि मैं मूर्ख हूँ ...

+0

बस इसके बारे में सोचें: चूंकि प्रत्येक उपयोगकर्ता के पास अलग नमक होता है, इसलिए नमक + पासवर्ड का संयोजन अद्वितीय होता है, भले ही पासवर्ड न हो। – Gumbo

+0

नमक आपके हैश स्वाद को बेहतर बनाता है, यही कारण है कि। –

+0

देखें http://stackoverflow.com/search?q=salt – VolkerK

उत्तर

8

आप एक नमक का उपयोग नहीं करते हैं तो एक हमलावर एक पासवर्ड < precompute कर सकते हैं -> हैश डेटाबेस ऑफ़लाइन वे में विभाजित कर दिया है पहले भी अपने सर्वर। एक नमक जोड़ना उस डेटाबेस के आकार को बड़े पैमाने पर बढ़ाता है, जिससे ऐसा हमला करने में मुश्किल होती है।

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

विकिपीडिया पर salts in cryptography पर एक लेख है।

+0

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

+0

@StrixVaria: नमक और पुनः-शतरंज को फिर से संयोजित करने से नमक को कई बार संयोजित करने से अलग कैसे होगा? मुझे नहीं लगता कि इससे आपको कोई अतिरिक्त सुरक्षा मिल जाएगी। –

+0

ब्रूट फोर्स प्रयास में प्रत्येक "अनुमान" के लिए अतिरिक्त समय के कारण ही। यदि आपके पास हैश x बार है, तो प्रति अनुमान x गुना अधिक लगता है। चूंकि एक्स बड़ा हो जाता है, अनुमान लगाने में सक्षम अनुमानों की संख्या कम हो जाती है। – StrixVaria

1

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

1

यदि कोई हमलावर giant table of hash values for plaintext passwords बनाता है, तो नमक का उपयोग करके उसे एक से अधिक पासवर्ड को क्रैक करने के लिए उसी तालिका का उपयोग करने से रोकता है। हमलावर को प्रत्येक नमक के लिए एक अलग टेबल उत्पन्न करना होगा। ध्यान दें कि इसके लिए वास्तव में व्यावहारिक रूप से काम करने के लिए, आपका नमक बल्कि लंबा होना चाहिए। अन्यथा हमलावर की प्रीकंप्यूटेड टेबल में नमक + पासवर्ड हैश होने की संभावना है।

संबंधित मुद्दे