技术领域
[0001] 本
发明属于计算机信息安全技术领域,涉及计算机泄漏检测方法,尤其涉及一种口令文件泄漏检测方法,包括自适应honeyword生成过程及DoS攻击的检测过程。
背景技术
[0002] 基于口令的身份认证方式是使用最广泛的身份认证方式。而大部分基于口令的身份认证方式,需要在
服务器端存储口令的验证项。由于口令的存储文件的重要性,使其成为攻击者的重要目标。近年来,大量的互联网服务发生数据泄漏事件。2011年末2012年初,多家中文
网站的用户泄漏信息被公开,泄漏内容包括用户的用户名、口令等信息。2016年,美国著名社交网站MySpace的3.6亿用户泄漏数据在暗网上被售卖。而且上述泄漏事件一直未被发现,直到数据被公开或被售卖。
[0003] 2013年,Ari Juels和Ronald L.Rivest提出一种针对口令存储文件的泄漏检测技术honeyword。其基本思想是,对每个用户在口令存储文件中存储一定数量的假口令(即honeyword)。如果存储文件泄漏,攻击者无法拿到用户的真实口令,只能拿到包含一组口令,包含一个真实口令和多个假口令。一旦攻击者使用相应的假口令进行登录尝试,服务器可以判定口令存储文件泄漏,从而启动相应的安全策略,例如要求所有用户立刻
修改口令。Ari Juels和Ronald L.Rivest提出了两类honeyword生成器:一类是传统用户交互的honeyword生成器,用户与服务器的交互与传统认证方式完全相同,用户只需记忆自己生成的口令;第二类是修改用户交互的honeyword生成器,用户在注册阶段生成自己的口令后,honeyword生成器会对该口令稍作修改,要求用户用新口令进行登录。
[0004] 但是,Ari Juels和Ronald L.Rivest设计的4种传统用户交互的honeyword生成器都是启发式的,无法生成与真口令不可区分的honeyword,而其设计的修改用户交互honeyword生成器需要用户额外记忆信息,可用性低。另外,现有的honeyword泄漏检测技术无法抵抗拒绝服务攻击(DoS攻击)。攻击者可以尝试使用错误口令登录,从而以一定概率使用假口令登录,从而使得honeyword检测系统发生误报,在口令存储文件未泄漏时误认为口令存储文件泄漏,从而对服务器的正常服务造成额外的干扰。
发明内容
[0005] 为了克服上述
现有技术的不足,本发明提供一种口令文件泄漏检测方法,包括自适应honeyword生成过程及DoS攻击的检测过程;其中,自适应honeyword生成方法,可以根据不同网站的真实口令分布情况,进行自动调整,使其生成的honeyword不断接近真实口令的真实分布。DoS攻击检测方法,可以用于检测针对honeyword的DoS攻击,从而大大降低honeyword检测的误报率。本发明对现有的honeyword泄漏检测系统进行改进,利用基于自适应honeyword生成方法的抗DoS攻击口令的文件泄漏检测方法及系统,实现口令文件的泄漏检测。
[0006] 本发明提供的技术方案是:
[0007] 一种抗DoS攻击的口令文件泄漏检测方法,在用户注册系统的过程中,将所有用户的口令通过自适应honeyword生成方法生成honeyword,在用户登录过程中,识别真实口令以允许登录,识别honeyword以检测口令文件泄漏;再通过DoS攻击检测方法排除DoS攻击造成honeyword登录记录,从而抵抗DoS攻击;
[0008] 口令文件泄漏检测方法包括自适应honeyword生成过程及DoS攻击的检测过程;通过验证用户登录口令是否为honeyword,对认证服务器中的口令文件泄漏进行检测;包括如下步骤:
[0009] 一、honeyword系统初始化过程:
[0010] 初始化honeyword系统,或将传统的认证服务器迁移到honeyword系统,包括如下步骤:
[0011] 11)如果原认证系统为传统认证服务器,并且注册用户数量达到
阈值minAccountNum(例如阈值minAccountNum设为1000),则进行honeyword系统初始化,即将所有用户的口令输入自适应honeyword生成方法,为所有用户生成honeywords,然后进入honeyword运行阶段。
[0012] 12)如果系统尚无用户注册,则使用传统认证服务器系统,等待注册用户数量到达阈值minAccountNum后,使用11)中方法进行honeyword系统初始化。
[0013] 13)如果原认证系统为传统认证服务器,但注册用户数量没有达到阈值,则等待注册用户数量到达阈值minAccountNum后,使用11)中方法进行honeyword系统初始化。
[0014] 二、自适应honeyword生成过程;
[0015] 根据不同网站的真实口令分布情况生成假口令honeyword,并进行自动调整,使得生成的honeyword不断接近真实口令的真实分布;自适应honeyword生成方法包括如下步骤:
[0016] 21)在honeyword初始化时,利用现有所有注册用户的真实口令,训练概率模型,并为每个用户生成honeyword。
[0017] 具体实施时,一般直接采用其他注册用户的真实口令作为某个用户的honeyword,也可以利用训练好的概率模型进行抽样,然后生成honeyword。概率模型可以是List模型、PCFG模型、Markov模型,以及上述概率模型的组合,例如组合模型1/3List+1/3PCFG+1/3Markov,即1/3的概率从List模型中抽样,1/3的概率从PCFG模型中抽样、1/3的概率从Markov模型中抽样。
[0018] 22)在honeyword运行阶段,在接收用户真实口令后,利用该口令更新概率模型后,从概率模型随机抽样,生成honeyword。
[0019] 三、用户注册、登录过程,通过自适应honeyword生成方法生成honeyword,识别真实口令以允许登录;包括如下步骤:
[0020] 31)注册阶段:
[0021] 用户提交给认证服务器用户名u和真实口令pw,认证服务器利用步骤一中的honeyword生成方法生成多个honeyword(真实口令和honeyword统称sweetword),将多个sweetword(称为sweetword向量)打乱顺序,存储在认证服务器上,并将真实口令的
位置j存储在honeychecker服务器(通过检查登录时提交口令的j’与honeychecker中的j是否相同来检测用户口令的真实性)上。honeychecker服务器用于在认证过程中,检测用户口令的真实性,从而进行口令泄漏文件检测;
[0022] 32)登录阶段:
[0023] 331)用户提交给认证服务器用户名u和口令pw’(该口令可能为真实口令、honeyword、或其他口令),认证服务器先检测pw’是否为某一个sweetword,如果不是,则拒绝登录,并对该登录进行记录。
[0024] 332)如果pw’是第j’个sweetword,通过honeychecker检验该位置j’是否为真实口令位置j;如果是,则允许登录,并对该登录进行记录。
[0025] 333)否则,说明提交口令为honeyword,并对该登录进行记录。
[0026] 334)口令泄漏文件检测方法会同时监督上述登录记录,检测口令文件泄漏。
[0027] 四、抗DoS攻击的口令泄漏文件检测方法;
[0028] 抗DoS攻击的口令文件泄漏检测方法,包含DoS攻击检测方法,能排除DoS攻击造成honeyword登录记录,从而抵抗DoS攻击。抗DoS攻击的口令文件泄漏检测方法具体执行如下操作:
[0029] 41)在用户登录时,记录单位时间(例如,每天、每小时、每分钟,时间长短取决于网站的用户数量)内真实口令登录的总次数realPasswordLoginTotalCount、honeyword登录的总次数honeywordLoginTotalCount、其他登录(非sweetwords登录)的总次数otherLoginTotalCount。
[0030] 42)在认证服务器认证用户的同时,监督单位时间内上述登录次数的变化,并作出是否遭受DoS攻击或口令文件是否泄漏的判断:
[0031] 421)如果honeywordLoginTotalCount和otherLoginTotalCount同时快速增加,则判定为遭到DoS攻击。(快速增加可以使用以下方法判定:本单位时间内honeywordLoginTotalCount和otherLoginTotalCount比一段时期(例如,之前10个单位时间)内honeywordLoginTotalCount和otherLoginTotalCount平均值增加的数量,分别记为honeywordLoginTotalCountIncrease和otherLoginTotalCountIncrease,超过系统设定阈值honeywordLoginTotalCountDiff1和otherLoginTotalCountDiff1。)
[0032] 422)如果honeywordLoginTotalCount和realPasswordLoginTotalCount同时快速增加,otherLoginTotalCount保持不变,则判定为口令存储文件泄漏,攻击者在利用口令存储文件进行在线攻击。
[0033] 423)如果realPasswordLoginTotalCount、honeywordLoginTotalCount和otherLoginTotalCount同时快速增加,并且honeywordLoginTotalCount在扣除DoS攻击导致的honeywordLoginTotalCount的增加数量后,仍然快速增加,则判定为口令存储文件泄漏,攻击者在利用口令存储文件进行在线攻击。
[0034] 由于DoS攻击会等比例增加honeywordLoginTotalCount和otherLoginTotalCount,因此DoS攻击导致的honeywordLoginTotalCount增加数量为w1*otherLoginTotalCountIncrease;w1为根据真实口令分布和honeyword分布设定的比例参数,如设定w1=PDoS/(1-PDoS)。PDoS为DoS攻击者一次登录攻击成功的概率,约等于1-(1-P1)k-1,P1为真实口令中最流行口令的概率,k-1为采用honeyword生成方法为一个用户所生成honeywords的数量,当honeywordLoginTotalCountIncrease-w1*
otherLoginTotalCountIncrease超过预先设定的阈值honeywordLoginTotalCountDiff2,则判定为口令存储文件泄漏。
[0035] 424)如果判定口令文件泄漏(包括步骤422)和步骤423)的情形),则执行口令文件泄漏对应的安全措施。例如,检测系统漏洞,发现泄漏原因,修改漏洞,要求所有受影响用户修改口令。
[0036] 425)如果判定遭受DoS攻击(包括步骤421)和步骤423)的情形),则执行DoS攻击对应的安全措施。例如,屏蔽发起DoS攻击的IP。
[0037] 通过上述步骤,实现基于自适应honeyword生成的抗DoS攻击口令的文件泄漏检测。
[0038] 基于上述口令文件泄漏检测方法,本发明具体实施实现了一个Honeyword泄漏检测系统,是一个基于自适应honeyword生成的抗DoS攻击口令的文件泄漏检测系统。Honeyword泄漏检测系统包括honeyword生成器、认证服务器、honeychecker。Honeyword生成器用于在用户注册阶段生成honeyword;认证服务器用于直接与用户通信,对用户口令进行验证;honeychecker用于在认证过程中,检测用户口令的真实性,从而进行口令泄漏文件检测。
[0039] 与现有技术相比,本发明的有益效果是:
[0040] 本发明提供一种口令文件泄漏检测方法及系统,包括自适应honeyword生成过程及DoS攻击的检测过程;其中,自适应honeyword生成方法会随用户数的增加,不断利用新用户的口令更新honeyword生成方法中的概率模型,使概率模型逐渐接近口令的真实分布,从而使得其生成的honeyword越接近真实口令。DoS攻击的检测方法,改进原有的安全策略,通过排除DoS攻击造成的honeywordLoginTotalCount,提出一种抗DoS攻击的安全策略。honeyword系统将所有用户的口令通过自适应honeyword生成方法生成honeyword,识别真实口令以允许用户登录;再通过DoS攻击检测方法排除DoS攻击造成honeyword登录记录。利用自适应honeyword生成方法和抗DoS攻击的安全策略,即可实现一种改进的口令存储文件泄漏检测方法,能够抵抗DoS攻击。
附图说明
[0041] 图1为采用本发明系统在honeyword运行阶段用户注册的流程
框图。
[0042] 图2为采用本发明系统在honeyword运行阶段用户登录的流程框图。
[0043] 图3为利用本发明系统中honeyword生成器在honeyword运行阶段的honeyword生成的流程框图。
具体实施方式
[0044] 下面结合附图,通过
实施例进一步描述本发明,但不以任何方式限制本发明的范围。
[0045] 本发明提供一种口令文件泄漏检测方法,包括自适应honeyword生成过程及DoS攻击的检测过程,实现一个基于自适应honeyword生成的抗DoS攻击口令文件泄漏检测系统,通过验证登录口令是否为honeyword,对认证服务器中的口令文件泄漏进行检测。
[0046] 本发明具体实施实现了一个Honeyword泄漏检测系统,是一个基于自适应honeyword生成的抗DoS攻击口令的文件泄漏检测系统。Honeyword泄漏检测系统包括honeyword生成器、认证服务器、honeychecker。Honeyword生成器用于在用户注册阶段生成honeyword;认证服务器用于直接与用户通信,对用户口令进行验证;honeychecker用于在认证过程中,检测用户口令的真实性,从而进行口令泄漏文件检测。
[0047] 服务器的运行分两个阶段,一个是无honeyword阶段,一个是honeyword运行阶段。在无honeyword阶段,服务器认证系统与传统的认证系统相同,存储用户的口令,并进行认证。注册用户到达一定数量后,进行honeyword初始化,并进入honeyword运行阶段。
[0048] 无honeyword阶段,用户注册流程如下:
[0049] 1.用户生成口令pw,将用户名u与口令pw提交给认证服务器;
[0050] 2.认证服务器将用户名u和口令pw存储在口令存储文件中。口令存储方法通常使用加盐哈希函数进行存储,也可使用内存困难函数等计算困难函数存储,来降低攻击者窃取存储文件后实施离线口令猜测的速度。
[0051] 初始化阶段,用户登录流程如下:
[0052] 1、用户向认证服务器提交用户名u与口令pw;
[0053] 2、认证服务器验证口令存储文件中存储的口令pw’与pw是否相同;
[0054] 3、相同则允许登录,不同则拒绝登录。
[0055] 无honeyword阶段,如果注册用户数量达到
指定数目(例如1000),则进行honeyword初始化,步骤如下:
[0056] 1.对口令存储文件中的所有用户的口令输入honeyword生成器,为每个口令生成k-1个互不相同的honeywords(且与pw也不同);k为预先设置的参数,可以为所有用户设置相同或不同的k;
[0057] 2.将k-1个honeyword和用户的真口令pw(honeyword和真口令统称为sweetword)随机打乱,得到包含k个sweetwords的sweetword向量sw;
[0058] 3.将该用户在口令存储文件中对应的口令,替换为sweetword向量sw;
[0059] 4.将pw在sw中的位置j存储在honeychecker的位置存储文件中。
[0060] 5.Honeyword系统进入honeyword运行阶段。
[0061] 在honeyword运行阶段,如图1,注册流程如下:
[0062] 1.用户生成口令pw,将用户名u与口令pw提交给认证服务器;
[0063] 2.认证服务器使用honeyword生成器生成k-1个互不相同的honeywords(且与pw也不同);
[0064] 3.认证服务器将k-1个honeyword和用户的真口令pw,随机打乱得到包含k个sweetwords的sweetword向量sw,存储在认证服务器的口令存储文件上;
[0065] 4.认证服务器将口令pw在向量sw中的位置及用户名u发送给honeychecker,honeychecker将其存储在honeychecker的位置存储文件中。
[0066] 在honeyword运行阶段,如图2,登录流程如下:
[0067] 1.用户向认证服务器提交用户u和口令pw;
[0068] 2.认证服务器查询口令存储文件中u的sweetword向量sw,如果pw不在sw中,则拒绝登录;
[0069] 3.如果pw在sw中,即pw的位置为j,则认证服务器向honeychecker发送用户名u和口令pw;
[0070] 4.Honeychecker查询位置存储文件中用户u对应的位置j’,判断是j和j’是否相等;
[0071] 5.如果相等,则honeychecker向认证服务器发送允许登录;
[0072] 6.如果不相等,则honeychecker启动安全机制。安全机制为网站考虑自身需求而设置,可能直接拒绝登录,并会记录登录失败次数,在登录次数超过阈值时判定口令存储文件泄漏,从而要求所有用户修改口令,也可能允许用户登录,但同时监视用户行为,在某些情况下要求用户进行再次认证。
[0073] Honeyword生成器包含多个概率模型,例如List模型,PCFG模型,Markov模型等。概率模型可以为基于用户个人信息(如姓名生成等)的条件概率模型,也可为没有任何条件的概率模型。自适应honeyword生成器会根据用户的真实口令对概率模型进行调整,使其不断接近口令的真实分布。
[0074] Honeyword生成器在初始化时的生成流程如下:
[0075] 1.记所有用户的口令为集合PW,利用其训练概率模型,并对其中每个口令pw,随机生成k-1个honeywords(并且与该用户口令也不相同);该概率模型通常仅使用List模型,不使用多个概率模型;
[0076] 2.利用PW对honeyword生成器中的所有概率模型进行训练;
[0077] 3.返回所有用户的honeyword。
[0078] 如图3,Honeyword生成器在honeyword运行阶段的生成流程如下:
[0079] 1.将用户的口令pw输入所有概率模型进行更新;
[0080] 2.计算pw的P/Q值,如果超过阈值(例如20),则采用修改pw的方式生成honeywords,如随机修改pw的后几位字符,生成k-1个honeywords;P表示pw在所有用户真实口令中的
频率,Q表示pw被多个概率模型生成概率的加权平均;
[0081] 3.如果P/Q低于阈值,则采用下概率模型的方法生成honeywords:
[0082] a)随机选择一个概率模型,并利用该概率模型随机生成一个honeyword;选择概率模型通常使用均匀分布即可,也可根据情况,为不同的概率模型设置不同权重,按权重随机选择一个概率模型;
[0083] b)判断该honeyword是否与pw和已生成的honeyword的相同,如果相同则舍弃,再重新生成;
[0084] c)重复上述过程直到生成k-1个honeywords。
[0085] Honeyword泄漏检测系统的安全策略如下:
[0086] 1.对所用用户,记录单位时间(例如1天)内,真实口令登录的总次数realPasswordLoginTotalCount、honeyword登录的总次数honeywordLoginTotalCount、其他登录(非sweetwords登录)的总次数otherLoginTotalCount;
[0087] 2.对每个用户u,记录其在单位时间(例如1天)内,真实口令登录的次数realPasswordLoginCount[u]、honeyword登录的次数honeywordLoginCount[u]、其他登录(非sweetwords登录)的次数otherLoginCount[u];
[0088] 3.如果某个用户u的honeywordLoginCount[u]+otherLoginCount[u]超过阈值(例如3),则限制用户u的登录,例如要求其通过其他方式认证、通知用户有可疑登录、对该用户进行监控等;
[0089] 4.如果本单位时间内honeywordLoginTotalCount和otherLoginTotalCount比一段时期(例如,之前10个单位时间)内honeywordLoginTotalCount和otherLoginTotalCount平均值增加的数量,分别记为honeywordLoginTotalCountIncrease和otherLoginTotalCountIncrease,超过系统设定阈值honeywordLoginTotalCountDiff1和otherLoginTotalCountDiff1,则判定为遭到DoS攻击,启动执行DoS攻击对应的安全措施。
例如,屏蔽发起DoS攻击的IP。
[0090] 5 .如果本单位时间内realPasswordLoginTotalCount和honeywordLoginTotalCount比一段时间内realPasswordLoginTotalCount和
honeywordLoginTotalCount的平均值增加的数量realPasswordLoginTotalCountIncrease和honeywordLoginTotalCountIncrease,超过系统预先设置的阈值realPasswordLoginTotalCountDiff2和honeywordLoginTotalCountDiff2,并且otherLoginTotalCount的增加数量otherLoginTotalCountIncrease小于系统设置的阈值otherLoginTotalCountDiff2,则判定为口令文件泄漏,并启动相应的安全机制,如排查服务器漏洞、要求用户修改口令等。
[0091] 6.如果otherLoginTotalCountIncrease大于阈值otherLoginTotalCountDiff2,并且honeywordLoginTotalCountIncrease-w1*otherLoginTotalCountIncrease超过预先设定的阈值honeywordLoginTotalCountDiff2(w1为根据真实口令分布和honeyword分布设定的比例参数),则同样判定口令文件泄漏,并启动相应的安全机制,如排查服务器漏洞、要求用户修改口令等。
[0092] 需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附
权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。