यह वेबसाइट Kohei Koyanagi द्वारा विकसित सॉफ़्टवेयर से स्वचालित रूप से कई भाषाओं में अनुवादित है। अधिक सटीकता के लिए मूल अंग्रेज़ी संस्करण देखें।

हम आपके पासवर्ड की सुरक्षा कैसे करते हैं

Splync कभी भी आपका पासवर्ड प्लेन टेक्स्ट में स्टोर नहीं करता

पिछले लेखों में, हमने देखा कि HTTPS आपके ऐप और हमारे सर्वर के बीच के रास्ते को कैसे सुरक्षित करता है, और SSH खुद सर्वर को कैसे सुरक्षित करता है। अब समय आ गया है सर्वर के अंदर देखने का — कि Splync आपके पासवर्ड को वहां पहुंचने के बाद कैसे सुरक्षित रखता है। यदि कोई आपका पासवर्ड प्राप्त कर लेता है, तो वह व्यक्ति आपके खाते में लॉग इन कर सकता है और आपके खर्च रिकॉर्ड सहित संवेदनशील जानकारी तक पहुंच सकता है। इसलिए Splync कभी भी पासवर्ड को प्लेन टेक्स्ट में स्टोर नहीं करता। इसके बजाय, प्रत्येक पासवर्ड को हैशेड संस्करण में परिवर्तित कर दिया जाता है, फिर डेटाबेस में सहेजा जाता है। इसका मतलब वास्तव में क्या है? हैशिंग एक एकतरफा रूपांतरण है — एक बार परिवर्तित होने के बाद, इसे कभी भी मूल पासवर्ड में वापस नहीं बदला जा सकता। यह विधि इंटरनेट पर मानक है, बैंकों से लेकर प्रमुख क्लाउड सेवाओं तक, फिर भी कई लोग नहीं जानते कि यह वास्तव में कैसे काम करता है। चलिए इसे एक साधारण रोजमर्रा के उदाहरण के माध्यम से समझते हैं।

हैशिंग की बुनियादी बातें: एक ब्लेंडर जो हमेशा एक जैसा मिश्रण करता है

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

SHA-256 का उदाहरण: पासवर्ड को जाने बिना कैसे सत्यापित करें

SHA-256 सबसे सामान्य हैशिंग एल्गोरिदम में से एक है। उदाहरण के लिए, यह "splync1234" पासवर्ड को “9cdafa20d069ecfb202e5f0bc937c73071cc6cd85634cc2d95d30ddcf2a71d41” में हैश करता है। मिलीसेकंड में, जब भी कोई मौजूदा उपयोगकर्ता लॉगिन पासवर्ड दर्ज करता है, SHA-256 हमेशा वही हैशेड पासवर्ड उत्पन्न करता है। ऐप दर्ज पासवर्ड को फिर से हैश करता है और जांचता है कि क्या यह संग्रहीत हैश से मेल खाता है। किसी भी समय सिस्टम को उपयोगकर्ता का मूल पासवर्ड पता नहीं चलता। लेकिन क्या होगा अगर कोई हमलावर सामान्य पासवर्ड और उनके हैश की सूची (जिसे रेनबो टेबल अटैक कहा जाता है) पहले से तैयार कर ले ताकि उपयोगकर्ताओं के पासवर्ड का अनुमान जल्दी लगाया जा सके? यह चिंता वास्तव में वास्तविक है। यही कारण है कि आधुनिक सिस्टम, जिसमें Splync शामिल है, साधारण SHA-256 पर निर्भर नहीं करते।

Splync bcrypt के साथ पासवर्ड हैश करता है — SHA-256 से अधिक मजबूत

Bcrypt एक रैंडम प्रति-उपयोगकर्ता सॉल्ट का उपयोग करता है और उस सॉल्ट (और लागत कारक) को सीधे संग्रहीत हैश स्ट्रिंग में एन्कोड करता है। bcrypt को एक ब्लेंडर की तरह समझें जिसमें एक गुप्त मसाला (सॉल्ट) और एक धीमा मोटर (वर्क फैक्टर) होता है — यह प्रत्येक मिश्रण को अद्वितीय और कॉपी करना कठिन बनाता है। क्योंकि सॉल्ट 128 बिट्स है (≈3×10³⁸ संभावनाएं), वही पासवर्ड एक खगोलीय संख्या की अलग-अलग संग्रहीत हैश में मैप कर सकता है। यह पूर्वगणित रेनबो टेबल को बड़े पैमाने पर बेकार बना देता है। लॉगिन के दौरान, Splync सहेजे गए bcrypt स्ट्रिंग से सॉल्ट और लागत पढ़ता है, उन पैरामीटर के साथ दर्ज पासवर्ड पर bcrypt को फिर से चलाता है, और परिणाम को संग्रहीत हैश से तुलना करता है। यदि वे मेल खाते हैं, तो पासवर्ड सही है — लेकिन क्योंकि bcrypt जानबूझकर धीमा है और सॉल्ट अद्वितीय हैं, ब्रूट-फोर्स हमले एक हमलावर के लिए काफी महंगे हो जाते हैं।

bcrypt के साथ एक आसान उदाहरण

आइए देखें कि यह व्यवहार में कैसा दिखता है। यदि आप पासवर्ड "splync1234" को bcrypt के साथ हैश करते हैं (लागत 12 का उपयोग करते हुए), तो आपको इस तरह की स्ट्रिंग मिल सकती है: `$2b$12$gBeouKYdue9uvvuV0HtGgeVPymnrojMqP/wcRw28HFlGEGIQbyw7O`। इस bcrypt स्ट्रिंग में, `$2b` एल्गोरिदम संस्करण को चिह्नित करता है, `$12` लागत कारक दिखाता है (कितनी बार पासवर्ड संसाधित होता है), `gBeouKYdue9uvvuV0HtGgeV` अद्वितीय रैंडम सॉल्ट है, और `PymnrojMqP/wcRw28HFlGEGIQbyw7O` अंतिम हैशेड पासवर्ड है। क्योंकि हैश स्वयं सॉल्ट और लागत को शामिल करता है, Splync उन मूल्यों को संग्रहीत स्ट्रिंग से निकालकर और परिणाम की तुलना करके सत्यापन के लिए उसी हैशिंग प्रक्रिया को पुन: उत्पन्न कर सकता है। दूसरी ओर, यदि कोई हमलावर सॉल्ट और लागत नहीं जानता, तो वे हर उपयोगकर्ता के लिए काम करने वाली एकल रेनबो टेबल नहीं बना सकते।

हैशेड पासवर्ड दोहरी सुरक्षा प्रदान करते हैं

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