本发明涉及信息安全技术领域,更具体地,涉及一种针对应用系统弱口令快速比对查找的方法,其用于高效校验检出系统中的弱口令,普遍适用于各类型企业应用系统弱口令校验。
背景技术:
现有的应用系统(例如,软件应用系统、服务器应用系统、数据库应用系统、安全认证系统等)通常利用帐号和口令的方式进行安全认证等安全管理。各企业应用系统的账号口令存在着分布范围广、用户量庞大的特点,系统中保存的弱口令数据可能达到百万条记录级别。另外在应用系统用户中有些用户的账号也特别重要,如公司或部门领导、运维人员等。然而,在实际使用中,弱口令的广泛存在和使用弱化了企业应用系统的安全水准,给信息安全造成了严重危害。因此,弱口令核查和比对技术方案常常是被安全管理技术领域中所期望的。虽然现有的一些相关的方法也能够进行弱口令核查和比对,但是其实现和运用方式都有很大的差别且存在诸多问题。具体来讲,存在以下几方面问题:
1、大部分无弱口令加密配置,只是简单的对非加密口令进行比对校验,即使有弱口令加密,也只是针对某种特定加密方式,不能选择配置;
2、通常都具有多线程并行处理的设置,能够提升口令的比对速度;
3、没有在比对校验的算法上进行优化,只适合小量的比对校验,无法适应大数据量的比对要求,比对时间过长,且结果输出太慢。
这些问题都造成了弱口令检测的效率,降低了人机交互体验。
技术实现要素:
为了提高账号加密口令比对校验的效率,进而提高应用系统的稳定性和高效率,本发明提供了一种弱口令的快速比对查找方法,包括:
(1)导入多个弱口令字典文件;
(2)从应用系统导入待校验加密口令文件;
(3)进行弱口令字典加密,其中按照待校验加密口令文件的加密方式和加密顺序进行单一或者混合加密;
(4)通过多线程与二分查找法相结合的方式对弱口令与待校验加密口令进行离线比对校验,以大幅度缩短离线比对校验的时间。
进一步地,所述步骤(4)之后还包括步骤:
(5)基于弱口令比对校验的结果进行人机交互。
进一步地,所述步骤(1)包括:从弱口令字典生成工具导入弱口令字典文件。
进一步地,所述步骤(2)包括:直接从应用系统的服务器提取待校验加密口令文件。
进一步地,所述步骤(3)包括:将调取的弱口令字典逐一进行加密,其中加密方式与所对应的应用系统账户口令加密方式保持一致。
进一步地,所述加密方式包括MD5、SHA1、BASE64和加盐配置,也包括上述方式以不同顺序混合加密。
进一步地,所述步骤(4)包括:
(41)对加密后的弱口令字典排序;
(42)与待校验加密口令文件进行逐一离线比对。
(43)采用多线程和先进算法大幅缩短离线比对校验时间。
进一步地,在所述步骤(42)中,比对校验的顺序可以从头开始,也可设置中间顺序、字符长度从任意位置开始。
进一步地,所述步骤(5)包括:进行弱口令结果的输出和查询,统计弱口令校验结果并显示记录,其中所述的弱口令结果输出和查询是在所述步骤(4)的比对校验过程中显示已查出的弱口令记录,并在该加密口令文件校验完成后存档,以供在后期需要的时候进行查看调阅以往的校验记录。
进一步地,所述步骤(43)中,利用多线程技术对待检验加密口令进行并行比对校验,各线程均采用二分查找法进行离线比对校验。
本发明的有益效果是:
(1)本发明通过多线程处理与二分查找法相结合的方式,充分发挥硬件设备的性能(超大数据量的校验比对可以通过云计算处理),大幅缩短加密口令比对校验的时间,提升大数据量口令校验的效率。各线程均采用二分查找法进行比对,二分查找算法(即本发明中所称的“先进算法”)提升单个弱口令的比对速度,使每个线程的校验效率大幅提升。
(2)本发明为企业等应用和服务对象的信息安全督导和运行维护人员以及企业级的应用服务器提供了一种高效稳定的弱口令快速比对方法。其通过对任一系统账号加密口令进行比对校验,可以快速高效地实现弱口令的检出,使得系统庞大的账户口令与同样庞大的弱口令字典之间的比对校验在时间上存在实现的可能性。
(3)本发明能够及时查出应用系统中存在的弱口令,由运行维护人员督促用户进行及时的更改修正,在最短的时间内杜绝弱口令在系统中的存在,避免因弱口令造成的系统数据流失而给企业带来的经济损失,更避免因系统弱口令被网络服务器披露而造成恶劣的社会影响。
(4)本发明能够极大地提高弱口令比对校验的效率:与传统的口令校验方式不同,本发明是先对用于校验的弱口令字典进行加密(根据需要校验的不同应用系统加密方式进行选择),部分应用系统口令存在加盐配置,加密后的弱口令字典也同样增加加盐配置后进行校验,再与该系统的口令清单比对。这样,一方面能够大幅提高弱口令校验检出的效率,另一方面能够让大数据量库(几十万至上千万条待比对记录)之间的校验比对从时间上变得可行,以往2天完成的校验比对时间只需20秒即可完成(受限与硬件设备的计算能力)。
(5)本发明能够在加密弱口令比对校验的过程中,通过应用服务器多线程设置,对m条(可设置)待校验口令并行比对校验,在每个线程的待校验口令比对同时针对已排序的加密弱口令字典文件采用二分查找法,成倍数地大幅度缩短单线程比对校验的时间,以此达到提升校验检出效率的目的。
(6)本发明的快速比对查找方法具有良好的稳定性,能够适应长时间大量(千万条记录级)加密口令的检验比对。
附图说明
图1示出了根据本发明的弱口令的快速比对查找方法的流程图。
图2示出了根据本发明的一个优选实施例的弱口令快速比对查找方法的流程图。
具体实施方式
如图1所示,本发明提供了一种弱口令的快速比对查找方法,包括:
(1)导入多个弱口令字典文件;
(2)从应用系统导入待校验加密口令文件;
(3)进行弱口令字典加密,其中按照待校验加密口令文件的加密方式和加密顺序进行单一或者混合加密;
(4)通过多线程与二分查找法相结合的方式对弱口令与待校验加密口令进行离线比对校验,以大幅度缩短离线比对校验的时间。
优选地,所述步骤(4)之后还包括步骤:
(5)基于弱口令比对校验的结果进行人机交互。
优选地,所述步骤(1)包括:从弱口令字典生成工具导入弱口令字典文件。
优选地,所述步骤(2)包括:直接从应用系统的服务器提取待校验加密口令文件。
在上述步骤(1)和(2)中,根据本发明的优选实施例,还可以按照如下方法获得弱口令字典:①弱口令字典由专门的弱口令字典生成工具制作,充分考虑各种弱口令的组合方式,通过列举和穷举的方式生成弱口令字典文件;②生成的基础弱口令字典还可以进行组合生成高级字典;③弱口令字典可以根据需要校验的应用系统不同,专门配置有针对性的弱口令字典文件并存档供后期调用;④应用系统加密口令文件由各运维人员直接从应用系统服务器提取。这些数据文件获取后,由安全督查及运维人员导入校验软件即可进行比对。
优选地,所述步骤(3)包括:将调取的弱口令字典逐一进行加密,其中加密方式与所对应的应用系统账户口令加密方式保持一致。
优选地,所述加密方式包括MD5、SHA1、BASE64和加盐配置,也包括上述方式以不同顺序混合加密。
优选地,所述步骤(4)包括:
(41)对加密后的弱口令字典排序:加密后的弱口令字典按照一定规律进行排序,确定的排序方法为“数字排序(1-9)>字母小写排序(a-z)>字母大写排序(A-Z)”,排序方法从第一位开始比较,如首位相同则比较第二位,如第二位相同则比较第三位,以此类推,直到可以区分前后顺序为止,形成完整的顺序列表。
(42)与待校验加密口令文件进行逐一离线比对:前述通过离线的方式将加密后的弱口令字典与待校验加密口令文件中的待校验加密口令进行逐一比对校验。由于弱口令字典文件所含弱口令及待校验的加密口令数量都能达到几十万甚至上百万条,如采用传统撞库的方式进行逐一校验比对,所耗费的时间将难以估量,因此以往的进行加密口令校对的方法通常以减少弱口令字典的数量(减少到几万条甚至1万条以下),以此来换取因此之间的数据对撞会耗费大量的时间。
(43)采用多线程和先进算法大幅缩短离线比对校验时间。
根据本发明的优选实施例,步骤(41)中对加密后的弱口令字典进行排序正是为采用二分查找法加速比对所做的铺垫。优选地,一方面采用多线程技术,同时设置m(m为大于1的正整数)条并行线程的方式。实际上,只要不超过系统的运算负荷,可以同时设置上千条甚至更多条线程同时进行比对;另一方面采用二分查找法的先进算法,将已排序的弱口令密文集合采用二分查找法来提高弱口令检测效率,可以将时间复杂度从O(n)提高到O(logN),大大提升巨量加密口令比对巨量用户的校验效率。
综上所述,例如当前所需要校验的弱口令字典为10000条,对应需校验的弱口令文件也为10000条,平均每条记录的校验时间为0.001秒(即1ms),那么采用单线程逐一校验的时间就为0.001×10000×10000=100000秒,约为27.8个小时;如果采用多线程结合二分查找法的方式,假设所设置的并发线程为10个,理论上所消耗最多时间的计算方法为0.001×10000×log2(10000)/10≈13.28秒。虽然计算结果为理论数值,需要考虑实际硬件的运算能力,但可见采用多线程与二分查找法相结合的方式能切实有效的提升弱口令比对校验速度,将使得超大规模弱口令的比对校验存在实施操作的可能性。
优选地,在所述步骤(42)中,比对校验的顺序可以从头开始,也可设置中间顺序、字符长度从任意位置开始。
优选地,所述步骤(5)包括:进行弱口令结果的输出和查询,统计弱口令校验结果并显示记录。
其中,所述的弱口令结果输出和查询是在所述步骤(4)的比对校验过程中显示已查出的弱口令记录,并在该加密口令文件校验完成后存档,以供在后期需要的时候进行查看调阅以往的校验记录。无需等校验比对结束后再显示,及时通知用户修改口令,达到口令强化的效果。
其中,所述统计弱口令校验结果并显示记录包括:每次口令校验结束后将口令校验结果归档,方便后期对口令校验记录的查询,以及对用户弱口令更改强化的验证。每次口令校验结束后将口令校验结果归档,方便后期对口令校验记录的查询,以及对用户弱口令更改强化的验证。
优选地,所述步骤(42)中,利用多线程技术对待检验加密口令进行并行比对校验,各线程均采用二分查找法进行离线比对校验。
如图2所示,列举了根据本发明的一个优选实施例提出的弱口令快速比对方法的实际流程。首先设置好的多线程同时进行应用系统加密口令的校验,每个应用系统加密口令分别用二分查找法与加密排序后的弱口令字典列表进行比对。比对时,先从弱口令字典列表的中间位置开始比对,如比对结果在列表排序的上半部分,则定位与上半部分列表的中间位置弱口令进行比对,再确认该应用系统加密口令所需比对的排序区域,然后再与中间位置加密弱口令进行比对,依次类推,循环比对。如该应用系统加密口令最终与弱口令字典中的某个弱口令完全一样,则将该应用系统加密口令输出为弱口令结果;如比对弱口令字典列表结束后未搜索出相同项,则此应用系统加密口令即可直接通过,不是弱口令。
根据一个优选的实施例,本发明采用如下配置的测试平台运行上述方法:I5四核处理器/4G内存/1T、7200转硬盘。通过搭建实际应用平台进行测试,采用二分查找法并设置10线程并行处理,共处理10万条弱口令记录与10万条加密口令进行比对校验,实际消耗的时间为:517秒,约为8.6分钟。
以上对于本发明的较佳实施例所作的叙述是为阐明的目的,而无意限定本发明精确地为所揭露的形式,基于以上的教导或从本发明的实施例学习而作修改或变化是可能的,实施例是为解说本发明的原理以及让所属领域的技术人员以各种实施例利用本发明在实际应用上而选择及叙述,本发明的技术思想企图由权利要求及其均等来决定。