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