CN104268450B - 一种批量口令分级先验检验方法 - Google Patents
一种批量口令分级先验检验方法 Download PDFInfo
- Publication number
- CN104268450B CN104268450B CN201410460356.3A CN201410460356A CN104268450B CN 104268450 B CN104268450 B CN 104268450B CN 201410460356 A CN201410460356 A CN 201410460356A CN 104268450 B CN104268450 B CN 104268450B
- Authority
- CN
- China
- Prior art keywords
- password
- character
- bloom filter
- training
- classification
- 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
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000007689 inspection Methods 0.000 title claims abstract description 17
- 238000012549 training Methods 0.000 claims abstract description 92
- 239000011159 matrix material Substances 0.000 claims abstract description 42
- 238000012546 transfer Methods 0.000 claims abstract description 31
- 230000008569 process Effects 0.000 claims abstract description 22
- 241001269238 Data Species 0.000 claims abstract description 4
- 230000008859 change Effects 0.000 claims description 10
- 239000012141 concentrate Substances 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 5
- 238000002474 experimental method Methods 0.000 claims description 4
- 230000008676 import Effects 0.000 claims description 4
- 238000005070 sampling Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 4
- 239000004744 fabric Substances 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 240000004370 Pastinaca sativa Species 0.000 description 2
- 235000017769 Pastinaca sativa subsp sativa Nutrition 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
- G06F21/46—Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
批量口令分级先验检验方法,由两个步骤组成:基于真实口令数据的分级与分级口令模型的训练与检索;在分级过程中,先要采样提取百万级的中国用户口令数据,得到样本训练集,然后由样本训练集通过二阶的马尔可夫模型得到口令的概率转移矩阵,并计算得到每个口令的强度评估值,最后按口令评估值和口令分级结构对全体口令数据进行分级;在分级口令模型的训练与检索阶段,通过对每一分级的口令集构建不同强度的口令布鲁姆过滤器,把分级结果通过散列函数组合保存在每一级的布鲁姆过滤器位向量,从而建立分级口令模型;检索时可通过多级的口令布鲁姆过滤器快速且有效判断待测口令的强弱。
Description
技术领域
本发明属于信息安全领域。
背景技术
随着大量用户和应用上网,口令作为当前普遍采用的低成本的系统用户认证方法对于系统安全至关重要。可以预见基于口令的认证将在今后相当长时期内继续实施。诸多口令泄露安全事件和文献表明,国内系统管理方口令管理上存在重大疏忽,另一方面国内用户缺少细致的口令设置指导,导致用户采用弱口令比例远高于国际用户。因此我国具有大量用户的系统在口令安全方面面临较高的风险。提供一种面向大量口令的定期高效的分级检验评估方法能增强系统整体安全,它也可以在用户创建口令时就建立有效的干预和指导,拒绝弱口令。
目前相当多系统采用先验口令检验技术进行口令安全性判断,主要表现为根据口令长度、字符集大小、用户姓名拼写习惯、以及与用户名的重复性等简单规则判断口令的强弱,有些给出弱、中、强等分级评估。但基于简单规则的先验方法对于弱口令判断的准确度不足,用户很容易构建符合规则的弱口令通过检验。其中构建高效精巧的弱口令字典是提高口令分级判断精度的关键。
区别于简单文法规则的先验口令检验方法,基于马尔可夫模型的方法立足统计,构建口令的概率转移矩阵,从而能有效评价待测口令的强弱。但马尔可夫模型法的精度依赖于阈值的设定。此外基于布鲁姆过滤器的可以支持复杂模式的口令强弱判断,但非常依赖于弱口令字典。
发明内容
本发明立足中国用户口令设置习惯,面向有大量用户的系统口令安全评估需求,提出了一种快速有效并批量评估口令强度的方法。使得系统在用户创建口令时能有效评估口令强度,规避中国用户常见的、易于猜测的口令,以达到保护系统总体安全的效果。
本发明所述的批量口令分级先验检验方法,由两个部分组成:基于真实口令数据的分级与分级口令模型的训练与检索。在分级过程中,先要采样提取百万级的中国用户口令数据,得到样本训练集,然后由样本训练集通过二阶的马尔可夫模型得到口令的概率转移矩阵,并计算得到每个口令的强度评估值,最后按口令评估值和口令分级结构对全体口令数据进行分级;在分级口令模型的训练与检索阶段,通过对每一分级的口令集构建不同强度的口令布鲁姆过滤器,把分级结果通过散列函数组合保存在每一级的布鲁姆过滤器位向量中,从而建立分级口令模型。检索时可通过多级的口令布鲁姆过滤器快速且有效判断待测口令的强弱。
详细步骤如下:
1.基于真实口令数据分级模块
首先需要选定马尔可夫模型的口令数据训练样本集。大系统的用户数量往往在千万级以上,相应分级后的用户口令数据的规模也在百万以上,直接构建会导致常见的庞大弱口令字典问题。本方法需要确保口令分级模型兼有精度和计算效率优势。因而提出先对大量的口令数据进行随机抽样得到训练样本,然后借助二阶马尔可夫模型计算得到口令数据总体的概率转移矩阵,接着计算每个口令的强度评估值,最后计算得出分级强度阈值,完成针对真实口令数据的分级口令字典。
1.1口令数据训练样本生成
由于系统功能和用户定位不同,即使是用户量较大的系统,其用户口令数据也不一定能覆盖中国用户的口令设置模式。而对于用户量不大的系统而言,直接用本系统的口令数据进行分级训练更会存在数据量不足等问题。因此本方法的口令训练数据独立于特定系统,采用多个百万级的中国用户口令数据集构成总数据集,以全面覆盖中国用户口令设置模式。本方法通过对总数据集随机抽样的方式生成规模合适的口令数据训练样本,在保持较好的分级效果的基础上减少分级模型训练所需要的时间。
1.2计算概率转移矩阵
N阶马尔可夫模型通过统计以长度为N的前缀字符串可以计算下一个字符的出现概率。文献已经证实了马尔可夫模型适用于口令安全评估。口令数据中字符的相邻关系总体蕴含一定的规律。中国用户在口令设置中“123”,“abc”等三元字符组是频繁出现的模式。因此本方法采用二阶马尔可夫模型,将口令分解为多个三连字符串,通过统计所有的三连字符组合,计算得到口令数据的概率转移矩阵。
口令的二阶马尔可夫模型中的概率转移矩阵T(m,n,k)中的每个元素表示已知前缀为“mn”时下一个字符为“k”的概率,它可以由频率矩阵f(m,n,k)/f(m,n,∞)计算得到。其中m,n,k分别表示口令字符集中的对应字符,f(m,n,k)表示三字符串“mnk”的统计频数,f(m,n,∞)表示所有前缀为“mn”的三字符串的频数。例如,口令串“parsnips”可以产生顺序三字符子串序列:par,ars,rsn,nip和ips。相应的f(p,a,r),f(a,r,s)等计数加1,对应f(p,a,∞),f(a,r,∞)等计数加1。
具体步骤如下:
(1)定义口令字符集U,本方法建议U包含0-9,a-z和一个特殊字符代表符$,共37个字符(在分级实验中发现,细分大写字符和其它特殊字符对分级影响可以忽略,所以本方法为U采用了较紧致的字符集);初始化三元概率转移矩阵T各元素t(m,n,k)为0,其中m,n,k分别表示口令字符集U中的对应字符。
(2)依次读入口令数据训练样本集,对每一个口令字符串s:
计算口令串长度len=length(s),length(s)表示口令字符串s的字符长度,分解口令为len-2个三字符子串。对每一个三字符子串stri(1≤i≤len-2):
更新统计该三字符子串和二字符前缀串的频次:
f(ci,ci+1,ci+2)=f(ci,ci+1,ci+2)+1
f(ci,ci+1,∞)=f(ci,ci+1,∞)+1,
其中ci为口令串s的第i个字符(从1开始计数),以此类推。U为前述的含37个字符的字符集,f(ci,ci+1,∞)定义为∑x∈Uf(ci,ci+1,x),∑为累加符号。
(3)计算矩阵T的所有元素t(m,n,k):每个三字符子串出现的频次除以该子串的二字符前缀串的频次,即其中U等描述同上。
1.3计算口令评估值并分级
本方法中,口令的强度评估值设置为该口令串的所有三字符子串在三元概率转移矩阵T中对应元素的概率值最高3个的乘积。这样能较好地避免特殊值对口令强度的影响。实验证实多来源的我国用户口令数据具有相对稳定的结构,本方法采用的口令强度评估值的分布在样本和全数据中也有稳定的分布百分比。因此本方法不采用固定阈值作为口令强度分级的依据,而是采用设定弱口令所占的百分比来设定阈值。此外,本方法在训练马尔可夫模型训练时采用抽样数据减少训练计算复杂度,在应用马尔可夫模型时采用的是全体真实口令数据。
具体步骤如下:
(1)初始化单口令子串强度值数组temp各单元为0,初始化口令数据强度值ts为0,设定口令强度分级数n=3(分级数可设置,后续相应修改)
(2)依次读入口令数据样本全集,对每一个口令字符串s:
i.计算口令串长度len=length(s),length(s)表示口令字符串s的字符长度,分解口令为len-2个三字符子串。对每一个三字符子串stri(ci,ci+1,ci+2)(1≤i≤len-2):
从口令概率转移矩阵T中取出对应的元素并赋值给temp[i],即temp[i]=t(ci,ci+1,ci+2),表示将cici+1ci+2三字符串对应矩阵T中的值赋值给数组temp中第i个位置
ii.对数组temp从大到小排序
iii.ts=temp[0]*temp[1]*temp[2]并保存到训练样本文本中s对应的“口令强度值”项;清空temp
(3)对口令数据训练样本集按新列“口令强度值”从大到小排序,记录总个数为num
(4)设定阈值百分比t1,t2(tn-1),其中0<t1<t2(tn-1)<1,n为多级布鲁姆过滤器的级数。本方法n=3时,定义强度值百分比属于[0,t1]的为一级弱口令,属于[t1,t2]的为二级口令,属于[t2,1]的为三级强口令。计算分级临界值:S1=num*t1,S2=num*t2,得到排序后的口令数据训练样本集中S1,S2位置对应的口令的强度评估值TS1,TS2
(5)对按“口令强度值”排序后的口令数据训练样本集,根据分级临界值分别归类n=3级(例ts(s)<TS1则口令s判定为一级弱口令,TS1≤ts(s)<TS2则口令s判定为二级口令,ts(s)≥TS2则口令s判定为三级强口令),然后分级保存口令。
2.多级布鲁姆过滤器的训练与口令检验
按照前述第一阶段马尔可夫模型口令数据训练后,本发明方法采用布鲁姆过滤器模型保存n级口令,提供高效检索。
2.1多级布鲁姆过滤器训练过程。
本方法的每一级口令采用标准布鲁姆过滤器构建,需要根据分级口令数据量计算得到各级布鲁姆过滤器的参数。参数包括该级过滤器的误判率f,哈希函数个数K及函数集{H1,H2,…,HK},元素集合Ni,位串向量长度Mi,1≤i≤n=3。训练过程通过把同一级的每个口令串s依次导入本级布鲁姆过滤器,计算s在对应各个哈希函数的值,并把过滤器内哈希值对应的向量所在比特位设为“1”来完成。
具体步骤如下:
(1)选定布鲁姆过滤器哈希函数K=9,相应表示各级布鲁姆过滤器的哈希函数集为{H1,H2,…,H9},误判率f=0.005,i的初始值为,表示某一级布鲁姆过滤器1。
(2)构建第i级布鲁姆过滤器(1≤i≤n=3):
i.计算或获取第i级口令数据总数Ni
ii.根据Ni、f、K计算得到第i级布鲁姆过滤器的位串向量长度Mi。初始化第i级布鲁姆过滤器内部位串向量各比特位为“0”。
iii.读入第i级口令训练集的每一个口令s并映射到本级布鲁姆过滤器中:
a)设置哈希函数序号计数器j=1
b)计算s的哈希函数值Hj(s),并把本级位串向量的第Hj(s)个比特位置为“1”,更改计数器j=j+1;
c)若j与K数值相等(=9)结束,否则转到b)
(3)若i等于n(=3)结束,否则转到(2)
本方法中,哈希函数的个数K越多,则每个口令串映射到过滤器位向量里的位数越多,则误判率理论上会降低。但是当训练的口令数据增加后,向量里被置为1的地方逐渐增加又导致误判率升高。根据实验,本方法设定了上述口令分级中可接受的哈希函数个数和误判率。
2.2口令分级检验过程。
本发明方法中对口令训练集运用马尔可夫模型和多级布鲁姆过滤器做了二阶段组合训练。训练后得到的多级布鲁姆过滤器自身保存了不同级口令的强度模式,可以独立于马尔可夫模型,单独完成口令数据的快速批量分级判定。因而本方法得到的口令多级布鲁姆过滤器模型也适用于某些口令数据量较小或用户类型较单一的系统进行分级判定。
口令的分级检验过程,主要是导入待检测的批量口令串s,计算得到它在所有的哈希函数的函数值,然后依次判定第一级布鲁姆过滤器所有的对应位是否为1。若是,则判定s为一级弱口令,若不是则进入第二级布鲁姆过滤器判定,再不是进三级判定。最终给出该口令是哪一级口令。
具体步骤如下:
(1)读入待测口令s:
i.计算s的K个哈希函数值:
a)设置哈希函数序号计数器j=1
b)计算s的哈希函数值Hj(s),更改计数器j=j+1
c)若j等于K(=9)结束,否则转到b)
ii.查询多级布鲁姆过滤器:
a)设置布鲁姆过滤器级数序号计数器i=1
b)检验第i级布鲁姆过滤器的位向量的第H1(s),H2(s),…,H9(s)个位是否全为1,若是则判定为第i级口令,结束查询;否则更改计数器i=i+1
c)若i>3,判定为第3级口令,结束查询;否则转到b)
(2)若还有待测口令,则转到(1),否则结束
本发明通过马尔可夫模型与布鲁姆过滤器的组合模型提出了一个新的批量口令分级与检验方法。该方法基于百万级的中国用户真实口令数据抽样提取样本,构建二阶的马尔可夫口令概率矩阵,并评估口令的强弱分级;然后针对面向全体口令数据训练建立多级的口令布鲁姆过滤器。经本方法训练后的多级口令布鲁姆过滤器,可以支持对单个和批量口令的快速高效分级评估,可以在系统用户创建新口令和系统定期总体评估用户口令时提供口令强度分级判定支持。
本发明描述了一种批量口令先验分级检验算法,能基于多来源的中国用户口令数据,构建训练样本集,训练得到有效的口令快速分级检验模型,能支持系统批量检验用户口令总体强度,也适于在用户创建口令时提供先验检验,规避常见的、易于猜测的口令,以达到保护用户、系统安全的效果。
本发明的优点如下:
(1)思路新颖,适合中国用户特点。本发明方法采用马尔可夫模型和布鲁姆过滤器的二阶段组合模型来训练表达口令数据模式;训练后能单独使用多级布鲁姆过滤器快速检索。针对中国用户常用简单规律字符串设置口令的习惯,本方法能有效区分口令的强弱级别。
(2)训练样本集较小。根据口令数据的特性,实验获得了合理的样本抽样参数,在保证分级准确度的同时,减小了训练样本集规模,提高了训练效率。
(3)实现简单且运行效率高。本方法中的口令评估值、模型训练、参数计算、分级检索等计算简单易行,运行效率较高。
(4)适用性较广。本方法充分运用用户在口令设置中的相似模式,适用于不同类型的系统使用,对系统的用户数量和类型没有特别约束。用户数量较大的系统可以建立具有自身用户群体特性的概率转移矩阵,用户数较小或面向特定类型用户的系统可以运用本方法对外源口令数据采样或直接应用本方法训练后的多级布鲁姆过滤器。
附图说明
图1为本发明主要组成模块。
图2为本发明口令分级中的构建概率转移矩阵过程。
图3为本发明口令分级中的计算口令评估值并分级过程。
图4为本发明口令数据的单级布鲁姆过滤器训练示意图。
图5为本发明口令数据的多级布鲁姆过滤器训练过程。
图6为本发明口令数据的多级布鲁姆过滤器检索过程。
具体实施方式
如图1所示,本发明所述的批量口令分级先验检验方法,由两个部分组成:基于真实口令数据的分级与分级口令库的训练与检索。在分级过程中,先要对现有的真实口令数据进行随机抽样,得到样本训练集,然后由样本训练集通过二阶的马尔可夫模型得到概率转移矩阵,接着根据概率转移矩阵对全体口令集计算出每个口令相应的强度评估值,最后根据口令分级结构按口令评估值进行分级;在分级口令库的训练与检索阶段,将得到的分级后的口令集通过散列函数集,映射到对应的分级布鲁姆过滤器位向量中,检索时可通过多级的布鲁姆过滤器快速判断出待测口令的强弱。
详细步骤如下:
1.基于真实口令数据分级模块
首先,需要选定马尔可夫模型的样本训练集。由于真实口令数据量一般可以达到数百万,使用完整的真实口令数据作训练集将耗费大量的系统资源。实验证实,将现有的真实口令数据进行随机抽样得到的样本数据作训练集仍可以保证分级准确度。同时由于采样能显著减少训练样本集,提高了基于口令数据的马尔可夫模型的训练效率。因而本方法在先以采样得到的样本训练集构建二阶马尔可夫模型的概率转移矩阵,然后对全体口令数据进一步计算出每个口令的评估值,最后根据口令结构按口令评估值进行分级,并为后期构建多级布鲁姆过滤器做准备。
1.1得到训练样本集
本方法通过随机抽样的方式对总数据集作数据量压缩处理,在保持一个较好的分级效果的基础上减少马尔可夫训练所需要的时间。本方法主要做法为:先对导入的(多个)口令数据集进行合并,然后采用随机抽样,不对样本作去重操作是为了保持样本中各口令出现的频次不发生改变。一般用0.1-10%抽样,采样后数据集要保持1万条口令的规模,实验测得采样后分级效果还是和完整口令集训练的效果符合度能达到0.9以上。
1.2计算概率转移矩阵
如图2所示,为本方法构建二阶马尔可夫模型概率转移矩阵的过程。由于中国用户在口令设置中频繁使用“123”,“abc”等三元字符组模式。本方法采用与之匹配的二阶马尔可夫模型,将口令分解为多个三连字符串,通过统计所有的三连字符组合,计算得到口令数据的概率转移矩阵。模型矩阵的规模与字符集紧密相关,若字符集覆盖所有可能的口令字符无疑能建立出完整的概率转移矩阵,但导致矩阵规模庞大,且稀疏(相当部分特殊字符很少被使用到)。本方法字符集的规模为37个字符,由字符[a-z][0-9][$]组成的字符,其中[$]是用来代表所有大写字母和特殊字符的。在分级实验中发现,细分大写字符和其它特殊字符对分级影响可以忽略,所以本方法采用了较紧致的字符集。这将减少数据集的稀疏性,从而加速后续计算。
口令的二阶马尔可夫模型中的概率转移矩阵T(m,n,k)中的每个元素表示已知前缀为“mn”时下一个字符为“k”的概率,它可以由频率矩阵f(m,n,k)/f(m,n,∞)计算得到。其中m,n,k分别表示口令字符集中的对应字符,f(m,n,k)表示三字符串“mnk”的统计频数,f(m,n,∞)表示所有前缀为“mn”的三字符串的频数。例如,口令串“parsnips”可以产生顺序三字符子串序列:par,ars,rsn,nip和ips。相应的f(p,a,r),f(a,r,s)等计数加1,对应f(p,a,∞),f(a,r,∞)等计数加1。
具体步骤如下:
(1)定义口令字符集U,本方法建议U包含0-9,a-z和一个特殊字符代表符$,共37个字符(在分级实验中发现,细分大写字符和其它特殊字符对分级影响可以忽略,所以本方法为U采用了较紧致的字符集);初始化三元概率转移矩阵T各元素t(m,n,k)为0,其中m,n,k分别表示口令字符集U中的对应字符。
(2)依次读入口令数据训练样本集,对每一个口令字符串s:
计算口令串长度len=length(s),length(s)表示口令字符串s的字符长度,分解口令为len-2个三字符子串。对每一个三字符子串stri(1≤i≤len-2):
更新统计该三字符子串和二字符前缀串的频次:
f(ci,ci+1,ci+2)=f(ci,ci+1,ci+2)+1
f(ci,ci+1,∞)=f(ci,ci+1,∞)+1,
其中ci为口令串s的第i个字符(从1开始计数),以此类推。U为前述的含37个字符的字符集,f(ci,ci+1,∞)定义为∑x∈Uf(ci,ci+1,x),∑为累加符号。
(3)计算矩阵T的所有元素t(m,n,k):每个三字符子串出现的频次除以该子串的二字符前缀串的频次,即其中U等描述同上。
这样我们就得到了覆盖训练集中所有三元组字符串构成的概率矩阵。
1.3计算口令评估值并按口令结构分级
如图3所示,描述了本方法中口令分级阶段计算口令评估值并分级过程。这里将口令的强度评估值设置为组成其各个三元组出现概率中最高3个的乘积。本方法中在这一阶段采用全体口令数据和前期的概率转移矩阵,不仅可以得到每个口令的强度评估值,而且通过设定弱口令占总口令的百分比数来设定阈值,从而完成口令数据的分级。
具体步骤如下:
(1)初始化单口令子串强度值数组temp各单元为0,初始化口令数据强度值ts为0,设定口令强度分级数n=3(分级数可设置,后续相应修改)
(2)依次读入口令数据样本全集,对每一个口令字符串s:
iv.计算口令串长度len=length(s),length(s)表示口令字符串s的字符长度,分解口令为len-2个三字符子串。对每一个三字符子串stri(ci,ci+1,ci+2)(1≤i≤len-2):
从口令概率转移矩阵T中取出对应的元素并赋值给temp[i],即temp[i]=t(ci,ci+1,ci+2),表示将cici+1ci+2三字符串对应矩阵T中的值赋值给数组temp中第i个位置
v.对数组temp从大到小排序
vi.ts=temp[0]*temp[1]*temp[2]并保存到训练样本文本中s对应的“口令强度值”项;清空temp
(3)对口令数据训练样本集按新列“口令强度值”从大到小排序,记录总个数为num
(4)设定阈值百分比t1,t2(tn-1),其中0<t1<t2(tn-1)<1,n为多级布鲁姆过滤器的级数。本方法n=3时,定义强度值百分比属于[0,t1]的为一级弱口令,属于[t1,t2]的为二级口令,属于[t2,1]的为三级强口令。计算分级临界值:S1=num*t1,S2=num*t2,得到排序后的口令数据训练样本集中S1,S2位置对应的口令的强度评估值TS1,TS2
(5)对按“口令强度值”排序后的口令数据训练样本集,根据分级临界值分别归类n=3级(例ts(s)<TS1则口令s判定为一级弱口令,TS1≤ts(s)<TS2则口令s判定为二级口令,ts(s)≥TS2则口令s判定为三级强口令),然后分级保存口令。
2.多级布鲁姆过滤器的训练与检索
本发明采用多级的布鲁姆过滤器算法。每一级的结构包括一个元素集合N,K个哈希函数,长度为M的位串向量,单级布鲁姆过滤器训练如图4所示。口令数据的多级布鲁姆过滤器训练过程则如图5所示。
2.1多级布鲁姆过滤器训练过程
训练过程主要是根据分级口令库的元素集合大小Ni,设置合适的参数以达到令人满意的检索效果。参数包括:误判率f、适合的哈希函数个数K和哈希函数集,以及布鲁姆过滤器位串向量长度M。训练过程可以看做以口令串s作为输入导入对应级的布鲁姆过滤器,通过调用K个哈希函数得到哈希值,将对应的布鲁姆过滤器向量位置为1。
具体步骤如下:
(1)选定f=0.005(建议的上限),布鲁姆过滤器哈希函数个数K=9(经验值,可以推算调整,表示向下取整),相应表示各级布鲁姆过滤器的哈希函数集为{H1,H2,…,H9},其中建议采用RS、JS、P.J.Weinberger、ELF、BKDR、SDBM、DJB、AP和CRC哈希函数;i的初始值为1。
(2)构建第i级布鲁姆过滤器(1≤i≤n=3):
i.计算或获取第i级口令数据总数Ni
ii.根据Ni、f、K计算得到第i级布鲁姆过滤器的位串向量长度Mi,即Mi=-KNi/ln(1-f1/K)。初始化第i级布鲁姆过滤器内部位串向量各比特位为“0”。
iii.读入第i级口令训练集的每一个口令s并映射到本级布鲁姆过滤器中:
a)设置哈希函数计数器j=1
b)计算s的哈希函数值Hj(s),并把本级布鲁姆过滤器位串向量的第Hj(s)个比特位置为“1”,更改计数器j=j+1;
c)若j与K数值相等(=9)结束,否则转到b)
(3)若i等于n(=3)结束,否则转到(2)
这样就完成了多级布鲁姆过滤器的初始化和训练。
2.2口令检验过程
如图6所示,系统口令的(批量)检验,可以看做是查询多级布鲁姆过滤器的过程,即对口令s调用K个哈希函数,取出哈希值对应的向量位的值,做与运算,分别到1-3级布鲁姆过滤器下查询,如果某级对应位置也都为1,则表示该口令应归于该级,反之则继续查询下一级布鲁姆过滤器,对遍历所有(三)级布鲁姆过滤器都不存在的口令,判定归类为最高(三)级口令。
具体步骤如下:
(1)读入待测口令s:
i.计算s的K个哈希函数值:
a)设置哈希函数序号计数器j=1
b)计算s的哈希函数值Hj(s),更改计数器j=j+1
c)若j等于K(=9)结束,否则转到b)
ii.查询多级布鲁姆过滤器:
a)设置布鲁姆过滤器级数序号计数器i=1
b)检验第i级布鲁姆过滤器的位向量的第H1(s),H2(s),…,H9(s)个位是否全为1,若是则判定为第i级口令,结束查询;否则更改计数器i=i+1
c)若i>3,判定为第3级口令,结束查询;否则转到b)
(2)若还有待测口令,则转到(1),否则结束
实例:
导入某1000万条的中国用户真实口令数据,应用本方法先做0.1%随机抽样(分级效果和完整口令集训练的效果符合度达到0.96),训练得到二阶马尔可夫概率转移矩阵,之后导入所有1000万条口令,以t1=0.2,t2=0.8设定阈值,分3级,分解出一级、二级、三级口令各约200万、600万和200万条。对应采用三级布鲁姆过滤器,用上述9个哈希函数,误判率为0.005是,推算出第一、二、三级布鲁姆过滤器的位向量M1、M2、M3为2400万、7200万、2400万比特位,得到3级布鲁姆过滤器的具体参数之后,将其初始化。并按照上述操作流程将相应的口令集映射到对应的布鲁姆过滤器中。完成后便可进行口令的检索操作。本实例采用本方法实际测得每个口令的平均检索时间为0.0025毫秒,而采用弱口令字典遍历方式则每个口令平均用时28-30ms。此外以弱口令字典生成工具基于规则构造了约46万条弱口令,本方法训练后的多级布鲁姆过滤器可以辨识出其中约90%。
通过本方法,我们减少了马尔可夫模型的训练样本集,并通过个性的口令强度评估值的设置使得到的弱口令集更符合中国用户的口令设置习惯。最后通过多级的布鲁姆过滤器加快口令的检索效率。
本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。
Claims (1)
1.批量口令分级先验检验方法,由两个步骤组成:基于真实口令数据的分级与分级口令模型的训练与检索;在分级过程中,先要采样提取百万级的中国用户口令数据,得到样本训练集,然后由样本训练集通过二阶的马尔可夫模型得到口令的概率转移矩阵,并计算得到每个口令的强度评估值,最后按口令评估值和口令分级结构对全体口令数据进行分级;在分级口令模型的训练与检索阶段,通过对每一分级的口令集构建不同强度的口令布鲁姆过滤器,把分级结果通过散列函数组合保存在每一级的布鲁姆过滤器位向量中,从而建立分级口令模型;检索时可通过多级的口令布鲁姆过滤器快速且有效判断待测口令的强弱;
详细步骤如下:
1.基于真实口令数据分级;
首先需要选定马尔可夫模型的口令数据训练样本集,先对大量的口令数据进行随机抽样得到训练样本,然后借助二阶马尔可夫模型计算得到口令数据总体的概率转移矩阵,接着计算每个口令的强度评估值,最后计算得出分级强度阈值,完成针对真实口令数据的分级口令字典;
1.1口令数据训练样本生成;
1.2计算概率转移矩阵;
采用二阶马尔可夫模型,将口令分解为多个三连字符串,通过统计所有的三连字符组合,计算得到口令数据的概率转移矩阵;
口令的二阶马尔可夫模型中的概率转移矩阵T(m,n,k)中的每个元素表示已知前缀为“mn”时下一个字符为“k”的概率,它可以由频率矩阵f(m,n,k)/f(m,n,∞)计算得到;其中m,n,k分别表示口令字符集中的对应字符,f(m,n,k)表示三字符串“mnk”的统计频数,f(m,n,∞)表示所有前缀为“mn”的三字符串的频数;
具体步骤如下:
1.2.1定义口令字符集U,本方法U包含0-9,a-z和一个特殊字符代表符$,共37个字符;初始化三元概率转移矩阵T各元素t(m,n,k)为0,其中m,n,k分别表示口令字符集U中的对应字符;
1.2.2依次读入口令数据训练样本集,对每一个口令字符串s:
计算口令串长度len=length(s),length(s)表示口令字符串s的字符长度,分解口令为len-2个三字符子串;对每一个三字符子串stri,1≤i≤len-2:
更新统计该三字符子串和二字符前缀串的频次:
f(ci,ci+1,ci+2)=f(ci,ci+1,ci+2)+1,
f(ci,ci+1,∞)=f(ci,ci+1,∞)+1,
其中ci为口令串s的第i个字符,i从1开始计数,以此类推;
U为字符集,f(ci,ci+1,∞)定义为∑x∈Uf(ci,ci+1,x),∑为累加符号;
1.2.3计算矩阵T的所有元素t(m,n,k):每个三字符子串出现的频次除以该子串的二字符前缀串的频次,即其中U,m,n,k的描述同上;
1.3计算口令评估值并分级;
口令的强度评估值设置为该口令串的所有三字符子串在三元概率转移矩阵T中对应元素的概率值最高3个的乘积,采用设定弱口令所占的百分比来设定阈值,训练马尔可夫模型训练时采用抽样数据减少训练计算复杂度,在应用马尔可夫模型时采用的是全体真实口令数据;
具体步骤如下:
1.3.1初始化单口令子串强度值数组temp各单元为0,初始化口令数据强度值ts为0,设定口令强度分级数n=3;
1.3.2依次读入口令数据样本全集,对每一个口令字符串s:
i.计算口令串长度len=length(s),length(s)表示口令字符串s的字符长度,分解口令为len-2个三字符子串;对每一个三字符子串stri(ci,ci+1,ci+2)(1≤i≤len-2):
从口令概率转移矩阵T中取出对应的元素并赋值给temp[i],即temp[i]=t(ci,ci+1,ci+2),表示将cici+1ci+2三字符串对应矩阵T中的值赋值给数组temp中第i个位置;
ii.对数组temp从大到小排序;
iii.ts=temp[0]*temp[1]*temp[2]并保存到训练样本文本中s对应的“口令强度值”项;清空temp;
1.3.3对口令数据训练样本集按新列“口令强度值”从大到小排序,记录总个数为num;
1.3.4设定阈值百分比t1,t2(tn-1),其中0<t1<t2(tn-1)<1,n为多级布鲁姆过滤器的级数;本方法n=3时,定义强度值百分比属于[0,t1]的为一级弱口令,属于[t1,t2]的为二级口令,属于[t2,1]的为三级强口令;计算分级临界值:S1=num*t1,S2=num*t2,得到排序后的口令数据训练样本集中S1,S2位置对应的口令的强度评估值TS1,TS2;
1.3.5对按“口令强度值”排序后的口令数据训练样本集,根据分级临界值分别归类n=3级,ts(s)<TS1则口令s判定为一级弱口令,TS1≤ts(s)<TS2则口令s判定为二级口令,ts(s)≥TS2则口令s判定为三级强口令,然后分级保存口令;
2.多级布鲁姆过滤器的训练与口令检验;
按照第一阶段马尔可夫模型口令数据训练后,采用布鲁姆过滤器模型保存n级口令,提供高效检索;
2.1多级布鲁姆过滤器训练过程;
本方法的每一级口令采用标准布鲁姆过滤器构建,需要根据分级口令数据量计算得到各级布鲁姆过滤器的参数;参数包括每级过滤器的误判率f,哈希函数个数K及函数集{H1,H2,…,HK},元素集合Ni,位串向量长度Mi,其中1≤i≤n=3;训练过程通过把同一级的每个口令串s依次导入本级布鲁姆过滤器,计算s在对应各个哈希函数的值,并把过滤器内哈希值对应的向量所在比特位设为“1”来完成;
具体步骤如下:
2.1.1选定布鲁姆过滤器哈希函数个数K=9,相应表示各级布鲁姆过滤器的哈希函数集为{H1,H2,…,H9},RS、JS、P.J.Weinberger、ELF、BKDR、SDBM、DJB、AP和CRC哈希函数,误判率f=0.005,i的初始值为1,表示某一级布鲁姆过滤器;
2.1.2构建第i级布鲁姆过滤器,1≤i≤n=3:
i.计算或获取第i级口令数据总数Ni;
ii.根据Ni、f、K计算得到第i级布鲁姆过滤器的位串向量长度Mi;
初始化第i级布鲁姆过滤器内部位串向量各比特位为“0”;
iii.读入第i级口令训练集的每一个口令s并映射到本级布鲁姆过滤器中:
a)设置哈希函数计数器j=1;
b)计算s的哈希函数值Hj(s),并把本级位串向量的第Hj(s)个比特位置为“1”,更改计数器j=j+1;
c)若j与K数值相等结束,否则转到b);
2.1.3若i等于n结束,否则转到(2);
哈希函数的个数K越多,则每个口令串映射到过滤器位向量里的位数越多,则误判率理论上会降低;但是当训练的口令数据增加后,向量里被置为1的地方逐渐增加又导致误判率升高;根据实验,设定了上述口令分级中可接受的哈希函数个数和误判率;
2.2口令分级检验过程;
对口令训练集运用马尔可夫模型和多级布鲁姆过滤器做二阶段组合训练;训练后得到的多级布鲁姆过滤器自身保存了不同级口令的强度模式,可以独立于马尔可夫模型,单独完成口令数据的快速批量分级判定;口令的分级检验过程,导入待检测的批量口令串s,计算得到它在哈希函数集中所有哈希函数的函数值,然后依次判定第一级布鲁姆过滤器所有的对应位是否为1;若是,则判定s为一级弱口令,若不是则进入第二级布鲁姆过滤器判定,再不是进三级判定;最终给出该口令是哪一级口令;
具体步骤如下:
2.2.1读入待测口令s:
i.计算s的K个哈希函数值:
a)设置哈希函数序号计数器j=1;
b)计算s的哈希函数值Hj(s),更改计数器j=j+1;
c)若j等于K结束,否则转到b);
ii.查询多级布鲁姆过滤器:
a)设置布鲁姆过滤器级数序号计数器i=1;
b)检验第i级布鲁姆过滤器的位向量的第H1(s),H2(s),…,H9(s)个位是否全为1,若是则判定为第i级口令,结束查询;否则更改计数器i=i+1;
c)若i>3,判定为第3级口令,结束查询;否则转到b);
2.2.2若还有待测口令,则转到(1),否则结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410460356.3A CN104268450B (zh) | 2014-09-11 | 2014-09-11 | 一种批量口令分级先验检验方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410460356.3A CN104268450B (zh) | 2014-09-11 | 2014-09-11 | 一种批量口令分级先验检验方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104268450A CN104268450A (zh) | 2015-01-07 |
CN104268450B true CN104268450B (zh) | 2017-06-23 |
Family
ID=52159971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410460356.3A Active CN104268450B (zh) | 2014-09-11 | 2014-09-11 | 一种批量口令分级先验检验方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104268450B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106570391A (zh) * | 2016-11-10 | 2017-04-19 | 中国科学院信息工程研究所 | 基于记忆组块的密码猜测集生成方法及数字密码破解方法 |
CN106803035A (zh) * | 2016-11-30 | 2017-06-06 | 中国科学院信息工程研究所 | 一种基于用户名信息的密码猜测集生成方法及密码破解方法 |
CN106934275B (zh) * | 2017-01-22 | 2020-10-16 | 华东师范大学 | 一种基于个人信息的口令强度评测方法 |
CN106845185A (zh) * | 2017-02-07 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种口令恢复模式的确定方法及系统 |
CN108763920A (zh) * | 2018-05-23 | 2018-11-06 | 四川大学 | 一种基于集成学习的口令强度评估模型 |
CN109829289B (zh) * | 2019-01-09 | 2023-02-17 | 中国电子科技集团公司电子科学研究院 | 口令猜测方法 |
CN110162961A (zh) * | 2019-05-13 | 2019-08-23 | 华东师范大学 | 基于集成学习的群体口令强度评价方法 |
CN110334488B (zh) * | 2019-06-14 | 2021-03-02 | 北京大学 | 基于随机森林模型的用户认证口令安全评估方法及装置 |
CN111310169B (zh) * | 2020-01-19 | 2020-10-23 | 广州数智网络科技有限公司 | 一种分布式弱口令爆破算法及系统 |
CN111353147B (zh) * | 2020-03-11 | 2023-03-03 | 鹏城实验室 | 口令强度评估方法、装置、设备及可读存储介质 |
CN112257433B (zh) * | 2020-12-23 | 2021-05-14 | 四川大学 | 基于马尔可夫链和神经网络的口令字典生成方法和系统 |
CN112765594B (zh) * | 2021-01-20 | 2024-03-22 | 中国工商银行股份有限公司 | 一种弱口令检测方法及装置 |
CN114611091A (zh) * | 2022-01-13 | 2022-06-10 | 中国科学院信息工程研究所 | 基于图结构生成的口令安全评估方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103886068A (zh) * | 2014-03-20 | 2014-06-25 | 北京国双科技有限公司 | 用于互联网用户行为分析的数据处理方法和装置 |
CN103955719A (zh) * | 2014-05-20 | 2014-07-30 | 中国科学院信息工程研究所 | 滤波器组训练方法及系统和图像关键点定位方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0304639D0 (en) * | 2003-02-28 | 2003-04-02 | Kiq Ltd | Classification using re-sampling of probability estimates |
-
2014
- 2014-09-11 CN CN201410460356.3A patent/CN104268450B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103886068A (zh) * | 2014-03-20 | 2014-06-25 | 北京国双科技有限公司 | 用于互联网用户行为分析的数据处理方法和装置 |
CN103955719A (zh) * | 2014-05-20 | 2014-07-30 | 中国科学院信息工程研究所 | 滤波器组训练方法及系统和图像关键点定位方法及系统 |
Non-Patent Citations (1)
Title |
---|
《最大后验概率自适应方法在口令识别中的应用》;司华建等;《计算机工程与应用》;20130615;第49卷(第12期);第164-167页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104268450A (zh) | 2015-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104268450B (zh) | 一种批量口令分级先验检验方法 | |
CN109359439B (zh) | 软件检测方法、装置、设备及存储介质 | |
CN105577660B (zh) | 基于随机森林的dga域名检测方法 | |
Blanco et al. | Molecular phylogeny of parmotremoid lichens (Ascomycota, Parmeliaceae) | |
CN108376220A (zh) | 一种基于深度学习的恶意样本程序分类方法及系统 | |
CN106709345A (zh) | 基于深度学习方法推断恶意代码规则的方法、系统及设备 | |
CN109005145A (zh) | 一种基于自动特征抽取的恶意url检测系统及其方法 | |
CN105224600B (zh) | 一种样本相似度的检测方法及装置 | |
CN107729403A (zh) | 互联网信息风险提示方法及系统 | |
CN106610965A (zh) | 确定文本串公共子序列的方法和设备 | |
CN109063478A (zh) | 可移植的可执行文件的病毒检测方法、装置、设备及介质 | |
CN110830489A (zh) | 基于内容抽象表示的对抗式欺诈网站检测方法及系统 | |
CN110362995A (zh) | 一种基于逆向与机器学习的恶意软件检测及分析系统 | |
US8566317B1 (en) | Apparatus and methods for scalable object clustering | |
CN109408810A (zh) | 一种恶意pdf文档检测方法及装置 | |
CN113726730A (zh) | 基于深度学习算法的dga域名检测方法及系统 | |
Yoo et al. | The image game: exploit kit detection based on recursive convolutional neural networks | |
CN105808602B (zh) | 一种垃圾信息的检测方法及装置 | |
CN111797396B (zh) | 恶意代码可视化及变种检测方法、装置、设备及存储介质 | |
CN106126495A (zh) | 一种基于大规模语料提词方法和装置 | |
CN116707918A (zh) | 基于CBAM- EfficientNet异常检测的网络安全态势评估方法 | |
CN115935360A (zh) | 一种基于信息增益和共现矩阵的恶意代码可视化方法 | |
Ding et al. | Detecting Domain Generation Algorithms with Bi-LSTM. | |
Zhang et al. | TG-SPSR: A systematic targeted password attacking model | |
Subektiningsih et al. | The Role of Digital Forensic Experts in Cybercrime Investigations in Indonesia Based on The Scopus Research Index |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |