基于口令重用、字符跳变与分隔的口令强度评估方法转让专利

申请号 : CN202010625153.0

文献号 : CN111786796B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 董奇颖贾春福汪定单轩洪淑弘段非

申请人 : 南开大学

摘要 :

一种基于口令重用、字符跳变与分隔的口令强度评估方法,属于信息安全技术领域,步骤包括:选取与场景相契合的口令集,通过模糊匹配算法,构造字符转换字典及口令结构字典;将用户输入的口令,还原为基础字符片段并记录字符转换和口令结构;用神经网络计算基础字符片段构造概率,并从字典中查找字符转换和口令结构对应概率,概率连乘得到口令构造概率;向用户反馈口令的绝对强度、相对强度和相似于用户口令但足够安全的候选口令。本发明将用户口令重用特征归纳为大写转换、字符跳变与分隔。神经网络结合模糊匹配算法,能够更准确、鲁棒地评估口令强度。用户通过相对强度了解其口令相对于其他用户的口令的强度,从候选口令中选择更安全易记口令。

权利要求 :

1.一种基于口令重用、字符跳变与分隔的口令强度评估方法,由字典构造模块、口令预处理模块、概率计算模块与强度反馈模块组成,具体包括下列步骤:A.在字典构造模块,选取与服务类型相契合的口令集S作为训练集,通过模糊匹配算法,构造字符转换字典及口令结构字典;

B.在口令预处理模块,将用户输入的口令,还原为基础口令片段并记录转换类型和口令结构;

C.在概率计算模块,通过神经网络计算基础口令片段的构造概率,结合字典记录的口令格式概率与字符转换概率,计算用户口令的构造概率;

D.在强度反馈模块,反馈给用户其口令的绝对强度与相对强度,同时提供给用户与其输入口令相似但更安全的候选口令;

步骤A具体执行如下操作:

A1.统计每个大写字母和基础字符在S中的出现频数,计算得到小写字母转换为大写字母的概率,以及基础字符保持不变的概率;基础字符包括小写字母和数字;

A2.将S中每条口令包含的大写字母转换为对应小写字母,得到新的数据集Slower;

A3.根据字符组成,将Slower划分为两个子数据集:集合Smatch由仅含基础字符且频数≥10的字符串构成,Sspecial由包含特殊字符的字符串构成;特殊字符包括除大写字母和基础字符外的ASCII字符;

A4.设置适当的置信度CR后执行模糊匹配算法,算法步骤为:选取Sspecial中的字符串str1,在Smatch中提取长度满足len(str2)≤len(str1)条件的字符串str2,构造待匹配集合Smatch′;

利用str1匹配Smatch′中的str2,即逐字符比较str1与str2;若str1与str2中的基础字符无法一一对应,认为匹配失败,str1左移一个字符,并再次尝试匹配str2;若str1中的特殊字符与str2中的基础字符相对应,认为暂时匹配成功;

对于暂时匹配成功的str1与str2,计算匹配率MR来判断模糊匹配是否成功,进而判断对应特殊字符是否为基础字符跳变所得,若 其中count为成功匹配的字符个数,则认为str1与str2模糊匹配失败,str1中的对应特殊字符为分隔符,反之则认为str1与str2模糊匹配成功,str1中的特殊字符是由str2中对应基础字符跳变所得;

A5.将模糊匹配成功,即认为是基础字符跳变所得的特殊字符,“反跳变”为对应的基础字符,并按照正则表达式[^B?(SnB)*Sn?$]的格式来记录口令结构,其中B代表基础字符,Sn代表被认为是分隔符的长度为n的特殊字符串;

A6.记录所有出现过的大写转换、字符跳变、字符分隔的情况并将相应的概率存储于字符转换字典;记录所有出现过的口令结构,并计算相应的概率存储于口令结构字典;

步骤B具体执行如下操作:

B1.将用户口令中的大写字母转换为对应的小写字母,并记录此次转换;

B2.利用A4所述算法,将转换后的口令在A3构造的Smatch中进行模糊匹配,将模糊匹配成功的特殊字符“反跳变”为对应基础字符,记录此时的口令结构以及进行的跳变转换;

B3.以模糊匹配失败的特殊字符为分隔符,将口令切割为若干基础字符片段,记录此时作为分隔符的特殊字符;

步骤C具体执行如下操作:

C1.利用A3构造的Smatch,训练长短期记忆网络LSTM,并以B3得到的基础字符片段作为LSTM的输入,计算基础字符片段对应构造概率;

C2.在A6构造的字符转换字典中查找B1记录的大写转换概率、B2中记录的字符跳变概率和B3中记录的字符分隔概率;

C3.在A6构造的口令结构字典中查找B2记录的口令结构对应概率;

C4.将上述概率连乘,得到用户输入口令的构造概率;

步骤D具体执行如下操作:

D1.将C4计算得到的口令构造概率作为口令绝对强度,反馈给用户;

D2.计算C4得到的口令构造概率与标杆口令构造概率之间的差值,将该差值作为口令的相对强度,反馈给用户;

D3.基于A6构造的字符转换字典,随机选择一种转换情况,对用户口令进行修改,从而生成若干条更安全的候选口令,供用户选择。

说明书 :

基于口令重用、字符跳变与分隔的口令强度评估方法

技术领域

[0001] 本发明属于信息安全技术领域,涉及口令安全认证领域,更具体地,涉及口令强度评价方法。

背景技术

[0002] 口令作为目前使用最广泛的身份认证方式,是维护信息系统安全、保护用户隐私的首要防线。许多用户倾向于设置强度低、易猜测的弱口令以方便记忆,或在多个网站中重
用口令,这些脆弱口令行为给网站和用户均带来了严重的安全隐患。
[0003] 为了保护系统和用户的安全,主流互联网服务提供商都会在用户注册网站服务或修改口令时,通过口令强度评价器(password strength meter,PSM)将口令强度反馈给用
户。只有对口令强度反馈准确的PSM才能显著提高用户的口令强度,进而保护用户账户的安
全。
[0004] 然而目前广泛使用的各种PSM常常给出不准确的、误导的反馈,不同网站之间的评测结果也存在较大冲突,难以保证其声称的安全性。不准确的强度反馈导致用户误认为只
需将口令末尾添加数字或特殊字符,或者简单地将首字母大写就可以将原本的弱口令提升
为强口令。此类PSM远远落后于当下攻击者的真实水平,并无法帮助用户提高口令强度。因
[5] [6]
此,学者们提出了依据攻击难易程度设计PSM的新思路,基于攻击算法的Markov 、PCFG 、
[9] [4] [4]
RNN 、fuzzyPSM 应运而生。可惜的是,除fuzzyPSM 外,现有的基于攻击算法的PSM均默
认用户的口令是全新构造的,这显然不符合用户真实的口令使用习惯。
[0005] 因此,存在如下需求:在充分考虑用户口令重用行为的基础上,反馈给用户准确的口令强度。

发明内容

[0006] 为了克服上述技术的不足,本发明提供了一种基于口令重用、字符跳变与分隔的口令强度评估方法。本发明的目的是通过以下技术方案实现的:
[0007] 1.一种基于口令重用、字符跳变与分隔的口令强度评估方法,由字典构造模块、口令预处理模块、概率计算模块与强度反馈模块组成,具体包括下列步骤:
[0008] A.在字典构造模块,选取与服务类型相契合的口令集S作为训练集,通过模糊匹配算法,构造字符转换字典及口令结构字典,具体执行如下操作:
[0009] A1.统计每个大写字母和基础字符在S中的出现频数,并计算得到小写字母转换为大写字母的概率,以及基础字符保持不变的概率;
[0010] A2.将S中每条口令包含的大写字母转换为对应小写字母,得到新的数据集Slower;
[0011] A3.根据字符组成,将Slower划分为两个子数据集:集合Smatch由仅含基础字符且频数≥10的字符串构成,Sspecial由包含特殊字符的字符串构成;
[0012] A4.设置适当的置信度CR后执行模糊匹配算法,算法步骤为:
[0013] 选取Sspecial中的字符串str1,在Smatch中提取长度满足len(str2)≤ len(str1)条件的字符串str2,构造待匹配集合Smatch′;
[0014] 利用str1匹配Smatch′中的str2,即逐字符比较str1与str2;若str1与str2 中的基础字符无法一一对应,认为匹配失败,str1左移一个字符,并再次尝试匹配str2;若str1中
的特殊字符与str2中的基础字符相对应,认为暂时匹配成功;
[0015] 对于暂时匹配成功的str1与str2,计算匹配率MR来判断模糊匹配是否成功,进而判断对应特殊字符是否为基础字符跳变所得。若  (count为成功匹配
的字符个数),则认为str1与str2模糊匹配失败,str1中的对应特殊字符为分隔符,反之则
认为str1与str2模糊匹配成功,str1中的特殊字符是由str2中对应基础字符跳变所得;
[0016] A5.将模糊匹配成功,即认为是基础字符跳变所得的特殊字符,“反跳变”为对应的基础字符,并按照正则表达式[^B?(SnB)*Sn?$]的格式来记录口令结构,其中B代表基础字
符,Sn代表被认为是分隔符的长度为n的特殊字符串;
[0017] A6.记录所有出现过的大写转换、字符跳变、字符分隔的情况并将相应的概率存储于字符转换字典;记录所有出现过的口令结构,并计算相应的概率存储于口令结构字典;
[0018] B.在口令预处理模块,将用户输入的口令,还原为基础口令片段并记录转换类型和口令结构,具体执行如下操作:
[0019] B1.将用户口令中的大写字母转换为对应的小写字母,并记录此次转换;
[0020] B2.利用A4所述算法,将转换后的口令在A3构造的Smatch中进行模糊匹配;将模糊匹配成功的特殊字符“反跳变”对应基础字符,记录此时的口令结构以及进行的跳变转换;
[0021] B3.以模糊匹配失败的特殊字符为分隔符,将口令切割为若干基础字符片段,记录此时作为分隔符的特殊字符;
[0022] C.在概率计算模块,通过神经网络计算基础口令的构造概率,结合字典记录的口令格式概率与字符转换概率,计算用户口令的构造概率,具体执行如下操作:
[0023] C1.利用A3构造的Smatch,训练LSTM,并以B3得到的基础字符片段作为 LSTM的输入,计算基础字符片段对应构造概率;
[0024] C2.在A6构造的字符转换字典中查找B1记录的大写转换概率、B2中记录的字符跳变概率、B3中记录的字符分隔概率;
[0025] C3.在A6构造的口令结构字典中查找B2记录的口令结构对应概率;
[0026] C4.将上述概率连乘,得到用户输入口令的构造概率;
[0027] D.在强度反馈模块,反馈给用户其口令的绝对强度与相对强度,同时提供给用户与其输入口令相似但更安全的候选口令,具体执行如下操作:
[0028] D1.将C4计算得到的口令构造概率作为口令绝对强度,反馈给用户;
[0029] D2.计算C4得到的口令构造概率与标杆口令构造概率之间的差值,将该差值作为口令的相对强度,反馈给用户;
[0030] D3.基于A6构造的字符转换字典,随机选择一种转换情况,对用户口令进行修改,从而生成若干条更安全的候选口令,供用户选择;
[0031] 进一步的,在上述公开的方案中,通过步骤A,本发明将用户的口令重用行为归纳为大写转换、特殊字符跳变以及特殊字符分隔三种,并分别计算得到了相应概率。
[0032] 进一步的,在上述公开的方案中,通过步骤B,本发明还原了用户口令重用过程,并将用户口令切分成了若干基础字符片段。
[0033] 进一步的,在上述公开的方案中,通过步骤C,本发明将LSTM计算的基础字符片段的概率、从字典中查找的变换类型和口令结构对应概率连乘,最终得到用户输入口令的构
造概率;
[0034] 进一步的,在上述公开的方案中,通过步骤D,本发明在使用标杆口令向用户展示其口令的相对强度的同时,通过简单步骤生成了与用户输入口令相似但足够安全的候选口
令,供用户选择。
[0035] 本发明的优点和有益效果:
[0036] (1)本发明将用户口令重用行为归纳为大写变换、字符跳变和分隔三种情况,并设计了模糊匹配算法,能够精确给出各种转换情况对应的概率。通过模糊匹配算法,本发明克
服了以往方案中缺少重要的转换、缺少概率计算等不足。
[0037] (2)本发明使用LSTM计算基础字符串的构造概率,结合模糊匹配算法计算特殊字符和口令结构的概率,这使得本发明能够在在强度评价的准确性以及运行效率之间取得良
10
好的平衡。实验结果表明,本发明在评估中等强度的口令 (猜测数≥10 )效果最好,在相同
[4]
的实验环境下,本发明计算得到的覆盖率比fuzzyPSM 对应覆盖率平均高18.9%;比3阶
[5] [9]
Markov 对应覆盖率平均高 16.9%;比RNN 对应覆盖率平均高6.1%。同时,相比于其他
PSM算法模型,本发明的鲁棒性也是最好的。
[0038] (3)本发明在提供口令绝对强度给用户的同时,利用四个标杆口令,反馈给用户其口令的相对强度,便于用户充分了解其口令相对于其他用户口令的强度。同时,本发明通过
极少步骤生成了与用户口令相似但足够安全的候选口令,进而帮助用户构造更安全的口
令。综合考虑到服务类型、经济价值以及口令策略等方面的不同,本发明也给出了不同场景
下的参数设置方法。

附图说明

[0039] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。下文描述中的附图仅仅是本发明的一些实施例,对于本领域普通技
术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0040] 图1是本发明口令强度评价方法整体模块组成;
[0041] 图2是本发明口令强度评价方法整体流程设计;
[0042] 图3是口令预处理模块流程分解示意图;
[0043] 图4是对口令P@ssword####12进行预处理的示例;
[0044] 图5是概率计算模块流程分解示意图;
[0045] 图6是强度反馈模块流程分解示意图。

具体实施方式

[0046] 下面结合附图对本发明进行详细阐述,以使本发明的优点和特征更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
[0047] 参考以下对整个说明书中使用的概念和术语的解释,有助于本领域技术人员更好地理解本发明实施方案。
[0048] 口令重用:随着账户数目的增加,用户为了减轻记忆负担,在设置口令时,会直接使用旧口令,或对原有的旧口令进行简单修改得到新口令,我们称此类行为为口令重用。
[0049] 基础字符:用于构造口令的小写字母和数字。
[0050] 特殊字符:除小写字母、大写字母和数字外,用于构造口令的其他ASCII 字符。
[0051] 跳变:在构造口令时,用户往往会将口令中的某些基础字符替换成与其形状、读音相似的特殊字符,我们将这一替换过程称为跳变。同时,我们将跳变所得的特殊字符还原为
对应基础字符的过程,称为“反跳变”。
[0052] 分隔:在构造口令时,许多用户会选择在有语义的字符串之前、之间或之后添加特殊字符,这些特殊字符往往起分隔符的作用。
[0053] 猜测数:对于任意一条口令α,其猜测数CΔ可通过CΔ=|{β∈Γ:R(β)< R(α)}|计算得到,其中Γ为PSM内置算法生成的猜测口令集,R(β)为β在Γ中的排名。
[0054] 在线猜测攻击:需要与服务器进行交互才可实施的口令攻击方式。
[0055] 离线猜测攻击:不需要与服务器进行交互即可实施的口令攻击方式。
[0056] 宽度优先的离线猜测攻击:攻击者为了破解尽可能多的用户口令而实施的离线猜测攻击。
[0057] 覆盖率:使用PSM内置的口令攻击算法,生成一定数量的猜测口令集,猜测口令集覆盖测试集口令的占比即为覆盖率。
[0058] 蒙特卡洛方法(Monte Carlo):Dell和Filippone[7]设计了Monte Carlo方法用于模拟口令猜测数。该方法要求每个参与测试的PSM内置算法生成大小为n 的样本口令集Θ,
且样本口令集中抽样得到口令β的概率等于该口令β的构造概率 P(β)。对于任意一条口令α,
其猜测数CΔ为
[0059]
[0060] 理想强度排名:我们认为,最优攻击者生成的猜测集与测试集完全相同,故每条口令在测试集中的频数排序即为该口令对应的理想强度排名。
[0061] 加权斯皮尔曼相关系数(Weight Spearman Correlation,wspearman):以测试集中每条口令的出现频率为权重,将其累乘至PSM输出口令强度排名与理想 PSM强度排名,两
[8]
个强度排名结果之间的Spearman相关系数即为wspearman。 Maximilian与Markus 证实,
该指标可以很好的度量PSM的鲁棒性。
[0062] 如图1所示,本发明所述的用户口令强度评价方法由四个模块组成:字典构造模块、口令预处理模块、概率计算模块和强度反馈模块,同时参见附图2,各模块的详细介绍如
下:
[0063] 1.字典构造模块
[0064] 字符转换字典和口令结构字典是本发明的核心。字符转换字典中包含小写字母转换为大写字母的概率、基础字符跳变为特殊字符的概率以及特殊字符作为分隔符的概率。
口令结构字典记录了各种可能的口令结构以及对应的概率。
[0065] 其具体构造步骤如下:
[0066] 首先选取口令集作为训练集S,将训练集S中每个口令所包含的大写字母转换为对应的小写字母,以获取新的子数据集Slower。统计每个大写字母和基础字符在S中的频数(例
如,字符A出现的频数记录为n(A),字符a出现的频数记录为n(a)),计算出每个小写字母转换
为大写字母的概率 以及保持不变的概率
[0067] 其次,根据含有的字符类型,将Slower分成两组:集合Sbasic为仅含有基础字符的字符串集合;Sspecial为含有特殊字符的字符串集合。我们需要设置适当的置信度CR,并使用模
糊匹配算法对Sspecial中的每条口令尝试匹配。我们认为用户通常会对常用口令进行转换来
获取最终口令,故提取Sbasic中频数≥10的字符串,构建用于模糊匹配的数据集Smatch。
[0068] 模糊匹配算法实现细节如下:选取Sspecial中的字符串str1,在Smatch中提取长度满足len(str2)≤len(str1)条件的字符串str2,构造待匹配集合Smatch′。依照频数从高到低的
顺序,str1去匹配Smatch′中的每一条str2。逐字符比较str1 与str2,若str1与str2中的基础
字符无法一一对应,认为匹配失败,str1左移一个字符,并再次尝试匹配str2;若str1中的
特殊字符与str2中的基础字符相对应,认为暂时匹配成功。对于暂时匹配成功的str1与
str2,计算匹配率MR 来判断模糊匹配是否成功,即判断特殊字符是否可以通过基础字符跳
变得到。若 (count为匹配成功的字符个数),则认为str1与str2模糊
匹配失败,str1中的特殊字符为分隔符,反之认为str1中的特殊字符是由 str2中对应的基
础字符跳变得到。
[0069] 将模糊匹配成功,即认为是基础字符跳变所得的特殊字符,“反跳变”为对应的基础字符,并按照正则表达式[^B?(SnB)*Sn?$]的格式来记录口令结构,其中B代表基础字符,
Sn代表被认为是分隔符的长度为n的特殊字符串。重复上述过程,直至Sspecial中的所有字符
串均完成模糊匹配。
[0070] 如上所述,置信度CR用于调整特殊字符对口令强度的影响,可应用场景对口令安全性的不同要求进行调整。
[0071] 记录所有的字符跳变、字符分隔的情况并将相应的概率存储在字符转换字典中;记录所有出现过的口令结构,计算相应的概率并存储于口令结构字典中。
[0072] 我们在此处展示一个简单的例子,来说明模糊匹配算法的执行步骤。假定此时置信度CR=0.5,S中存在口令P@ssword####12。对于口令 P@ssword####12,记录其中的大写
变换p→P,并将大写字母转换为对应的小写字母,得到字符串p@ssword####12,由于该字符
串包含特殊字符,故 p@ssword####12应当位于Sspecial集合中。在进行模糊匹配时,选取
str1= p@ssword####12,其长度len(str1)=14,此时在Smatch中满足len(str2)≤ len
(str1)条件的字符串str2构成了新的集合Smatch′= {123456,password,000012}。我们首先
使用str1=p@ssword####12去匹配 str2=123456。在第一轮匹配中,str1的第一个字符为
p,而str2的第一个字符为1,二者均为基础字符但不相同,说明第一轮匹配失败,因此将 p@
ssword####12左移一位更新为@ssword####12后进行第二轮匹配;在第二轮匹配中,str1
=@ssword####12,str2=123456,str1的第一个字符为特殊字符@,str2的第一个字符为1,
暂时认为@与1匹配成功,随后比较str1 与str2的第二个字符,由于s与2无法对应,故第二
轮匹配仍然失败。重复上述步骤,最终发现p@ssword####12与123456无法匹配成功。切换
str2为 Smatch′中第二条口令password,利用str1=p@ssword####12去配str2=password。
可以发现,除却字符@外,str2中的基础字符与str1相应位置的基础字符一一对应,可以认
为str1与str2暂时匹配成功,此时匹配率MR=7/8= 0.875>CR=0.5,这意味着str1成功
匹配str2,可认为p@ssword####12 中的@是由a跳变得到的,因此,记录跳变转换a→@,并将
str1中的@“反跳变”为a,更新str1。后续使用str1=password####12去匹配str2= 
password,重复匹配步骤,最终发现str1=password####12无法与str2匹配成功。最后,我
们切换str2为Smatch′中的最后一条口令000012,在匹配过程中可以发现,当str1通过不断地
左移更新为str1=####12时,str1= ####12与str2=000012暂时匹配成功,然而二者之间
的匹配率MR=2/6忿 0.333<CR=0.5,这意味匹配失败。此时,Smatch′中的所有口令均已耗
尽, p@ssword####12中的片段####仍然无法匹配到可用的跳变转换,因此,该片段中的特
殊字符即可被认为是分隔符。在口令P@ssword####12上执行上述过程中记录的各种转换(p
→P,a→@)后得到的口令为p@ssword####12,因此P@ssword####12口令结构为BS4B。
[0073] 2.口令预处理模块
[0074] 口令预处理模块将用户输入的口令,还原为基础口令,并记录变换类型和口令结构。在这个模块中,本发明将大写英文字符、特殊字符等对口令强度的影响通过概率进行了
量化。图3给出了口令预处理模块的流程分解示意图。
[0075] 假设用户输入了一个同时含有基础字符、大写字母和特殊字符的口令 P@ssword####12。在预处理模块,首先将所有的大写字母转换为相应的小写字母,得到口令p@
ssword####12,并在字符转换字典中查找获取对应大写概率P(p→P)。对转换后的字符串p@
ssword####12,尝试使用模糊匹配算法将其与符合要求的Smatch′进行匹配,记录字符跳变以
及字符分隔情况,并在字符转换字典中查找得到相应概率P(a→@)与P(####)。将匹配成功的特
殊字符转换为对应的基础字符,得到字符串password####12,并在口令结构字典中查找该
口令结构对应的概率 最后,以作为分隔符的####为基准,切割口令,得到基础字符
片段password与12。图4展示了对口令P@ssword####12进行预处理的过程。
[0076] 3.概率计算模块
[0077] 在口令预处理模块的最后,用户输入的口令被切割成了若干只含有基础字符的片段,将其作为神经网络LSTM的输入。经过Smatch训练过后的LSTM可以根据前缀字符序列输出
下一个字符的概率,不断进行迭代运算,最后可得到基础字符片段的构造概率。利用口令预
处理模块得到的大写字母转换概率、字符跳变概率、字符分隔概率以及口令结构对应的概
率,结合神经网络输出的基础字符片段的构造概率,用户输入口令的构造概率即可通过上
述概率相乘得到。举例说明,口令P@ssword####12的构造概率为
[0078] 图5给出了概率计算模块流程分解示意图。
[0079] 4.强度反馈模块
[0080] 准确计算口令构造概率能够帮助用户了解其设置口令的强度,但由于缺少参照,用户不能对自身口令的安全性有更全面的认识。本发明通过设置标杆口令,从口令的绝对
强度反馈与相对强度反馈两方面,来向用户更直观地展示其口令强度。绝对强度反映口令
的实际强度,相对强度为实际强度与网站标杆口令强度的差值。作为标杆口令,pw1为口令
强度的底线,概率低于pw1的口令应当拒绝其通过;pw2为基本安全和相对安全的分界线;
pw3为相对安全和足够安全的分界线;pw4为系统预置的最强口令。网站管理者可根据实际
的应用需求设置标杆口令,基本设置原则如下:
[0081] pw1:猜测数≥104的口令。考虑到现代各大服务提供商的网络服务器都配有恶意流量检测机制,并且往往会限制IP的每日登录次数。若假设攻击者可接受的口令破解时间
4[10]
为4个月,那么攻击者进行大规模在线猜测的猜测数上限为 10 。因此大多数服务网站采
[11] [12]
用的可疑登录检测(suspicious login detection) 和账号锁定(l0ckout policies)
是有效的,足以抵挡大部分在线猜测攻击。可以认为pw1的强度为网站允许通过的口令强度
底线,只要用户设置的口令不在黑名单之内,均可达到这个强度。
[0082] pw2:猜测数≥107的口令。在猜测数大于107时,攻击者的收益不会随猜测数的增加[10]
而有显著的提升 。因此强度达到pw2的口令基本可以满足大多数网站对于口令长度和字
符类型的要求,也可以抵御大部分在线猜测攻击。
[0083] pw3:猜测数≥1014的口令。离线猜测攻击可以实施的猜测次数远高于在线猜测攻11 12 [10]
击,往往能达到10 甚至10 以上 。已有文献证明,攻击者实施宽度优先的离线猜测攻击
14[13][14] 6 14 [14]
的猜测数上限为10 ,同时实验发现大部分口令的猜测数处于[10 ,10 ]区间内 ,
14 14
故本发明设置pw3的猜测数≥10 。可以认为,猜测数≥10 的口令基本可以保护用户账户
的安全。
[0084] pw4:猜测数≥1020的口令。采用Monte Carlo[7]方法计算测试集中每一条口令的猜[6] [5]
测数,以及不同猜测数对应的覆盖率。在这个实验中,我们发现本发明、 PCFG 、Markov 、
[9] [4] 20
RNN 以及fuzzyPSM 共五种效果较好的PSM内置算法,在猜测数为≥10 时覆盖率均达到
20
最高且保持稳定。因此可以认为猜测数≥10 的口令非常安全。
[0085] 为了减轻计算负担,可以将标杆口令的猜测数转换为对应的概率区间。
[0086] 强度介于pw2与pw3之间的口令虽可被网站接受,但仍不够安全,本发明根据字符转换字典,随机选择一种可用变换对用户输入口令进行修改,生成若干候选口令供用户选
择和参考。上述措施可以保证生成的候选口令足够安全(强度不低于pw3),且便于用户记
忆。图6给出了强度反馈模块的流程示意图。
[0087] 上述实施方式保证了本发明给出的口令强度评价结果是准确且鲁棒的,我们通过两组实验证明了这个结论。
[0088] 以覆盖率作为评价指标,设置相同的训练集与测试集,运行PCFG[6]、 Markov[5]、[9] [4] [15] [16]
RNN 、fuzzyPSM 四种效果较好的算法、JtR 与HashCat 两种常见的口令破解工具,以
[7]
及本发明。我们使用Monte Carlo 方法计算测试集中每一条口令的猜测数。实验结果证
4
明,本发明在评测中等强度以上口令(猜测数≥10)时表现一直最佳,显著优于其他算法。
[0089] 以wspearman作为评价指标,设置相同的训练集与测试集,实际运行本发明以及[6] [5] [4] [3]
PCFG 、Markov 、fuzzyPSM 、zxcvbn 五种鲁棒性较好的算法,对测试集中频数大于10
的口令进行强度评测。计算算法输出的强度排序结果与理想强度排序的强度结果之间的
wspearman系数,实验结果表明,本发明输出的口令强度评价结果鲁棒性显著优于其他算
法。
[0090] 由上可见,本发明所公开的口令强度评价方法具有下列优点:
[0091] 本发明的优点和有益效果:
[0092] (1)本发明将用户口令重用行为归纳为大写变换、字符跳变和分隔三种情况,并设计了模糊匹配算法,能够精确给出各种转换情况对应的概率。通过模糊匹配算法,本发明克
服了以往方案中缺少重要的转换、缺少概率计算等不足。
[0093] (2)本发明使用LSTM计算基础字符串的构造概率,结合模糊匹配算法计算特殊字符和口令结构的概率,这使得本发明能够在在强度评价的准确性以及运行效率之间取得良
10
好的平衡。实验结果表明,本发明在评估中等强度的口令(猜测数≥10 )时效果最好。在相
[4]
同的实验环境下,本发明计算得到的覆盖率比fuzzyPSM 对应覆盖率平均高18.9%;比3阶
[5] [9]
Markov 对应覆盖率平均高 16.9%;比RNN 对应覆盖率平均高6.1%。同时,相比于其他
PSM算法模型,本发明的鲁棒性也是最好的。
[0094] (3)本发明在提供口令绝对强度给用户的同时,利用四个标杆口令,反馈给用户其口令的相对强度,便于用户充分了解其口令相对于其他用户口令的强度。同时,本发明通过
极少步骤生成了与用户口令相似但足够安全的候选口令,进而帮助用户构造更安全的口
令。综合考虑到服务类型、经济价值以及口令策略等方面的不同,本发明也给出了不同场景
下的参数设置方法。
[0095] 以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技
术领域,均同理包括在本发明的专利保护范围内。
[0096] 参考文献
[0097] [1]Egelman S,Sotirakopoulos A,Muslukhov I,et al.Does my password go up to eleven?The impact of password meters on password selection[C]//
Proceedings of the SIGCHI Conference on Human Factors in Computing 
Systems.2013: 2379‑2388.
[0098] [2]Ur B,Kelley P G,Komanduri S,et al.How does your password measure up?the effect of strength meters on password creation[C]//Presented as part 
of the 21st USENIX Security Symposium(USENIX Security 12).2012:65‑80.
[0099] [3]Wheeler D L.zxcvbn:Low‑budget password strength estimation[C]//25th USENIX Security Symposium(USENIX Security 16).2016:157‑173.
[0100] [4]Wang D,He D,Cheng H,et al.fuzzyPSM:A new password strength meter using fuzzy probabilistic context‑free grammars[C]//2016 46th Annual IEEE/
IFIP International Conference on Dependable Systems and Networks(DSN).IEEE, 
2016:595‑606.
[0101] [5]Ma J,Yang W,Luo M,et al.A study of probabilistic password models[C]//2014 IEEE Symposium on Security and Privacy.IEEE,2014:689‑704.
[0102] [6]Weir M,Aggarwal S,De Medeiros B,et al.Password cracking using probabilistic context‑free grammars[C]//2009 30th IEEE Symposium on Security 
and Privacy. IEEE,2009:391‑405.
[0103] [7]Dell'Amico M,Filippone M.Monte Carlo strength evaluation:Fast and reliable password checking[C]//Proceedings of the 22nd ACM SIGSAC Conference 
on Computer and Communications Security.2015:158‑169.
[0104] [8]Golla M,Dürmuth M.On the accuracy of password strength meters[C]//Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications 
Security.2018:1567‑1582.
[0105] [9]Melicher W,Ur B,Segreti S M,et al.Fast,lean,and accurate:Modeling password guessability using neural networks[C]//25th USENIX Security 
Symposium(USENIX Security 16).2016:175‑191.
[0106] [10]Florêncio D,Herley C,Van Oorschot P C.An administrator's guide to internet password research[C]//Proceedings of the 28th USENIX conference on 
Large Installation System Administration(LISA14).2014:35‑52.
[0107] [11]Freeman D,Jain S,Dürmuth M,et al.Who Are You?A Statistical Approach to Measuring User Authenticity[C]//NDSS.2016:1‑15.
[0108] [12]Alsaleh M,Mannan M,Van Oorschot P C.Revisiting defenses against large‑scale online password guessing attacks[J].IEEE Transactions on 
dependable and secure computing,2011,9(1):128‑141.
[0109] [13]Weir M,Aggarwal S,Collins M,et al.Testing metrics for password creation policies by attacking large sets of revealed passwords[C]//
Proceedings of the 17th ACM conference on Computer and communications 
security.2010:162‑175.
[0110] [14]Mazurek M L,Komanduri S,Vidas T,et al.Measuring password guessability for an entire university[C]//Proceedings of the 2013 ACM SIGSAC 
conference on Computer&communications security.2013:173‑186.
[0111] [15]PESLYAK,A.:John the Ripper(1996),http://www.openwall.com/john/
[0112] [16]STEUBE:J.Hashcat(2018),https://hashcat.net/hashcat/。