GENPass:A general deep learning model for password guessing with PCFG rules and adversarial generation

《GENPass:A general deep learning model for password guessing with PCFG rules and adversarial generation》论文阅读记录

摘要

  • 过去的神经网络无法跨网攻击,因为每个数据集都有自己的特点
  • GENPass 从多个数据集中学习特征,通过对抗生成,保证输出的字典在多个不同的数据集上有高的正确率
  • 生成器为 PCFG+LSTM(PL)
  • 从一个数据集学习,跨站猜测中 PL 比LSTM要好;GENPass 比单纯地混合数据集的表现要好

介绍

  • Hashcat 和 JtR 只能产生有限的 wordlist
  • PassGAN 只是在一个数据集上进行测试
  • GENPass 可以从多个数据集中学习特征,并通过对抗生成来确保不同数据集中输出单词列表的准确性
  • PL:
    • 用 PCFG 规则将密码序列替代为标签(单元)序列
      • 一个密码是一个很多单元的组成序列
      • 认为总共有四种类型:分别为字母L,数字D,特殊符号S和换行符
    • 生成模板序列,通过 LSTM 进行序列的预测,生成下个单元
    • 将单元还原回密码字符
    • 每次都选择高权重的数据,会出现大量重复,因此作者设计了一个随机选择算法。方法比较简单,根据候选密码字符的频数,设置一个相应长度的区间,将这些区间首尾相连拼接到一起,再在整个大的区间中随机选择一个数。对 L4 的三个候选和频率—[‘abcd’:4,‘love’:3,‘life’:5],则 abcd 为[0:4)区间,love是[4:7)区间,life是[7:12)区间。在[0,12)中随机选个数字,落到哪个区间就选哪个
  • 不同的数据集的权重,会有不同的规则和长度,相应会有很多个PL预测模型,因此作者设计了GENPass,可以从不同的生成模型进行选择

相关工作

传统的密码猜测方法

  • JTR 和 HashCat——对哈希值的猜测;必须基于给定的密码单词表。单词表的大小意味着破解尝试的上限
  • 马尔可夫模型
  • PCFG

基于神经网络的猜测方法

  • LSTM——限制了密码的结构,不具有普适性
  • PassGAN

模型

PL

  • 将密码处理为单元的序列(PCFG)
  • 训练 LSTM 以预测下一个 unit
  • 翻译回字符序列。其中同一个单元可能对应多个字符序列
  • 根据各个字符序列的权重来随机挑选、
    • $t[i]$为第$i$个候选字符序列频率,则对应一个区间$[\ \sum_{j=1}^{i-1}t[i],\sum_{j=1}^it[i] \ ]$
    • $s$为频率和,生成一个随机数,选择包含随机数区间对应的候选字符序列
      image-20201121114912309

GENPass

  • GENPass从不同数据集产生general worklist

  • 不同数据集有不同的规则和不同的密码长度,因此不能直接混合规则

  • Prediction of model n: n个PL模型

  • Weight Choosing: 每个模型的输出单元可以合并为一个表,作为权重选择的输入,输出为随机的选择结果

  • Classifier:CNN

    • 随机的密码明文训练
    • 同【49】一样—— Z. Xiang, J. Zhao, and Y. LeCun, “Character-level convolutional networks for text classifification,” in Proc. Adv. Neural Inf. Process. Syst.,2015, pp. 649–657.
    • 给一个密码,分类器要能说明这个密码最可能来自哪个数据库。因此会有一个 softmax 层
    • 单独的一个密码不足以捕获特征,因此和前四个生成后的密码结合,一起作为输入
  • Descriminator: 判断是否接受生成的密码。为了生成 general wordlist,需要接受不能明显判别出数据库源头的密码——分类器不能判别的密码。用分类器输出的标准差来评价密码的概括性——标准差不能太大,也不嫩太小,否则重复性高。这里选择了0.2作为阈值

    image-20201121124650933

  • 关于weight choosing,如何选择输出单元:

    • 不能等概率地选择
    • 典型密码集的权重更高
    • 计算权重:
      • 当训练后确定𝑃时,接受密码的标准是KL散度是否小于0.1

实验和评估

  • Myspace 与 phpBB 训练 PL,并与 FLA 做 one-site 测试和 cross-site 测试
  • Myspace 与 phpBB 训练 GENPass,并对比混合两个数据集进行测试的结果
  • 图略

结论