专利名称:一种避免字典攻击的方法
技术领域:
本发明属于计算机信息安全领域,尤其涉及的是一种避免计算机受到字典攻击的方法。
背景技术:
随着计算机和通信网络的广泛应用,在为人们的生活和工作带来极大的方便的同时,也带来了许多亟待解决的问题,其中数字信息的安全性就是一个突出的问题。为了保证自己的数字信息不被别人看到,人们往往为这些信息和对这些信息进行的操作都设置了口令,一般来说,只有通过正常合法渠道知道口令的人,才可以查看甚或修改这些数字信息。
然而,随着技术的发展,总有些人为了某些目的,想方设法去得知本不属于自己的数字信息的口令,从而获取对数字信息的未经授权的访问。其中,最典型的攻击方法就是字典攻击,即通过穷举等手段获得数字信息的口令。
为了应对这种攻击,信息安全公司和专家给广大用户的建议是使用一个不能太短的口令,并避免使用用户名字中的字、避免使用一个有意义的单词做口令等等易被字典方式猜测到的口令。很多系统本身对口令字要求很严格,首先口令字必须取的足够长,如至少8字节,用户登记和修改口令字的程序将强制用户必须采用要求的口令长度。其次,离线的口令检查工具,将弱口令标记,强制用户限期进行修改,这些都是用来增强用户口令的抗攻击强度。
字典攻击的特点是在较短的时间内进行数以千计的不同口令组合的尝试,因此,虽然口令强度增大能顶一时,但抵挡不住长时间的字典攻击。
针对字典攻击的特点,现有技术中考虑到字典攻击的一个典型应对策略是锁定计算机或单片机、芯片等,这就要求执行点保持先前失败的尝试状态,达到一定次数后就锁定计算机。有些是锁定一会儿受攻击的计算机,然后,继续正常运行。然而,攻击者往往很容易地可以确定等待时间周期,并在等待时间周期过去以后再以最大的攻击速率执行,直到下一个时间片。有些锁定只能通过重启解除。
但不管怎样,当前的实现在成功地认证或重启以后就复位了失败次数等策略参数,这样的话,攻击者在错误多次之后(未达到锁定次数前)仅仅执行一个有效的授权操作,或者失败多次被锁定之后,只需重启计算机,就可以继续进行较多次数的字典攻击,从而可以一直进行攻击,直至最终攻击成功。
发明内容
本发明的目的在于提供一种避免字典攻击的方法,针对现有技术中字典攻击应对策略的缺陷,通过采用,使计算机或数字信息的所有者可以较早的意识到正在遭受字典攻击,及时采取措施,使攻击者难以确定等待时间。
为达到以上目的,本发明采用的技术方案是一种避免字典攻击的方法,其包括以下步骤a)、在计算机设置一非易失性存储区域,用于保存失败授权尝试的计数值、锁定时间值和锁定标志;b)、所述计算机提供一计时器用于计时锁定时间;c)、设置失败授权次数的阈值,如果有授权失败,失败授权尝试的计数值就加1,一直累加到超过所述阈值时或所有者执行字典攻击策略复位操作时,所述失败授权次数的计数值清零;d)、在失败授权尝试的计数值超过阈值时,所述计算机被锁定,在锁定周期内只响应启动、自检、字典攻击策略复位请求;e)、每次失败授权尝试的计数值超过阈值,所述计算机的锁定周期结束后,所述锁定时间值加倍;f)、所有者可以执行字典攻击策略复位操作复位失败授权尝试的计数值和锁定时间值,解除当前锁定;并且在锁定周期内执行该操作时,如果对于该操作的授权失败,则重新开始锁定周期,并不允许任何的解除锁定的尝试。
所述的方法,其中,还包括g)、如果计算机在锁定周期内重启,那么在启动之后重新开始该锁定周期,并且重启操作不复位失败授权尝试的计数值、锁定时间值。
所述的方法,其中,所述步骤c)的字典攻击策略复位操作还包括c1)、察看使能改操作的标志的状态,如果为不允许,则退出;否则,继续;c2)、验证所有者是否授权了该操作,包括验证口令的正确性;c3)、如果所有者授权了该操作,则清零失败计数,将锁定周期时间值复位成起始值,并将锁定标志设置为FALSE;如果所有者没有授权该操作,则将使能改操作的标志设置为不允许,禁止本启动周期内任何试图执行该操作的行为,并重新开始锁定周期。
所述的方法,其中,还设置有多个非易失性区域,在一个区域读写寿命达到之后,将失败授权尝试的计数值、锁定信息存入另一个可用的非易失性存储区域。
所述的方法,其中,所述步骤d)还包括对于其他请求,查询锁定周期是否结束,结束后则响应。
所述的方法,其中,还包括在对所述计算机锁定开始时给出提示,提醒所有者当前可能正在遭受字典攻击。
所述的方法,其中,所述非易失性存储区域为flash或EEPROM。
所述的方法,其中,所述计时器由硬件或软件实现。
所述的方法,其中,所述计时器为单调计数器。
本发明所提供的一种避免字典攻击的方法,通过将失败计数、锁定信息等记录在非易失性存储区域中,用以防止攻击者通过重启计算机隐瞒自己以前失败尝试的企图;失败计数,一直累加,阻止了攻击者利用自己知道的口令执行有效授权后继续进行更多攻击的企图;并且在每次锁定结束后使锁定周期加倍,让攻击者无法确定何时可以再继续开始攻击。
图1~图6为本发明方法的各较佳实施例的时间轴示意图。
具体实施例方式
为使本发明的目的、技术方案和效果更加清楚,以下结合附图及实施例对本发明再做更进一步详细的说明。
本发明所述的避免字典攻击的方法,其包括以下步骤a)、在计算机上设置一非易失性存储区域,如flash或EEPROM,用于保存失败授权尝试的计数值、锁定时间值和锁定标志等。
b)、所述计算机系统中提供一个计时器,可以是硬件的或软件的,用于计时锁定时间。
c)、所述计算机计算机或数字信息的所有者可以设置失败授权的次数阈值;d)、如果有授权失败,所述失败授权尝试的计数值就加1。一直累加,在失败授权尝试的计数值超过阈值时或所有者执行字典攻击策略复位操作时,所述失败授权尝试的计数值才清零。
e)、失败授权尝试的计数值超过阈值时,计算机被锁定,在锁定周期内只能响应启动、自检、字典攻击策略复位等请求。对于其他请求,查询锁定周期是否结束,结束后才能响应。锁定开始时可以给出提示,提醒所有者当前可能正在遭受字典攻击,从而所有者可以采取修改口令,封攻击者IP等方式,以防患于未然。
f)、每次失败授权尝试的计数值在超过阈值、锁定周期结束后,下一次的锁定时间值加倍。
g)、如果计算机在锁定周期内被重启,那么在启动之后重新开始该锁定周期。重启操作不复位失败授权尝试的计数值、锁定时间值。
h)、计算机的所有者可以执行字典攻击策略复位操作复位失败授权尝试的计数值和锁定时间值,解除当前锁定。如果在锁定周期内执行该操作,且对于该操作的授权失败,则重新开始锁定周期,并且不允许任何的解除锁定的尝试。
所述字典攻击策略复位操作的步骤为1.察看使能改操作的标志的状态,如果为不允许,则退出;否则,继续。
2.验证所有者授权了该操作。包括验证口令等的正确性。
3.如果所有者授权了该操作,则a)清零失败计数b)将锁定周期时间值复位成基起始值c)将锁定标志设置为FALSE4.如果所有者没有授权该操作,则a)将使能改操作的标志设置为不允许,禁止本启动周期内任何试图执行该操作的行为。
b)重新开始锁定周期。
为使本发明具有更好的效果,可以基于每一个对象追踪失败的尝试,并保存锁定信息。如果一个失效阀值达到,计算机将使请求失效,并设置计时器。当计时器计时结束,计算机将复位阀值,并继续对那个对象的正常的认证行为。非易失性存储区域都是有读写寿命的,为了保证该策略可以正常长时间运行,可以提供多个非易失性区域,在一个区域读写寿命达到之后,将失败授权尝试的计数值、锁定信息存入另一个可用的非易失性存储区域。
在下面的具体实施例中,为了叙述方便,用Cf表示失败授权尝试的计数值(16位)、Tl表示锁定周期时间(8位)、Fl表示锁定标志(8位)、Ct表示失败授权尝试的计数阈值(16位)、T表示计时器值。下面为本发明的一个具体实施例。
A)、在计算机上设置提供32个大小为32位的flash区域,每个区域保存失败授权尝试的计数值Cf、锁定时间值Tl和锁定标志Fl。
B)、用一单调计数器作为计时器,计时锁定时间。在锁定周期开始时读取所述单调计数器值M1作为计时开始时间,在有新的请求时,读取当前单调计数器的值M2,T=(M2-M1)*Rm,其中Rm指两次计数间的时间,如果T大于Tl,则响应该请求,否则不响应。下面我们以每5秒增加一次的单调计数器为例。
C)、设置字典攻击策略参数的初值。失败授权的阈值Ct=16;Cf=0xFF;Tl=6,其实就是初始锁定周期为30秒;Fl=0x00,即FALSE。
D)、如果有授权失败,Cf发左移1位,即失败授权尝试的计数值加1。
E)、失败授权尝试的计数值超过阈值时(Cf==0x00),如果该区域到达读写寿命,可换另一个可用区域,否则,仍用该区域。设置Fl=TRUE将计算机锁定,读取单调计数器值M1作为计时开始时间。在锁定周期内只能响应启动、自检、字典攻击策略复位等请求。有其他请求到达时,读取当前单调计数器的值M2,T=(M2-M1)*5,如果T大于Tl,则响应该请求,否则不响应。
F)、每次锁定周期结束后,锁定时间值Tl加倍,Tl=2×Tl。Fl=FALSE。
G)、如果该计算机在锁定周期内重启,那么在启动之后读取当前单调计数器值作为计时开始值,重新开始该锁定周期。
H)、所述计算机的所有者可以执行字典攻击策略复位操作复位失败授权尝试的计数值Cf和锁定时间值Tl,解除当前锁定。如果在锁定周期内执行该操作,并且对于该操作的授权验证失败,则读取当前单调计数器的值作为锁定周期计时开始值,重新开始锁定周期,并且设置允许执行该操作的标志为FALSE,不允许任何的解除锁定的尝试。
对于本发明的上述实施例,在第一个16次失败后,计算机锁定30秒;之后锁定周期为60秒,失败计数清零,如果再失败16次就会锁定60秒;以此递推。重启计算机并不影响失败计数,会重新开始锁定周期计时。所有者可以在适当时刻执行字典攻击策略复位操作清零失败计数、复位锁定周期值、失败阈值、锁定标志等。
具体如图1~图6所示的,是在前面实施例设置的参数基础上给出的时间轴示意图,分别给出了六种情况。每种情况中,横轴代表时间;横轴下面十字星代表有一次授权失败并计入失败计数器,下面的数字给出了为第几次失败;横轴上面的竖箭头为事件,箭头上面的文字给出了时间说明,两竖线间夹横箭头表示锁定周期,中间的文字给出了锁定时间。
该六种情况都说明了除了复位操作的所有者授权以外,任何正确的授权不会清零失败计数,如六种情况中5、9之后的正确授权,重启操作也不会清零失败计数,如六种情况中5之后的重启。
如图1所示,说明计数到16次失败,锁定30秒,锁定周期内未遇到重启、复位等操作,锁定周期结束后,计数重新从1开始,如果再计16次失败,则锁定60秒,依此类推。
如图2所示,说明计数到16次失败,锁定30秒,但锁定周期内遇到重启操作,重启后,重新锁定30秒。锁定周期结束后,计数重新从1开始,如果再计16次失败,则锁定60秒,依此类推。
如图3所示,说明计数到16次失败,锁定30秒,但锁定周期内遇到所有者复位操作,并且该操作经验证确实是所有者授权,则解除锁定。计数重新从1开始,如果再计16次失败,仍锁定30秒,依此类推。
如图4所示,说明计数到16次失败,锁定30秒,但锁定周期内遇到所有者复位操作,并且该操作经验证未经所有者授权,则重新锁定30秒。如果不经重启,不能再进行复位操作。锁定周期结束后,计数重新从1开始,如果再计16次失败,则锁定60秒,依此类推。
如图5所示,说明失败计数未到16次时,遇到所有者复位操作,并且该操作经验证确实是所有者授权,则计数重新从1开始,如果再计16次失败,仍锁定30秒。锁定周期结束后,计数重新从1开始,如果再计16次失败,则锁定60秒,依此类推。
如图6所示,说明失败计数未到16次时,遇到所有者复位操作,并且该操作经验证未经所有者授权,则失败计数加1,如果计到16次失败,则锁定30秒。锁定周期结束后,计数重新从1开始,如果再计16次失败,则锁定60秒,依此类推。
本发明所述的避免字典攻击的方法,可以用于各安全操作环境,通过将失败计数、锁定信息等记录在非易失性存储区域中,用以防止攻击者通过重启计算机隐瞒自己以前失败尝试的企图;失败计数,一直累加,只能通过两种途径复位,要么所有者执行字典攻击策略复位操作,要么等超过阈值,锁定周期结束后自动复位,这样就阻止了攻击者利用自己知道的口令执行有效授权后继续进行更多攻击的企图;在每次锁定结束后使锁定周期加倍,让攻击者难以确定何时可以再继续开始攻击。
应当理解的是,本发明上述针对具体实施例的描述较为具体,并不能因此而理解为对本发明专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。
权利要求
1.一种避免字典攻击的方法,其包括以下步骤a)、在计算机设置一非易失性存储区域,用于保存失败授权尝试的计数值、锁定时间值和锁定标志;b)、所述计算机提供一计时器用于计时锁定时间;c)、设置失败授权次数的阈值,如果有授权失败,失败授权尝试的计数值就加1,一直累加到超过所述阈值时或所有者执行字典攻击策略复位操作时,所述失败授权次数的计数值清零;d)、在失败授权尝试的计数值超过阈值时,所述计算机被锁定,在锁定周期内只响应启动、自检、字典攻击策略复位请求;e)、每次失败授权尝试的计数值超过阈值,所述计算机的锁定周期结束后,所述锁定时间值加倍;f)、所有者可以执行字典攻击策略复位操作复位失败授权尝试的计数值和锁定时间值,解除当前锁定;并且在锁定周期内执行该操作时,如果对于该操作的授权失败,则重新开始锁定周期,并不允许任何的解除锁定的尝试。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括g)、如果计算机在锁定周期内重启,那么在启动之后重新开始该锁定周期,并且重启操作不复位失败授权尝试的计数值、锁定时间值。
3.根据权利要求1所述的方法,其特征在于,所述步骤c)的字典攻击策略复位操作还包括c1)、察看使能改操作的标志的状态,如果为不允许,则退出;否则,继续;c2)、验证所有者是否授权了该操作,包括验证口令的正确性;c3)、如果所有者授权了该操作,则清零失败计数,将锁定周期时间值复位成起始值,并将锁定标志设置为FALSE;如果所有者没有授权该操作,则将使能改操作的标志设置为不允许,禁止本启动周期内任何试图执行该操作的行为,并重新开始锁定周期。
4.根据权利要求1所述的方法,其特征在于,所述方法还设置有多个非易失性区域,在一个区域读写寿命达到之后,将失败授权尝试的计数值、锁定信息存入另一个可用的非易失性存储区域。
5.根据权利要求1所述的方法,其特征在于,所述步骤d)还包括对于其他请求,查询锁定周期是否结束,结束后则响应。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括在对所述计算机锁定开始时给出提示,提醒所有者当前可能正在遭受字典攻击。
7.根据权利要求1所述的方法,其特征在于,所述非易失性存储区域为flash或EEPROM。
8.根据权利要求1所述的方法,其特征在于,所述计时器由硬件或软件实现。
9.根据权利要求7所述的方法,其特征在于,所述计时器为单调计数器。
全文摘要
一种避免字典攻击的方法,其包括以下步骤在计算机设置一非易失性存储区域,用于保存失败授权尝试的计数值、锁定时间值和锁定标志;所述计算机提供一计时器用于计时锁定时间;设置失败授权次数的阈值,如果有授权失败,失败授权尝试的计数值就加1,一直累加到超过所述阈值时或所有者执行字典攻击策略复位操作时,所述失败授权次数的计数值清零;在失败授权尝试的计数值超过阈值时,所述计算机被锁定,在锁定周期内只响应启动、自检、字典攻击策略复位请求。本发明方法对失败计数一直累加,阻止了攻击者利用自己知道的口令执行有效授权后继续进行更多攻击的企图;并且在每次锁定结束后使锁定周期加倍,让攻击者无法确定何时可以再继续开始攻击。
文档编号G06F1/00GK1728034SQ20051003622
公开日2006年2月1日 申请日期2005年7月28日 优先权日2005年7月28日
发明者陈强, 张璐, 朱广志, 张玮, 刘鑫 申请人:北京兆日科技有限责任公司