[cryptography] एसएचए -1 पासवर्ड पासवर्ड भंडारण के लिए सुरक्षित है?



Answers

पिछले उत्तरों GPUs का कोई उल्लेख नहीं करते हैं, जो कि SHA-1 हैशिंग को इस हद तक समानांतर कर सकता है कि पूरे डेटाबेस को दिन या सप्ताह के बजाय मिनटों या घंटों में मजबूर किया जा सकता है, भले ही पासवर्ड को नमकीन किया गया हो।

आधुनिक पासवर्ड हैश एल्गोरिदम जैसे कि बीक्रिप्ट या स्क्रिप को विशेष रूप से जीपीयू पर चलाने के लिए मुश्किल होनी चाहिए क्योंकि इस तथ्य के कारण कि वे अधिक उच्च स्मृति आवश्यकताओं वाले ब्लॉक सिफर हैं (और जीपीयू में मेमोरी एक्सेस को समान हद तक समानांतर नहीं किया जा सकता है)। उनके पास "वर्क फ़ंक्शन" भी होता है जो उन्हें फ्लाई पर धीमा कर देता है क्योंकि तकनीक में सुधार होता है।

संक्षेप में, आपको केवल नौकरी के लिए सर्वोत्तम उपकरण का उपयोग करना चाहिए। और एसएचए -1 कला की स्थिति से बहुत कम हो जाता है।

आगे पढ़ने के लिए:

Question

निष्कर्ष: SHA-1 प्रीमीज हमलों के खिलाफ कुछ भी सुरक्षित है, हालांकि गणना करना आसान है, जिसका अर्थ है कि ब्रूटफोर्स या शब्दकोश हमले को माउंट करना आसान है। (एसएचए -256 जैसे उत्तराधिकारी के लिए यह भी सच है।) परिस्थितियों के आधार पर, एक हैश फ़ंक्शन जिसे कम्प्यूटेशनल रूप से महंगा (जैसे कि बीसीआरपीटी) के रूप में डिजाइन किया गया था, बेहतर विकल्प हो सकता है।

कुछ लोग "SHA-1 टूटा हुआ" जैसी टिप्पणियों को फेंक देते हैं, इसलिए मैं समझने की कोशिश कर रहा हूं कि इसका क्या अर्थ है। आइए मान लें कि मेरे पास SHA-1 पासवर्ड हैश का डेटाबेस है, और एक हमलावर है जिसमें कला SHA-1 ब्रेकिंग एल्गोरिदम की स्थिति है और 100,000 मशीनों वाला एक बॉटनेट इसका उपयोग करता है। (100k से अधिक घर कंप्यूटरों पर नियंत्रण होने का मतलब यह होगा कि वे प्रति सेकंड लगभग 10 ^ 15 ऑपरेशन कर सकते हैं।) उन्हें कितना समय चाहिए

  1. किसी एक उपयोगकर्ता का पासवर्ड पता लगाएं?
  2. किसी दिए गए उपयोगकर्ता का पासवर्ड ढूंढें?
  3. सभी उपयोगकर्ताओं का पासवर्ड पता लगाएं?
  4. उपयोगकर्ताओं में से एक के रूप में लॉग इन करने का एक तरीका खोजें?
  5. एक विशिष्ट उपयोगकर्ता के रूप में लॉग इन करने का एक तरीका खोजें?

यदि पासवर्ड नमकीन हैं तो यह कैसे बदलता है? क्या लवण की विधि (उपसर्ग, पोस्टफिक्स, दोनों, या xor-ing की तरह कुछ अधिक जटिल) मामला है?

कुछ googling के बाद, मेरी वर्तमान समझ यहाँ है। यदि मैंने कुछ गलत समझा तो कृपया उत्तर में सही करें।

  • यदि कोई नमक नहीं है, तो इंद्रधनुष हमले तुरंत सभी पासवर्ड पाएंगे (बहुत लंबे समय को छोड़कर)।
  • यदि पर्याप्त लंबे समय तक यादृच्छिक नमक है, तो पासवर्ड खोजने का सबसे प्रभावी तरीका एक क्रूर बल या शब्दकोश हमला है। न तो टकराव और न ही शिकार हमलों को वास्तविक पासवर्ड खोजने में कोई मदद है, इसलिए एसएचए -1 के खिलाफ क्रिप्टोग्राफिक हमले यहां कोई मदद नहीं हैं। इससे कोई फर्क नहीं पड़ता कि एल्गोरिदम का क्या उपयोग किया जाता है - कोई भी एमडी 5 या एमडी 4 का उपयोग कर सकता है और पासवर्ड उतना सुरक्षित होगा (थोड़ा सा अंतर है क्योंकि SHA-1 हैश कंप्यूटिंग धीमा है)।
  • यह मूल्यांकन करने के लिए कि "सुरक्षित रूप से सुरक्षित" कितना सुरक्षित है, आइए मान लें कि एक श्या 1 रन में 1000 ऑपरेशन होते हैं और पासवर्ड में अपरकेस, लोअरकेस और अंक होते हैं (यानी, 60 वर्ण)। इसका मतलब है कि हमलावर 10 15 * 60 * 60 * 24/1000 ~ = 10 17 संभावित पासवर्ड का परीक्षण कर सकता है। एक क्रूर बल हमले के लिए, इसका मतलब है कि सभी पासवर्डों को 3 अक्षरों में 9 अक्षरों तक, सप्ताह में 10 वर्ण तक, एक वर्ष में 11 वर्ण तक का परीक्षण करना होगा। (यह प्रत्येक अतिरिक्त चरित्र के लिए 60 गुना अधिक लेता है।) एक शब्दकोश हमला बहुत अधिक होता है, बहुत तेज (यहां तक ​​कि एक कंप्यूटर के साथ हमलावर भी इसे घंटों में खींच सकता है), लेकिन केवल कमजोर पासवर्ड मिलते हैं।
  • उपयोगकर्ता के रूप में लॉग इन करने के लिए, हमलावर को सटीक पासवर्ड खोजने की आवश्यकता नहीं होती है; एक स्ट्रिंग को खोजने के लिए पर्याप्त है जो उसी हैश में परिणाम देता है। इसे पहला शिकार हमला कहा जाता है। जहां तक ​​मुझे मिल सकता है, एसएचए -1 के खिलाफ कोई प्रीमेज हमले नहीं हैं। (एक ब्रूटफोर्स हमले में 2 160 ऑपरेशन होंगे, जिसका मतलब है कि हमारे सैद्धांतिक हमलावर को इसे खींचने के लिए 10 30 साल की आवश्यकता होगी। सैद्धांतिक संभावनाओं की सीमाएं लगभग 2 60 परिचालन हैं, जिन पर हमले में कुछ सालों लगेंगे।) प्रीमीज हमले हैं नगण्य प्रभाव के साथ एसएचए -1 के कम संस्करणों के खिलाफ (कम एसएचए -1 के लिए जो 80 के बजाय 44 चरणों का उपयोग करता है, हमला समय 2 160 संचालन से 2 157 तक नीचे है)। एसएचए -1 के खिलाफ टकराव के हमले हैं जो सैद्धांतिक संभावनाओं के भीतर अच्छी तरह से हैं ( सबसे अच्छा जो मैंने पाया है वह समय 2 80 से 2 52 तक नीचे लाता है), लेकिन वे नमक के बिना भी पासवर्ड हैश के खिलाफ बेकार हैं।

संक्षेप में, SHA-1 के साथ पासवर्ड संग्रहीत करना पूरी तरह से सुरक्षित लगता है। क्या मैं कुछ भुल गया?

अद्यतन: मार्सेलो ने एक लेख की ओर इशारा किया जो 2 106 परिचालनों में दूसरे प्राथमिक हमले का उल्लेख करता है । ( संपादित करें: जैसा कि थॉमस बताता है , यह हमला एक काल्पनिक निर्माण है जो वास्तविक जीवन परिदृश्यों पर लागू नहीं होता है।) मुझे अभी भी यह नहीं दिख रहा है कि एसएचए -1 के उपयोग के लिए यह एक प्रमुख व्युत्पन्न समारोह के रूप में कैसे खतरे में पड़ता है। क्या आम तौर पर यह सोचने के अच्छे कारण हैं कि टकराव का दौरा या दूसरा शिकार हमला आखिरकार पहले शिकार हमले में बदल दिया जा सकता है?




SHA1 एक संदेश पचाना है , यह कभी भी पासवर्ड-हैशिंग (या कुंजी-व्युत्पन्न) फ़ंक्शन होने का मतलब नहीं था। (हालांकि इसे केडीएफ के लिए बिल्डिंग ब्लॉक का उपयोग किया जा सकता है, जैसे एचएमएसी-एसएचए 1 के साथ पीबीकेडीएफ 2 में।)

एक पासवर्ड-हैशिंग फ़ंक्शन को शब्दकोश हमलों और इंद्रधनुष तालिकाओं के खिलाफ बचाव करना चाहिए। इस लक्ष्य को प्राप्त करने के लिए कई एल्गोरिदम तैयार किए गए हैं।

वर्तमान में, सबसे अच्छा विकल्प शायद Argon2 है । पासवर्ड हैशिंग फ़ंक्शन के इस परिवार ने 2015 में पासवर्ड हैशिंग प्रतियोगिता जीती।

यदि Argon2 उपलब्ध नहीं है, तो केवल अन्य मानकीकृत पासवर्ड-हैशिंग या कुंजी-व्युत्पन्न कार्य PBKDF2 है , जो एक पुराना एनआईएसटी मानक है। अन्य विकल्प, यदि मानक का उपयोग करना आवश्यक नहीं है, तो bcrypt और scrypt शामिल करें

विकिपीडिया में इन कार्यों के लिए पृष्ठ हैं:




फरवरी 2017 तक, एसएचए -1 को अब सुरक्षित नहीं माना जाना चाहिए। Google ने पूर्ण, गैर-कम-दौर वाले SHA-1 ( रिपोर्ट से लिंक ) के खिलाफ टकराव के हमलों के साथ सफलता की सूचना दी है। Google की घोषणा के लिए, यहां क्लिक करें

संपादित करें: जैसा कि दूसरों द्वारा इंगित किया गया है, हैश टकराव के हमलों के लिए पासवर्ड कमजोर नहीं हैं। हालांकि एक सामान्य दिशानिर्देश के रूप में मैं सुरक्षा-संबंधित अनुप्रयोगों के लिए SHA-1 का चयन नहीं करूंगा। वहां बेहतर विकल्प हैं।




Links