मुखपृष्ठ » कैसे » SHAttered क्या है? SHA-1 टकराव हमलों, समझाया

    SHAttered क्या है? SHA-1 टकराव हमलों, समझाया

    2016 के पहले दिन, मोज़िला ने फ़ायरफ़ॉक्स वेब ब्राउज़र में SHA-1 नामक एक कमजोर सुरक्षा तकनीक के लिए समर्थन को समाप्त कर दिया। लगभग तुरंत, उन्होंने अपने फैसले को उलट दिया, क्योंकि यह कुछ पुरानी वेबसाइटों तक पहुंच में कटौती करेगा। लेकिन फरवरी 2017 में, उनका डर आखिरकार सच हो गया: शोधकर्ताओं ने पहला वास्तविक-विश्व टक्कर का हमला करके SHA-1 को तोड़ दिया। यहां इसका मतलब है.

    SHA-1 क्या है?

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

    हम किसी भी SHA फ़ंक्शन के गणित और कंप्यूटर विज्ञान में गहराई से नहीं जाएंगे, लेकिन यहां मूल विचार है। एक "हैश" किसी भी डेटा के इनपुट के आधार पर एक अद्वितीय कोड है। यहां तक ​​कि SHA-1 जैसे हैश फ़ंक्शन में अक्षरों के छोटे, यादृच्छिक स्ट्रिंग, वर्णों की एक लंबी, निर्धारित संख्या लौटाएगा, जिससे मूल डेटा में वर्णों के स्ट्रिंग को वापस करना असंभव (संभावित) हो जाएगा। इस तरह से पासवर्ड स्टोरेज आमतौर पर काम करता है। जब आप एक पासवर्ड बनाते हैं, तो आपका पासवर्ड इनपुट हैशेड और सर्वर द्वारा संग्रहीत होता है। आपके लौटने पर, जब आप अपने पासवर्ड में टाइप करते हैं, तो यह फिर से हैशेड हो जाता है। यदि यह मूल हैश से मेल खाता है, तो इनपुट को समान माना जा सकता है, और आपको अपने डेटा तक पहुंच प्रदान की जाएगी.

    हैश फ़ंक्शन मुख्य रूप से उपयोगी होते हैं क्योंकि वे यह बताना आसान बनाते हैं कि इनपुट, उदाहरण के लिए, फ़ाइल या पासवर्ड बदल गया है या नहीं। जब इनपुट डेटा गुप्त होता है, तो पासवर्ड की तरह, हैश मूल डेटा (जिसे "कुंजी" के रूप में भी जाना जाता है) को रिवर्स और रिकवर करना लगभग असंभव है। यह "एन्क्रिप्शन" से थोड़ा अलग है, जिसका उद्देश्य सिफर और गुप्त कुंजियों का उपयोग करके बाद में इसे नीचे लाने के उद्देश्य से डेटा को स्क्रैच कर रहा है। Hashes बस डेटा अखंडता सुनिश्चित करने के लिए होती हैं-यह सुनिश्चित करने के लिए कि सब कुछ समान है। ओपन सोर्स कोड के लिए संस्करण नियंत्रण और वितरण सॉफ्टवेयर Git, इस कारण से SHA-1 हैश का उपयोग करता है.

    यह बहुत सारी तकनीकी जानकारी है, लेकिन इसे सीधे शब्दों में कहें: एक हैश एन्क्रिप्शन के बाद से ही नहीं है इसका उपयोग यह पहचानने के लिए किया जाता है कि क्या फ़ाइल बदल गई है.

    यह तकनीक मुझे कैसे प्रभावित करती है?

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

    आइए एक सैद्धांतिक परिदृश्य के माध्यम से चलते हैं: हाउ-टू गीक एन्क्रिप्शन के साथ उपयोगकर्ताओं के सत्र में लॉग इन रखना चाहता है, इसलिए यह एक सीए के साथ सिमेंटेक जैसे सीए की याचिका करता है प्रमाणपत्र हस्ताक्षर अनुरोध, या सीएसआर. वे एक बनाते हैं सार्वजनिक कुंजी तथा निजी चाबी इंटरनेट पर भेजे गए डेटा को एन्क्रिप्ट और डिक्रिप्ट करने के लिए। CSR अनुरोध वेबसाइट के बारे में जानकारी के साथ सार्वजनिक कुंजी सिमेंटेक को भेजता है। सिमेंटेक अपने रिकॉर्ड के खिलाफ कुंजी की जांच करता है कि डेटा सभी पक्षों द्वारा अपरिवर्तित है, क्योंकि डेटा में कोई भी छोटा परिवर्तन हैश को मौलिक रूप से अलग बनाता है.

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

    क्योंकि हैश को मॉनिटर करना और असंभव करना आसान है (कुछ कहेंगे "मुश्किल") रिवर्स, सही, सत्यापित हैश हस्ताक्षर का मतलब है कि प्रमाण पत्र और कनेक्शन पर भरोसा किया जा सकता है, और डेटा को अंत से अंत तक एन्क्रिप्ट किए जाने के लिए सहमत किया जा सकता है। । लेकिन क्या अगर हैश वास्तव में अद्वितीय नहीं था?

    एक टक्कर हमला क्या है, और क्या यह वास्तविक दुनिया में संभव है?

    आपने गणित में “बर्थडे प्रॉब्लम” के बारे में सुना होगा, हालाँकि आप नहीं जानते होंगे कि इसे क्या कहा जाता है। मूल विचार यह है कि यदि आप लोगों के एक बड़े समूह को इकट्ठा करते हैं, तो संभावना बहुत अधिक है कि दो या अधिक लोगों का एक ही जन्मदिन होगा। वास्तव में आपकी अपेक्षा से अधिक, यह पर्याप्त है कि यह एक अजीब संयोग जैसा लगता है। 23 लोगों के रूप में छोटे समूह में, 50% संभावना है कि दो जन्मदिन साझा करेंगे.

    यह SHA-1 सहित सभी हैश में अंतर्निहित कमजोरी है। सैद्धांतिक रूप से, SHA फ़ंक्शन को किसी भी डेटा के लिए एक अद्वितीय हैश बनाया जाना चाहिए, लेकिन जैसे ही हैश की संख्या बढ़ती है, यह अधिक संभावना बन जाती है कि डेटा के विभिन्न जोड़े एक ही हैश बना सकते हैं। तो एक विश्वसनीय प्रमाणपत्र के लिए एक समान हैश के साथ एक अविश्वास प्रमाण पत्र बना सकता है। यदि वे आपको उस अविश्वसनीय प्रमाणपत्र को स्थापित करने के लिए मिला है, तो यह विश्वसनीय के रूप में बहाना कर सकता है, और दुर्भावनापूर्ण डेटा वितरित कर सकता है.

    दो फाइलों के भीतर मैचिंग हैश खोजने को कहा जाता है टक्कर का हमला. ज्ञात है कि एमडी 5 हैश के लिए कम से कम एक बड़े पैमाने पर टक्कर का हमला पहले ही हो चुका है। लेकिन 27 फरवरी, 2017 को, Google ने SHA-1 के लिए पहली बार तैयार की गई टक्कर की घोषणा की। Google एक पीडीएफ फाइल बनाने में सक्षम था जिसमें अलग-अलग सामग्री होने के बावजूद एक ही पीडीएफ फाइल के समान SHA-1 हैश था.

    SHAttered एक पीडीएफ फाइल पर किया गया था। पीडीएफ एक अपेक्षाकृत ढीली फ़ाइल प्रारूप है; पाठकों को इसे खोलने या किसी भी भिन्नता के कारण के बिना बहुत सारे छोटे, बिट-स्तरीय परिवर्तन किए जा सकते हैं। मालवेयर डिलीवर करने के लिए भी अक्सर पीडीएफ का इस्तेमाल किया जाता है। जबकि SHAttered अन्य प्रकार की फ़ाइलों पर काम कर सकता था, जैसे ISO, प्रमाणपत्रों को कठोरता से निर्दिष्ट किया गया है, जिससे इस तरह के हमले की संभावना नहीं है.

    तो प्रदर्शन करना कितना आसान है? SHAttered 2012 में मार्क स्टीवंस द्वारा खोजी गई एक विधि पर आधारित था, जिसे 2 ^ 60.3 (9.223 क्विंटलियन) SHA-1 संचालन-एक चौंका देने वाली संख्या की आवश्यकता थी। हालांकि, यह विधि अभी भी 100,000 गुना कम है संचालन की आवश्यकता होगी बल के बल के साथ एक ही परिणाम प्राप्त करने के लिए। Google ने पाया कि समानांतर में काम करने वाले 110 हाई-एंड ग्राफिक्स कार्ड के साथ, टकराव पैदा करने में लगभग एक वर्ष लगेगा। अमेजन AWS से इस गणना समय को किराए पर लेने पर लगभग $ 110,000 खर्च होंगे। ध्यान रखें कि जैसे-जैसे कंप्यूटर भागों के लिए कीमतें गिरती हैं और आप कम के लिए अधिक शक्ति प्राप्त कर सकते हैं, SHAttered जैसे हमलों को खींचना आसान हो जाता है.

    $ 110,000 बहुत कुछ लग सकता है, लेकिन यह कुछ संगठनों के लिए सामर्थ्य के दायरे में है-जिसका अर्थ है कि वास्तविक जीवन साइबरविलेन डिजिटल दस्तावेज़ हस्ताक्षर बना सकते हैं, Git और SVN जैसे बैकअप और संस्करण नियंत्रण प्रणालियों के साथ हस्तक्षेप कर सकते हैं या एक दुर्भावनापूर्ण लिनक्स आईएसओ वैध दिखा सकते हैं.

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

    दूसरी ओर, SHAttered पर आधारित कुछ हमले पहले से ही वास्तविक दुनिया में हो रहे हैं। SVN संस्करण नियंत्रण प्रणाली फाइलों को अलग करने के लिए SHA-1 का उपयोग करती है। एसवीएन रिपॉजिटरी के समान एसएचए -1 हैश के साथ दो पीडीएफ अपलोड करने से यह भ्रष्ट हो जाएगा.

    मैं SHA-1 हमलों से खुद को कैसे बचा सकता हूं?

    विशिष्ट उपयोगकर्ता के लिए बहुत कुछ नहीं है। यदि आप फ़ाइलों की तुलना करने के लिए चेकसम का उपयोग कर रहे हैं, तो आपको SHA-1 या MD5 के बजाय SHA-2 (SHA-256) या SHA-3 का उपयोग करना चाहिए। इसी तरह, यदि आप एक डेवलपर हैं, तो SHA-2, SHA-3, या bcrypt जैसे अधिक आधुनिक हैशिंग एल्गोरिदम का उपयोग करना सुनिश्चित करें। यदि आप चिंतित हैं कि SHAttered का उपयोग दो अलग-अलग फ़ाइलों को एक ही हैश देने के लिए किया गया है, तो Google ने SHAttered साइट पर एक उपकरण जारी किया है जो आपके लिए जांच कर सकता है.

    छवि क्रेडिट: लेगो फ़ायरफ़ॉक्स, बहुत से, कृपया वेब लेखक को चोट मत करो अज्ञात, Google.