从短密码中分析规律以有效攻击长密码


真名:TransPCFG: Transferring the Grammars From Short Passwords to Guess Long Passwords Effectively
对这篇论文的翻译和概括,写一个简单一点的粗略版,给大家讲个大意就行

前置信息

文章中的Grammer是指得NLP里面的,文章的短密码训练用的方法经常用在NLP中,这里仍然沿用了NLP的说法
基于CFG方法的优化词典猜测方法->PCFGS,这里的CFG就是上下文无关语法,这个方法也就叫概率上下文无关语法
可以粗略理解为,将一句话的所有单词排列组合,每个单词对应一个

摘要

长密码现在越来越流行,但是目前对长密码的破译还都是基于大数据,基于大火的深度学习和机器学习的自学能力来进行模拟猜测,文中提到了一个方法叫做PCFGS,这里可以看做就是我们学过的决策树,是目前最好的破译密码的方法,但是对于长密码没有足够的数据依旧束手无策,本文提出来了一个改进算法,也就是TransPCFG,核心想法就是将短密码中的知识(即PCFGS中的语法)传递给长密码的猜测。然后发现结果挺好的。此外,他们还发现,长密码是指的拥有更多个段的长密码会更有抵抗力,而不是单纯的字符多,建议是分多个短。

介绍

就是说当前还是密码运用在各个领域,服务商能做的通常就是推荐长密码。因为长密码会大大增加暴力破解的运算几何量。只有少数学术研究[30]检验了为猜测长密码而优化的算法,在长密码猜测的实际有效性及其组成指南建议上留下了改进的空间。
有效猜测长密码的一个主要挑战是缺乏在现实世界中泄露的长密码,就是数据少,训练效果就不好,显而易见。
然后他们发现了一个现象,就是长密码大多数从短密码加工而来的,所以他们将短密码训练结果拿过来作为基础,然后破译长密码,也就是将PCFGS中的知识(即语法)从短口令中转移出来,以方便基于PCFGS的长口令猜测。 这里的知识转移思想在概念上类似于转移学习[40],它利用在更大的数据集中学习的知识来解决另一个数据不足的领域的问题。

深度学习中在计算机视觉任务和自然语言处理任务中将预训练的模型作为新模型的起点是一种常用的方法,通常这些预训练的模型在开发神经网络的时候已经消耗了巨大的时间资源和计算资源,迁移学习可以将已习得的强大技能迁移到相关的的问题上。

详细一点就是,我们提出的TransPCFG从短密码训练的PCFGS(简称PCFGSHOT)中提取并传输有效语法到长密码训练的PCFGS(简称PCFGLONG)中。 Transpcfg中传递的语法主要有四种:数字语法、特殊语法、字母语法和结构语法。 TransPCFG进行两种类型的知识转移:TransPCFG I将数字语法、特殊语法、字母语法从PCFGSHOT转移到PCFGLONG。 TransPCFG II根据PCFGSHOT的结构调整PCFGLONG结构的概率,在TransPCFG I中,我们动态地传递从短密码中学习到的有效文法,以达到更好的猜测效率。 Transpcfg i不是传输所有语法,而是在语法长度正好等于短密码时传输语法,从而删除多余的语法。

主要贡献总结如下。

  • 有效猜测长密码的框架。 基于两个观察结果:
    (一)长密码通常很少
    (二)长密码部分由短密码创建,并且包含了短密码的知识,
  • 我们提出了一个基于PCFG的高效长密码猜测框架TranspCFG。 在长密码猜测场景中,TRANSPCFG优于PCFGS、Markov和LSTM模型。 在一个10e14个猜测的离线猜测场景中,我们以16个字符的密码为例:Transpcfg中的Transpcfg I平均可以泄露23.30%的密码。 Transpcfg i比PCFG_v4.1的平均性能高出56.10%,这突出表明服务提供商可能高估了长密码的强度。
  • 长密码组合策略的实证评估。 我们发现长密码中的段数对于抵抗这些高效的离线猜测攻击起着重要作用。 因此,为了安全起见,我们建议用户创建包含四个或更多段的长密码。 目前,大多数密码只包含两个段,有很大的改进空间。

选题背景及相关工作

相关工作

  1. 长密码安全性:虽然已经有了不少研究表明长密码安全,但是长密码的安全性在很大程度上仍未得到充分的研究。
  2. 密码组合策略:密码组合策略是一组旨在指导用户创建抗猜测密码的规则。现在仍有缺陷,建议对长密码组合策略引入进一步的要求。

数据驱动的密码猜测方法

密码猜测的最初形式是一种简单的蛮力攻击[24]。 随着时间的推移,字典攻击和彩虹链[27]被提出来提高破解率。 随后,研究者们提出了几种数据驱动的密码猜测方法,包括概率上下文无关文法(PCFGs)[38]、Markov[22]、[25]、LSTM[23]模型。 这些方法基于密码数据集建立猜测模型,并按降序生成候选密码。 这些候选密码最终用于与目标密码进行比较以进行破解。
一个PCFGS方法可以分为三个阶段:训练阶段、生成阶段和猜测阶段。 在训练阶段,PCFGS方法从训练数据中生成包括gDigits、gSpecial、gletters和gStructures的语法。 在生成阶段,PCFGS方法根据计算出的概率降序生成基于文法的候选密码。 最后,PCFGS方法将生成的候选密码与测试数据中的目标密码进行比较,计算出破解率。 候选密码的概率是所涉及文法概率的乘积。 例如,候选密码123456AB12345678的概率计算如下:
在这里插入图片描述

数据集设置

对数据集进行了处理,得到了一些结论

  • 基于长度的密码分配:在三个数据集中,根据长度的密码分配显示了类似的趋势:较长的密码所占的比例较小。
  • 找到了各个数据的常用密码长度
  • 找到了各个数据的常用密码结构

长密码中包含的复用短密码知识

用户在创建长密码时通常遵循一些模式,例如,将两个短密码连接起来创建一个长密码,密码越长,在这些长密码中包含的短密码的重用知识就越多。

介绍TransPCFG的设计

在这一节中,我们介绍了TransPCFG的设计,它由III-A节中描述的TransPCFG I和III-B节中描述的TransPCFG II组成,在PCFGS中传递不同的语法。
TransPCFG分为三个阶段,即预训练、传输和猜测(如图3所示)。 在预训练阶段,TRANSPCFG基于特定长度为L的长密码训练PCFGs(PCFGLONG),基于长度为1~(l-1)的短密码训练PCFGs(PCFGSHORT)以获得语法。
在转移阶段,Transpcfg将不同的语法从pcfgshort转移到pcfglong:

  • (i)transpcfg i用pcfgshort中有效的gdigits、gspecial和gletter补充pcfglong。 我们假设在PCFGShort中,当文法长度与短文法长度相等时,GDigits,GSpecial和Gletters是有效的。 因此,对PCFGLONG中的这些语法进行了相应的补充。
  • (ii)TransPCFG II利用两种方法根据PCFGSHOT中的GStructures调整PCFGLONG中GStructures的概率。 TransPCFG II的方法不同于TransPCFG I的直接补充,因为PCFGLONG的结构只能从password-long中获得。 在猜测阶段,Transpcfg利用这些转移的语法来猜测长密码,即基于Transpcfg的猜测。

A TransPCFG I: The Design

transpcfg i用类似的方法传输gdigits和gspecial(transpcfg i’)和gletters(transpcfg i’')。 分离是因为我们的目的是检查不同字符类在传输过程中的表现,为了简单起见,数字和特殊字符被组合在一起,因为gspecial的数量很少。
此外,gdigits、gspecial和gletters在PCFG_v4.1中的处理方式也不同。 主要区别如下:

  • i)Gletter的训练和生成阶段都涉及到小写和大写字母两个实例,而gDigits和gSpecial只包含一个数字或特殊字符实例。
  • ii)gdigits和gspecial只能从训练数据中获得,而gletters可以从训练数据和外部词典中获得,如DICT-0294[1]。 因此,Transpcfg i将gdigits和gspecial作为Transpcfg i’一起传输,并将gletters作为Transpcfg i’'传输。
    在这里插入图片描述

1) TransPCFG I’

transpcfg i’:如图4所示,Transpcfg i’通过相同的步骤将gdigits和gspecial从pcfgshort传输到pcfglong。 TransPCFG I面临两个关键挑战:

  • (1)从PCFGshort中选择有效的gDigits和gSpecial;
  • (2)将它们与PCFGLONG中的gDigits和gSpecial相结合。

传送gDigits

Transpcfg i’从相应的密码-n中选择gdigits的文件-n作为有效的gdigits,然后将这些有效的pcfgshort文件-n与pcfglong文件-n相应地组合起来。 password-n训练的PCFGS以gdigits生成许多文件,如文件1…文件-5…到文件-n。 Transpcfg i‘动态地选择一个文件,即file-n,作为有效文件,因为我们假设当gdigits的长度正好等于训练数据的长度时,gdigits往往更有效。 这一假设背后的基本原理是,这些选定的语法涵盖了全部训练数据,这可能导致高效的gDigits。 这里,我们将少于六个字符的所有密码合并为一组训练数据。 具体地说,Transpcfg i’选择从少于6个字符的训练数据中获得的文件-1、…、File-5,因为大多数网站如RockYou和CSDN采用密码组合策略,要求密码长度至少为6。 此策略导致少于六个字符的密码比例非常小,如图2所示。
在这里插入图片描述
然后,Transpcfg i’将这些从pcfgshort中选择的有效文件-n与pcfglong中的相关文件-n结合起来,如算法1所述。 首先,我们给PCFGLONG中的file-n的概率分配一个权值,给PCFGSHOT中的file-n分配一个权值,然后给PCFGSHOT中的file-n分配1-权值,然后TransPCFG I’将这些从PCFGSHOT中选择的file-n与PCFGLONG中的file-n合并,根据权值重新计算合并的概率。 由于权重与PCFGLONG中的训练数据个数正相关,并且是一个介于0和1之间的实数,我们设计了一个如公式1所示的Sigmoid函数的变分。 x是指PCFGLONG中的训练数据的数量。
在这里插入图片描述

在这里插入图片描述

以短口令集{123456、654321、12345678、87654321、ABCD6666666、AB8888888}和长口令{123456AB12345678}为例,说明传递gDigits的过程(如图5所示)。

  • 首先,PCFGLONG对长密码123456AB12345678进行训练,得到包含两个文件的gDigits。 每个文件中的内容包括数字实例及其对应的概率:{file-6:(123456,1);file-8:(12345678,1)}。
  • 然后,PCFGShort分别训练password-6、password-8和password10,得到每个长度的gdigits。
  • 然后,来自PCFGShort的gDigits中的内容如下:{file-6:(123456,0.5),(654321,0.5)}从Password-6获得;{file-6:(6666666,1)}从Password-10获得;{file-8:(12345678,0.5),(87654321,0.5)}从Password-8获得;{file-8:(888888888,1)}从Password-10获得。
  • 其次,Transpcfg i’选择从password-n获得的文件-n,与从pcfglong获得的gdigits中的文件-n组合。
  • 在我们的示例中,Transpcfg i’选择从password-6获得的文件-6和从password-8获得的文件-8与来自PCFGLONG的gDigits组合。
  • 因此,组合的gdigits是{file-6:(123456,1weight+0.5(1-weight));(654321,0.5*(1-weight));file-8:(12345678,1weight+0.5(1-weight));(87654321,0.5*(1-weight))}。
  • transpcfg i’根据等式p(new)=p(long)weight+p(short(1-weight))重新分配概率。
  • 应该预先为每个长长度密码计算权重。 这里,权重是公式1,因为长密码的数量是1。
  • 请注意,Transpcfg i’对于要传输的gdigits中的文件-n具有高度选择性。
  • 详细地说,Transpcfg i’只以从相应的密码-6和密码-8获得的gdigits形式传输文件-6和文件-8。 即使存在从密码-10获得的文件-6和文件-8,Transpcfg i’也不会传输这些gDigits。

转移gspecial

按照与传递gDigits类似的步骤,我们使用相同的加权策略将从password-n中获得的gSpecial的文件-n与PCFGLONG中对应的文件-n结合起来。
2)TransPCFG I“:为了转移Gletter,TransPCFG I”从PCFGShort收集Gletter。 与TransPCFG I’中相同,当从短密码中挑选gletter时,只选择覆盖完整密码的gletter,例如从password-8中获得的8个字符的字母。 TransPCFG i’'根据重量将这些选定的Gletter与PCFGLONG的Gletter结合在一起。 Transpcfg I是Transpcfg I‘和Transpcfg I’的组合,是带有转移的gdigits、gspecial和gletters的PCFGS。

2) TransPCFG I’’

为了传输Gletter,Transpcfg i’'从PCFGShort收集Gletter。

与TransPCFG I’中相同,当从短密码中挑选gletter时,只选择覆盖完整密码的gletter,例如从password-8中获得的8个字符的字母。 TransPCFG i’'根据权重将这些选定的Gletter与PCFGLONG的Gletter结合在一起。 Transpcfg I是Transpcfg I‘和Transpcfg I’’的组合,是带有转移的gdigits、gspecial和gletters的PCFGS。

B. TransPCFG II:The Design

与gdigits、gspecial和gletters不同,Transpcfg II不能直接从pcfgshort中借用有效结构,因为长度为n的gstructures只能从password-n中获得。 TransPCFG II在传递gstructures时,旨在根据pcfgshort中的结构调整pcfglong中的结构概率。

在TransPCFG II中,有两个挑战需要克服:

  • (1)选择需要概率调整的特定结构;
  • (2)调整选取的概率

第一个挑战

方法一

为了解决第一个挑战:

  • 方法1从PCFGLONG获得的GStructures中选择前10%的结构,
  • 方法2根据设计选择structure。 为了调整所选结构的概率,TRANSPCFG II使用Zipf定律,这被称为Pareto或幂律分布,并被提出来建模自然语言中的秩-频关系[26]。 在Zipf定律中,给定一个密码语料库,一个密码的频率与它的等级近似成反比。 因此,根据Zipf定律,我们模拟了当结构的秩r与频率fr成反比时结构的概率。 具体来说,每个结构的秩r和频率fr在数学上总体上遵循方程2,其中c是一个常数,取决于具体的语料。 由于概率在[0,1]中,我们将c设为1来模拟每个结构的概率。 [37]报道称,Zipf定律很好地描述了密码的偏斜分布。

在这里插入图片描述
TRANSPCFG II方法1。 如图6所示,method-1包括两个步骤:
在这里插入图片描述

  • (1)将password-l前10%的结构拆分为两个短结构;
  • (2)根据得到的两个短结构和Zipf定律调整前10%结构的概率。 在第一步中,方法1将password-L的前10%的结构拆分成两个短结构,
  • 例如,从password-M的gstructures中得到的STRm和从password-N的gstructures中得到的STRn,m和n的长度满足m+n=l,然后方法1选择Psum最高的对,其中rm表示strm的秩,rn表示strn的秩。
    在这里插入图片描述
    第一步背后的原因是,具有最高Psum的分裂对可以更准确地表示分裂成两个短结构的长结构。 由于方法1根据Zipf定律模拟了短结构的概率,所以形式C/r近似地表示了概率。 分裂对有l-1种,它们分别是(str1,strl-1),(str2,strl-2),…,(strl-2,str2),(strl-1,str1)。 方法-1选择一个具有最大概率的分裂对,暗示了构建长结构的高潜在能力。 在第二步中,方法1将来自password-L的原始概率视为1 /rL,然后将password-L的原始概率更新为由等式4计算的新概率
    在这里插入图片描述
方法二

在这里插入图片描述

与方法1调整前10%结构的概率不同,方法2选择需要概率调整的特定结构,然后更新它们的概率。 如图7所示,方法2包括两个步骤:第一步是根据短结构选择特定的结构。 具体地,方法2根据概率降序对每个短长度(1~L)的结构进行分类。 然后,方法2将两个短长度的前N个结构串联起来,生成password-l的串联结构。 注意,Method-2删除了不在原始PCFGLONG中的结构中的结构,认为它们是无效的。 方法2最后选择前T个生成结构作为最终选择的结构来调整概率。 然后,方法2根据公式3和公式4重新分配这些选定结构的概率。 请注意,rm和rn指的是串联起来生成长结构的短结构的序列。

以猜测密码-16时n=10和t=100为例,说明方法-2的程序。 从str1到str15,有15组短结构串联((str1,str15),(str2,str14),…,(str14,str2),(str15,str1))。 每组将两对排列在n=10前的短结构串联起来,生成100(10×10)个串联结构。 方法-2总共得到1500个(15组)级联结构。 然后方法-2将1500个串联结构与Password-16中的现有结构进行比较,并删除不在现有结构中的结构。 以图7为例,说明一些串联结构是如何被移除的。 方法2将连接的结构与来自密码-16的原始结构进行比较,然后删除D8L8和L11D5,因为这两个连接的结构不包括在来自密码-16的原始结构中。 方法-2根据T=100个结构的总结模拟概率,选择T=100个结构。 为了简化评估,方法2选择n=10,t=100来显示结果。 然后方法2用公式3和公式4重新分配概率。 通过这一步,顶部t=100的结构被赋予更高的概率。 根据短结构和Zipf定律,这100种结构的概率大大增加。 最后,对所有概率进行归一化,保证概率之和为1。 在这里,我们通过在两个短密码的基础上重新分配顶级密码的概率,给出了TransPCFG II中的两种启发式方法,尽管TransPCFG II中的改进很小。

评价TRANSPCFG的效率

在本节中,我们详细介绍了TransPCFG针对Password-15、Password-16和Password-17的实验设置和经验评估。 我们分别说明了IV-A中的实验设置,TRANSPCFG I和TRANSPCFG II在IV-B和IV-C中的评价。

A.实验环境

我们使用一台配置为i7-8700、32GB DDR3 DRAM和1TB硬盘的主机来评估TransPCFG的效率。 我们的PCFGS实现基于PCFG_v4.1的最新版本,它将生成的候选密码存储在160GB、170GB、180GB的磁盘空间中,分别针对密码-15、Password-16和Password-17。

  • 1)实验设置:在实验中,我们用表五所示的长口令训练数据来评估TransPCFG的效率。为了排除非均匀训练数据的影响,我们采用了随机抽样的方法。 然后,我们采用了一种K-折叠交叉验证方法。 这里,K是四。 在细节上,我们随机地将密码分成四个折叠。 然后,我们采用其中的任意三个作为训练数据,剩下的一个作为测试数据。 在评估过程中,我们使用Monte Carlo方法[6]给出了大量猜测下的结果,并证明了当猜测次数增加时的正确性。
  • 2)评估中的猜测方法:我们进行了一系列实验来比较TransPCFG和目前最先进的猜测方法。

方法

  • transpcfg:transpcfg有两种方法:transpcfg i根据传输的语法猜测长密码,包括transpcfg i’(gdigits,gspecial)和transpcfg i’(gletters)。 Transpcfg II猜测具有转移结构的长密码。

  • PCFGS:我们将TranspCFG与PCFG_v4.1进行比较,后者是PCFGS的最新版本,性能优于PCFG_v0。

  • 马尔可夫模型:马尔可夫模型是一种与上下文相关的概率密码猜测方法。 在本节中,我们参考了用拉普拉斯平滑实现前人的工作[25],因为该原理在概念上与预兆模型[7]相似,预兆模型是一种改进的马尔可夫模型,具有显著的猜测速度。

  • LSTM模型:LSTM模型也是2016年提出的基于神经网络的高效密码猜测模型[23]。 我们使用Research[23]中的默认配置(hidden_marge=128,training_chunk=128,layers=1,model_optimi zer=ADAM)。

B.对TRANSPCFG的评价

在这里插入图片描述
如图8所示,TranspCFG i在离线猜测场景中的性能优于上述方法。 我们总结实验结果如下:

  • 在长密码猜测场景中,TranspCFG I的性能明显优于PCFGS。 以Password-16为例,TransPCFG I与PCFGS相比,效率平均提高了56.10%(在CSDN、RockYou和000WebHost上分别提高了48.90%、119.30%、0.10%)。 这些结果表明,PCFGSHOT中的gDigits、gSpecial和gletters语法可以显著地促进长密码的猜测。
  • TransPCFG I的性能明显优于Markov和LSTM模型。 Markov模型在长密码猜测场景中表现更差。 例如,Markov不能在10e14次猜测下猜测RockYou中的密码-16。 类似地,Transpcfg i在Guess Password-16时的平均性能比LSTM模型高出约8倍。

  • 服务提供商可能高估了长密码的强度。 Transpcfg I对CSDN、RockYou和000WebHost中的-16密码的折衷率分别为24.80%、37.41%、7.70%(平均23.30%)。 另外,Transpcfg i在Rockyou中的10e14次猜测下破解了47.82%的密码-15和25.70%的密码-17。

  • 长密码训练数据的个数对TransPCFG I的猜测效率有重要影响。在000WebHost上,我们发现TransPCFG I和PCFGS的猜测效率是相似的。 然后我们观察到000WebHost有更多的长密码(如表V所示),这可能会导致微小的改进。 为了确定原因,我们在000WebHost中对训练数据进行随机下采样来猜测长密码,提高了改进效果。 我们在IV-B.1节中说明了实验细节。 总之, TransPCFG I的性能更好,特别是在数据集稀少的猜测场景下。

  • 另外,我们观察到,000WebHost的猜测效率和Password-16的改进都比较小(仅破解7.7%的Password16),而PCFGS仅提高了0.10%。

  • 原因可能是000WebHost的密码-16包含许多从PasswordManagers生成的随机密码。

  • 首先,密码-16中的小写和大写字母在000WebHost中均匀分布。 例如,小写字母占计算的54.92%。 而在000WebHost的密码-15和密码-17中,小写字母分别占86.88%和91.93%。 结果表明,小写和大写字母几乎是均匀分布的,这很可能是随机选择的结果。

  • 其次,000WebHost的Password16包含的常用词较少。 我们使用包含972个最常见单词的WordList3(我们删除长度小于3的单词,如“a”和“i”,以减少误报)来计算包含这些常见单词的密码比例。 此类密码在密码-15和密码-17中所占比例分别为32.46%和37.56%,而在密码-16中所占比例为12.98%。 在CSDN(24.70%)和Rockyou(50.02%)中包含常见密码的密码-16所占比例最小。

  • 考虑到以上两点,我们认为000WebHost的密码-16中存在大量随机生成的密码,导致效率低下。 我们注意到,几乎10%的密码–在000WebHost中有17个是在一次猜测下被猜测出来的。 猜出的密码是YFDBUFNJH10305070,这是在000WebHost中最流行的的密码-17,并占此类密码的8.95%。 然而,密码在其他数据集中是统一分布的。 这种现象揭示了某些密码是由000WebHost中的机器随机生成的。

  • 总之,Transpcfg i在长密码猜测场景中表现最好,尤其是在数据很少场景下。

  • 1)在000WebHost中的进一步实验:在000WebHost中的改进(TransPCFG I vs PCFGS)相对较小(如图8所示)。 我们争辩说,结果是由于000WebHost中的大量训练数据。 请注意,RockYou和CSDN中的password-16的数量很少,但000WebHost中的password-16的数量比RockYou中的数量多6倍,比CSDN中的数量多20倍,如图V所示。为了确认原因,我们在000WebHost中尝试使用更少数量的训练数据来猜测长密码。 我们将000WebHost中的训练数据降至CSDN和RockYou中的训练数据量,并重复TransPCFG I中的步骤。改进(TransPCFG I vs PCFGS)如表VI所示。 从表VI中,我们可以得出结论,000WebHost中的改进随着训练数据的数量变小而增加。 考虑到CSDN的训练数据量最小,并且在Password-15、Password-16和Password-17的三个数据集中,CSDN的改进总是最好的,我们得出结论,随着训练数据量的减少,TranspCFG I取得了更好的性能。 也就是说,Transpcfg i适用于训练数据不足的猜测场景,如长密码猜测。 具体地说,训练数据集越小,TranspCFG I实现的改进就越多。

在这里插入图片描述

TransPCFG改进背后的原理

  • 首先,长密码数量少使得PCFGS的语法相对无效。 在TransPCFG I中,从短密码中补充了这些有效的gdigits、gspecial和gletters后,文法趋于有效。其次,由于大量猜测可以枚举更多文法,所以在大量猜测的情况下,文法的改进更加明显。 PCFGS是一种统计概率的猜测方法,它依赖于有效文法的数量,特别是在大量猜测的情况下,因此所传递的文法往往更有效。

  • Transpcfg通过使用短密码的知识来提高长密码猜测的效率来解决这个问题。 由于即使在当前的大数据时代,真实密码仍然稀缺,因此需要这样的知识转移来有效提振数据规模,这对数据驱动猜测的效率至关重要。 Passwords有助于长密码猜测,原因如下:Markov模型,一种上下文依赖模型,在猜测长密码时包含了短密码的知识。 然而,概率上下文无关模型PCFGS几乎没有利用短密码的知识,因此补充这些知识可以有效地帮助长密码的猜测。

  • 2)Transpcfg I“和Transpcfg I”的评估:我们评估Transpcfg I的详细信息,包括Transpcfg I“和Transpcfg I”,密码为-16。 在我们进行评估TransPCFG I‘的实验之前,我们根据长密码训练数据的数量,根据等式1预先计算长密码的权重,例如,CSDN中的36,620个Password-16 Shown in table V。TransPCFG I’将PCFGSHORT中的gDigits和gSpecial文法大量补充到PCFGLONG中的相应文法。 类似地,Transpcfg i’'将PCFGSHOT中的大量gletter补充到PCFGLONG中的相关字母。 在RockYou数据集中,来自PCFGSHOT的最大Gletter数为3,532,938。 我们在表七中详细显示了转移数据的信息。 正如ShownInfigure9所示,Transpcfg i“产生了比Transpcfg i更好的改进”。 结果表明,Gletter,即字典,比gdigits或gspecial字符在猜测长密码方面发挥了更重要的作用。 原因可能是用户倾向于通过修改语义丰富的字母来创建密码。 SIST基于TransPCFG猜测的离线攻击。

C.对TRANSPCFG II的评价

在我们的评估过程中,我们发现TranspCFG II比PCFGS提供了很少甚至根本没有性能提升。 如图10所示,TranspCFG II仅在CSDN和RockYou中进行了少量的改进。 虽然我们用Zipf定律和短结构的两种方法提高了顶结构的概率,但在猜测次数较少的情况下取得较好的性能并不明显。 一个合理的理由可能是短密码和长密码之间的结构不同,因此不可转移,而其馀语法(gdigits、gspecial和gletters)非常相似。 另外,PCFG_4.1已经将长结构拆分为多个短结构,TranspCFG II在PCFG_v0上的性能更好。

综上所述,Transpcfg在离线猜测场景中显示了其优越的猜测效率,但在少量猜测下的猜测效率仍然较低。 这些结果表明,在在线猜测场景下,长密码仍然相当抗攻击。

对各种长密码组合策略的安全性进行了实证研究

A.长密码中字符类的安全影响

一个可用的密码组合策略可以帮助用户以较少的努力创建更强的密码。 本部分从密码中的字符类和字符段的角度对各种长密码组合策略的安全性进行了实证研究。
A.长密码中字符类的安全性影响密码组合策略建议使用更多的字符类,如在密码中添加特殊字符。 我们首先从字符类的角度考虑长密码组合策略,包括以下三个策略:一个字符类(仅L或D)、两个字符类(仅L和D)、三个字符类(L、D和S)。 为了评估这些策略的安全性,我们计算了三个组合策略在不同猜测次数下的破解率,如图11所示。
在这里插入图片描述

从图11中,我们观察到一个字符类的组合策略是最容易受到攻击的,因为黑线基本上在左边,也就是说,一个策略越容易受到攻击,这条线就越位于图的左上角,因为当猜测次数少的时候,破解率就高。 此外,更多的字符类(即三个类)通常会导致CSDN和RockYou中的密码更安全。 但在000WebHost中却没有这种现象,这暗示着字符类的数量不能直接转化为长密码的强度。 还应考虑其他因素,包括段数。

B.长密码段对安全的影响

为了进一步评估更多样化的长密码组合策略,根据长密码中字符类和段的数量,我们将七种组合策略表示如下。 术语segment指的是一个同质的子串,即密码中的字母或数字序列,它完全遵循PCFG_v4.1中的结构。 例如,密码pass1234word1234有四个段,密码1a2b3c4d有八个段。 除了L、D、S,我们还表示了其他形式的片段,包括键盘模式和年份,它们在PCFG_v4.1中使用。 例如,密码12zxcvbnword1997有四个段,因为它遵循模板d2k6l4y4。 我们在表VIII中详细说明了七种类型的长密码组合策略。 这七种类型的组合策略涵盖了我们数据集中的大多数密码16。 请注意,因为具有四个或更多段的五个类的密码占用了几乎0%,所以我们不计算这种类型。

我们计算了TransPCFG I攻击下-1~7类型的速率(如图12所示),并得出如下结论:

有趣的是,长密码中的段数在抵御TransPCFG I的攻击方面起着主导作用。从类型-2(2class2segment)到类型-4(2class4+segment),图12中的行越来越向右移动,在较低的最终破解率和较大的猜测次数的情况下,传递了越来越高的安全性。

  • 但是,从Type-4(2class4+段)到Type-6(3class4+段),Type-4移动到Type6的右边,表明在RockYou和000WebHost中,Type-4比Type-6更能抵抗TransPCFG I的攻击。
  • 这些结果表明,当前的长密码组合策略应该考虑段数。 对于长密码来说,Type-4(2Class4+Segment)是比Type-5和Type-6等其他复杂策略更好的组合策略,因为它对猜测攻击的抵抗能力更强。 此外,由于只需要使用两类字符,所以Type-4可以很容易地被用户创建和记忆。
  • 类型-2(2Class2Segment)和类型-5(3Class3Segment)虽然看起来很强,但不足以抵抗这些攻击。 特别是Type2(2Class2Segment)的密码在三个数据集中的密码-16中所占比例最大,为32.70%,因此服务提供商有必要防止用户在用Type2创建密码。
  • 此外,类型-5(3class3segment)看起来很复杂,很难记忆,实际上比类型-4(2class4+segment)弱,因此不应该推荐使用。 因此,我们注意到段的数量可能比字符类的数量更重要,以帮助用户创建安全的长密码。

为了同时考虑猜测次数和破解率而不是单个度量来定量评估几个策略的安全性,我们引入了度量GUAVG
在这里插入图片描述

它表示公式5中每个破解率的平均猜测次数。 Original_GUESS_NUMBER和FINAL_GUESS_NUMBER表示图12中曲线开始和结束时的水平坐标。 破解率是指针对特定类型密码的最终破解率。 例如,当Type-4总共有100个密码时,如果Transpcfg i最终猜测出10个Type-4密码,则Type-4的破解率为10%。 较大的GUAVG表示该类型的密码更能抵抗这些攻击。

然后,我们用GUAVG评估了在Markov和LSTM模型攻击下类型-1~7组合策略的安全性,如表IX所示。 有些类型由于在1014以下的长密码猜测中表现不佳而根本不被猜测,我们将它们标记为代表最强类型的“-”。
在这里插入图片描述
通过表九,我们得出以下结论:

  • 长口令的段数越多,其抵抗TransPCFG I攻击的能力越强;
  • 在TRANSPCFG I、Markov和LSTM三种攻击下,GUAVG在Type-4(2Class4+片段)中普遍最高,这表明Type-4(2Class4+片段)在抵抗这三种攻击时提供了更好的安全性。

上面的结果证实了图12中的观察结果,即Type-4的合成策略可以更好地抵抗这三种攻击。 考虑到Type-4只需要两个字符类,它自然地表现为一种实用的长密码组合策略。 由于在以前的研究[42]中表明,要求更多的字符类型会降低密码的可用性,我们建议用户创建具有更多段的可用且安全的长密码。 这些复杂的结构使猜测变得更加困难。

讨论抵抗长密码猜测攻击的一些可能的对策和今后的工作

A.与迁移学习的相关性

迁移学习利用在解决一个问题时获得的知识,并将其应用于一个不同但相关的问题[40]。 该方法缓解了数据不足的问题。 我们提出的TransPCFG采用了与迁移学习相同的高级概念,但使用了与机器学习领域广泛使用的迁移学习完全不同的方法。 迁移学习目前广泛应用于图像识别、文本分类等机器学习领域,我们认为迁移学习的概念适用于训练数据量较少的长密码猜测场景。 然而,深度学习中的转移方法不能直接应用于数据驱动的密码猜测,因为在如何实现最先进的状态方面存在根本差异。 相反,Transpcfg将PCFGS从短密码中学到的有效语法转换为帮助猜测长密码。

B.TRANSPCFG与其他PCFG的比较

研究人员继续优化PCFGS。 李等人。 [20]提出了PersonalPCFG以更详细的个人信息描述密码。 Komanduri[17]提出了一系列对PCFGS的改进方法,如给未知终端分配概率。 韦拉斯等人。 [36]将语义分析应用到基于PCFGS的密码解析规则中。 胡什曼德等人。 [13]提出了一种改进的PCFGS算法,该算法在增加键盘模式和多字模式的基础上,结合概率平滑方法。 虽然目前已有一些文献对PCFGS进行了优化,但就目前所知,TranspCFG是第一个有效猜测长密码的学术著作。

C.限制

我们讨论一些限制如下。

  • 首先,在TransPCFG中,我们将gDigits和gSpecial合并为一个部分,因为我们观察到gSpecial的数量比其他语法少得多。
  • 其次,我们不使用Password-All的训练数据来猜测长密码。 虽然训练数据的数量对PCFGS的猜测效率非常重要,但不适合将短密码的所有知识,即所有数据作为训练数据来猜测长密码,
  • 原因如下:
    • i)当训练数据和测试数据长度分布相似时,PCFGS等数据驱动的猜测方法具有更好的性能。 其他长度的密码与测试长度不相似。
    • ii)将所有数据加在一起猜测长密码会导致大量无效猜测,因为密码作为训练数据会产生大量其他长度的冗余结构。 这些冗余结构会产生大量其他长度的候选密码,与长长度的测试数据相比,效率较低。因此,应该对短密码的文法进行智能传递,如选择最有效的文法,以达到更好的长密码猜测性能。
    • 由于大量的猜测会枚举更多的文法,产生更多的候选密码,因此采用口令-All作为训练数据可以提高大量猜测的猜测效率,但对于大量猜测下的密码猜测场景,这是不现实的。

D.更安全的身份验证方法

长密码的安全性更值得关注。 目前使用的长密码组合策略可能无法提供足够的安全性。 应该对长密码组合策略设置更多的限制。 我们建议可能的额外限制,如增加长密码中的段数。 此外,应该考虑双因素身份验证方案,例如基于预定义口令和一次性口令的身份验证[8]。

E.今后的工作

我们今后的工作将集中在更有效的密码猜测方法下的长密码的实证研究上。 此外,有希望部署一个改进的组合策略,其中包含作为当前网站主要因素的段数。

总结我们的工作

本文提出了TransPCFG框架,利用短口令传递的知识,向高效的长口令猜测迈出了实质性的一步。 评估表明,在离线猜测场景下,Transpcfg有效地破解了长密码:Transpcfg比PCFG_v4.1的平均性能高出56.10%。 具体来看,平均而言,Transpcfg通过10e14次猜测可以折衷23.30%的长密码,凸显了服务商对长密码强度的潜在高估。 在此基础上,我们对几种长密码组合策略在TransPCFG和两种最先进的猜测攻击(包括Markov和LSTMmodels)下的有效性进行了实证评估。 实验结果表明,长密码中的段数是抵抗猜测攻击的主要因素。 与其他强制密码包含至少一个特殊字符的密码策略不同,我们建议用户根据Type-4(2Class4+Segment)策略,通过在密码中引入四个或更多段来创建安全且可用的长密码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值