
पासवर्ड अनुमान लगाने के लिए एक डीप लर्निंग दृष्टिकोण (https://arxiv.org/abs/1709.00440)
यह रिपॉजिटरी PassGAN: A Deep Learning Approach for Password Guessing पेपर के लिए कोड संग्रहीत करती है।
PassGAN का मॉडल Improved Training of Wasserstein GANs से लिया गया है और यह माना जाता है कि PassGAN के लेखकों ने अपने काम में improved_wgan_training टेंसरफ़्लो कार्यान्वयन का उपयोग किया। इस कारण से, मैंने इस रिपॉजिटरी में उस संदर्भ कार्यान्वयन को संशोधित किया है ताकि train.py और sample.py से प्रशिक्षित करना और नमूना लेना आसान हो सके। इस रिपो में योगदान:
# requires CUDA 8 to be pre-installed
pip install -r requirements.txt
पूर्व-प्रशिक्षित मॉडल का उपयोग करके 1,000,000 पासवर्ड उत्पन्न करें और उन्हें gen_passwords.txt में सहेजें।
python sample.py \
--input-dir pretrained \
--checkpoint pretrained/checkpoints/195000.ckpt \
--output gen_passwords.txt \
--batch-size 1024 \
--num-samples 1000000
एक बड़े डेटासेट (100MB+) पर मॉडल प्रशिक्षित करने में GTX 1080 पर कई घंटे लग सकते हैं।
# download the rockyou training data
# contains 80% of the full rockyou passwords (with repeats)
# that are 10 characters or less
curl -L -o data/train.txt https://github.com/brannondorsey/PassGAN/releases/download/data/rockyou-train.txt
# train for 200000 iterations, saving checkpoints every 5000
# uses the default hyperparameters from the paper
python train.py --output-dir output --training-data data/train.txt
आपको अपने स्वयं के पासवर्ड लीक और डेटासेट का उपयोग करके प्रशिक्षित करने के लिए प्रोत्साहित किया जाता है। उन्हें खोजने के लिए कुछ बेहतरीन स्थानों में शामिल हैं:
मैंने अभी तक PassGAN पेपर से परिणामों को पुन: उत्पन्न करने के अपने प्रयास का विस्तृत विश्लेषण नहीं किया है। हालांकि, पूर्व-प्रशिक्षित रॉकयू मॉडल का उपयोग करके 10⁸ पासवर्ड नमूने उत्पन्न करके, मैं 80%/20% प्रशिक्षण/परीक्षण विभाजन का उपयोग करके परीक्षण डेटा में 630,347 (23.97%) अद्वितीय पासवर्ड का मिलान करने में सक्षम था।
सामान्य तौर पर, मैं कुछ हद तक आश्चर्यचकित (और निराश) हूं कि PassGAN के लेखकों ने मशीन लर्निंग पासवर्ड जनरेशन डोमेन में पिछले काम का संदर्भ दिया लेकिन अपने परिणामों की तुलना उस शोध से नहीं की। PassGAN के साथ मेरा प्रारंभिक अनुभव मुझे विश्वास दिलाता है कि यह उस पेपर में उल्लिखित RNN और मार्कोव-आधारित दोनों दृष्टिकोणों से काफी कम प्रदर्शन करेगा और मुझे उम्मीद है कि लेखकों ने परिणामों की तुलना न करने का चयन इस कारण से नहीं किया है।
यह कोड MIT लाइसेंस के तहत जारी किया गया है। आप उन शर्तों के तहत इसका उपयोग, संशोधन, वितरण या बिक्री करने के लिए स्वतंत्र हैं।
इस रिपॉजिटरी में कोड का अधिकांश श्रेय @igul222 को improved_wgan_training पर उनके काम के लिए जाता है। मैंने बस उनके कोड को थोड़ा मॉड्यूलर किया है, एक कमांड-लाइन इंटरफ़ेस जोड़ा है, और इसे PassGAN पेपर के लिए विशिष्ट बनाया है।
PassGAN अनुसंधान और पेपर ब्रिलैंड हिताज, पाओलो गैस्टी, ग्यूसेप एटेनिस, फर्नांडो पेरेज़-क्रूज़ द्वारा प्रकाशित किया गया था।