2012-07-02 8 views
8

लिंक किए गए पासवर्ड हैश रिसाव के बाद, मैं अपने पासवर्ड हैशिंग को देख रहा हूं। हम Django 1.4 का उपयोग करते हैं जो पीबीकेडीएफ 2 का उपयोग करता है, जो कि बहुत अच्छा है और पिछले SHA1 से एक कदम ऊपर है।आप पीबीकेडीएफ 2 को कितनी तेजी से बल दे सकते हैं?

हालांकि मुझे उत्सुकता है कि कोई भी बल को बलपूर्वक कितना आसानी से कर सकता है। मैं अपने पासवर्ड जटिलता नियमों को देख रहा हूं, और सोच रहा हूं कि यह कितना तेज़ होगा (कहें) 8 लंबाई कम केस असीसी अक्षरों।

लिंकडइन पासवर्ड हैश को क्रैक करने के लिए यह मार्गदर्शिका, क्या कोई GPU पर प्रति सेकंड 430 मिलियन sha1 हैश करता है। http://erratasec.blogspot.ie/2012/06/linkedin-vs-password-cracking.html पीबीकेडीएफ 2 के लिए आपको किस तरह की गति मिलेगी?

क्या किसी के पास कोई भी मोटा/बैक-ऑफ-द-लिफाफा/बॉलपार्क आंकड़ा है जिसके लिए कोई व्यक्ति पीबीकेडीएफ 2 को कितना तेज़ कर सकता है?

+0

यह माना जाता है कि अगर सबसे मजबूत व्यक्ति बलपूर्वक बलपूर्वक नहीं है तो यह सबसे कठिन है। (* और यह इस प्रकार के रूप में डिज़ाइन किया गया है *) मेरे पास कोई आंकड़ा आसान नहीं है, हालांकि। – ZJR

+0

संबंधित http://security.stackexchange.com/questions/12114/aes-encryption-choice-of-password – CodesInChaos

+0

@ZJR PBKDF2 स्क्रिप से ब्रूट-बल के लिए बहुत सस्ता है। – CodesInChaos

उत्तर

9

फरवरी से writeup over at agilebits है जो नैपकिन गणना करता है। संक्षिप्त संस्करण:

एक गेंद पार्क आंकड़ा के रूप में, मैं कहना है 10,000 PBKDF2 पुनरावृत्तियों के दसियों या मिलीसेकंड के सौ ओर जाता है एक बहुत ही उच्च अंत उपभोक्ता प्रणाली के लिए एक पासवर्ड का परीक्षण करने के लिए जा रहा हूँ। हम पीबीकेडीएफ 2 के साथ क्या कर रहे हैं प्रति सेकंड दस लाख परीक्षणों से कुछ सौ तक घट रहा है। यह खाते में विशेष सॉफ्टवेयर है जो एकाधिक कोर और कई GPUs का उपयोग करता है ले रहा है।

तो अपने erratasec लेख कि एक आधार रेखा के रूप में एक GPU पर प्रति सेकंड 430 मिलियन SHA-1 हैश मानक लेने - agilebits लेख मैट्रिक्स कि 10k पुनरावृत्तियों साथ PBKDF2 सुझाव है पता चलता है कि नीचे लाना होगा प्रति सेकंड के आसपास 100k परीक्षण करने के लिए।

सुदूर वैज्ञानिक से

, लेकिन बॉलपार्क में हो जाता है ...

+1

आपने उस हिस्से को याद किया जहां उन्होंने जीपीयू क्रैकिंग के बारे में बात की थी और अनुमान जीपीयू पर ~ 1 मिलियन/सेकंड था। https://blog.agilebits.com/2012/07/31/1password-is-ready-for-john-the-ripper/ अनुमान लगाता है कि मॉड्यूल जल्द ही संशोधित किया जाएगा ताकि यह ग्राफिक का उपयोग कर सके प्रोसेसर इकाइयों (जीपीयू)। यह अनुमान लगाता है, अनुमानित गति 100 गुना से अधिक बढ़ाएगा। नीचे दी गई मेरी तालिका में, मैंने जीपीयू के लिए गति में 200 गुना वृद्धि का उपयोग किया है। इसलिए जहां मैक प्रो पर प्रति सेकेंड लगभग 5000 अनुमान थे, मुझे लगता है कि जीपीयू त्वरण के साथ प्रति सेकंड दस लाख अनुमान होंगे। –

3

PBKDF2 ट्यूनेबल है। आप हमलावर के लिए संभावित अनुमान/सेकंड की संख्या को कम करने के लिए हमेशा लागत मूल्य बढ़ा सकते हैं। मेरी सिफारिश यह तय करना है कि आप अपने प्लेटफॉर्म पर कितनी तेजी से दौड़ना चाहते हैं और तदनुसार लागत मूल्य निर्धारित करें। उदाहरण के लिए, यदि आपको लगता है कि 200 हैश/सेक प्रदर्शन/सुरक्षा में एक आदर्श ट्रेडऑफ है, तो लागत मूल्य बढ़ाएं और परीक्षण करें कि जब तक आप लगभग 200/सेकेंड औसत नहीं हैं, तब तक कुछ हज़ार परीक्षण पासवर्ड हैंश को कितना समय लगता है।

PBKDF2 भी एक "नमक" जो अलग से प्रत्येक व्यक्तिगत खाते हमला करने के लिए हमलावर मजबूर कर स्केलिंग से हमलों से बचाता है उपयोग करता है। खींचने के साथ संयुक्त (यानी एल्गोरिदम को धीमा करना), इससे खातों की एक छोटी संख्या से अधिक पुनर्प्राप्त करना बेहद मुश्किल हो जाता है। एक हमलावर एक खाते पर ध्यान केंद्रित कर सकते हैं और सबसे अच्छा के लिए आशा है कि या प्रत्येक खाते के लिए समय की एक निर्धारित राशि (एक घंटे, एक दिन) को समर्पित करते हैं और फिर अगले एक करने के लिए ले जाने के अगर वह सफल नहीं है।

लिंक्डइन हैश के साथ, लोग एक दिन या उससे कम समय में दस लाख से अधिक हैंश क्रैक करने में सक्षम थे। PBKDF2 पर ~ 200 अनुमान/सेकंड चल रहा है, यह लगभग 9 घंटे लग सिर्फ इस्तेमाल किया 6.5M खातों की जो उनके पासवर्ड के रूप में "लिंक्डइन" पता लगाने के लिए होगा। यदि आप उन सभी हैश के खिलाफ 1,000 आम पासवर्ड की एक सूची चलाने के लिए चाहते हैं, तो इसमें लगभग एक वर्ष लग जाएगा।

3

याद रखें कि bcrypt, scrypt, और PBKDF2/PKCS # 5/आरएफसी 2898 सभी का समर्थन पुनरावृत्तियों की अलग अलग संख्या; कोई भी सहज "तेज़" या "धीमा" नहीं है। कुछ और रैम लेते हैं (पीबीकेडीएफ 2 ज्यादा रैम लेता है), लेकिन यह इसके बारे में है।

जहां तक ​​विशिष्ट में पीबीकेडीएफ 2 पुनरावृत्तियों, एक लोकप्रिय जीपीयू आधारित क्रैकिंग प्रोग्राम एक आधुनिक आउट डेस्कटॉप के साथ संभाल सकता है + 8 जीपीयू 1 मिलियन पर WPA2 के खिलाफ एक सेकंड की कोशिश करता है।चूंकि डब्ल्यूपीए 2 अनिवार्य रूप से पीबीकेडीएफ 2 (एचएमएसी-एसएचए 1, पासफ्रेज, एसएसआईडी, 40 9 6, 256) है, जो हमें बताता है कि एक मशीन प्रति सेकंड 4 बिलियन एचएमएसी-एसएचए 1 पीबीकेडीएफ 2 पुनरावृत्तियों से कुछ हद तक परीक्षण कर सकती है। दस ऐसी मशीनें, प्रति सेकंड 40 अरब से अधिक पुनरावृत्तियों का परीक्षण करेंगे।

OWASP पासवर्ड शीट (https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet) धोखा 2012 में कम से कम 64,000 पुनरावृत्तियों सिफारिश की गई है, हर दो साल में दोगुना करने, या ऐसे Bitcoin खनन में इस्तेमाल के रूप में 2013

3

विशिष्ट हार्डवेयर में 90,510 पुनरावृत्तियों,, 50 बिलियन से अधिक प्रदर्शन कर सकते हैं प्रति सेकंड हैश (2013 की शुरुआत में। यह एक चलती लक्ष्य है क्योंकि हार्डवेयर तेजी से हो जाता है)।

यदि आप पीबीकेडीएफ 2 के 1,000 पुनरावृत्तियों करते हैं तो यह हमले को 50 अरब प्रति सेकेंड से 50 मिलियन प्रति सेकेंड तक घटा देगा। 10,000 पुनरावृत्तियों प्रति सेकंड 5 मिलियन होगा।

हालांकि एक सामान्य वेब सर्वर उस उपवास के पास कहीं भी नहीं होगा। यह बहुत आपके लिए धीमा होने जा रहा है। आपको अपने उत्पादन सर्वर पर कुछ परीक्षण करने की आवश्यकता है और 10,000 पुनरावृत्तियों को बहुत धीमा कर सकता है।

तो यह वास्तव में नहीं है कि पीबीकेडीएफ 2 को कितनी तेजी से बल दिया जा सकता है, यह तेज़ है कि आपका सर्वर एक पीबीकेडीएफ 2 पासवर्ड सत्यापित कर सकता है। आपको यह तय करने की ज़रूरत है कि आपको कितना समय लगता है कि इसे लेना चाहिए (आधे सेकेंड? सेकेंड का दसवां? दूसरा का सौवां?) और उसके बाद पीबीकेडीएफ 2 राउंड की संख्या को समायोजित करें।

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

पासवर्ड मानना ​​एक शब्दकोष (अधिकांश पासवर्ड हैं) में नहीं है, तो पासवर्ड की ताकत की गणना प्रत्येक वर्ण के लिए वर्णमाला में संभावित वर्णों की संख्या को गुणा करके गुणा करके की जाती है। तो यदि किसी पासवर्ड में अक्षरों (26 वर्ण वर्णमाला) और अंक (10 वर्ण) हैं तो आपके पास 36 वर्ण वर्णमाला है, और यदि यह 6 वर्ण लंबा है तो आप इसे 6 बार गुणा करें।

तो 6 अंकों का अल्फान्यूमेरिक पासवर्ड 36 * 36 * 36 * 36 * 36 * 36 है, या यदि आप पसंद करते हैं: 36^6। इससे आपको 2.1 बिलियन संभावित पासवर्ड मिलते हैं ... आम तौर पर हम मानते हैं कि हैकर को वास्तविक पासवर्ड लगभग आधा रास्ता मिल जाएगा, इसलिए इसे 1 बिलियन कॉल करें।

यदि आप पीबीकेडीएफ 2 का उपयोग कर रहे हैं और 1,000 पुनरावृत्तियों हैं, तो विशेष हार्डवेयर वाले हैकर लगभग 20 सेकंड में 1 बिलियन पासवर्ड अनुमान लगाएंगे। यह बिल्कुल अच्छी सुरक्षा नहीं है।

आप या तो पीबीकेडीएफ 2 (जो आपकी वेबसाइट को धीमा कर देगा) के अधिक राउंड का उपयोग करके या बेहतर उपयोगकर्ताओं के लिए अपने पासवर्ड को समझाने के द्वारा सुरक्षा में सुधार कर सकते हैं। बस 6 के बजाय 7 अंकों पर स्विच करके, या ऊपरी केस अक्षरों या यहां तक ​​कि प्रतीकों को जोड़कर, वे नाटकीय रूप से उनकी सुरक्षा में सुधार करेंगे।

वुल्फ्राम अल्फा गणित करने के लिए उपयोगी है: ((36^6)/50 million) seconds जहां 36 वर्णमाला का आकार है और 6 पासवर्ड की लंबाई है, और 50 मिलियन प्रति सेकेंड अनुमानों की संख्या हैकर एक हैकर उपयोग कर सकता है (50 मिलियन एक है 1,000 राउंड के साथ पीबीकेडीएफ 2 के बाद गंभीर हमलावर जा रहा है)।

आपके डेटाबेस में कितने पासवर्ड हैं? यदि व्यक्तिगत पासवर्ड को तोड़ने में 20 सेकंड लगते हैं, तो क्या मुझे 30 दिनों का गणित या 30 साल लगेगा? यह निर्भर करता है कि आपके पास कितने ग्राहक हैं।

संबंधित मुद्दे