◆陈玉雪
一种基于朴素贝叶斯的Honeywords区分攻击方法
◆陈玉雪
(四川大学网络空间安全学院 四川 610225)
Honeywords是保护用户口令、检测口令文件是否泄露的有效方法,而Honeywords区分攻击能准确评估Honeywords的安全性。现有Honeywords区分攻击方法未完全利用口令中的语义信息、攻击成功率不够高,针对这两方面的不足,本文提出基于朴素贝叶斯的Honeywords攻击方法,记为Bayes-PW:通过改进PCFG结构,增加拼音、单词等语义字段,采用朴素贝叶斯分类器进行区分攻击,为防止分类器过拟合,对数据使用“+1”平滑方法。实验证明,Bayes-PW仅一次猜测的攻击成功率最高达到47%,远高于Top-PW攻击和基于PCFG的攻击,特别是训练集数据量较小的情况下,Bayes-PW比Top-PW多猜中测试集15%的真实口令,比PCFG多猜中11%。
朴素贝叶斯;Honeywords;Honeywords区分攻击;PCFG
Honeywords是由Juels和Rivest[1]在CCS13上提出的,是一个简单的、无需对客户端服务器进行重大更改的检测口令文件泄露的方法。Honeywords方案延展蜜罐账户思想到所有用户,口令文件不再仅仅存储一个口令,而是存储由真实口令和多个诱饵口令组成的口令列表。即使攻击者破解出用户的口令明文,也难以区分诱饵口令和用户的真实口令。如果攻击者使用诱饵口令尝试登录,系统可以感知口令文件泄露,并发布警报。
Honeywords区分攻击是一种从用户候选口令列表中正确选中真实口令的猜测攻击[2]。它的基本原理是:选择用户最有可能的密码,构建猜测字典,依次进行登录尝试。Honeywords区分攻击能评估Honeywords生成方法的有效性,验证Honeywords能提供多大强度的抵抗力[2]。
目前Honeywords有以下攻击方法:Weir等人[3]提出了基于概率上下文无关文法(PCFG)的口令猜测方法,PCFG将口令划分为字符组件,统计字符组件和口令模式的概率分布,但忽略了口令中的语义信息;Narayanan[4]提出了基于Markov链模型的口令猜测方法,Markov对口令字符前后关系进行建模,同样忽略了口令中的语义信息而且会出现过拟合问题;Wang[2]首次将PCFG和Markov运用到Honeywords区分攻击中,并提出Top-PW攻击[2],这是一种简单的、基于用户密码遵循Zipf定律的攻击方法。Top-PW的基本原理是考虑口令集中概率值最大的Honeyword是最受欢迎的密码,并猜测它为正确的密码。Top-PW通过计算每个Honeyword在其他真实密码数据集中的概率分布,根据概率递减的顺序依次尝试这些Honeyword,但Top-PW考虑的是口令整体结构,忽略了字符组件的前后关系,同时攻击成功率还有待提高。
针对以上文献所提方法存在的未利用语义信息以及攻击成功率不够高两方面的不足,本文提出一种基于朴素贝叶斯的Honeywords区分攻击方法,该方法将口令中的语音信息扩展到PCFG结构中,利用真实口令集训练朴素贝叶斯分类器,提升攻击成功率。
本文提出的区分攻击方法主要分为三个模块:口令结构划分模块、朴素贝叶斯分类算法模块和区分攻击模块。
图1 口令结构划分过程示例
口令集中存在大量语义信息如汉语拼音、英语单词[6]。为提高Honeywords区分攻击的命中率,本文扩展PCFG方法,在字母段(L),特殊字符段(S)和数字段(D)的基础上,修改字母段(L)的定义,添加拼音段(P)、单词段(W)。在划分口令结构时,假设L,P,W,S和D相互独立,针对字母段L,首先匹配是否为拼音或单词,匹配成功则标记为P段或W段,如果匹配不成功,将标记为L段。如“chenHello111”被切分为P4:chen,W5:Hello和D3:123,口令模式为P4W5D3。
训练阶段,对每一个口令进行结构划分,将口令模式加入口令模式表频率表Σ1,字符组件加入字符组件频率表Σ2。训练过程如图1所示。
朴素贝叶斯分类算法是基于贝叶斯决策理论的分类方法,无需额外的知识体系,具有分类准确、速度快,可处理大规模数据等特点[5]。
Bayes-PW首先对每一个候选口令sw进行口令结构划分,得到口令模式和字符组件,定义为维口令特征={1,2,…,c},假设1,2,…,c互斥且构成一个完全事件,它们的概率为(c),=1,2,…,。口令的类别有真实口令和诱饵口令,表示为={1,2},与1,2,…,c相伴随出现。sw的分类方法如下所示:
其中,(T|c)是给定sw属于类别T的概率,(c|T)是类别T中含有给定口令特征c的概率。
其中,t是属于类别T的口令频数,是口令特征c出现在类别T中的数量。
计算时,有多个(c|T)相乘,由于因子很小,乘积可能会下溢出。为解决这一问题,本文采用对乘积取自然对数的方法:ln(×)=ln()+ln(),即:
此外,在求解(c|T)时,可能c并没有在训练集中出现过,但这并不代表测试集中(c|T)=0。因此本文采用“+1”平滑技术:
Bayes-PW区分攻击的核心思想是依次计算用户每个候选口令(sw)的优先权值Pv,按照Pv递减的顺序依次尝试这些sw。
针对单个用户的Bayes-PW区分攻击算法如算法1所示,输入为测试集Sweetwords Set,输出为V,V存储的是分别进行k次区分攻击的成功次数。步骤2-16表示遍历单个用户候选口令列表(Sweetwords)中的口令。步骤3中g为猜测次数,每猜测一次计数加一。步骤4-6表示计算sw的Pv值,并将其加入数组PvList中。步骤8表示抽取最大优先权值C。步骤9表示根据C找到对应的sw。步骤11表示使用用户名IDi和口令sw尝试登录。步骤12表示如果登录成功,成功次数s加一,然后攻击下一个用户的Sweetwords。
算法1 区分攻击算法
本文使用六个泄露的真实口令集验证攻击成功率,如表1所示。这些数据集可以在网上公开下载,并曾作为许多口令研究的实验数据[6]。为保护用户隐私,数据集在使用之前,去除用户名、邮箱等用户信息。根据当前网站口令规则,移除包含非ASCII码字符或空格,以及长度小于6或大于20位的口令。
表1 口令集基本信息
数据集网站类型语言口令数量 CSDNProgrammer forumChinese6,380,107 DodonewGaming & E-commerceChinese15,818,288 TianyaSocial forumChinese29,591,213 FaithwritersChristian writingEnglish9,585 MuslimMatchDating SiteEnglish228,479 PhpbbProgrammer forumEnglish230,766
系统为每个用户生成个Honeywords,取Juels和Rivest[1]建议的20。然后,真实口令和对应的Honeywords重新随机排列,形成候选口令列表Sweetwords。这些口令以散列形式保存到相应用户的账户中。在这个过程中,假设攻击者已成功获取密码数据并将其全部转换为明文。系统使用的Honeywords生成技术为“chaffing-by-tail-tweaking”,设置尾部修改三个字符,例如当真实口令为,那么产生的Honeywords可以是:.....
由于Markov方法与PCFG方法攻击成功率相似,本实验对比方法为Top-PW和PCFG方法。为了更好地模拟漫步攻击者并验证语义在不同语言口令集的效果,本文实验的训练集和测试集选自不同的口令集,并且包含不同语言。本文设置了6个攻击场景,如表2所示,tianya → Dodonew表示训练集为tianya,测试集为Dodonew。
表2 攻击场景
场景口令集 场景1tianya Dodonew 场景2tianya CSDN 场景3tianya muslimMatch 场景4phpbb muslimMatch 场景5phpbb Faithwriters 场景6phpbb CSDN
本文采用ε-flat和Flatness图评价指标。
(2)Wang[2]提出的Flatness图评价指标,旨在测量分辨出真口令的概率随每个用户尝试登录次数的变化趋势。如图3所示,曲线上的点(x,y)表示攻击者在前x次猜测中,猜中的概率为y,且x≤k。
ε-flat表现的是仅允许对每个用户进行一次尝试登录时,猜中真实口令的成功率。实验结果如图2所示,Bayes-PW的攻击成功率总是优于Top-PW和PCFG,最高达到47%。当训练集和测试集来自相同的语言时(场景1,2,4,5),Bayes-PW达到41%~47%(平均45%)。当训练集和测试集来自两个不同的语言(场景3,场景6),Bayes-PW也能达到45%和33%的攻击成功率,远高于其他方法。Bayes-PW在数据量较小的情况下仍然有效,在phpbb → CSDN场景下,尽管phpbb训练集数量非常小,但Bayes-PW的攻击成功率远远高于Top-PW的18%和PCFG的22%,达到33%。
图2 -flat实验结果
图3 tianya → Dodonew
图4 tianya → muslimMatch
图5 phpbb → muslimMatch
图6 phpbb → CSDN
本文利用口令中的语义信息,提出了一种基于朴素贝叶斯的Honeywords攻击方法,该方法将拼音和单词扩展到PCFG结构中,利用真实口令集训练贝叶斯分类器,区分攻击时计算每一个口令的优先权值,按优先权值降序进行区分攻击。实验表明,本文提出的Bayes-PW方法的攻击成功率优于其他方法,特别是当训练集和测试集的分布差异较大时,Bayes-PW与Top-PW和PCFG相比具有一定的优势。
[1]Juels A,Rivest R L.Honeywords:making password-cracking detectable[C]// Acm Sigsac Conference on Computer& Communications Security. ACM,2013.
[2]Ding W,Cheng H,Ping W,et al. A Security Analysis of Honeywords[C]// NDSS 2018. 2017.
[3]Weir M,Aggarwal S,De Medeiros B,et al. Password Cracking Using Probabilistic Context-Free Grammars[C]// DBLP. DBLP,2009.
[4]Narayanan A,Shmatikov V. Fast Dictionary Attacks on Passwords Using Time-Space Tradeoff[C]//Proceedings ofthe 12th ACM Conference on Computer and CommunicationsSecurity,CCS 2005,Alexandria,VA,USA,November 7-11,2005. ACM,2005.
[5]朱军,胡文波. 贝叶斯机器学习前沿进展综述[J]. 计算机研究与发展,2015,52(1):16-26.
[6]王平,汪定,黄欣沂.口令安全研究进展[J].计算机研究与发展,2016,53(10):2173-2188.