कोलाइसन अटैक

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

कोलाइसन के अटैक रफ़ली दो प्रकार के होते हैं: अधिक सामान्यतः:
 * क्लासिकल कोलाइसन अटैक: दो अलग-अलग मैसेज m1 औरm2 इस प्रकार ढूंढें कि hash(m1) = hash(m2)।
 * चूजेन-प्रीफिक्स कोलाइसन अटैक: दो अलग-अलग प्रीफिक्स p1 और p2 दिए गए, दो उपांग m1 और m2 इस प्रकार खोजें कि hash(p1 ∥ m1) = hash(p2 ∥ m2), जहां ∥ कॉनकाटीनेशन को दर्शाता है।

क्लासिकल कोलाइसन अटैक
गणितीय रूप से कहा गया है, एक कोलाइसन के अटैक में दो अलग-अलग मैसेज m1 और m2 मिलते हैं, जैसे कि हैश hash(m1) = hash(m2)। क्लासिकल कोलाइसन के अटैक में, अटैकर का किसी भी मैसेज कंटेंट पर कोई कंट्रोल नहीं होता है, लेकिन उन्हें एल्गोरिदम द्वारा अर्बिट्रेरिली चुना जाता है।

जैसे सिमेट्रिक-की साइफर ब्रूट फोर्स अटैक के प्रति वल्नरेबल होते हैं, वैसे ही प्रत्येक क्रिप्टोग्राफ़िक हैश फ़ंक्शन बर्थडे अटैक का उपयोग करके कोलाइसन के लिए स्वाभाविक रूप से वल्नरेबल होता है। बर्थडे प्रॉब्लम के कारण, ये अटैक किसी ब्रूट फोर्स की तुलना में कहीं अधिक तीव्र होते हैं। n बिट्स का एक हैश 2n/2 समय चरण (हैश फ़ंक्शन का मूल्यांकन) में तोड़ा जा सकता है।

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

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


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

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

गणितीय रूप से कहा गया है, दो अलग-अलग प्रीफिक्स p1, p2 दिए गए हैं, अटैक में दो उपांग m1 और m2 इस प्रकार मिलते हैं कि  hash(p1 ∥ m1) = hash(p2 ∥ m2) (जहाँ ∥ कॉनकाटीनेशन है)।

2007 में, एमडी5 के विरुद्ध एक चूज़न-प्रीफिक्स कोलाइसन अटैक पाया गया, जिसके लिए एमडी5 फ़ंक्शन के लगभग 250 इवैल्यूएशन की आवश्यकता थी। पेपर अलग-अलग डोमेन नेम के लिए कोलाइडिंग हैश वैल्यू के साथ दो X.509 सर्टिफिकेट भी डिस्प्ले करता है। इसका अर्थ यह है कि एक सर्टिफिकेट अथॉरिटी को एक डोमेन के लिए सर्टिफिकेट पर साइन करने के लिए कहा जा सकता है, और फिर उस सर्टिफिकेट (विशेष रूप से उसके साइन) का उपयोग किसी अन्य डोमेन को इमपरसोनेट करने के लिए एक नया रॉग सर्टिफिकेट बनाने के लिए किया जा सकता है।

एक रियल-वर्ल्ड कोलाइसन अटैक दिसंबर 2008 में प्रकाशित हुआ था जब सिक्योरिटी रिसर्चर के एक समूह ने एक फ़ोर्ज़ड X.509 साइन सर्टिफिकेट प्रकाशित किया था जिसका उपयोग एमडी 5 हैश फ़ंक्शन के विरूद्व प्रीफिक्स कोलाइसन अटैक का लाभ उठाते हुए, सर्टिफिकेट अथॉरिटी को इमपरसोनेट करने के लिए किया जा सकता था। इसका अर्थ यह था कि एक अटैकर किसी भी ट्रांसपोर्ट लेयर सिक्योरिटी - सिक्योर्ड वेबसाइट को मिडिल-मैन के रूप में प्रस्तुत कर सकता है, जिससे इलेक्ट्रॉनिक कॉमर्स की सिक्योरिटी के लिए प्रत्येक वेब ब्राउज़र में निर्मित सर्टिफिकेट वेलिडेशन को नष्ट कर दिया जा सकता है। गलत सर्टिफिकेट वास्तविक अधिकारियों द्वारा रीवोकेबल नहीं किया जा सकता है, और इसमें अर्बिट्रेरिली फ़ोर्ज़ड एक्सपायरी टाइम भी हो सकता है। हालाँकि 2004 में एमडी5 को बहुत वीक माना जाता था, सर्टिफिकेट अथॉरिटी अभी भी दिसंबर 2008 में एमडी5-वेरिफाइड सर्टिफिकेटों पर साइन करने के इच्छुक थे, और कम से कम एक माइक्रोसॉफ्ट कोड-साइन सर्टिफिकेट मई 2012 में अभी भी एमडी5 का उपयोग कर रहा था।

फ़्लेम (मैलवेयर) मैलवेयर ने माइक्रोसॉफ्ट रूट सर्टिफिकेट द्वारा अपने घटकों के कोड साइन को धोखा देने के लिए चुने हुए-प्रीफिक्स कोलाइसन अटैक के एक नए वेरिएशन का सफलतापूर्वक उपयोग किया जो अभी भी कम्प्रोमाइस्ड एमडी5 एल्गोरिदम का उपयोग करता है।

2019 में, रिसर्चर ने 266.9और 269.4 के बीच और लागत 100,000 अमेरिकी डॉलर से कम कंप्यूटिंग कॉम्पलेक्सिटी के साथ एसएचए-1 के विरुद्ध एक चूज़न-प्रीफिक्स कोलाइसन अटैक पाया। 2020 में, रिसर्चर ने एसएचए-1 के विरुद्ध चुने गए-प्रीफिक्स कोलाइसन अटैक की कॉम्पलेक्सिटी को कम करके 263.4 कर दिया।

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

डिजिटल साइन
क्योंकि डिजिटल साइन एल्गोरिदम बड़ी मात्रा में डेटा पर एफिशिऐंटली साइन नहीं कर सकते हैं, अधिकांश इम्प्लीमेंटेशन डेटा की मात्रा को कम करने (संपीड़ित) के लिए हैश फ़ंक्शन का उपयोग करते हैं जिन्हें कांस्टेंट साइज में साइन डाउन करने की आवश्यकता होती है। जैसे ही अंडरलाइंग हैश फ़ंक्शन प्रक्टिकली टूट जाता है, डिजिटल साइन स्कीम प्रायः हैश कोलाइसन के प्रति वल्नरेबल हो जाती हैं; अंडरलाइंग हैशिंग जैसी तकनीकें कठिन प्रीइमेज अटैक की आवश्यकता के कारण अतिरिक्त समय खरीद लेंगी।

सामान्य अटैक सिनेरियो इस प्रकार होता है:
 * 1) मैलोरी दो अलग-अलग डॉक्यूमेंट A और B बनाता है जिनका हैश वैल्यू समान होता है, यानी कोलाइसन। मैलोरी बॉब को डॉक्यूमेंट बी स्वीकार करने के लिए ओसटेन्सीब्ली ऐलिस से धोखा देना चाहता है।
 * 2) मैलोरी डॉक्यूमेंट ए को ऐलिस को भेजता है, जो डॉक्यूमेंट में कही गई बातों से सहमत होती है, उसके हैश पर साइन करती है, और मैलोरी को साइन भेजती है।
 * 3) मैलोरी डॉक्यूमेंट ए से डॉक्यूमेंट बी में साइन जोड़ता है।
 * 4) मैलोरी फिर बॉब को साइन और डॉक्यूमेंट बी भेजता है, यह दावा करते हुए कि ऐलिस ने बी पर साइन किए हैं। क्योंकि डिजिटल साइन डॉक्यूमेंट बी के हैश से मेल खाता है, बॉब का सॉफ़्टवेयर सब्स्टिट्यूशन का पता लगाने में असमर्थ है।

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

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

हैश फ़ंक्शन को अत्यधिक जटिल बनाए बिना हैश फ्लडिंग को रोकने के लिए, नए कुंजी वाले हैश फ़ंक्शन प्रस्तुत किए गए हैं, सिक्योरिटी ऑब्जेक्टिव के साथ जब तक की अननोन है तब तक कोलाइसन ढूंढना कठिन है। वे पिछले हैश की तुलना में धीमे हो सकते हैं, लेकिन क्रिप्टोग्राफ़िक हैश की तुलना में काउंट करना अभी भी बहुत आसान है। 2021 तक, डेनियल जे. बर्नस्टीन सिपहैश (2012) इस वर्ग में सबसे व्यापक रूप से उपयोग किया जाने वाला हैश फ़ंक्शन है। (गैर-कुंजी वाले सरल हैश तब तक उपयोग के लिए सुरक्षित रहते हैं जब तक एप्लिकेशन की हैश तालिका बाहर से कंट्रोल नहीं होती है।)

(आंशिक) प्रीइमेज अटैक का उपयोग करके ब्लूम फिल्टर को भरने के लिए एक समान अटैक करना संभव है।

बाहरी संबंध

 * "Meaningful Collisions", attack scenarios for exploiting cryptographic hash collisions
 * Fast एमडी5 and एमडी4 Collision Generators - Bishop Fox (formerly Stach & Liu). Create एमडी4 and एमडी5 hash collisions using groundbreaking new code that improves upon the techniques originally developed by Xiaoyun Wang.  Using a 1.6 GHz Pentium 4, एमडी5 collisions can be generated in an average of 45 minutes, and एमडी4 collisions can be generated in an average of 5 seconds. Originally released on 22Jun2006.