php क्या ज्ञात नमक के साथ उपयोगकर्ता पासवर्ड पर हमला करना संभव है?




security passwords (6)

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

तो, इसके साथ क्या गलत है? हमले के परिदृश्य क्या है?
मान लें कि हमारे पास हैश और नमक दोनों हैं इसलिए, अन्य साइट पर उनके डेटाबेस में एक ही हैश है हम किसी अन्य साइट पर इस उपयोगकर्ता को कैसे नुकसान पहुंचा सकते हैं? हम सब पर कर सकते हैं?

मुझे कोई संभावना नहीं दिखाई देती है, लेकिन मैं सुरक्षा में एक विशेषज्ञ नहीं हूं, इसलिए, मैं उन लोगों से सुनना चाहूंगा जो व्यावहारिक और ठोस उत्तर के साथ हैं, ज़ाहिर हैं।

मैं कुछ भी तोड़ने वाला नहीं हूँ मैं इस प्रश्न के संदर्भ में पूछ रहा हूं: ईमेल या (पंजीकरण टाइमस्टैम्प) एक अच्छा नमक है?

कुछ और व्यावहारिक उत्तर, कृपया


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

नमक के रूप में ईमेल पते का उपयोग करना बेहतर होता है, लेकिन एक ही सिद्धांत लागू होता है। मान लें कि मैंने एक डेटाबेस को एक ईमेल-आधारित नमक का उपयोग किया है जो मुझे हर दूसरे डेटाबेस को एक बहुत आसान समय बना देता है - कम से कम, डेटाबेस में मौजूद ईमेल / पासवर्ड संयोजन के लिए। (लॉगिन पुन: उपयोग की मात्रा को देखते हुए, यह बहुत संभावना है)। यह उतना सरल नहीं है जितना कि उपयोगकर्ता नाम नमक, लेकिन टकराव वहां मौजूद हैं, खोज की प्रतीक्षा कर रहे हैं।

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

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


मान लें कि हैकर पासवर्ड और नमक दोनों है, और अपने हैशिंग फार्मूला तक पहुंच।

यह एक शब्दकोश हमले को रोकने के लिए, लोकप्रिय beleif के विपरीत नहीं होगा। यह एक सरल शब्दकोश हमले को रोक देगा, लेकिन डिक्शनरी को प्रत्येक उपयोगकर्ता खाते में लिक के साथ पूरी तरह से संभव है।

देखें: क्यों लवण ऑनलाइन हमलों 'असंभव' बनाते हैं? अधिक संबंधित जानकारी के लिए

यही कारण है कि जब आप पासवर्ड के हैश उत्पन्न करते हैं, नमक के साथ एक बार हैशिंग के बजाय, IE:

hashedPW = sha1(rawPassword + salt)

तुम करोगे:

hashedPW = sha1(rawPassword + salt)
for i = 0; i < 2000; i++){
    hashedPW = sha1(hashedPW + salt)
}

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


यह ज्यादातर एक सैद्धांतिक सवाल है तो, कैसे "एक हैशेड मूल्य क्रैक" काम करता है? यहां तक ​​कि "इंद्रधनुष तालिकाओं" भी कहा जाता है, जो आम शब्दों और थिएर हैश वैल्यू के साथ ही सूची है। नमकीन घोंसले के लिए हमलावर की जरूरत है नमक के साथ भी ऐसी टेबल। इसलिए सिद्धांत में प्रत्येक उपयोगकर्ता के लिए अद्वितीय लवण के साथ एक हमलावर को हर नमक (=> उपयोगकर्ता) के लिए एक तालिका की आवश्यकता होती है। यदि आपके पास एक स्थिर नमक है, तो उसे "बस" अपने डीबी के लिए एक मेज की आवश्यकता है। इसकी सारणी बनाने के लिए काफी महँगा है, इसलिए ज्यादातर मामलों में यह एक पृष्ठ के लिए इसे बनाने के लायक नहीं है

निष्कर्ष: इसकी (ज़ाहिर है) सुरक्षित, हर उपयोगकर्ता के लिए अद्वितीय लवण का उपयोग करने के लिए, लेकिन एक veeery उच्च स्तर पर। एक स्थिर लवण आमतौर पर "पर्याप्त सुरक्षित" है


एक नमक का मतलब अज्ञात नहीं होना चाहिए, यह किसी साइट पर सभी उपयोगकर्ताओं (या कई साइटों के सभी उपयोगकर्ताओं) में एक जानवर बल या शब्दकोश हमले की कीमत का उदहारण करने से हमलावरों को रोकने के लिए है।

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

ईमेल पते का उपयोग करने में एक अन्य समस्या यह है कि उपयोगकर्ता इसे बदलना चाहेंगे - जो कि अगर आप इसे नमक के रूप में उपयोग करते हैं तो इसे असंभव होगा जब तक कि आप उसे एक अलग नमक कॉलम में संग्रहीत न करें या लोगों को हमेशा अपने ईमेल के साथ अपने पासवर्ड को बदलने के लिए ज़रूरी न करें।



पहला आक्रमण जो मैं सोच सकता हूँ:

  • एक उपयोगकर्ता के पास दो साइटों पर एक ही नमक और पासवर्ड है
  • दोनों साइटों को नमकीन पासवर्ड पढ़ने की अनुमति देने के लिए एक दोष है
  • एक साइट एक पासवर्ड या जड़-बल को एक पासवर्ड आसान लग रहा है पढ़ना

एक हमलावर तुरंत दोनों साइटों पर समान नमकीन पासवर्ड को देख सकता था और दोनों ही साइटों पर समान पासवर्ड वाले उपयोगकर्ताओं को ढूंढ सकता था। फिर पासवर्ड पढ़ें या कमजोर साइट पर पासवर्ड का अनुमान लगाएं और इसे अधिक सुरक्षित साइट पर उपयोग करें।

माना जाता है कि, विभिन्न लवण समस्या को काफी बेहतर नहीं बनाती क्योंकि सभी मिलियन पासवर्डों का अंततः परीक्षण किया जा सकता है लेकिन यह जानने के लिए कि किन उपयोगकर्ताओं के पास समान पासवर्ड हैं, वे बहुत ही 'शांत' होंगे, जो कि सभी साइट के पासवर्ड को आँख बंद करके सभी जगहों पर मजबूत साइट पर देख रहे हैं।





salt