आपको जिस तरह का पासवर्ड बनाना चाहिए, उसका पासवर्ड स्टोर करने के तरीके से बहुत कुछ लेना-देना है।
वर्षों पहले, अपर और लोअर केस लेटर्स, सिंबल और नंबर वाले आठ-कैरेक्टर रैंडम पासवर्ड को क्रैक करना वाकई मुश्किल था। कुछ मामलों में, ऐसे पासवर्ड को क्रैक करने में सालों लग जाते हैं।
आज की बदलती तकनीक और किराए पर देने योग्य मशीनों की बदौलत यह समय घटाकर घंटों कर दिया गया है। लेकिन सबसे पहले ये पासवर्ड कैसे स्टोर किए जाते हैं?
पासवर्ड ऑनलाइन कैसे स्टोर किए जाते हैं
सिस्टम यूजर पासवर्ड को सीधे फाइलों या डेटाबेस में स्टोर नहीं करते हैं, क्योंकि हमलावर उस डेटाबेस को अपने कब्जे में ले सकते हैं जहां सिस्टम पासवर्ड रखता है। इसके बजाय, सिस्टम उपयोगकर्ता पासवर्ड को एन्क्रिप्ट करता है, और हमलावर प्रत्येक पासवर्ड के एन्क्रिप्टेड संस्करण का सामना करते हैं।
कुछ एल्गोरिदम हैं जो सिस्टम पासवर्ड एन्क्रिप्ट करने के लिए उपयोग करते हैं। इनमें से एक एल्गोरिदम सममित एल्गोरिदम है। सममित एल्गोरिथ्म एक प्रकार का एन्क्रिप्शन है जहाँ आप एन्क्रिप्शन और डिक्रिप्शन दोनों के लिए एक ही कुंजी का उपयोग कर सकते हैं। डेटा को एन्क्रिप्ट करने के लिए आप जिस कुंजी का उपयोग करेंगे, वह एन्क्रिप्शन और डिक्रिप्शन दोनों के लिए समान है। सममित एल्गोरिदम की सुरक्षा में कुछ जोखिम होते हैं क्योंकि डिक्रिप्शन के लिए केवल एक कुंजी होती है। इस कारण से, सिस्टम आमतौर पर पासवर्ड एन्क्रिप्शन के लिए सममित एल्गोरिदम का उपयोग नहीं करते हैं।
आम तौर पर, सिस्टम एन्क्रिप्शन के लिए जिस विधि का उपयोग करता है वह हैश एल्गोरिदम है। हैश एल्गोरिदम डेटा की अखंडता को सत्यापित करने और उसका प्रतिनिधित्व करने के लिए हैं, डेटा को एन्क्रिप्ट करने के लिए नहीं। हैश एल्गोरिदम डेटा को एक निश्चित आकार के हैश में परिवर्तित करता है। ये हैश आमतौर पर डेटा के एक अद्वितीय हैश का प्रतिनिधित्व करते हैं।
हैश एल्गोरिथम के लिए धन्यवाद, यदि किसी हमलावर ने पासवर्ड डेटाबेस पर कब्जा कर लिया है, तो हमलावर यहां से पासवर्ड को पीछे की ओर नहीं पहुंचा सकता है। एक बहुत ही महत्वपूर्ण बारीकियाँ है जिस पर आपको यहाँ ध्यान देना चाहिए। सैद्धांतिक रूप से, एक हमलावर जो सभी पासवर्ड संयोजनों के लिए समान हैश एल्गोरिथम का उपयोग करने वाली प्रणाली से समझौता करता है, प्राप्त परिणामों की तुलना कर सकता है। यदि हमलावर इन तुलनाओं के परिणामस्वरूप समान मान पैदा करता है, तो हमलावर को पता चल गया है कि पासवर्ड का खुला संस्करण क्या है। यह विधि परीक्षण और त्रुटि के बारे में है, और हमले का यह रूप है आम तौर पर एक क्रूर बल हमला कहा जाता है.
2000 के दशक की शुरुआत में, लोकप्रिय हैशिंग एल्गोरिदम के साथ एन्क्रिप्ट किए गए 8-वर्ण वाले पासवर्ड के सभी संयोजनों को आज़माने में सैकड़ों साल लग सकते थे। बेशक, इस सेट में "123456" या "माईपासवर्ड" जैसे बहुत सरल संयोजन शामिल नहीं हैं। आज के सॉफ्टवेयर और हार्डवेयर तकनीकों के विकास के साथ, पासवर्ड क्रैक करने का तरीका भी बहुत बदल गया है।
उभरते जीपीयू का प्रभाव
ग्राफिक्स प्रोसेसर (जीपीयू) की समानांतर डाटा प्रोसेसिंग क्षमताओं में समय के साथ सुधार हुआ है। जीपीयू सामान्य-उद्देश्य वाले सीपीयू जैसे बहुमुखी संचालन करने में सक्षम नहीं हैं। तो भले ही हैं इतने सारे कोर और समानांतर प्रसंस्करण शक्ति, लगभग हर समस्या के लिए उनका उपयोग करने का कोई मतलब नहीं है CPU।
फिर भी जीपीयू पर पासवर्ड के लिए उपयोग किए जाने वाले कुछ हैश एल्गोरिदम को काफी कुशलता से करना संभव है। प्रति सेकंड कम्प्यूटेशनल हैश जो आप पारंपरिक सीपीयू के साथ प्राप्त कर सकते हैं, नए जीपीयू प्लेटफॉर्म के साथ जबरदस्त रूप से बढ़े हैं।
एक विचार प्राप्त करने के लिए, नीचे दी गई तालिका में NTLM, MD5 और SHA1 जैसे हैश एल्गोरिदम के प्रति सेकंड हैशिंग नंबरों की जांच करें। अभी के लिए, यह जानना पर्याप्त है कि ये एल्गोरिदम सिर्फ एक हैश एल्गोरिथम हैं। इस तालिका को बनाने के लिए, मैंने 25 AMD Radeon GPUs वाले क्लस्टर सिस्टम का उपयोग किया।
कलन विधि |
हैशिंग प्रति सेकंड |
एनटीएलएम |
350.000.000.000 |
एमडी5 |
180.000.000.000 |
SHA1 |
63.000.000.000 |
SHA512क्रिप्ट |
364.000 |
बीक्रिप्ट |
71.000 |
स्क्रिप्ट |
33.000 |
जैसा कि आप देख सकते हैं, ऐसी प्रणाली के साथ, आप प्रति सेकंड 350 अरब बार एनटीएलएम हैश उत्पन्न कर सकते हैं। इसका मतलब है कि आप 6 घंटे से भी कम समय में 8-वर्ण वाले पासवर्ड के सभी संयोजनों को आज़मा सकते हैं। इसके अलावा, इस उदाहरण में हार्डवेयर वर्षों पहले का है। आज की पासवर्ड-क्रैकिंग पावर की कल्पना करें।
सॉफ्टवेयर डेवलपर्स को क्या करना चाहिए?
जिस तरह से प्रोग्रामर को जाना चाहिए वह काफी सरल है: उन्हें एल्गोरिदम पसंद करना चाहिए जो पासवर्ड एन्क्रिप्ट करते समय हैश वैल्यू की गणना करने में अधिक समय लेते हैं। डेवलपर्स को न केवल सीपीयू पर उपयोग किए जा रहे एल्गोरिदम के प्रदर्शन के बारे में जानने की जरूरत है, बल्कि यह भी कि यह जीपीयू दुनिया के खिलाफ कितना लचीला है।
यदि डेवलपर एक ऐसे सॉफ़्टवेयर फ्रेमवर्क के साथ काम कर रहे हैं जो Django, Ruby on जैसी पासवर्ड एन्क्रिप्शन प्रक्रियाओं को भी संबोधित करता है रेल, और वसंत सुरक्षा, उन्हें यह जांचना चाहिए कि ढांचे के संदर्भ में सही निर्णय किए गए हैं या नहीं सुरक्षा।
उदाहरण के लिए, वसीयत, रूबी ऑन रेल्स में उपयोगकर्ता संचालन के लिए सबसे अधिक उपयोग किए जाने वाले पुस्तकालयों में से एक, Bcrypt को डिफ़ॉल्ट हैश एल्गोरिथ्म के रूप में उपयोग करता है। यह आपको हैश एल्गोरिथम के रूप में दूसरी विधि का उपयोग करने की अनुमति भी देता है। Bcrypt एल्गोरिथम विश्वसनीय है क्योंकि GPU को टूटने में अभी भी बहुत लंबा समय लगता है।
संक्षेप में, हैश मान की गणना में जितना अधिक समय लगता है, आप उतने ही अधिक सुरक्षित होते हैं।
आपके पासवर्ड में कितने अक्षर होने चाहिए?
आपके द्वारा उपयोग किया जाने वाला प्रत्येक अतिरिक्त वर्ण ज्यामितीय रूप से आपके पासवर्ड को क्रैक करने और आपके पासवर्ड को अधिक सुरक्षित बनाने के लिए आवश्यक परीक्षणों और त्रुटियों की संख्या में वृद्धि करेगा।
आइए इस स्थिति पर दो अलग-अलग परिदृश्यों के माध्यम से विचार करें। एनटीएलएम हैश एल्गोरिथम के लिए उपरोक्त तालिका में मूल्यों पर विचार करें और कल्पना करें कि आप पासवर्ड को क्रैक करने का प्रयास करेंगे। आठ वर्णों या अधिक के पासवर्ड लक्षित करने की कल्पना करें।
वर्णों की संख्या |
अपर/लोअरकेस अक्षर और संख्याएं |
अपर/लोअरकेस अक्षर, संख्याएं और विशेष प्रतीक |
8 |
1 मिनट से कम |
दो मिनट |
9 |
दो मिनट |
2 घंटे |
10 |
2 घंटे |
1 सप्ताह |
11 |
6 दिन |
2 साल |
12 |
1 वर्ष |
200 साल |
13 |
100 से अधिक वर्ष |
1000 से अधिक वर्ष |
जब आप तालिका की जांच करते हैं, तो आप देख सकते हैं कि जब आप अपरकेस/लोअरकेस अक्षरों, संख्याओं और विशेष प्रतीकों के सभी संयोजनों का उपयोग करते हैं तो न्यूनतम 12-वर्णों के पासवर्ड का उपयोग सुरक्षित होता है। यदि आप विशेष प्रतीकों का उपयोग नहीं कर रहे हैं तो यह पता चला है कि आपको 13 वर्णों को सुरक्षित पासवर्ड लंबाई के रूप में उपयोग करने की आवश्यकता है। यदि आपने इस सिस्टम में NTLM हैश के बजाय Bcrypt हैश विधि का उपयोग किया है, तो 8 अक्षर पर्याप्त होंगे। हालाँकि, आपके पास यह जानने का अवसर नहीं है कि आप वेब पर किस हैश पद्धति से प्रवेश करते हैं, आपका पासवर्ड रखता है। इसलिए आपको सभी संभावनाओं पर विचार करना चाहिए।
सॉफ़्टवेयर डेवलपर्स के लिए मुख्य समस्या यह है कि उपयोगकर्ताओं को कम से कम 12-वर्ण वाले पासवर्ड के लिए राजी करना लगभग असंभव है। आज, यह कहा जा सकता है कि इस लंबाई के पासवर्ड उपयोग की दर कम है। इसलिए, विकसित प्रणाली के उपयोग परिदृश्य के अनुसार, एक मध्य मैदान खोजना आवश्यक होगा जो उपयोगकर्ताओं द्वारा स्वीकार किया जाएगा। उनकी पासवर्ड सुरक्षा में सुधार करने के लिए.
डेवलपर्स के लिए एक अंतिम सुझाव यह है कि आप न केवल न्यूनतम लंबाई की जांच करें, बल्कि आपके द्वारा उपयोगकर्ता को प्रस्तुत किए गए प्रपत्रों के माध्यम से आने वाले इनपुट की अधिकतम लंबाई भी देखें। विशेष रूप से जब आप सुरक्षा के लिए बीक्रिप्ट जैसे धीमी-से-गणना हैश एल्गोरिदम के उपयोग को सक्षम करते हैं उद्देश्यों के लिए, यदि आप दर्ज किए गए पासवर्ड की अधिकतम लंबाई को नियंत्रित नहीं करते हैं, तो आपको कुछ जोखिमों का सामना करना पड़ सकता है प्रयोगकर्ता। उदाहरण के लिए, हमलावर कुछ विशेष रूप से तैयार किए गए अनुरोधों के साथ एक ही समय में 100 हजार वर्णों के दर्जनों पासवर्ड आज़माकर हमले कर सकते हैं। ऐसी स्थिति में, इस बात की अत्यधिक संभावना है कि आपका सिस्टम अन्य उपयोगकर्ताओं के लिए अनुत्तरदायी हो जाएगा।
अंतिम उपयोगकर्ताओं के लिए सलाह
अपने पासवर्ड की लंबाई कम से कम 12 वर्ण बनाएं और ऊपरी और निचले केस अक्षर संयोजन, संख्याएं और प्रतीकों को शामिल करना सुनिश्चित करें। यह कभी न भूलें कि आपके पासवर्ड को संगृहीत करने वाले सिस्टम को हैक किया जा सकता है, और आपकी जानकारी का दुरुपयोग किया जा सकता है। आप यह नहीं जान सकते कि सिस्टम आपके पासवर्ड को एन्क्रिप्ट करने के लिए कौन से एल्गोरिदम का उपयोग करता है, इसलिए सावधानी बरतना और मजबूत पासवर्ड बनाना पूरी तरह से आप पर निर्भर है।