
संभाव्य संदर्भ मुक्त व्याकरण (PCFG) पासवर्ड अनुमान जनरेटर
PCFG = Probabilistic Context Free Grammar (प्रसंग-मुक्त प्रसंभाव्य व्याकरण)
PCFG = Pretty Cool Fuzzy Guesser (बहुत बढ़िया फ़ज़ी अनुमानक)
संक्षेप में: उपकरणों का एक संग्रह जो यह शोध करने के लिए है कि मानव पासवर्ड कैसे उत्पन्न करते हैं। इनका उपयोग पासवर्ड हैश को क्रैक करने के लिए किया जा सकता है, लेकिन सिंथेटिक पासवर्ड (हनीवर्ड) बनाने या बेहतर पासवर्ड शक्ति एल्गोरिदम विकसित करने में मदद करने के लिए भी किया जा सकता है।
प्रशिक्षक: 4.4
अनुमानक: 4.6
PRINCE_LING: 4.3
Password_Scorer: 4.4
Sphinx का उपयोग कोड में डॉकस्ट्रिंग के आधार पर एक डेवलपर गाइड गतिशील रूप से बनाने के लिए किया जाता है। डेवलपर गाइड बनाने के लिए, /doc/INSTRUCTIONS.rst में दिए गए निर्देश देखें।
एक पूर्व-निर्मित डेवलपर गाइड PDF /doc/build/latex/pcfgdevelopersguide.pdf पर भी पाया जा सकता है। ध्यान दें, मैं इस गाइड को प्रमुख रिलीज़ों के बीच पुनर्निर्मित नहीं करूंगा ताकि git इतिहास साफ रहे। यानी PDFs को कमिट करना जल्दी गड़बड़ हो जाता है। इसका मतलब है कि पूर्व-निर्मित गाइड थोड़ा पुराना हो सकता है, इसलिए यदि आप कोड लिखने/संशोधित करने में मदद के लिए इसका उपयोग कर रहे हैं, तो पूर्व-निर्मित गाइड के बजाय स्वयं गाइड बनाने की अनुशंसा की जाती है।
यह परियोजना उपयोगकर्ताओं की पासवर्ड निर्माण आदतों की पहचान करने के लिए मशीन लर्निंग का उपयोग करती है। एक PCFG मॉडल खुलासा किए गए सादे पाठ/क्रैक किए गए पासवर्ड की सूची पर प्रशिक्षण देकर उत्पन्न किया जाता है। इस परियोजना के संदर्भ में, मॉडल को एक नियमसेट (ruleset) कहा जाता है और इसमें प्रशिक्षण के दौरान पहचाने गए पासवर्ड के कई अलग-अलग भाग और उनसे जुड़ी प्रायिकताएं शामिल होती हैं। यह विभाजन PRINCE जैसे अन्य क्रैकिंग उपकरणों के लिए उपयोगी हो सकता है, और/या नियमसेट के कुछ हिस्सों को सीधे अधिक पारंपरिक शब्दकोश-आधारित हमलों में शामिल किया जा सकता है। इस परियोजना में एक PCFG अनुमान जनरेटर भी शामिल है जो प्रायिकता क्रम में पासवर्ड अनुमान उत्पन्न करने के लिए इस नियमसेट का उपयोग करता है। यह मानक शब्दकोश हमलों की तुलना में कहीं अधिक शक्तिशाली है, और परीक्षण में यह साबित हुआ है कि यह औसतन काफी कम अनुमानों के साथ पासवर्ड क्रैक करने में सक्षम है, जितना कि अन्य सार्वजनिक रूप से उपलब्ध तरीके कर सकते हैं। नकारात्मक पक्ष यह है कि प्रायिकता क्रम में अनुमान उत्पन्न करना धीमा है, जिसका अर्थ है कि यह औसतन 50-100k अनुमान प्रति सेकंड बनाता है, जबकि GPU-आधारित एल्गोरिदम तेज़ हैशिंग एल्गोरिदम के खिलाफ प्रति सेकंड लाखों से अरबों (और उससे ऊपर) अनुमान बना सकते हैं। इसलिए, PCFG अनुमानक बड़ी संख्या में नमकीन हैश या अन्य धीमी हैशिंग एल्गोरिदम के खिलाफ सबसे अच्छा उपयोग किया जाता है, जहां एल्गोरिदम की प्रदर्शन लागत अनुमानों की सटीकता से पूरी हो जाती है।
pip3 install chardet का उपयोग करके स्थापित करेंइस रेपो में शामिल डिफ़ॉल्ट नियमसेट RockYou डेटासेट के 1 मिलियन पासवर्ड उपसमुच्चय पर प्रशिक्षण देकर बनाया गया था। RockYou के पूरे 32 मिलियन पासवर्ड सेट पर प्रशिक्षण देकर बेहतर प्रदर्शन प्राप्त किया जा सकता है, लेकिन डाउनलोड आकार को छोटा रखने के लिए इसे शामिल नहीं किया गया। आप बिना किसी नई सूची पर प्रशिक्षण दिए पासवर्ड उत्पन्न करना शुरू करने के लिए डिफ़ॉल्ट नियमसेट का उपयोग कर सकते हैं, लेकिन यह अनुशंसा की जाती है कि आप लक्ष्य पासवर्ड के एक सेट पर प्रशिक्षण दें जो आपके लक्ष्य के करीब हो सकता है। यदि आप अपना स्वयं का नियमसेट बनाते हैं, तो यहां एक त्वरित मार्गदर्शिका है:
python3 trainer.py -t INPUT_PASSWORD_LIST -r NEW_RULESETpython3 trainer.py -t INPUT_PASSWORD_LIST -r NEW_RULESET -c 0.6
b. --save_sensitive: यदि यह निर्दिष्ट किया गया है, तो प्रशिक्षण के दौरान खोजे गए संवेदनशील डेटा जैसे ईमेल पते और पूर्ण वेबसाइटें नियमसेट में सहेजी जाएंगी। जबकि PCFG अनुमान जनरेटर वर्तमान में इस डेटा का उपयोग नहीं करता है, यह वास्तविक पासवर्ड क्रैकिंग हमले के दौरान बहुत मूल्यवान है। यह डिफ़ॉल्ट रूप से बंद है ताकि इस उपकरण को शैक्षणिक सेटिंग में उपयोग करना आसान हो सके। ध्यान दें, भले ही यह बंद हो, फिर भी नियमसेट के अंदर लगभग निश्चित रूप से PII डेटा सहेजा जाएगा, इसलिए उत्पन्न नियमसेट की उचित रूप से रक्षा करें। उदाहरण: python3 trainer.py -t INPUT_PASSWORD_LIST -r NEW_RULESET --save_sensitive
c. --comments: आपके नियमसेट कॉन्फ़िग फ़ाइल में एक टिप्पणी जोड़ता है। यह उपयोगी है ताकि जब आप बाद में इसे देखें तो आपको पता चले कि आपने अपना नियमसेट क्यों और कैसे उत्पन्न किया। आप जिस टिप्पणी को जोड़ना चाहते हैं उसे उद्धरणों में शामिल करें।यह पहले से प्रशिक्षित PCFG नियमसेट का उपयोग करके stdout पर अनुमान उत्पन्न करता है। इन अनुमानों को फिर किसी भी प्रोग्राम में पाइप किया जा सकता है जिसका आप उपयोग करना चाहते हैं। यदि कोई नियमसेट निर्दिष्ट नहीं किया गया है, तो डिफ़ॉल्ट नियमसेट DEFAULT का उपयोग किया जाएगा। इस मार्गदर्शिका के प्रयोजनों के लिए यह माना जाएगा कि उपयोग किया जा रहा नियमसेट NEW_RULESET है।