हिन्दी

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

क्यों Web Crypto SHA-1 से SHA-512 ऑफर करता है लेकिन MD5 या SHA-3 नहीं

· यह काम किस प्रकार करता है

क्रिप्टोग्राफी ब्राउज़र-एपिस शा-256 जावास्क्रिप्ट

SHA-1 से SHA-512 तक लेबल वाले चार एल्गोरिदम बॉक्स, चेकमार्क के साथ और MD5 और SHA-3 के लिए संबंधित गायब बॉक्स
मूल ToolAcre वेक्टर चित्रण

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

MD5 कहाँ है? - लीगेसी चेकसम वर्कफ़्लो को माइग्रेट करने वाले किसी भी व्यक्ति का पहला प्रश्न

ब्राउज़र का Web Crypto API बिल्कुल चार डाइजेस्ट एल्गोरिदम शिप करता है: SHA-1, SHA-256, SHA-384 और SHA-512। यदि आप MD5 या SHA-3 की उम्मीद करते हुए ToolAcre SHA हैश कैलकुलेटर तक पहुंचते हैं, तो आप उन्हें नहीं पाएंगे। वह विशिष्टता टूल की कोई सीमा नहीं है; यह एक सुविचारित मंच चयन को दर्शाता है। यह समझना कि इन चारों को क्यों शामिल किया गया और दो लोकप्रिय विकल्पों को क्यों छोड़ दिया गया, आपको इस बारे में बहुत कुछ पता चलता है कि ब्राउज़र APआई कैसे डिज़ाइन किए जाते हैं।

प्रत्येक प्रमुख ब्राउज़र सुरक्षित उत्पत्ति पर crypto.subtle.digest को उजागर करता है। जब आपका JavaScript उस विधि को कॉल करता है, तो यह प्लेटफ़ॉर्म के क्रिप्टोग्राफ़िक कार्यान्वयन से गुजरता है - सुरक्षा सैंडबॉक्सिंग और प्रदर्शन अनुकूलन के साथ चलने वाला मूल कोड। पेश किए गए डाइजेस्ट एल्गोरिदम को W3C Web Crypto वर्किंग ग्रुप द्वारा विशिष्ट प्राथमिकताओं के साथ चुना गया था: मौजूदा सुरक्षा मानकों के साथ संगतता, क्रिप्टोग्राफ़िक लाइब्रेरीज़ में उपलब्ध समर्थन, परिपक्वता और वेब प्लेटफ़ॉर्म की व्यावहारिक सुरक्षा ज़रूरतें।

चार एल्गोरिदम SubtleCrypto.digest समर्थन करते हैं - SHA-1, SHA-256, SHA-384 और SHA-512, और कुछ नहीं

ToolAcre डाइजेस्टबाइट्स द्वारा लागू समान चार पहचानकर्ताओं को स्वीकार करता है: SHA-1, SHA-256, SHA-384 और SHA-512। Web Crypto को कॉल करने से पहले एक अपरिचित नाम को अस्वीकार कर दिया जाता है, और उस अस्वीकृति की पुष्टि करने के लिए परीक्षण सूट विशेष रूप से MD5 पास करता है। इसलिए पिकर अब तक मानकीकृत प्रत्येक डाइजेस्ट के सर्वेक्षण के बजाय एक परीक्षणित उत्पाद सीमा का वर्णन करता है।

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

MD5 इस कार्यान्वयन और Web Crypto से अनुपस्थित है; यह आलेख बिना स्रोत वाले मानक तर्क नहीं जोड़ता है

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

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

ToolAcre SHA हैश कैलकुलेटर MD5 कार्यान्वयन भी नहीं भेजता है। प्लेटफ़ॉर्म API की तरह, यह टूटे हुए एल्गोरिदम को आसानी से सुलभ बनाने से इंकार कर देता है। यदि आपके एप्लिकेशन को बिल्कुल MD5 की आवश्यकता है - दुर्लभ बाहरी विरासत Git सिस्टम - कार्यान्वयन आपके अपने कोडबेस में एक स्पष्ट नोट के साथ है कि यह एक संगतता शिम है। अभिगम्यता अपेक्षाएँ पैदा करती है, और टूटे हुए एल्गोरिदम किसी अपेक्षा के लायक नहीं हैं।

SHA-3 ब्राउज़र API और टूल से बाहर है; इसके गोद लेने का इतिहास भंडार साक्ष्य के बाहर है

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

शिपिंग में देरी SHA-3 वास्तविकता को दर्शाती है: Web Crypto को वेब पर व्यापक उपयोग में एल्गोरिदम को कवर करने के लिए डिज़ाइन किया गया था और HTTPS/TLS. API को अंतिम रूप देने पर, SHA-2 (256, 384, 512) नई प्रणालियों के लिए भारी सहमति थी, और SHA-3 पर जाना MD5 या SHA-1 से आगे बढ़ने की तुलना में बहुत धीमी गति से हो रहा है। अधिकांश एप्लिकेशन को अभी तक SHA-3 की आवश्यकता नहीं है। API का विस्तार करने और प्रत्येक ब्राउज़र और प्लेटफ़ॉर्म पर इसका परीक्षण करने की लागत लॉन्च के समय मांग के अनुसार उचित नहीं थी।

यह स्थायी अस्वीकृति नहीं है. Web Crypto API विकसित हो सकता है। यदि SHA-3 अपनाने में तेजी आती है, तो कार्य समूह इसे जोड़ सकता है। वर्तमान सेट परिपक्व, व्यापक रूप से मानकीकृत एल्गोरिदम का प्रतिनिधित्व करता है जिसे Web Crypto को प्लेटफ़ॉर्म की तत्काल सुरक्षा आवश्यकताओं को पूरा करने के लिए आवश्यक है। ब्राउज़र APआई स्थिर और सावधानीपूर्वक बनाए रखा जाना चाहिए; व्यापक आवश्यकता से पहले सुविधाएँ जोड़ने की जल्दबाजी आने वाले वर्षों के लिए रखरखाव का बोझ और अनुकूलता जोखिम पैदा करती है।

SHA-1 अभी भी क्यों है - विरासत सत्यापन की आवश्यकता है, और पेशकश करने और अनुशंसा करने के बीच का अंतर

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

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

प्लेटफ़ॉर्म API में SHA-1 शामिल है, यह स्पष्ट समझ के साथ कि यह अनुकूलता के लिए है, अनुशंसा के लिए नहीं। ब्राउज़र का UI एक चेतावनी के साथ SHA-1 लेबल करता है। ToolAcre SHA हैश कैलकुलेटर SHA-1 परिणाम के आगे "क्रिप्टोग्राफ़िक रूप से टूटा हुआ" प्रदर्शित करता है, यह सुनिश्चित करता है कि इसका उपयोग करने वाला कोई भी व्यक्ति समझता है कि वे विरासत सामग्री के साथ काम कर रहे हैं। पारदर्शिता आवश्यक है; उपयोगकर्ताओं को कभी भी SHA-1 अनुकूलता को SHA-1 समर्थन समझने की गलती नहीं करनी चाहिए।

यदि अनुकूलता के लिए MD5 की आवश्यकता है, तो इस टूल के बाहर समीक्षा किए गए कार्यान्वयन का उपयोग करें और सुरक्षा के लिए अनुकूलता को कभी न भूलें

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

SHA-1 को इंटरऑपरेबिलिटी के लिए रखा गया है, इसलिए नहीं कि कोई इसके साथ कोई नया सिस्टम शुरू करे। यदि आप मौजूदा SHA-1 चेकसम का सत्यापन कर रहे हैं, पुराने प्रमाणपत्र फ़िंगरप्रिंट का मिलान कर रहे हैं, या Git कमिट ID को पुन: प्रस्तुत कर रहे हैं, तो ToolAcre में SHA-1 आपको ऐसा करने देता है। यदि आप एक नया सिस्टम डिज़ाइन कर रहे हैं, तो SHA-256 स्पष्ट विकल्प है। आपके द्वारा चुना गया एल्गोरिदम सुरक्षा मॉडल के बारे में आपकी समझ का संकेत देता है।

इसमें क्या शामिल नहीं है - सर्वर-साइड रनटाइम, जो आमतौर पर कई और डाइजेस्ट एल्गोरिदम को उजागर करता है

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

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

टेकअवे: सीमाएँ उत्पाद का हिस्सा हैं - ToolAcre SHA हैश कैलकुलेटर ब्राउज़र द्वारा मूल रूप से लागू किए जाने वाले चार एल्गोरिदम प्रदान करता है, और उस सीमा के दस्तावेज़ प्रदान करता है

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

Web Crypto डिज़ाइन दशकों के क्रिप्टोग्राफ़िक अभ्यास को दर्शाता है: एल्गोरिदम जो मानकीकृत, ऑडिट किए गए और व्यापक तैनाती में सिद्ध हैं। SHA-256 और SHA-512 समझदार डिफ़ॉल्ट हैं। SHA-384 अपनी TLS वंशावली रखता है। SHA-1 इसलिए है क्योंकि वेब में SHA-1 डाइजेस्ट हैं जिन्हें वर्षों तक सत्यापित करने की आवश्यकता होगी। MD5 और SHA-3 वहां नहीं हैं क्योंकि MD5 टूट गया है और SHA-3 अभी तक प्लेटफ़ॉर्म के लिए महत्वपूर्ण नहीं है।