欢迎光临
我们一直在努力

密码猜测的深度学习方法:PassGAN

   最先进的密码猜测工具(如HashCat和John the Ripper(JTR))使用户能够根据密码哈希每秒检查数十亿个密码。除了直接的字典攻击之外,这些工具还可以使用密码生成规则来扩展字典。虽然这些规则在当前的密码数据集上表现良好,但为新数据集创建新规则是一项艰巨的任务,需要专门的专业知识。

PassGAN使用一种利用生成敌对​​网络(GAN)来增强密码猜测的新技术。PassGAN通过在泄漏密码列表上训练GAN来生成密码猜测。由于GAN的输出密集分布于其训练集,因此使用PassGAN生成的密码可能会匹配尚未泄漏的密码。PassGAN代表了基于规则的密码生成工具的重大改进,因为它从密码数据而不是通过手动分析自主推断密码分发信息。因此,它可以毫不费力地利用新的密码泄漏来生成更丰富的密码分布。

我们的实验表明这种方法非常有前途。当我们在两个大型密码数据集上评估PassGAN时,我们能够以2倍的因子超越JTR的规则,并且我们与HashCat的规则相比具有竞争力 – 在2倍的因子范围内。更重要的是,当我们将PassGAN的输出与HashCat的输出相结合时,我们能够比单独的HashCat多匹配18%-24%的密码。这是显着的,因为它表明PassGAN可以生成相当多的密码,这些密码对于当前工具来说是无法接近的。

PassGAN模型取自  Wasserstein GAN的改进培训,  并假设PassGAN的作者 在他们的工作中使用了  改进的 _wgan_training tensorflow实现。出于这个原因,我修改了该存储库中的参考实现,以便于从中训练(train.py)和sample(sample.py)。这个回购贡献:

  • 一个命令行界面
  • 在RockYou数据集上训练的预训练PassGAN模型

入门

#需要预先安装CUDA
pip install -r requirements.txt

生成密码样本

使用预训练模型生成1,000,000个密码,并将其保存到  gen_passwords.txt

python sample.py \
	--input-dir pretrained \
	--checkpoint pretrained / checkpoints / 195000.ckpt \
	- 输出gen_passwords.txt \
	- 批量大小1024 \
	--num-samples 1000000

 

培训你自己的模特

在GTX 1080上训练大型数据集(100MB +)模型可能需要几个小时。

#下载rockyou培训数据
#包含80%的完整rockyou密码(带重复)
#10个字符或更少
curl -L -o data / train.txt https://github.com/brannondorsey/PassGAN/releases/download/data/rockyou-train.txt

#训练200000次迭代,每5000次保存检查点
#使用纸张中的默认超参数
python train.py --output-dir输出--training-data data / train.txt

鼓励您使用自己的密码泄漏和数据集进行培训。一些伟大的地方可以找到这些包括:

赞(0) 打赏
未经允许不得转载:IT新闻网 » 密码猜测的深度学习方法:PassGAN
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏