भारत का Digital Personal Data Protection Act, 2023 (DPDP Act) डेटा फ़िड्युशरी को यूज़र डेटा की सुरक्षा के लिए "उचित तकनीकी और संगठनात्मक उपाय" अपनाने के लिए कहता है, बिना किसी ख़ास एल्गोरिदम का नाम लिए। कई भारतीय फ़िनटेक और बैंकिंग सिस्टम में पासवर्ड स्टोर करने के लिए यही "उचित उपाय" व्यावहारिक रूप से PBKDF2 या इसी तरह के key-stretching एल्गोरिदम का रूप ले लेता है।
Key stretching का सिद्धांत
पासवर्ड को एक बार हैश करने के बजाय, PBKDF2 एक बेस हैश फ़ंक्शन (आमतौर पर HMAC-SHA256) को हज़ारों बार लगातार लागू करता है, हर इटरेशन के रिज़ल्ट को अगले के लिए इनपुट के तौर पर इस्तेमाल करते हुए। यह जानबूझकर एक हैश कैलकुलेट करना धीमा कर देता है, जिससे मास ब्रूट-फ़ोर्स अटैकर के लिए काफ़ी महँगा हो जाता है।
यह टूल HTTPS की माँग क्यों करता है
यह टूल हाथ से लिखे JavaScript कोड के बजाय ब्राउज़र के बिल्ट-इन Web Crypto API से PBKDF2 कैलकुलेट करता है। ब्राउज़र crypto.subtle को सिर्फ़ "सिक्योर कॉन्टेक्स्ट" में एक्सपोज़ करते हैं — यानी HTTPS पर, या डेवलपमेंट के दौरान localhost पर — इसलिए बिना एन्क्रिप्टेड कनेक्शन के यह और साइट का हर दूसरा क्रिप्टोग्राफ़िक टूल बिल्कुल काम नहीं करेगा, चाहे डिवाइस कितना भी पावरफ़ुल क्यों न हो।
PBKDF2, Argon2 या scrypt से कम रेज़िस्टेंट क्यों है
चूँकि PBKDF2 को सिर्फ़ कंप्यूटेशन चाहिए और काफ़ी मेमोरी नहीं, इसे स्पेशलाइज़्ड हार्डवेयर (GPU, ASIC) पर अटैक करना आसान और सस्ता है, जो ठीक इसी तरह के ऑपरेशन को असरदार तरीक़े से पैरेलल करता है। इसलिए नए सिस्टम के लिए अक्सर memory-hard एल्गोरिदम सुझाए जाते हैं, हालाँकि PBKDF2 अब भी व्यापक रूप से सपोर्टेड स्टैंडर्ड है।
यह किस काम आता है
- एन्क्रिप्शन के लिए पासवर्ड से क्रिप्टोग्राफ़िक की डिराइव करना (जैसे Wi-Fi के लिए WPA2/WPA3 में)।
- पासवर्ड स्टोरेज के लिए PBKDF2 इस्तेमाल करने वाले पुराने सिस्टम के साथ कम्पैटिबिलिटी बनाए रखना।
- यह समझना कि सुझाई गई इटरेशन संख्या नए स्टैंडर्ड वर्शन में लगातार क्यों बढ़ती रहती है।
बेस हैश फ़ंक्शन का चुनाव मायने रखता है
PBKDF2 के पुराने इम्प्लीमेंटेशन अक्सर डिफ़ॉल्ट रूप से HMAC-SHA1 इस्तेमाल करते थे — SHA-1 को सीधे हैशिंग के लिए क्रिप्टोग्राफिकली कमज़ोर माना जाता है, लेकिन HMAC की संरचना में यह कमज़ोरी गंभीर वल्नरेबिलिटी नहीं बनती। फिर भी, मॉडर्न सिफ़ारिशें साफ़ तौर पर HMAC-SHA256 या HMAC-SHA512 की सलाह देती हैं — SHA-1 से किसी सीधे ख़तरे की वजह से नहीं, बल्कि इसलिए कि लंबा आउटपुट और ज़्यादा मॉडर्न फ़ंक्शन बिना स्पीड में किसी असरदार कमी के ज़्यादा सुरक्षा मार्जिन देते हैं।