डेवलपर टूल · SHA हैश कैलकुलेटर
टकराव, प्रीइमेज और दूसरा प्रीइमेज: तीन हैश सुरक्षा लक्ष्य
· पेजभूमि
शा-256 क्रिप्टोग्राफी सुरक्षा
एक सलाह में कहा गया है कि एल्गोरिदम में टकराव की समस्याएं हैं और आपको यह जानना होगा कि क्या आपका उपयोग प्रभावित हुआ है। यह पोस्ट तीन प्रतिरोध गुणों को परिभाषित करती है, दिखाती है कि कौन से उपयोग के मामले किस पर निर्भर करते हैं, और उन्हें SHA-1 पर लागू करता है।
क्या मेरा उपयोग प्रभावित हुआ है? - जिस प्रश्न का उत्तर कोई सलाहकार शायद ही कभी सीधे देता है
एक एडवाइजरी आती है जिसमें कहा गया है कि SHA-1 में टकराव की समस्या है, इसलिए आपके सिस्टम को अपग्रेड करना होगा। लेकिन क्या होगा यदि आपका सिस्टम SHA-1 का उपयोग केवल कुंजी व्युत्पत्ति के लिए करता है, संदेशों को प्रमाणित करने के लिए नहीं? क्या होगा यदि SHA-1 का उपयोग केवल समान फ़ाइलों को डुप्लिकेट करने के लिए किया जाता है, प्रामाणिकता साबित करने के लिए नहीं? प्रश्न "क्या मेरा सिस्टम प्रभावित है?" यह समझे बिना उत्तर नहीं दिया जा सकता कि हैश फ़ंक्शन की कौन सी संपत्ति वास्तव में टूटी हुई है और आपका उपयोग मामला किस संपत्ति पर निर्भर करता है।
एक हैश फ़ंक्शन कई सुरक्षा गुण प्रदान करता है: प्रीइमेज प्रतिरोध, दूसरा प्रीइमेज प्रतिरोध और टकराव प्रतिरोध। एक संपत्ति के टूटने से दूसरी संपत्ति नहीं टूटती, और कुछ उपयोग के मामले केवल उन संपत्तियों पर निर्भर करते हैं जो सुरक्षित रहती हैं। ToolAcre SHA हैश कैलकुलेटर एल्गोरिदम और उनकी डाइजेस्ट चौड़ाई, गुण प्रदर्शित करता है जो प्रत्येक सुरक्षा लक्ष्य के लिए सीमा निर्धारित करते हैं। इन गुणों को समझना यह तय करने में पहला कदम है कि कोई सलाह आपके सिस्टम को प्रभावित करती है या नहीं।
प्रीइमेज प्रतिरोध - एक हैश दिया गया है, आप ऐसा इनपुट नहीं ढूंढ सकते जो इसे उत्पन्न करता हो
प्रीइमेज प्रतिरोध का मतलब है कि एक डाइजेस्ट को देखते हुए, उस डाइजेस्ट को उत्पन्न करने वाले इनपुट को ढूंढना असंभव होना चाहिए। आपको पासवर्ड का हैश प्राप्त होता है और आप पासवर्ड का अनुमान लगाना चाहते हैं; यह एक प्रीइमेज हमला है. दूसरे प्रीइमेज प्रतिरोध का मतलब है कि एक संदेश और उसके हैश को देखते हुए, उसी हैश के साथ एक अलग संदेश ढूंढना असंभव होना चाहिए। आपके पास एक डाउनलोड की गई फ़ाइल और उसका SHA-256 चेकसम है; एक हमलावर फ़ाइल को एक अलग फ़ाइल के साथ स्वैप करना चाहता है जिसमें समान हैश है; यह दूसरा प्रीइमेज हमला है.
टकराव प्रतिरोध का मतलब है कि एक ही हैश के साथ किन्हीं दो अलग-अलग संदेशों को ढूंढना असंभव होना चाहिए। आप एक दस्तावेज़ पर हस्ताक्षर कर रहे हैं; एक हमलावर एक ही हस्ताक्षर के साथ एक अलग दस्तावेज़ बनाना चाहता है; यह टकराव का हमला है. इन तीन परिदृश्यों में हमलावर को अलग-अलग मात्रा में काम करने की आवश्यकता होती है, और सुरक्षा सीमाएं भी अलग-अलग होती हैं। प्रीइमेज प्रतिरोध सबसे मजबूत संपत्ति है, और यह शायद ही कभी टूटा हो। एक डाइजेस्ट को देखते हुए, एक प्रीइमेज खोजने के लिए संभावित इनपुट के स्थान के माध्यम से क्रूर बल खोज की आवश्यकता होती है। डाइजेस्ट चौड़ाई सामान्य खोज स्थान को प्रभावित करती है, लेकिन यह आलेख इसे प्राप्त किए बिना और आक्रमण मॉडल को परिभाषित किए बिना किसी ऑपरेशन गिनती को नहीं बताता है।
दूसरा प्रीइमेज प्रतिरोध - एक इनपुट दिया गया है, आप एक ही हैश के साथ एक अलग इनपुट नहीं पा सकते हैं
दूसरा प्रीइमेज प्रतिरोध अगला सबसे मजबूत है, और यह अलगाव में भी शायद ही कभी टूटता है। एक संदेश और उसके हैश को देखते हुए, उसी हैश के साथ एक अलग संदेश खोजने के लिए डाइजेस्ट आकार में घातीय कार्य की भी आवश्यकता होती है। द्वितीय-प्रीइमेज और टकराव खोजें हमलावर को अलग-अलग विकल्प प्रदान करती हैं, इसलिए उनकी सामान्य सीमाएं विनिमेय नहीं हैं। यहाँ गुणात्मक भेद पर्याप्त है; इनलाइन व्युत्पत्ति के बिना कोई संख्यात्मक सीमा निर्धारित नहीं की जाती है। यदि कोई संरचनात्मक हमला होता है जिसमें क्रूर बल की आवश्यकता नहीं होती है, तो एल्गोरिदम दूसरा प्रीइमेज प्रतिरोध खो देता है।
टकराव प्रतिरोध तीन गुणों में सबसे कमजोर है, और यह वह है जो अक्सर टूट जाता है या मुड़ जाता है। टकराव की खोज हमलावर को अन्य दो लक्ष्यों के विपरीत, दोनों इनपुट चुनने देती है, इसलिए इसकी एक अलग सामान्य सीमा होती है। यह आलेख जानबूझकर जन्मदिन-बद्ध आंकड़ों और हार्डवेयर समय-सीमाओं को छोड़ देता है क्योंकि उन्हें प्राप्त करना और स्रोत बनाना सत्यापित सामग्री से बाहर है।
टकराव प्रतिरोध - आप एक ही हैश के साथ कोई भी दो इनपुट नहीं पा सकते हैं, और यह तीनों में से सबसे कमजोर क्यों है
मामलों का उपयोग करने के लिए तीन सुरक्षा गुणों को मैप करने से पता चलता है कि प्रत्येक कार्य के लिए कौन सी संपत्ति आवश्यक है। डिडुप्लीकेशन इस धारणा पर निर्भर करता है कि यदि दो फ़ाइलों में समान हैश है, तो वे एक ही फ़ाइल हैं। इसके लिए टकराव प्रतिरोध की आवश्यकता होती है: यदि टकराव संभव है, तो एक हमलावर एक ही हैश के साथ दो अलग-अलग फ़ाइलें बना सकता है और डिडुप्लीकेशन इनवेरिएंट को तोड़ सकता है। हालाँकि, यह एक कमजोर आवश्यकता है, क्योंकि व्यावहारिक टकराव अत्यंत दुर्लभ हैं, भले ही वे सैद्धांतिक रूप से संभव हों।
डिजिटल हस्ताक्षरों के लिए मजबूत रूप में टकराव प्रतिरोध की आवश्यकता होती है। जब एक हस्ताक्षरकर्ता किसी दस्तावेज़ के हैश के लिए हस्ताक्षर बनाता है, और एक सत्यापनकर्ता बाद में हस्ताक्षर की जाँच करता है, तो दोनों को एक ही हैश की जाँच करनी चाहिए। यदि टकराव आसान है, तो एक हमलावर हस्ताक्षरित दस्तावेज़ के साथ टकराव ढूंढकर किसी भिन्न दस्तावेज़ के लिए हस्ताक्षर बना सकता है। यह वह हमला है जिसने प्रमाणपत्रों में SHA-1 से SHA-256 में अपग्रेड करने के लिए प्रेरित किया। CA द्वारा हस्ताक्षरित प्रमाणपत्र और समान हस्ताक्षर वाला जाली प्रमाणपत्र, दोनों ही हैश में टकराव होने पर सत्यापन पास कर लेते हैं।
टकराव प्रतिरोध प्रीइमेज लक्ष्यों से भिन्न होता है; कोई भी जन्मदिन-बद्ध आंकड़े व्युत्पत्ति के बिना प्रकट नहीं होते हैं
सामग्री-संबोधित भंडारण लुकअप कुंजियों के रूप में हैश का उपयोग करता है। यदि किसी फ़ाइल को उसके हैश द्वारा निर्धारित स्थान पर संग्रहीत किया जाता है, और बाद में उसी हैश का उपयोग करके पुनर्प्राप्त किया जाता है, तो दोनों ऑपरेशनों को एक ही फ़ाइल तक पहुंचना होगा। यदि सक्रिय हमलावर हैं तो इसके लिए टकराव प्रतिरोध की आवश्यकता होती है, लेकिन यदि हमलावर निष्क्रिय हैं तो इसके लिए केवल दूसरे प्रीइमेज प्रतिरोध की आवश्यकता होती है। एक निष्क्रिय हमलावर टकराव पैदा नहीं कर सकता; वे केवल यह देख सकते हैं कि वैध फ़ाइलें संयोग से टकराती हैं या नहीं।
डाउनलोड सत्यापन यह पुष्टि करने के लिए चेकसम का उपयोग करता है कि इंटरनेट से पुनर्प्राप्त फ़ाइल दूषित नहीं है। चेकसम आमतौर पर किसी विश्वसनीय स्रोत से फ़ाइल के साथ प्रकाशित किया जाता है। एक हमलावर जो डाउनलोड की गई फ़ाइल को संशोधित करता है वह विश्वसनीय स्रोत तक पहुंच के बिना चेकसम को अपडेट नहीं कर सकता है। इस उपयोग के मामले में दूसरे प्रीइमेज प्रतिरोध की आवश्यकता होती है: मूल फ़ाइल और उसके चेकसम को देखते हुए, हमलावर को एक ही चेकसम के साथ एक अलग फ़ाइल बनाने में सक्षम नहीं होना चाहिए। SHA-1 टकराव टूटने के बावजूद दूसरा प्रीइमेज प्रतिरोध अभी भी ठोस है।
मानचित्र की अखंडता और आवश्यक संपत्तियों के नामकरण का उपयोग; सादा हैश पासवर्ड भंडारण नहीं हैं
पासवर्ड संग्रहण एक ऐसा उपयोग मामला है जहां हैश फ़ंक्शन सही टूल नहीं है। यदि पासवर्ड SHA-256 हैश के रूप में संग्रहीत हैं, और हैश डेटाबेस लीक हो गया है, तो एक हमलावर एक शब्दकोश हमला चला सकता है: लाखों अनुमानों को हैश करें और जांचें कि कोई भी संग्रहीत हैश से मेल खाता है या नहीं। हमलावर को प्रत्येक पासवर्ड के लिए केवल एक प्रीइमेज की आवश्यकता होती है, और एक तेज़ फ़ंक्शन हमलावर को एप्लिकेशन दर सीमा के बिना एक कुशल ऑफ़लाइन तुलना लूप देता है।
पासवर्ड के लिए जानबूझकर धीमे, मेमोरी-हार्ड, प्रति-उपयोगकर्ता नमकीन फ़ंक्शन जैसे Argon2id, scrypt या bcrypt की आवश्यकता होती है। एक अद्वितीय प्रति-उपयोगकर्ता नमक समान पासवर्ड को अलग-अलग संग्रहीत रिकॉर्ड बनाता है, जबकि पासवर्ड फ़ंक्शन की कॉन्फ़िगर की गई मेमोरी और समय लागत प्रत्येक उम्मीदवार को जानबूझकर अधिक महंगा बनाती है। सटीक मापदंडों के लिए स्थानीय बेंचमार्किंग की आवश्यकता होती है और यहां निर्धारित नहीं हैं। ToolAcre SHA हैश कैलकुलेटर पासवर्ड हैशिंग नहीं करता है, और गाइड दस्तावेज़ बताता है कि SHA-256 इस उपयोग के मामले के लिए अनुपयुक्त क्यों है।
व्यावहारिक उदाहरण - Git रिपॉजिटरी में SHA-1 बनाम प्रमाणपत्र में SHA-1 पर मैपिंग लागू करना
एक कारगर उदाहरण: Git रिपॉजिटरी में SHA-1। प्रत्येक Git कमिट में ऑब्जेक्ट ID के रूप में एक SHA-1 हैश होता है। यदि SHA-1 टकराव प्रतिरोध टूट गया है, तो क्या Git रिपॉजिटरी असुरक्षित है? उत्तर है: शायद. एक हमलावर मौजूदा कमिट के समान SHA-1 के साथ एक कमिट बना सकता है और इसे रिपॉजिटरी सर्वर पर भेज सकता है, जो फिर अलग-अलग क्लाइंट को अलग-अलग कमिट प्रदान कर सकता है। हालाँकि, इसके लिए एक विशिष्ट लक्ष्य चुनने और टकराव की गणना करने की आवश्यकता होती है, जो टूटे हुए SHA-1 के साथ भी महंगा है।
Git प्रोजेक्ट सदस्यों ने SHA-256 पर माइग्रेट करने के लिए एक रोडमैप प्रकाशित किया है, लेकिन तात्कालिकता मध्यम है क्योंकि व्यावहारिक हमले के लिए टकराव तकनीकों और सर्वर समझौता दोनों की आवश्यकता होती है। एक डेवलपर के लिए यह पूछना कि "क्या मेरी Git रिपॉजिटरी सुरक्षा SHA-1 टकराव प्रतिरोध पर निर्भर करती है?" उत्तर हां है, लेकिन अन्य सुरक्षा खतरों की तुलना में व्यावहारिक जोखिम कम है। ToolAcre SHA हैश कैलकुलेटर SHA-1 और SHA-256 दोनों प्रदान करता है, जिन्हें उचित रूप से लेबल किया गया है, ताकि डेवलपर्स इनमें से किCAक की गणना कर सकें और अंतर को समझ सकें।
टेकअवे: घबराने से पहले संपत्ति का नाम बताएं - ToolAcre SHA हैश कैलकुलेटर आपको डाइजेस्ट लंबाई देखने देता है जो प्रत्येक एल्गोरिदम की सीमा निर्धारित करती है
SHA-1 का उपयोग करने वाले किसी भी सिस्टम के लिए, अपग्रेड करने का निर्णय इस पर निर्भर करता है कि उपयोग के मामले में टूटी हुई विशिष्ट संपत्ति की आवश्यकता है या नहीं। यदि उपयोग का मामला सक्रिय हमलावरों के खिलाफ डिजिटल हस्ताक्षर या डिडुप्लीकेशन है, तो टकराव प्रतिरोध की आवश्यकता है, और SHA-1 टूट गया है, इसलिए तुरंत SHA-256 में अपग्रेड करें। यदि उपयोग का मामला सामग्री-संबोधित भंडारण या चेकसम है, तो दूसरे प्रीइमेज प्रतिरोध की आवश्यकता है, और SHA-1 उस उद्देश्य के लिए अभी भी सुरक्षित है, हालांकि SHA-256 भविष्य-प्रूफ़िंग के लिए बेहतर है।
यदि उपयोग का मामला कुंजी व्युत्पत्ति या पासवर्ड सत्यापन है, तो प्रीइमेज प्रतिरोध की आवश्यकता होती है, और इस टूलकिट में कुछ भी उपयोग नहीं किया जाना चाहिए क्योंकि कुंजी व्युत्पत्ति के लिए तेज़ फ़ंक्शन बेहतर होते हैं। ToolAcre SHA हैश कैलकुलेटर डेवलपर्स को डाइजेस्ट की गणना करने और कार्रवाई में गुणों को देखने की सुविधा देता है। इन तीन गुणों को समझना और उपयोग के मामलों से उनका मिलान करना वास्तविक प्रणालियों में सुरक्षित क्रिप्टोग्राफ़िक विकल्प बनाने की नींव है।