CN109885829B - 一种基于词的口令强度评价方法 - Google Patents
一种基于词的口令强度评价方法 Download PDFInfo
- Publication number
- CN109885829B CN109885829B CN201910067574.3A CN201910067574A CN109885829B CN 109885829 B CN109885829 B CN 109885829B CN 201910067574 A CN201910067574 A CN 201910067574A CN 109885829 B CN109885829 B CN 109885829B
- Authority
- CN
- China
- Prior art keywords
- password
- word
- string
- probability
- character string
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Machine Translation (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公布了一种基于词的口令强度评价方法:利用抽词算法提取出口令中的词语,通过增加词段类型进一步细分口令,对PCFG概率模型进行改进,构建WordPCFG模型,准确模拟用户创建口令的行为;再使用WordPCFG模型进行口令强度评估。本发明方法更准确的模拟用户行为,精确反映用户的行为习惯或键盘模式,口令评价的精确度高。
Description
技术领域
本发明属于信息安全技术领域,涉及口令安全技术,尤其涉及一种基于词的口令强度评价/检测方法。
背景技术
虽然口令具有诸多弱点,也有许多替代口令的方案不断被提出;由于口令部署简单、用户习惯粘性,口令仍然是身份认证领域至关重要的一环。用户在注册新账户或修改旧密码的时候,服务提供商一般会使用口令强度评价器对用户输入的口令进行强度评估,提供及时的反馈,只有满足强度要求的口令才会被接受。
口令强度评价器一般分为两种,一种是基于启发式规则的,一种是基于口令破解的。已有研究表明,基于口令破解的强度评价器优于基于启发式规则的口令强度评价器。因为启发式规则需要熟知用户的习惯,是一种有穷的枚举;而基于破解的评价器从已有口令集里训练模型,更能反映用户的行为习惯。
未登录词的提取一般分为两种,一种基于语法和语义规则的启发式方法,一种是基于统计信息的机器学习方法。基于统计信息的方法使用内聚度和自由度来判断一个字串是否是一个词。口令是人类生成的一类特殊的“语言”,具有其特殊的分布;但是这个语言没有语法结构,语义信息不明,无法使用基于语法和语义规则的启发式方法。口令里词语的提取却适用于基于统计信息的方法,同样可以统计训练集里字符子串的内聚度和自由度来判断是否成词。
2009年,Weir et al.提出了基于上下文无关文法的口令破解方法。他们将口令切分为互相独立的部分并归类,对于文法里的每一个生成规则,用训练集里出现的频率逼近其概率;训练后的文法按照概率递减的顺序生成口令用于破解。2014年,Ma et al.提出了目前普遍使用的基于Markov链的口令破解算法。该方法将口令视为逐字符的序列,每一个字符出现的概率由前序的历史决定。这两种方法都能够用来构建口令强度评价器,但是由于概率上下文无关文法(PCFG:Probabilistic Context-Free Grammar)的切分不准确问题:原始的概率上下文无关文法将切分出的口令分为字符段、数字段和特殊字符段,仅有这三类不能够准确模拟用户的真实行为。Markov链方法的改进只有参数修正,且参数修正没有原理支撑,最终得到的改进有限。因此,现有的口令强度评价技术均难以准确模拟用户行为习惯,无法反映用户的行为习惯。
发明内容
为了克服上述现有技术的不足,本发明提供一种能够准确模拟用户行为的基于词的口令强度检测器(方法),构建于概率上下文无关文法之上,采用口令领域的词语提取算法(即抽词算法)提取出口令中的词语,再通过口令切分方法准确地反映用户修改口令的行为,从而更为精确地模拟用户的行为模式。
口令间共享了许多公共的子串,这些公共的子串并不是没有意义的字符序列,相反,这些公共的子串是用户表达其“目的”的最小单位;例如,“password”、“1q2w3e”和“123456”;用户使用这些作为其口令分别表达了:这是一个口令、键盘模式和连续数字串。本发明使用词段进一步细分口令,细分方法构建于PCFG模型:相比于原始PCFG的字母段、数字段和特殊字符段,我们的方法多添加了词段这个分类;通过已有口令集的特征统计,我们发现词段(词语)是用户创建口令时的具有含义的最小单位,添加词段能够更准确模仿用户创建口令的行为。我们将改进后的概率模型命名为WordPCFG模型。使用这个概率模型进行口令强度评估,称为WordPSM方法。
本发明提供的技术方案如下:
一种基于词的口令强度评价方法WordPSM:利用抽词算法提取出口令中的词语,通过增加词段类型,使用词段进一步细分口令,对PCFG概率模型进行改进,构建WordPCFG模型,准确模拟用户创建口令的行为;使用这个概率模型进行口令强度评估;包含以下步骤:
A.使用抽词算法提取出口令中的词语;具体执行如下操作:
A1.使用点互信息(PMI:Pointwise Mutual Information)来衡量字符串(口令的字串)内聚度(Coh:Cohesion):
将一个字符串(口令的一个字串)拆分为左右连续的两部分,计算这两个连续字串的概率;一个字符串概率的计算:该字符串出现的频次除以整个训练集的字符数;这样一种切分的点互信息为整个字串的概率除以左右两部分概率的乘积。给定一个字符串c1c2…cn,位置i,1≤i<n对应的互信息定义为:
其中Pr(c1c2…cn)表示字符串c1c2…cn的概率;log的底数为默认值2。
内聚度为一个字串所有可能切分位置的点互信息的最小值:
A2.使用香农熵(Entropy)来衡量字符串的自由度(Fdm:Freedom):
假设一个字符串左边字符是一个随机事件,定义为LC,字符串c1c2…cn的左香农熵定义为:
其中,Σ表示口令允许的字符集,例如95个可打印ASCII字符。H为香农熵;
同理,可以定义字符串c1c2…cn的右自由度(香农熵):
一个字串的自由度即左右香农熵的较小值:
其中,x表示左或右。
A3.设置内聚度阈值和自由度阈值,构成口令词语判断器;
阈值的设定依据不同的应用场景有不同的值,依据概率模型的破解率来判定(本发明具体实施采用的概率模型为WordPCFG);如果精度要求不高,也可以使用Coh=0.01,Fdm=1。一旦选定内聚度阈值和自由度阈值就构成口令词语判断器
B.进行词语匹配,并计算得到生成规则概率;执行如下操作:
B1.进行口令里的词语匹配,得到段类型为“词段”的词语;
基于原始概率上下文无关文法的三种类型的段,我们提出一个新的段类型“词段”,这个段的含义即口令语言里的“词”。训练原始概率上下文无关文法之前,基于步骤A构建的口令词语判断器,首先利用口令词语判断器做口令里的词语匹配,匹配出的词语即识别为“词段”;词语匹配使用最长匹配而不是最短匹配,例如,抽词算法的结果含有“pass”、“word”和“password”,那么“password”既可以识别为一个词“password”,也可以识别为两个词“pass”和“word”;我们这里使用最长匹配,即“password”被识别为一个词。
B2.对口令剩余的未被识别部分为“词段”的词语,使用原始概率上下文无关文法进行识别切分,分为字母段、数字段、特殊字符段;
具体将连续的字母识别为字母段,连续的数字识别为数字段,连续的特殊字符识别为特殊字符段;每个段包含长度信息。
由此,口令被分成词段、字母段、数字段、特殊字符段。
B3.之后计算生成规则概率。
获取口令集,利用口令集作为训练数据训练WordPCFG模型;得到训练好的WordPCFG模型;
计算上下文无关文法的生成规则(即上下文无关文法的推导规则)的概率,计算方法如下:例如,口令“password123”被切分成W8D3,其中W表示词段,下标8表示这个词长度为8,D表示数字段,下标3表示这个数字段长度为3。生成规则S→W8D3的概率为模式W8D3出现的频次除以口令集大小,表示为Pr(S→W8D3),其中S为文法的开始变量;生成规则W8→"password"的概率为"password"出现的频次除以W8出现的频次,表示为Pr(W8→"password");类似的,可以计算D3→"123"的概率:Pr(D3→"123")。
Pr("password123")=Pr(S→W8D3)·Pr(W8→"password")·Pr(D3→"123")
C.利用蒙特卡洛方法对训练好的WordPCFG模型进行随机抽样;对待评价口令的强度进
行检测,执行如下操作:
C1.对于用户输入的口令,使用训练好的WordPCFG对其进行生成规则概率的计算。一个口令的生成规则概率即为其所有生成规则概率的乘积。
C2.之后使用蒙特卡洛方法估计猜测该口令需要的次数:
其中,GΔ为蒙特卡洛估计值,即口令的猜测次数;Θ为随机采样的n个口令集合,α为测试的口令,β为抽样的口令,p(β)为β的生成规则概率;如果断言为真,则[p(β)>p(α)]的值为1;如果断言为假,则[p(β)>p(α)]的值为0。使用口令的猜测次数(蒙特卡洛估计值)作为口令强度,如果计算出的次数(口令强度)大于设定的口令强度阈值(如1014,该数值应该根据硬件的发展水平做相应的修改以提升安全性),则认为该口令是安全的。反之,口令强度低,该口令不安全。
蒙特卡洛方法能对口令概率模型(PCFG模型、Markov模型等)进行随机抽样,抽样大小为10000。
本发明的概率模型是基于PCFG模型进行了词语的改进,将改进后的概率模型命名为WordPCFG,对应的强度评价器(方法)为WordPSM。
随着时间的推进,口令集会发生变化,需要对WordPCFG重新进行训练,这样才能保证其反映了用户的真实行为习惯。
本发明的有益效果
本发明提供一种能够准确模拟用户行为的基于词的口令强度评价器(方法),提出口令切分方法,切分结果准确的反映了用户修改口令的行为,例如在词的尾部添加、首部添加、词语的连接等。这比现有的原始的PCFG模型更准确的模拟了用户的行为。对于一些特殊的用户口令,本发明方法WordPCFG能够做更加精确的切分,如“1q2w3e”不再被切分成独立的6个部分,而是作为一个整体,这精确的反映了用户的行为习惯或键盘模式。
相比于现有的概率模型,本发明能够为口令计算得到更准确的概率,克服了PCFG模型的不足。对于PCFG低估了口令强度的口令,本发明方案给出了准确的概率。具体实施中,通过攻击实验表明,本发明方法相比于现有的原始PCFG获得22.63%~66.81%的破解提升效果,表明本发明方法WordPCFG比PCFG更准确的模拟了口令的分布。此外,本发明方法部署简单,只需要提前进行口令词语的提取,在PCFG分段之前进行词语识别,即可采用本发明方法对口令实现口令强度的检测和评价,口令评价的精确度高。
附图说明
图1为本发明方法的流程框图。
图2为本发明方法提供的口令词语提取步骤的流程框图。
具体实施方式
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
本发明提供一种能够准确模拟用户行为的基于词的口令强度评价/检测方法,采用词语提取算法提取出口令中的词语,再通过口令切分方法准确地反映用户修改口令的行为,从而更为精确地模拟用户的行为模式。
图1所示为本发明方法的实施流程;对于某一特定服务提供商,采用基于词的口令强度评价方法进行评价。包括如下实施步骤:
1.口令集获取:获取与该服务类似的其他服务提供商已泄漏的口令集(目前已泄漏的口令集几乎覆盖了所有类型的服务提供商),保证用户所在国家(使用语言)一致。
2.词语提取:使用第一步中的口令集作为训练集,应用抽词算法提取出口令词语;
图2所示为本发明方法提供的口令词语提取的流程:
a.查询的输入是一个字符串str,输出为该字符串是否为一个词。
b.Coh(str)表示str的内聚度
c.Fdm(str)表示str的自由度
内聚度的计算使用点互信息,计算时将口令拆分成连续的左右两部分,例如口令“1password23”有10个拆分点,可以拆分为“1”和“password23”、“1p”和“assword23”、……、“1password2”和“3”。每个拆分方式计算其对应点互信息值:左右两部分字符子串的生成规则概率乘积除以整个字符串的生成规则概率。计算出这10个值,取其最小值作为内聚度。
自由度的计算使用的是香农熵,统计字符串左边出现的字符集合,将其视为一个随机事件的事件集合,计算左熵。同样,统计字符串右边出现的字符集合,将其视为一个随机事件的事件集合,计算右熵,一个字串的自由度即左右香农熵的较小值。
3.WordPCFG训练:使用第一步中的口令集作为训练集,训练WordPCFG模型。
4.随机抽样、部署:对WordPCFG模型进行随机抽样,抽取10000个口令,这些口令作为评价用户口令的样本在重新训练WordPCFG之前保持不变。将训练好的WordPCFG部署到服务提供商的后端,提供查询接口(API:Application Programming Interface):该接口接受一个口令,经计算后返回该口令破解需要猜测的次数。服务提供商的前端请求评估一个口令强度;经过蒙特卡洛方法的评估,返回破解该口令需要的破解次数;由此,WordPSM构建完毕。
5.处理查询请求:前端读取用户输入的口令,利用后端接口查询,WordPSM返回结果;前端根据返回的结果,及时反馈给用户其口令强度。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (4)
1.一种基于词的口令强度评价方法:利用抽词算法提取出口令中的词语,通过增加词段类型进一步细分口令,对PCFG概率模型进行改进,构建WordPCFG模型,准确模拟用户创建口令的行为;再使用WordPCFG模型进行口令强度评估;包含以下步骤:
A.获取口令集,利用口令集作为WordPCFG模型训练集数据;使用抽词算法提取出口令中的词语,构建口令词语判断器;具体执行如下操作:
A1.获得口令字串的字符串c1c2…cn的内聚度Coh:
使用点互信息PMI衡量口令字串的字符串内聚度,内聚度为一个字串所有可能切分位置的点互信息的最小值;
A2.获得口令字串的字符串自由度Fdm:一个字串的自由度即左右香农熵的较小值;通过香农熵计算得到字符串的自由度,具体执行如下操作:
设一个字符串左边字符是一个随机事件,定义为LC;字符串c1c2…cn的左香农熵定义为:
其中,Σ表示口令允许的字符集;
字符串c1c2…cn的右香农熵定义为:
字串的自由度即左右香农熵的较小值,表示为:
其中,x表示左或右;
A3.设置内聚度阈值和自由度阈值,构成口令词语判断器;
B.进行词语匹配,并计算得到生成规则概率;执行如下操作:
B1.利用口令词语判断器进行口令的词语匹配,得到段类型为“词段”的词语;
B2.对口令剩余的未被识别为“词段”的词语,使用原始概率上下文无关文法进行识别切分,分为字母段、数字段、特殊字符段;
由此,口令被分成词段、字母段、数字段、特殊字符段;
B3.计算生成规则概率,得到训练好的WordPCFG模型;
C.利用蒙特卡洛方法对训练好的WordPCFG模型进行随机抽样;对待评价口令的强度进行检测,执行如下操作:
C1.对于用户输入的口令,使用训练好的WordPCFG计算生成规则概率;口令的生成规则概率即为其所有生成规则概率的乘积;
C2.使用蒙特卡洛方法估计猜测该口令需要的次数:
其中,GΔ为蒙特卡洛估计值,即口令的猜测次数;Θ为随机采样的n个口令集合,α为测试的口令,β为抽样的口令,p(β)为β的生成规则概率;如果断言为真,则[p(β)>p(α)]的值为1;如果断言为假,则[p(β)>p(α)]的值为0;
将口令的猜测次数作为口令强度,如果口令强度大于设定的口令强度阈值,则认为该口令是安全的;反之,口令强度低,该口令不安全。
3.如权利要求1所述基于词的口令强度评价方法,其特征是,步骤A3设置内聚度阈值为0.01;和/或,设置自由度阈值为1。
4.如权利要求1所述基于词的口令强度评价方法,其特征是,步骤B1中,词语匹配使用最长匹配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910067574.3A CN109885829B (zh) | 2019-01-24 | 2019-01-24 | 一种基于词的口令强度评价方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910067574.3A CN109885829B (zh) | 2019-01-24 | 2019-01-24 | 一种基于词的口令强度评价方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109885829A CN109885829A (zh) | 2019-06-14 |
CN109885829B true CN109885829B (zh) | 2020-11-03 |
Family
ID=66926771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910067574.3A Active CN109885829B (zh) | 2019-01-24 | 2019-01-24 | 一种基于词的口令强度评价方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109885829B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111786796B (zh) * | 2020-07-02 | 2021-10-12 | 南开大学 | 基于口令重用、字符跳变与分隔的口令强度评估方法 |
CN112632526B (zh) * | 2021-01-07 | 2022-04-12 | 复旦大学 | 一种基于综合分段的用户口令建模与强度评估方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108509790A (zh) * | 2018-03-14 | 2018-09-07 | 华东师范大学 | 一种基于群体的口令强度评估方法 |
CN108763920A (zh) * | 2018-05-23 | 2018-11-06 | 四川大学 | 一种基于集成学习的口令强度评估模型 |
CN109145582A (zh) * | 2018-06-05 | 2019-01-04 | 中国科学院信息工程研究所 | 一种基于字节对编码的密码猜测集生成方法、密码破解方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8386238B2 (en) * | 2008-11-05 | 2013-02-26 | Citrix Systems, Inc. | Systems and methods for evaluating a sequence of characters |
-
2019
- 2019-01-24 CN CN201910067574.3A patent/CN109885829B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108509790A (zh) * | 2018-03-14 | 2018-09-07 | 华东师范大学 | 一种基于群体的口令强度评估方法 |
CN108763920A (zh) * | 2018-05-23 | 2018-11-06 | 四川大学 | 一种基于集成学习的口令强度评估模型 |
CN109145582A (zh) * | 2018-06-05 | 2019-01-04 | 中国科学院信息工程研究所 | 一种基于字节对编码的密码猜测集生成方法、密码破解方法及装置 |
Non-Patent Citations (2)
Title |
---|
口令安全研究进展;王平 等;《计算机研究与发展》;20161031(第10期);第2173-2188页 * |
基于概率上下文无关文法的口令强度评估方法;陈颖 等;《物联网技术》;20170430(第4期);第59-61页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109885829A (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2585962B1 (en) | Password checking | |
CN111079412B (zh) | 文本纠错方法及装置 | |
KR102348845B1 (ko) | 실시간 오류 후보 생성을 이용한 문맥의존 철자오류 교정 장치 및 방법 | |
CN111159990B (zh) | 一种基于模式拓展的通用特殊词识别方法及系统 | |
CN109145582A (zh) | 一种基于字节对编码的密码猜测集生成方法、密码破解方法及装置 | |
JP6532088B2 (ja) | 自律学習整列ベースの整列コーパス生成装置およびその方法と、整列コーパスを用いた破壊表現の形態素分析装置およびその形態素分析方法 | |
Xu et al. | Chunk-level password guessing: Towards modeling refined password composition representations | |
CN109885829B (zh) | 一种基于词的口令强度评价方法 | |
CN106803035A (zh) | 一种基于用户名信息的密码猜测集生成方法及密码破解方法 | |
CN104156349A (zh) | 基于统计词典模型的未登录词发现和分词系统及方法 | |
WO2011087391A1 (en) | Automatic transliteration of a record in a first language to a word in a second language | |
CN111354340B (zh) | 数据标注准确度验证方法、装置、电子设备及存储介质 | |
CN116611074A (zh) | 安全信息审查方法、设备、存储介质及装置 | |
CN110334488A (zh) | 基于随机森林模型的用户认证口令安全评估方法及装置 | |
CN112667979A (zh) | 密码生成方法及装置、密码识别方法及装置、电子设备 | |
US11640501B2 (en) | Method and device for verifying the author of a short message | |
CN110457707B (zh) | 实词关键词的提取方法、装置、电子设备及可读存储介质 | |
CN112632526B (zh) | 一种基于综合分段的用户口令建模与强度评估方法 | |
CN112800752B (zh) | 纠错方法、装置、设备以及存储介质 | |
Cathcart et al. | In search of isoglosses: continuous and discrete language embeddings in Slavic historical phonology | |
CN115563604A (zh) | 基于深度神经网络和特征融合的口令强度评估方法及系统 | |
CN113282746B (zh) | 一种网络媒体平台变体评论对抗文本生成方法 | |
CN113239245A (zh) | 用于信息查询的方法及装置、电子设备、可读存储介质 | |
KR20220131725A (ko) | 응집도 점수를 기반으로 한 소셜 빅데이터의 효율적인 키워드 추출방법 | |
Kimura et al. | Study on constants of natural language texts |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |