马文文
(国家知识产权局专利局专利审查协作江苏中心 江苏苏州 215011)
随着全球信息化的飞速发展,整个世界成为一个整体,各个国家和政府建设大量的信息化系统作为国家的重要基础设施。各个机构、行业、领域均在组建自己的信息网络系统,并交互传输,以充分共享、使用网络上存在的信息内容和资源,社会对网络的依赖性也越来越大。但是,当网络资源发展的同时,各种问题也层出不穷,特别是网络安全的问题。为了防止非法人员对网络的入侵、破坏,各种认证技术应运而生,如基于口令的认证、基于数字证书的认证、基于生物识别信息的认证及各种综合认证技术。虽然认证手段多种多样,但由于操作的简单性与设置的灵活性,基于口令的认证是被广泛使用的认证方式。
在口令认证的应用中,由于网络账号繁多,人们为了便于记忆口令、密码,通常设置特别简单或者重复的口令密码来进行登录,这也为口令的猜测、破解、泄露提供了便利的条件,这些特别容易被破解或猜测的“口令”“密码”通常称为弱口令、弱密码。弱口令的危害性太大了,对于实体银行卡被盗,弱口令被猜测,损失大量的钱财;如果是社交工具的弱口令被猜测到,会造成账号损失、或利用其账号做出违反法律、法规的行为[1]。
为了避免口令设置得过于简单或易于破解,而使得非法入侵者获取合法用户的口令密码,本文详尽介绍了多种弱口令检测技术及其相应的实现方式,以提高各个领域行业口令、密码设置的安全性。
通过利用大量猜测和穷举的方式来尝试获取用户口令的攻击方式[2],具体的流程是用事先收集好的数据集成一个字典,然后用字典不断进行枚举,然后使用该口令字典中的口令逐个尝试,直到认证成功。但它的成功取决于事先收集好的预定义数据的集合,如果它越大,就会需要更多时间,但成功的可能性也会变大。针对不同的协议,常见的暴力破解的工具有Aircrack-NG暴力破解工具、John the Ripper暴力破解工具、Rainbow Crack暴力破解工具、Cain&Able暴力破解工具、L0pht⁃crack 暴力破解工具、Ophcrack 暴力破解工具、Hashcat暴力破解工具、SAMInside暴力破解工具、DaveGrohl暴力破解工具、Ncrack 暴力破解工具、THC Hydra 暴力破解工具。
通过设置复杂度规则,判断待检测口令是否符合复杂度规则,并基于所述判断结果来确定待检测口令是否为弱口令[3]。常见的复杂度规则为口令长度规则、大写、小写或数字规则、重复字符规则等。由于在设置登录口令时,口令长度较短的口令、或使用均是大写、均是小写、均是阿拉伯数字、或使用重复的字符来构造的口令更容易被黑客猜测出,进而造成口令泄露的损失,因此,在弱口令检测过程中,可以通过判断设置的口令长度是否长于长度阈值,判断组成口令的字符是否均为大写、或均为小写、或均为阿拉伯数字,判断设置的口令包含的重复字符的比率是否大于一定阈值,进而判断口令是否为弱口令,例如,专利申请CN 201610182053.9 中就提出了上述基于口令长度、大小写、阿拉伯数字及重复字符数,来判断登录口令是否为弱口令的弱口令检测方式。
在基于复杂度规则的检测方式中,检测准确率的高低主要取决于复杂度规则制定,因此,如何制定合适的复杂度规则成为该弱口令检测技术的关键技术问题,例如,在基于口令长度来判断弱口令时,口令长度阈值的设定是检测准确率的关键点,在制定复杂度规则制度时,可以基于历史经验来进行设定,也可以根据应用领域、应用场景等来确定特定领域、场景下的复杂度规则。比较典型的是弱口令检测规则制定方法是根据经验设定弱口令检测规则,但使用这种方法设置的弱口令检测规则不够准确且不够全面。因此,在专利申请文件CN 201511029724.X 中提出来一种基于已有弱口令来获取弱口令的构成规则的方式,其通过分析已有的弱口令集合中包含的弱口令,获取弱口令组成规则,将该规则设置为弱口令复杂度检测规则,该方法能够实时地更新弱口令检测规则,提高弱口令检测规则设置的精确度及全面性。
基于弱口令库的检测技术具体为设置包含现有弱口令的弱口令库,通过待检测口令与弱口令库直接进行匹配,若在弱口令库中存在待检测口令时,则待检测口令为弱口令,否则,待检测口令为强口令。基于弱口令库的检测技术还包括针对待检测弱口令进行某种变换,或对弱口令库进行某种变换,利用变换后的待检测口令与弱口令库或利用待检测口令与变换后的弱口令库进行匹配,以判断待检测口令是否为弱口令。例如,在专利申请文件CN 201811173736.3 中采用了如下弱口令检测方式:获取至少一条待校验的密文校验信息,其中,任一条所述密文校验信息对应一个用户账号,包括所述用户账号的加密信息、salt随机字符串、第一密文,所述第一密文为通过所述加密信息所标识的加密算法对所述salt 随机字符串和所述用户账号的口令进行加密得到,对salt随机字符串和预设的弱口令字典中的弱口令进行相同处理,得到第二密文;确定所得到的第二密文中,是否存在与所述待校验的密文校验信息中的第一密文相同的第二密文;若存在,则确定所述待校验的密文校验信息对应的用户账号的口令为弱口令。
在基于弱口令库的弱口令检测技术中,检测成功率取决于弱口令库的全面性,弱口令库覆盖越全面,其检测准确性越高,否则,其检测准确率越低,因此,在基于弱口令库的弱口令检测技术中,如何设置更全面、更精准的弱口令库是用该令检测技术的关键。在生成弱口令库的过程中,常见的方式主要有以下几种。
(1)基于常见的弱口令组成弱口令库,例如,在专利申请文件CN 201811173736.3中,将待校验的密文校验信息对应的用户账号与预设的字符串进行组合,得到针对所述用户账号的弱口令集合;将预设常规弱口令及上述方式得到的弱口令集合,共同构成弱口令字典。
(2)利用其他弱口令检测技术检测出的弱口令组成弱口令库,例如,在专利申请文件CN 201511029724.X中记载了通过将弱口令检测方式检测出的弱口令加入弱口令字典,以更新弱口令字典。
(3)通过机器学习的方式使用历史弱口令来生成新的弱口令库,例如,在专利申请文件CN 201810026703.X中记载了一种基于深度学习算法的口令字典生成方法,其记载了如下几项:搜集常用口令字典样本,对所述口令字典样本进行排序,排序结果为非重复的口令及对应口令出现的次数,对于出现两次及以上的口令进行去重操作;将上述排序及去重后的口令序列建立序贯模型,生成实例;按照实例流经模型时处理的顺序,将实例添加到网络层,并配置网络层的各个参数、设置优化器及损失函数参数,进行模型训练过程;通过分析口令样本文件特征,确定神经元间连接权值,生成权值文件;对训练后的模型进行性能评估,确定训练达到预期效果;加载权值文件,进行模型评估,输出新的字典文件。
在基于弱口令库的弱口令检测技术中,由于弱口令库的数据通常庞大,在进行搜索匹配时,速度较慢,这成为限制基于弱口令库的弱口令检测技术发展的障碍。因此,快速搜索匹配也是该技术需要研究的关键技术之一,例如,目前比较常见的快速搜索查找为多线程与二分查找法相结合的方式[4]。
基于频次的弱口令检测技术具体为通过待测弱口令在系统中重复出现的次数来确定其是否为弱口令,其重复出现的次数越多,被猜测出的概率越大,进而为弱口令的概率越大。例如,专利申请文件CN 201910907337.3中记载了对待检测口令出现的次数进行计数,根据计数值与弱口令概率之间的关联关系,确定该待检测口令为弱口令的概率。通常计数值越大,即该待检测口令出现的次数越多,为弱口令的概率越大。
基于机器学习的弱口令检测技术具体为将待检测口令输入机器学习模型,即可输出该待检测口令为弱口令或强口令[5-6]。在基于机器学习的弱口令检测技术中,基本分为两个步骤:一是利用训练样本训练机器学习模型参数;二是将待检测口令输入机器学习模型,获取对应的强弱结果输出。例如,在专利申请文件中CN 202010862802 中提出了一种基于机器学习的弱口令检测技术,在该技术中,其通过获取训练样本集及其对应的强弱标签,将训练样本集作为输入信息,以其对应的强弱标签作为监督,输入到弱口令检测模型,以训练弱口令检测模型中的参数。在训练完成后,获取待检测密码,将其作为输入信息输入到弱口令检测模型进行处理,得到该待检测密码对应的强弱标签。
在专利申请文件CN 201910433513.4 中提出了预先采集的密码样本,该密码样本对应的总评分值样本、该密码样本对应的密码强度总权重样本及该密码样本对应的密码强度样本生成模糊控制器,对待检测密码进行分析,获得该待检测密码对应的总评分、密码强度总权重,将上述获得的总评分及密码强度总权重输入至生成的模糊控制器,由模糊控制器对输入的数据进行计算得到该待检测密码对应的密码强度。
基于安全等级的弱口令检测技术具体为对待检测口令进行分析,得到其安全或风险等级,继而确定该待检测口令是强口令还是弱口令。例如,在专利申请文件CN 202110873223.9 中提出了获取包含多个有序字符的待检测密码,基于所述有序字符,从预设的多个密码风险条件中选择待检测密码满足的目标密码风险条件;基于选择的目标密码风险条件相应的风险值,计算对应于所述待检测密码的风险系数;判断所述风险系数是否大于一定阈值,在肯定的情况下,判断所述待检测密码的强度为弱密码。
所谓基于组合的弱口令检测技术,即将上述几种弱口令检测技术综合使用,可以将基于复杂度规则的弱口令检测技术与基于弱口令库的弱口令检测技术结合。例如,基于复杂度规则检测出弱口令,更新弱口令库,更新后的弱口令库可以进一步用于检测弱口令;还可以将基于弱口令库的弱口令检测技术与基于机器学习的弱口令检测技术相结合。另外,可以利用弱口令库训练机器学习模型,然后利用训练模型检测出的弱口令添加至弱口令库以进行更新弱口令库;还可以将基于安全等级的弱口令检测技术与基于机器学习的弱口令检测技术相结合等。
本文中列举的各种弱口令检测技术均还存在一定的缺陷,如基于弱口令库的弱口令检测技术对弱口令库的全面覆盖率要求较高;基于复杂度规则的弱口令检测技术对于复杂度规则的制定要求较高,需要较强的经验知识;基于机器学习的弱口令检测技术对于训练样本的选择要求较高等。因此,在后续的弱口令检测技术研究中,应针对如何提高弱口令检测技术的速度、简易性及减少对历史数据的依赖性方面进一步研究,提出更加智能的弱口令检测技术。