पासवर्ड हैशिंग
कुछ सबसे विनाशकारी साइबर सुरक्षा हमले पासवर्ड के उल्लंघन से उत्पन्न होते हैं, जो सर्वर-साइड डेटाबेस के भीतर खराब रूप से संग्रहीत होते हैं।
समस्या उपयोगकर्ता के साथ शुरू हो सकती है, जो एक बुनियादी और यादगार पासवर्ड सेट करने के इच्छुक हो सकते हैं। यह एक जोखिम पैदा करता है क्योंकि हमलावरों द्वारा आसानी से अनुमान लगाया जा सकता है यदि उनके पास व्यक्ति की प्रासंगिक समझ है, जैसे कि पालतू जानवरों या रिश्तेदारों के नाम।
यहां तक कि जब एक अधिक जटिल पासवर्ड चुना जाता है, पासवर्ड पटाखा सॉफ्टवेयर एक क्रूर बल के हमले को ट्रिगर कर सकता है, जिसके परिणामस्वरूप सफलता तक बड़ी संख्या में पासवर्ड का परीक्षण किया जाता है।
एक और अटैक वेक्टर क्रेडेंशियल्स को स्टोर करने वाले डेटाबेस तक पहुंच प्राप्त कर रहा है। CISO के भयानक परिदृश्य में, यदि एक हमलावर को अनएन्क्रिप्टेड प्लेनटेक्स्ट पासवर्ड के डेटाबेस तक पहुँच प्राप्त करनी होती है, तो हजारों उपयोगकर्ता खातों से तुरंत समझौता किया जा सकता है। यह दुर्भाग्य से बहुत बार हुआ है - छोटे और बड़े दोनों संगठनों को प्रभावित करता है।
डरो मत, इन भयानक संभावनाओं को पासवर्ड हैशिंग नामक किसी चीज़ द्वारा सीमित किया जा सकता है!
हैशिंग को परिभाषित करना
पासवर्ड हैशिंग एक क्रिप्टोग्राफ़िक एल्गोरिथम तकनीक है जो सादा पाठ लेती है, एक जटिल हैश फ़ंक्शन चलाती है और हैश किए गए पाठ का उत्पादन करती है। इस प्रक्रिया की कुंजी कार्य है, लेकिन सभी क्रैकिंग को रोकने के लिए समान रूप से उपयुक्त नहीं हैं।
OWASP (ओपन सोर्स वेब एप्लिकेशन सिक्योरिटी प्रोजेक्ट) के मानदंडों को पूरा करने के लिए सभी कार्यों को दो प्रमुख गुणों को पूरा करना चाहिए:
प्रारंभिक इनपुट बनाना मुश्किल है जो एक विशिष्ट वांछित आउटपुट के अनुरूप होगा।
इस विशेषता को स्पष्ट करने के लिए, लोकप्रिय SHA256 क्रिप्टोग्राफ़िक एल्गोरिथम के माध्यम से उत्पन्न 'पासवर्ड' का हैश है:
e7cf3ef4f17c3999a94f2c6f612e8a888e5b1026878e4e19398b23bd38ec221a
और 'पासवर्ड' का हैश है:
5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
जैसा कि आप देख सकते हैं, इनपुट के केवल एक अक्षर के कैपिटलाइज़ेशन को बदलने से, एक महत्वपूर्ण रूप से भिन्न आउटपुट उत्पन्न होता है, इस प्रकार इसका अर्थ है कि आउटपुट को इनपुट से आसानी से निर्धारित नहीं किया जा सकता है।
हैश उत्पन्न करना व्यावहारिक है लेकिन केवल हैश मान ज्ञात होने पर इनपुट को पुन: उत्पन्न करना व्यावहारिक रूप से असंभव है।
एन्क्रिप्शन के विपरीत, जहां प्लेन टेक्स्ट पासवर्ड को प्लेन टेक्स्ट में वापस डिक्रिप्ट करने से पहले एन्क्रिप्टेड टेक्स्ट में बदल दिया जाता है, हैशिंग एक तरह से एक फंक्शन है। जैसा कि पासवर्ड हैशिंग नियतात्मक है, एक ही इनपुट हमेशा एक ही आउटपुट उत्पन्न करता है।
इसका उपयोग मामला तब होता है जब कोई उपयोगकर्ता पासवर्ड बनाता है, इसे हैश किया जा सकता है, फिर आउटपुट को डेटाबेस में संग्रहीत किया जाता है। जब उपयोगकर्ता अपना पासवर्ड दोबारा कोशिश करता है, तो इसे फिर से हैश किया जाता है और फिर डेटाबेस में हैश के विरुद्ध सत्यापित किया जाता है। यदि कोई हमलावर हैश डेटाबेस तक पहुँच प्राप्त करता है, तो यह काफी हद तक बेकार है क्योंकि पासवर्ड को वापस प्लेनटेक्स्ट में नहीं बदला जा सकता है।
इस अवधारणा का एक सरल संस्करण देखने के लिए इस पायथन स्क्रिप्ट को चलाने का प्रयास करें:
# this and other fun scripts can be found at: https://github.com/Jay-Gokani
# install sha256 library for hashing
from hashlib import sha256
# demo explanation
print ('Hello, this demo will ask for a plaintext password, hash it and will verify the hash for access requests')
# first hash stored as a variable
hash1 = (sha256(input('What phony password would you like to set? ').encode('utf-8'))).hexdigest()
print('The hash of your plaintext password is:', hash1)
# password hash stored confirmation
print ('Your password hash has been successfully stored.')
# promt the user for password re-entry, hash and store as another variable
hash2 = (sha256(input('I will test your hash. Please type your password: ').encode('utf-8'))).hexdigest()
print('The hash of your plaintext password is:', hash2)
# access approval or deny check
while True:
if hash1 == hash2:
print('Success - password hash matches.')
break
else:
print('The password hash does not match. Please run the programme again.')
break
समझौता किए गए पासवर्ड को रोकने के लिए हैश निश्चित रूप से एक सभी में एक समाधान नहीं है। उदाहरण के लिए, हमलावर सामान्य पासवर्ड और उनके संबंधित हैश की सूची तैयार कर सकते हैं। यदि डेटाबेस में कोई हैश सूची में है, तो हमलावर को प्लेनटेक्स्ट पासवर्ड पता होगा। लेकिन यह एक समस्या नहीं होनी चाहिए यदि प्लेनटेक्स्ट पासवर्ड पर्याप्त जटिलता के साथ बनाए गए हों। इसके अलावा, हैश बनाने के लिए प्लेनटेक्स्ट पासवर्ड डालने वाले एप्लिकेशन को इंटरसेप्ट किया जा सकता है।
पासवर्ड हैशिंग सही दिशा में एक बढ़िया कदम है! हमें उम्मीद है कि आपको यह लेख अच्छा लगा होगा :-)

![क्या एक लिंक्ड सूची है, वैसे भी? [भाग 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































