क्रिप्टोग्राफ़िक हैश फ़ंक्शन (CHF) एक एल्गोरिथम है जिसे चेकसम नामक मान उत्पन्न करने के लिए व्यक्तिगत फ़ाइल या पासवर्ड जैसे डेटा पर चलाया जा सकता है।
CHF का मुख्य उपयोग डेटा के एक टुकड़े की प्रामाणिकता को सत्यापित करना है। दो फाइलों को समान माना जा सकता है, यदि एक ही क्रिप्टोग्राफिक हैश फ़ंक्शन का उपयोग करके प्रत्येक फ़ाइल से उत्पन्न चेकसम समान हों।
कुछ आमतौर पर इस्तेमाल किए जाने वाले क्रिप्टोग्राफ़िक हैश फ़ंक्शंस में MD5 और SHA-1 शामिल हैं, हालाँकि कई अन्य भी मौजूद हैं। इन्हें अक्सर "हैश फ़ंक्शंस" के रूप में संदर्भित किया जाता है, लेकिन यह तकनीकी रूप से सही नहीं है। हैश फ़ंक्शन एक सामान्य शब्द है जिसमें CHF के साथ-साथ चक्रीय अतिरेक जाँच जैसे अन्य प्रकार के एल्गोरिदम शामिल हैं।
क्रिप्टोग्राफिक हैश फंक्शन्स: ए यूज केस
मान लें कि आपने Firefox ब्राउज़र का नवीनतम संस्करण डाउनलोड किया है। किसी कारण से, आपको इसे मोज़िला के अलावा किसी अन्य साइट से डाउनलोड करने की आवश्यकता है। चूंकि इसे किसी ऐसी साइट पर होस्ट नहीं किया जा रहा है जिस पर आपने भरोसा करना सीखा है, आप यह सुनिश्चित करना चाहेंगे कि आपके द्वारा अभी डाउनलोड की गई इंस्टॉलेशन फ़ाइल ठीक उसी तरह है जैसे Mozilla ऑफ़र करता है।
चेकसम कैलकुलेटर का उपयोग करके, आप एक विशेष क्रिप्टोग्राफ़िक हैश फ़ंक्शन, जैसे SHA-2 का उपयोग करके चेकसम की गणना करते हैं, और फिर उसकी तुलना Mozilla की साइट पर प्रकाशित एक से करते हैं। यदि वे समान हैं, तो आप यथोचित रूप से सुनिश्चित हो सकते हैं कि आपके पास जो डाउनलोड है वह वही मोज़िला है जिसे आप चाहते हैं।
क्या क्रिप्टोग्राफ़िक हैश फ़ंक्शन को उलटा किया जा सकता है?
क्रिप्टोग्राफ़िक हैश फ़ंक्शंस को उनके द्वारा बनाए गए चेकसम को मूल टेक्स्ट में वापस लाने की क्षमता को रोकने के लिए डिज़ाइन किया गया है। हालांकि, भले ही उन्हें उलटना लगभग असंभव हो, लेकिन वे डेटा की सुरक्षा के लिए 100 प्रतिशत गारंटी नहीं देते हैं।
हैकर्स चेकसम के प्लेन टेक्स्ट का पता लगाने के लिए रेनबो टेबल का उपयोग कर सकते हैं। रेनबो टेबल ऐसे शब्दकोश होते हैं जो अपने संबंधित सादे पाठ मान के साथ हजारों, लाखों या अरबों चेकसम को सूचीबद्ध करते हैं।
हालांकि यह तकनीकी रूप से क्रिप्टोग्राफ़िक हैश एल्गोरिथम को उलट नहीं रहा है, यह भी हो सकता है, यह देखते हुए कि यह करना बहुत आसान है। वास्तव में, चूंकि कोई भी इंद्रधनुष तालिका अस्तित्व में हर संभावित चेकसम को सूचीबद्ध नहीं कर सकती है, वे आमतौर पर केवल कमजोर पासवर्ड जैसे सरल वाक्यांशों के लिए सहायक होते हैं।
यहां रेनबो टेबल का एक सरलीकृत संस्करण दिया गया है, जिसमें दिखाया गया है कि SHA-1 क्रिप्टोग्राफ़िक हैश फ़ंक्शन का उपयोग करते समय कोई कैसे काम करेगा:
इंद्रधनुष तालिका उदाहरण | |
---|---|
सादा पाठ | SHA-1 चेकसम |
12345 | 8cb2237d0679ca88db6464eac60da96345513964 |
पासवर्ड1 | e38ad214943daad1d64c102faec29de4afe9da3d |
इलोवमीडॉग | a25fb3505406c9ac761c8428692fbf5d5ddf1316 |
जेनी400 | 7d5eb0173008fe55275d12e9629eef8bdb408c1f |
डलास1984 | c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2 |
एक हैकर को पता होना चाहिए कि मूल्यों का पता लगाने के लिए चेकसम उत्पन्न करने के लिए किस क्रिप्टोग्राफ़िक हैश एल्गोरिथम का उपयोग किया गया था।
अतिरिक्त सुरक्षा के लिए, उपयोगकर्ता पासवर्ड संग्रहीत करने वाली कुछ वेबसाइटें क्रिप्टोग्राफ़िक हैश एल्गोरिथम पर मान उत्पन्न होने के बाद लेकिन इसे संग्रहीत करने से पहले अतिरिक्त कार्य करती हैं। यह प्रक्रिया एक नया मान उत्पन्न करती है जिसे केवल वेब सर्वर समझता है और जो मूल चेकसम से मेल नहीं खाता है।
उदाहरण के लिए, पासवर्ड दर्ज करने और चेकसम उत्पन्न होने के बाद, इसे कई भागों में विभाजित किया जा सकता है और पासवर्ड डेटाबेस में संग्रहीत करने से पहले पुनर्व्यवस्थित किया जा सकता है, या कुछ वर्णों को दूसरों के साथ बदल दिया जा सकता है। अगली बार उपयोगकर्ता द्वारा साइन ऑन करने पर प्रमाणित करने का प्रयास करते समय, सर्वर इस अतिरिक्त फ़ंक्शन को उलट देता है, और यह सत्यापित करने के लिए कि उपयोगकर्ता का पासवर्ड मान्य है, मूल चेकसम फिर से उत्पन्न होता है।
इन कदमों को उठाने से हैक की उपयोगिता सीमित हो जाती है जहां सभी चेकसम चोरी हो जाते हैं। विचार एक ऐसा कार्य करना है जो अज्ञात है, इसलिए यदि हैकर क्रिप्टोग्राफ़िक हैश एल्गोरिथम जानता है, लेकिन कस्टम नहीं, तो पासवर्ड चेकसम जानना अनुपयोगी है।
पासवर्ड और क्रिप्टोग्राफिक हैश फ़ंक्शन
एक डेटाबेस उपयोगकर्ता के पासवर्ड को एक इंद्रधनुष तालिका के समान तरीके से सहेजता है। जब आपका पासवर्ड दर्ज किया जाता है, तो चेकसम उत्पन्न होता है और आपके उपयोगकर्ता नाम के साथ रिकॉर्ड किए गए एक के साथ तुलना की जाती है। यदि दोनों समान हैं तो आपको एक्सेस प्रदान किया जाता है।
यह देखते हुए कि एक CHF एक गैर-प्रतिवर्ती चेकसम का उत्पादन करता है, क्या आपके लिए अपने पासवर्ड को 12@34 के बजाय 12345 जितना आसान बनाना सुरक्षित है $5, केवल इसलिए कि चेकसम स्वयं को नहीं समझा जा सकता है? नहीं, और यही कारण है।
इन दोनों पासवर्डों को केवल चेकसम को देखकर समझना असंभव है:
MD5 12345 के लिए: 827ccb0eea8a706c4c34a16891f84e7b
MD5 12@34$5 के लिए: a4d3cc004f487b18b2ccd4853053818b
पहली नज़र में, आप सोच सकते हैं कि इनमें से किसी भी पासवर्ड का उपयोग करना ठीक है। यह सच है अगर किसी हमलावर ने MD5 चेकसम का अनुमान लगाकर आपके पासवर्ड का पता लगाने की कोशिश की, जो कोई नहीं करता है, लेकिन यह सच नहीं है अगर एक क्रूर बल या शब्दकोश हमला किया जाता है, जो एक सामान्य रणनीति है।
एक क्रूर बल का हमला तब होता है जब पासवर्ड का अनुमान लगाने के लिए कई यादृच्छिक छुरा घोंप दिए जाते हैं। इस मामले में, 12345 का अनुमान लगाना आसान होगा, लेकिन दूसरे का बेतरतीब ढंग से पता लगाना बहुत मुश्किल है।एक डिक्शनरी अटैक इसी तरह का है कि हमलावर हर शब्द, संख्या या वाक्यांश को सामान्य (और सामान्य नहीं) पासवर्ड की सूची से आज़मा सकता है, और 12345 उन सामान्य पासवर्डों में से एक है पासवर्ड।
भले ही क्रिप्टोग्राफ़िक हैश फ़ंक्शन कठिन-से-अनुमानित चेकसम उत्पन्न करते हैं, फिर भी आपको अपने सभी ऑनलाइन और स्थानीय उपयोगकर्ता खातों के लिए एक जटिल पासवर्ड का उपयोग करना चाहिए।
क्रिप्टोग्राफिक हैश फंक्शन के बारे में अधिक जानकारी
ऐसा लग सकता है कि क्रिप्टोग्राफ़िक हैश फ़ंक्शन एन्क्रिप्शन से संबंधित हैं, लेकिन दोनों अलग-अलग तरीकों से काम करते हैं।
एन्क्रिप्शन एक दोतरफा प्रक्रिया है जहां कुछ को अपठनीय होने के लिए एन्क्रिप्ट किया जाता है और फिर बाद में सामान्य रूप से फिर से उपयोग करने के लिए डिक्रिप्ट किया जाता है। आप अपने द्वारा संग्रहीत फ़ाइलों को एन्क्रिप्ट कर सकते हैं ताकि जो कोई भी उन तक पहुँच प्राप्त करता है वह उनका उपयोग करने में असमर्थ हो, या आप फ़ाइल स्थानांतरण एन्क्रिप्शन का उपयोग उन फ़ाइलों को एन्क्रिप्ट करने के लिए कर सकते हैं जो नेटवर्क पर चल रही हैं, जैसे कि जिन्हें आप ऑनलाइन अपलोड या डाउनलोड करते हैं।
क्रिप्टोग्राफ़िक हैश फ़ंक्शन अलग-अलग तरीके से काम करते हैं, इसमें चेकसम को एक विशेष dehashing पासवर्ड के साथ उलटने के लिए नहीं है। CHF का एकमात्र उद्देश्य डेटा के दो टुकड़ों की तुलना करना है, जैसे कि फ़ाइलें डाउनलोड करते समय, पासवर्ड संग्रहीत करते समय, और डेटाबेस से डेटा खींचते समय।
क्रिप्टोग्राफ़िक हैश फ़ंक्शन के लिए डेटा के विभिन्न टुकड़ों के लिए एक ही चेकसम उत्पन्न करना संभव है। जब ऐसा होता है, तो इसे एक टक्कर कहा जाता है, जो कि एक बड़ी समस्या है, यह देखते हुए कि फ़ंक्शन के पूरे बिंदु में प्रत्येक डेटा इनपुट के लिए अद्वितीय चेकसम बनाना है।
टकराव हो सकता है क्योंकि प्रत्येक CHF इनपुट डेटा की परवाह किए बिना एक निश्चित लंबाई का मान उत्पन्न करता है। उदाहरण के लिए, MD5 क्रिप्टोग्राफिक हैश फ़ंक्शन डेटा के तीन पूरी तरह से अलग ब्लॉक के लिए 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983, और e10adc3949ba59abbe56e057f20f883e जेनरेट करता है।
पहला चेकसम 12345 से है। दूसरा 700 से अधिक अक्षरों और संख्याओं से उत्पन्न हुआ था, और तीसरा 123456 से है। सभी तीन इनपुट अलग-अलग लंबाई के हैं, लेकिन परिणाम हमेशा केवल 32 वर्ण लंबे होते हैं, क्योंकि MD5 चेकसम का उपयोग किया गया था।
सृजित किए जा सकने वाले चेकसम की संख्या की कोई सीमा नहीं है क्योंकि इनपुट में प्रत्येक छोटे परिवर्तन से एक पूरी तरह से अलग चेकसम उत्पन्न होता है।चूँकि एक CHF द्वारा उत्पादित चेकसम की संख्या की एक सीमा होती है, इसलिए हमेशा संभावना है कि आप एक टकराव का सामना करेंगे।
यही कारण है कि अन्य क्रिप्टोग्राफ़िक हैश फ़ंक्शन बनाए गए हैं। जबकि MD5 32-वर्ण मान उत्पन्न करता है, SHA-1 40 वर्ण उत्पन्न करता है और SHA-2 (512) 128 उत्पन्न करता है। चेकसम में जितने अधिक वर्ण होंगे, टकराव होने की संभावना उतनी ही कम होगी।