हिन्दी

डेवलपर टूल · SHA हैश कैलकुलेटर

आपको पासवर्ड को सादे SHA-256 हैश के रूप में संग्रहीत क्यों नहीं करना चाहिए

· यह क्यों मायने रखती है

पासवर्डों सुरक्षा क्रिप्टोग्राफी

एक स्टॉपवॉच जो जानबूझकर विलंब जोड़ने वाले पासवर्ड हैश फ़ंक्शन बनाम त्वरित अनुमान दिखाती है
मूल ToolAcre वेक्टर चित्रण

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

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

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

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

तेज़ SHA-256 का बिंदु है - अखंडता जांच के लिए गति की आवश्यकता होती है, और एक हमलावर को अनुमान लगाने के लिए समान गति मिलती है

जब SHA-256 पासवर्ड हैश के डेटाबेस से छेड़छाड़ की जाती है, तो एक हमलावर को हैश को उलटने की आवश्यकता नहीं होती है। हमलावर एक शब्दकोश बनाता है: सामान्य पासवर्ड जैसे "पासवर्ड," "123456," "हैलो," और लाखों अन्य। प्रत्येक उम्मीदवार को SHA-256—एक कम्प्यूटेशनल रूप से तुच्छ ऑपरेशन—के साथ हैश किया जाता है और चुराए गए डेटाबेस के विरुद्ध जांच की जाती है। एक हमलावर लॉगिन सेवा द्वारा उपयोग किए जाने वाले समान तेज आदिम के साथ उम्मीदवार SHA-256 मानों की गणना कर सकता है, फिर दर सीमा के बिना प्रत्येक परिणाम की ऑफ़लाइन तुलना कर सकता है। सटीक दर हार्डवेयर और कार्यान्वयन पर निर्भर करती है, इसलिए यह आलेख जानबूझकर प्रति सेकंड या उल्लंघन-समय का कोई अनुमान नहीं लगाता है।

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

शब्दकोश और इंद्रधनुष तालिकाएँ - अनसाल्टेड हैश के विरुद्ध पूर्वगणना, और नमक क्या बदलता है

यहीं पर पूर्व-गणना किया गया शब्दकोश व्यावहारिक हो जाता है। एक हमलावर एक दिन बिता सकता है और हजारों सबसे सामान्य पासवर्डों के लिए, Name1990 जैसे सामान्य पैटर्न के लिए, या कई भाषाओं में संपूर्ण शब्दकोशों के लिए SHA-256 हैश की गणना कर सकता है। परिणामी तालिका को इंद्रधनुष तालिका कहा जाता है। पूर्व-गणना की गई तालिका के विरुद्ध चुराए गए SHA-256 हैश को खोजना तत्काल है। पूर्व-गणना तालिका के बिना भी, GPU-त्वरित हैशिंग के साथ एक अरब अनुमानों की गणना करना तुच्छ है। हमलावर के लिए कम्प्यूटेशनल लागत इतनी कम है कि कमजोर पासवर्ड भी मिनटों में गिर जाते हैं।

ToolAcre SHA हैश कैलकुलेटर इस गति को सीधे प्रदर्शित करता है। एक संक्षिप्त पाठ चिपकाएँ, SHA-256 बटन पर क्लिक करें, और परिणाम तुरंत होगा। वह त्वरित परिणाम—जिस संपत्ति की आप हैश कैलकुलेटर में प्रशंसा करते हैं—वह सटीक संपत्ति है जो सादे SHA-256 को पासवर्ड के लिए असुरक्षित बनाती है। एक हमलावर को हर अनुमान के लिए एक ही त्वरित परिणाम मिलता है। चेकसम और अखंडता जांच के लिए, वह गति एकदम सही है। पासवर्ड के लिए यह सुरक्षा के लिए घातक है।

पासवर्ड हैशिंग फ़ंक्शन क्या जोड़ते हैं - bcrypt, scrypt, Argon2 और PBKDF2 में कार्य कारक, मेमोरी कठोरता और प्रति-उपयोगकर्ता लवण

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

व्यावहारिक उदाहरण - एक सामान्य पासवर्ड का SHA-256 ट्यून किए गए पासवर्ड हैश की तुलना में कितनी जल्दी पहचाना जाता है, गुणात्मक रूप से वर्णित है

पासवर्ड हैशिंग फ़ंक्शन एक अलग दृष्टिकोण अपनाता है। Bcrypt, scrypt, Argon2id और PBKDF2 पासवर्ड सत्यापन के उद्देश्य से बनाए गए हैं। उन सभी में एक कार्य कारक शामिल है: एक पैरामीटर जो हैशिंग को जानबूझकर महंगा बनाता है। आर्गन2 सबसे आधुनिक है; यह CPU समय और मेमोरी खपत दोनों को समायोजित करता है। बीक्रिप्ट एक ट्यून करने योग्य लागत कारक का उपयोग करता है जो प्रत्येक वृद्धि के साथ काम को दोगुना कर देता है। इन सभी में अंतर्निर्मित नमक उत्पादन शामिल है। ये टूल हमलावर मॉडल को ध्यान में रखकर डिज़ाइन किए गए हैं। कार्य कारक महत्वपूर्ण है.

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

एक विरासत SHA-256 तालिका को स्थानांतरित करना - मौजूदा हैश को लपेटना और अगले लॉगिन पर पुनः हैश करना

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

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

इसमें क्या शामिल नहीं है - एक विशिष्ट पासवर्ड हैश के लिए पैरामीटर चुनना, जो आपके हार्डवेयर और खतरे के मॉडल पर निर्भर करता है

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

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

टेकवे: तत्काल परिणाम चेतावनी है - ToolAcre SHA हैश कैलकुलेटर दिखाता है कि SHA-256 कितना तेज़ है, यही कारण है कि इसे आपके उपयोगकर्ताओं के पासवर्ड नहीं रखने चाहिए

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

यह लपेटा हुआ दृष्टिकोण यह सुनिश्चित करता है कि जिन पुराने पासवर्डों से छेड़छाड़ की गई है वे अब कार्य कारक द्वारा संरक्षित हैं। SHA-256 हैश के पुराने डेटाबेस वाला एक हमलावर अब उन्हें आसानी से क्रैक नहीं कर सकता है; उन्हें लिपटे हुए संस्करण पर हमला करना होगा, जिसमें आर्गन2 की लागत भी शामिल है। उपयोगकर्ताओं के सामान्य लॉगिन प्रवाह के दौरान माइग्रेशन पारदर्शी रूप से होता है। प्रत्येक लॉगिन उपयोगकर्ता अनुभव को बाधित किए बिना हैश को मजबूत करने का अवसर बनाता है। सही कार्य कारक चुनना आपके हार्डवेयर और आपके खतरे के मॉडल पर निर्भर करता है। Argon2 डिफ़ॉल्ट समझदार हैं: वेब सेवाओं के लिए 19 पुनरावृत्तियाँ, 512 MB मेमोरी और 1 समानता।