基于密钥管理协议的防止拒绝服务攻击的方法和装置的制作方法

文档序号:7751431阅读:82来源:国知局
专利名称:基于密钥管理协议的防止拒绝服务攻击的方法和装置的制作方法
技术领域
本发明涉及通信安全技术领域,具体而言,涉及一种基于密钥管理协议的防止拒绝服务攻击的方法和装置。
背景技术
路由协议的安全是一项关键的技术,在IETF中有很多工作组对其进行研究和标准化,其中KARP工作组主要研究路由技术中的认证技术以及在认证中所需要的密钥管理。在KARP 工作组中,提出一个 KMP 的概念,这里,KMP(KeyManagement Protocol,密钥管理协议)运行在两个执行路由协议的通信实体之间,为这两个通信实体提供认证,产生会话密钥和更新会话密钥。KMP之所以重要是因为人工的密钥管理方案更加依赖于管理员的工作,一旦网络规模变大,管理员将对复杂的密钥管理束手无策。但是,在自动的密钥管理协议中有一种攻击不可不防,这就是Dos攻击,在这种攻击下,黑客可以不断的给一台路由器发送请求会话的消息,并且在此过程中不断的去尝试密钥来产生身份认证报文,但是这台路由器每一次都要去验证这个身份认证报文。由于身份认证报文是基于密码学运算的某种算法(例如,对称密钥中的MAC或者非对称密钥中的签名),而这些运算都是需要耗费大量计算资源的过程,因此在上述的攻击过程中这台路由器的工作效率明显降低,从而对性能产生重要的影响,最终疲于应付这个黑客而拒绝对其他合法的路由器进行对话。由上可知,在现有的基于KMP的认证过程中,如果接收到请求会话报文,则路由器将直接对该请求会话报文进行认证。这样的认证机制很可能受到上述的黑客攻击,而导致工作效率明显降低。

发明内容
本发明的主要目的在于提供一种基于密钥管理协议的防止拒绝服务攻击的方法和装置,以至少解决现有技术中认证机制由于受到攻击而导致的工作效率明显降低问题。根据本发明的一个方面,提供了一种基于密钥管理协议的防止拒绝服务攻击的方法,其包括判断接收到的报文是否异常;若异常,则向发送上述报文的实体发送携带有问题信息的请求消息;对接收到的来自上述实体的上述问题信息的答复信息进行判断;若上述答复信息正确,则对接收到的上述报文进行认证。进一步地,上述判断接收到的报文是否异常的步骤包括判断在时间段内接收到的报文是否同时满足以下条件,若同时满足,则上述报文异常在上述时间段内接收到的上述报文的数量超过第一阈值;在上述时间段内接收到的上述报文的间隔小于第二阈值。进一步地,对上述问题信息进行答复所需的运算复杂度与自然数η相关,其中,上述η越大,上述运算复杂度越大,向发送上述报文的实体发送携带有问题信息的请求消息包括将η加上预定的步长;根据更新后的η生成上述问题信息,并发送给上述实体。进一步地,在向发送上述报文的实体发送携带有问题信息的请求消息之前,还包括判断上述η是否小于第三阈值;若η小于上述第三阈值,则执行将η加上预定的步长的步骤;若η大于等于上述第三阈值,则停止接收来自上述实体的报文。进一步地,上述问题信息包括m比特的数据Y,哈希函数;上述答复信息包括上述实体返回的数据X。进一步地,对接收到的来自上述实体的上述问题信息的答复信息进行判断的步骤包括对X进行上述哈希函数运算得到函数值;若得到的上述函数值的前η个比特为上述数据Y,则上述答复信息正确。进一步地,上述问题信息包括图G的信息;上述答复信息包括上述实体返回的上述图G的三着色向量,其中,图G = <V,E>,|V| = n,n为自然数,V用于表示节点,E用于表示上述节点之间的连线。进一步地,对接收到的来自上述实体的上述问题信息的答复信息进行判断的步骤包括若上述三着色向量将上述图G正确三着色,则上述答复信息正确。根据本发明的另一方面,提供了一种基于密钥管理协议的防止拒绝服务攻击的装置,其包括第一判断模块,用于判断接收到的报文是否异常;发送模块,用于在判断出异常时,向发送上述报文的实体发送携带有问题信息的请求消息;接收模块,用于接收来自上述实体的上述问题信息的答复信息;第二判断模块,用于判断上述答复信息是否正确 ’认证模块,用于在上述答复信息正确时,对接收到的上述报文进行认证。进一步地,上述装置还包括处理模块,用于在判断出上述接收到的报文异常时, 将自然数η加上预定的步长,并根据更新后的η生成上述问题信息,其中,对上述问题信息进行答复所需的运算复杂度与上述η相关,上述η越大,上述运算复杂度越大。进一步地,上述装置还包括第三判断模块,用于在上述发送模块向发送上述报文的实体发送携带有问题信息的请求消息之前,判断上述η是否小于第三阈值;通知模块,用于在η小于上述第三阈值时,通知上述处理模块执行将η加上预定的步长的步骤;在η大于等于上述第三阈值时,通知上述接收模块停止接收来自上述实体的报文。进一步地,上述问题信息包括η比特的数据Y,哈希函数;上述答复信息包括上述实体返回的数据X。进一步地,上述第二判断模块用于在对X进行上述哈希函数运算得到的函数值的前η个比特为上述数据Y时判断上述答复信息正确。进一步地,上述问题信息包括图G的信息;上述答复信息包括上述实体返回上述图G的三着色向量;其中,图G = <V,E>,I V| = n,n为自然数,V用于表示节点,E用于表示上述节点之间的连线。进一步地,上述第二判断模块用于在上述三着色向量将上述图G正确三着色时判断上述答复信息正确。本发明在接收到报文之后,没有直接对该报文进行认证,而是向发送报文的实体发送携带有问题的信息,并只有上述实体返回正确答复的情况下,才对上述报文进行认证。 这样,如果上述实体是攻击设备,则需要消耗大量的资源来反复答复上述问题,从而无法实现攻击的目的。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据本发明实施例的基于密钥管理协议的防止拒绝服务攻击的方法的流程图;图2是根据本发明实施例的用于防止Dos攻击的报文选项格式的示意图;图3是根据本发明实施例的用于防Dos攻击的报文选项在密钥管理协议通用报文头中的位置的示意图;图4是根据本发明实施例的认证过程中的接收方(即发送原始攻击报文的实体) 的处理步骤的示意图;图5是根据本发明实施例的认证过程中的发送方(即接收原始攻击报文的实体) 的处理步骤的示意图;图6是根据本发明实施例的所采用的系统的示意图;图7是根据本发明实施例的基于对称密钥认证和哈希函数问题的防止拒绝服务攻击的方法的流程图;图8是根据本发明实施例的基于对称密钥认证和图三着色问题的防止拒绝服务攻击的方法的流程图;图9是根据本发明实施例的基于非对称密钥认证和哈希函数问题的防止拒绝服务攻击的方法的流程图;图10是根据本发明实施例的基于非对称密钥认证和图三着色问题的防止拒绝服务攻击的方法的流程图;图11是根据本发明实施例的基于密钥管理协议的防止拒绝服务攻击的装置的结构示意图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。图1是根据本发明实施例的基于密钥管理协议的防止拒绝服务攻击的方法的流程图,其包括如下步骤S102,判断接收到的报文是否异常;S104,若异常,则向发送上述报文的实体发送携带有问题信息的请求消息;S106,对接收到的来自上述实体的上述问题信息的答复信息进行判断;S108,若上述答复信息正确,则对接收到的上述报文进行认证。在现有的基于KMP的认证过程中,如果接收到请求会话报文,则路由器将直接对该请求会话报文进行认证。这样的认证机制很可能受到上述的黑客攻击,而导致工作效率明显降低。反观本发明,在接收到报文之后,没有直接对该报文进行认证,而是向发送报文的实体发送携带有问题的信息,并只有上述实体返回正确答复的情况下,才对上述报文进行认证。这样,如果上述实体是攻击设备,则需要消耗大量的资源来反复答复上述问题,从而无法实现攻击的目的。优选的,上述判断接收到的报文是否异常包括判断在时间段内接收到的报文是否同时满足以下条件,若同时满足,则上述报文异常在上述时间段内接收到的上述报文的数量超过第一阈值;在上述时间段内接收到的上述报文的间隔小于第二阈值。通过上述的判断方法,可以准确地判断出接收到的报文是否异常,从而提高了本发明实施例的认证方法的准确性。优选的,对上述问题信息进行答复所需的运算复杂度与自然数η相关,其中,上述 η越大,上述运算复杂度越大,向发送上述报文的实体发送携带有问题信息的请求消息包括将η加上预定的步长;根据更新后的η生成上述问题信息,并发送给上述实体。优选的, 上述预定的步长为1,即,η = η+1。通过上述的方法,逐步增加了发起攻击的实体对上述问题信息进行答复所需的运算复杂度,而这种运算复杂度的提高,更有效地防止了发起攻击的实体继续发送攻击报文, 逐级提升了安全强度。作为另一种可选的方案,上述问题信息的运算复杂度与自然数η相关,其中,上述 η越大,上述问题信息的运算复杂度越大。在这种情况下,若上述答复信息不正确,上述认证方法还包括将η加上预定的步长;接收上述实体发送的当前报文;判断上述当前报文是否异常;若异常,则根据更新后的η生成当前问题信息,并将上述当前问题信息发送给上述实体;对接收到的来自上述实体的上述当前问题信息的答复信息进行判断;若上述当前问题信息的答复信息正确,则对接收到的上述当前报文进行认证。优选的,在向发送上述报文的实体发送携带有问题信息的请求消息之前,上述方法还包括判断上述η是否小于第三阈值;若η小于上述第三阈值,则执行将η加上预定的步长的步骤;若η大于等于上述第三阈值,则停止接收来自上述实体的报文。通过上述的方法,可以避免无穷尽地与发送攻击的实体进行交互,互相消耗系统资源,从而进一步保证了系统的安全性。优选的,上述问题信息包括η比特的数据Y,哈希函数,用于指示上述实体返回数据X的指示信息,其中,对X进行上述哈希函数运算得到的函数值的前η个比特为上述数据 Y,η为自然数。优选的,该哈希函数为MD5。优选的,上述问题信息包括η比特的数据Y,哈希函数;上述答复信息包括上述实体返回的数据X。优选的,在本优选实施例所提出的上述问题信息和答复信息的情况下, 对接收到的来自上述实体的上述问题信息的答复信息包括对X进行上述哈希函数运算得到函数值;若得到的上述函数值的前η个比特为上述数据Y,则上述答复信息正确。优选的,上述问题信息包括图G的信息,用于指示上述实体返回上述图G的三着色向量的指示信息,其中,图G = <V,E>,|V| =η,η为自然数。优选的,上述问题信息包括图G的信息;上述答复信息包括上述实体返回的上述图G的三着色向量,其中,图G =〈V,E>, IVI = η,η为自然数,V用于表示节点,E用于表示节点之间的连线。在本优选实施例所提出的上述问题信息和答复信息的情况下,对接收到的来自上述实体的上述问题信息的答复信息包括若上述三着色向量将上述图G正确三着色,则上述答复信息正确。上述问题信息只是本发明的优选方式,本发明不仅限于此,例如,本发明中的问题信息还可以是其他的运算函数。以下结合附图来描述接收方和发送方的相关处理步骤。
首先,描述用于防止Dos攻击的报文选项格式,如图2所示。在用于防止Dos攻击的报文选项格式中,类型选项用来说明是密钥管理协议通用报文中的哪一种报文选项,长度指的是这个整个报文的长度,命令类型指的是这个报文是发送方发送的还是接受方发送的,Hash算法指的是双方用的是哪一种哈希函数,最后的挑战值指的是问题信息内容。图3示出了上述用于防Dos攻击的报文选项格式在密钥管理协议通用报文头中的位置。图4示出了认证过程中的接收方(即发送原始攻击报文的实体)的处理步骤。其中,首先判断收到的报文中是否有防止拒绝服务攻击的选项,如果有,则从选项中取出挑战值,设为Y,然后从Hash算法选择得到应该使用的函数,然后寻找X,使得Hash (X) = Y,最后发送携带有X的响应报文。图5示出了认证过程中的发送方(即接收原始攻击报文的实体)的处理步骤。其中,首先选择Y,然后配置防拒绝服务攻击选项,设置挑战值为Y,如果有Hash选择,则设置响应的Hash算法选择,最后发送这个报文,等待图4所示的接收方的响应报文。如果接收到接收方发送的响应报文,则发送方提取上述响应报文中的数值X,然后判断该X的哈希函数值是否等于Y,即,判断Hash (X)是否等于Y。图6示出了本发明实施例的采用上述方法的系统在核心网和承载网中的位置。下面将结合附图来详细描述不同问题下的认证方法的实施例。在本发明的实施例中,在KMP中添加了两个功能模块(这两个模块只是功能模块, 为了便于叙述,将其单独拿出来解释,但是在具体实施中,可以放在KMP的交换流程之中作为协议的一部分来设计,具体的实施可以参见实施例)预警模块和逆向资源耗费模块。在具体实施的时候,逆向资源耗费模块可以单独使用,也可以将逆向资源耗费模块和预警模块结合起来使用。其中,预警模块由入侵检测系统构成,这个预警模块当遇到如下3个条件时候会报警1)突然有大量的请求会话报文到来;2)这些请求会话报文基本上不能通过身份认证流程;3)报文的间隔时间非常短,并且不停的收到。当以上的3个条件都满足的时候,预警模块发出预警,并且触发逆向资源耗费模块。逆向资源耗费模块要求请求服务的路由器完成一系列的回答,只有回答的结果正确,才可以进入到下面的认证环节,这些回答可以是一个特定输出的哈希函数输入值,或者是一个合适规模的NP问题(在本发明的实施例中,我们使用了两种,一种是基于哈希函数输入值的运算,另一种是基于图三着色运算)。这样,服务器在收到回答的时候,他判断这个回答是否正确是一个P问题,可以很快的计算出来,而攻击者(发起攻击的服务器)为了回答这个问题却需要花费高于验证者指数级的计算复杂性。在这种情况下,攻击者的拒绝服务攻击的目的就不能达到,因为,如果他想让目的路由器耗费资源,他必须让目的路由器进入到认证环节,因为只有认证环节是需要大量耗费资源的,而要想进入到认证环节,必须要通过逆向资源耗费模块的回答,而这个回答已经让他自己的资源耗费掉了,所以他要么是没有能力发动这种攻击,要么会因为需要耗费的资源量太大而放弃攻击。注意,这种逆向资源耗费模块不会太过于影响合法的请求服务者,因为对于合法的请求服务者,他只需要进行一次回答,所以他是不会被显著的影响,而对于攻击者,他的攻击目的就是不断的请求,所以,他需要不断的进行耗费自己的资源来计算,如果这样,他会首先将自己的资源消耗掉。另外,在本发明实施例中,还提出了逐级提升安全强度的概念,就是说,在每一个 IP有连接请求的时候,为每个IP对应的分配一个规模值η (这里,η与对问题进行答复所需的运算复杂度相关,η越大,上述运算复杂度越大),当来自这个IP的一次请求没有通过的时候,我们可以对这个η+1,使得规模加大,当规模大于一定的阈值时,将这个IP列入黑名单,拒绝再次为这个IP地址的请求予以处理。这样,攻击嫌疑人会随着自己攻击次数的增加而以指数级速度的加剧自己的计算复杂性。注意,指数级的增加是非常可怕的。而增加 η的数量对于逆向耗费模块只是多项式级别的(甚至是常数级别的),可以忽略不计。实施例1 在本实施例中,逆向资源耗费模块生成的问题信息是基于哈希函数的。逆向资源耗费系统将向攻击嫌疑人提出一个特定的值,让攻击嫌疑人给出一个输入,使得这个输入的哈希值等于这个特定的值。比如逆向资源耗费系统向攻击嫌疑人提出η比特的数Y,并指定使用MD5哈希函数,要求攻击人给出一个值X,使得MD5 (χ)的前η个比特为Y,那么攻击嫌疑人平均需要搜索0(2~η)次方次以后,可以得出这个X值,而逆向资源耗费模块只要进行0(1)次方的运算就可以判断这个值是否是正确值,从这个意义上来讲,如果这个嫌疑人是个合法用户,他会不介意这点时间来做一次搜索(事实上,他只需要做一次),然后进入会话请求。而如果是一个黑客,他为了达到服务器资源耗费的目的的前提是自己先反复的做HASH函数的指数次搜索,那么这样,他自己首先就被资源耗费掉了。另外,我们可以在这个过程中调整这个η的大小,比如来自同一个IP地址的多次请求的回答都不正确,我们就可以将η变大,使得对方耗费的速度加快,如果η大于某一个阈值,那么以后来自这个IP的请求不予处理。图7是根据本发明实施例的基于对称密钥认证和哈希函数问题的防止拒绝服务攻击的方法的流程图,其具体包括如下步骤S701 请求设备anitiator)在本地产生随机数Ni。S702 Jnitiator 将 IDi,SAi 1,Ni 发往响应设备(Responder),其中 IDi 为 Initiator的ID, SAil为Initiator所支持的密码算法集合,Ni为Initiator的随机数。 优选的,在本实施例中,预警模块和逆向资源耗费模块位于响应设备中。S703:如果此时预警模块已经发现在短时间内有大量的请求会话流量进入系统, 他就会触发逆向资源耗费模块,并将这个要求会话的用户定为攻击嫌疑人。S704 逆向资源耗费模块启动。并且判断这个IP地址在短时间内有没有发动过请求,如果没有,则为这个IP设置一个η的初始值。S705 逆向资源耗费模块向攻击者提出一个η比特的数y。S706 攻击嫌疑人计算问题(或者随机回答问题)。S707 攻击嫌疑人向逆向资源耗费模块回答χ。S708 逆向资源耗费模块检测Hash(X)的前η个比特是否为y,如果是,进入下一步,如果不是,检测η是否为设定的阈值。如果η为设定的阈值,则将这个IP列入黑名单,中断连接;如果η不为设定的阈值,则将η加1,并中断本次连接。S709 =Responder在本地产生随机数Nr。S710 =Responder 进行以下运算prf+ (Ni I Nr,master key) = {SK_d | SK_ai | SK_ar},其中,prf 为一个伪随机函数, Master key为双方的主密钥,SK_ai为Initiator用于MAC运算的密钥,SK_ar为Responder 用于MAC运算的密钥,SK_d为用于产生通信会话密钥的密钥材料,符号“ I ”为连接符。S711 =Responder^f IDr, SArl,Ni 发送给 Initiator,其中 IDr 为 Responder 的 ID, SArl为Responder所选择的密码算法,Nr为Responder的随机数。S712 :Initiator产生prf+(Ni |Nr,master key) = {SK_d| SK_ai | SK_ar},其中prf 为一个伪随机函数,Master key为双方的主密钥。S713 Initiator 将 SAi2,MAC_SK_ai (IDi, SAi 1,SAi2, Ni)发送给 Responder,其中SAi2是两个通信实体可用的真正用于通信时候的密码算法集合,MAC_SK_ai (IDi, SAi 1, SAi2, Ni)指的是用SK_ai对IDi,SAi 1,SAi2, Ni这些输入做MAC运算,其中MAC算法是通过SAil,SArl来协商的。S714 :Responder在收到上一个消息后,对IDi, SAil, SAi2, Ni重新做MAC运算, 来比对消息中的载荷是否相同。如果相同,做下面的过程,如果不相同,则丢弃报文,中断流程。S715 =Responder 将 SAr2, MAC_SK_ar (IDr, SAr 1, SAr2, Nr)发送给 Initiator,其中SAr2是Responder选择的用于通信时候的密码算法,MAC_SK_ar(IDr,SArl,SAr2,Nr)指的是用SK_ar对IDr,SArl, SAr2,Nr这些输入做MAC运算,其中MAC算法是通过SAi 1,SArl 来协商的。S716 =Initiator在收到对方的MAC值以后,重新计算一下MAC值,并和收到的值作比对,如果相同,做下面的流程,如果不相同,则丢弃报文并中断流程。S717 =Initiator利用SK_d来产生真正用于通信的会话密钥prf+(SK_d,Ni |Nr)。S718 :Responder利用SK_d来产生真正用于通信的会话密钥prf+(SK_d,Ni | Nr)。实施例2 在本实施例中,逆向资源耗费模块生成的问题信息是基于图三着色的。逆向资源耗费模块向攻击嫌疑人提出一个图G =〈V,E>,其中|V| = n,然后攻击嫌疑人计算这个着色向量,并且回答这个向量,逆向资源耗费模块可以检测这个向量是否正确,注意,攻击嫌疑人在寻找规模为η的图的着色序列的时间复杂度为0((ιΓ2) X (3~η)),而逆向资源耗费模块在判断这个是否正确只需要0(ιΓ2)的时间复杂度。另外,我们可以在过程中为每个IP 绑定一个η的值,这个值从一个固定设置值开始慢慢变大,直到达到阈值后,把这个IP列入黑名单,不再提供连接服务。图8是根据本发明实施例的基于对称密钥认证和图三着色问题的防止拒绝服务攻击的方法的流程图,其具体包括如下步骤S801 请求设备anitiator)在本地产生随机数Ni。S802 Jnitiator 将 IDi,SAi 1,Ni 发往响应设备(Responder),其中 IDi 为 Initiator的ID, SAil为Initiator所支持的密码算法集合,Ni为Initiator的随机数。 优选的,在本实施例中,预警模块和逆向资源耗费模块位于响应设备中。
S803:如果此时预警模块已经发现在短时间内有大量的请求会话流量进入系统, 他就会触发逆向资源耗费模块,并将这个要求会话的用户定为攻击嫌疑人。S804 逆向资源耗费模块启动。并且判断这个IP地址在短时间内有没有发动过请求,如果没有,则为这个IP设置一个η的初始值。S805 逆向资源耗费模块向攻击者提出一个图G =〈V,Ε>,其中|V| = η。S806 攻击嫌疑人计算问题(或者随机回答问题)。S807 攻击嫌疑人向逆向资源耗费模块回答着色向量<xl,x2. . . xn>0S808:逆向资源耗费模块检测这个向量是否为三着色,如果是,进入下一步,如果不是,检测η是否为设定的阈值,如果η为设定的阈值,则将这个IP列入黑名单,中断连接; 如果η不为设定的阈值,则将η加1,并中断本次连接。S809 =Responder在本地产生随机数Nr。S810 =Responder 进行以下运算prf+(Ni I Nr,master key) = {SK_d| SK_ai | SK_ar},其中 prf 为一个伪随机函数, Master key为双方的主密钥。S811 :Responder 将 IDr,SArl,Ni 发送给 hitiator,其中 IDr 为 Responder 的 ID, SArl为Responder所选择的密码算法,Nr为Responder的随机数。S812 :Initiator产生prf+(Ni |Nr,master key) = {SK_d| SK_ai | SK ar},其中prf 为一个伪随机函数,Master key为双方的主密钥。S813 Jnitiator 将 SAi2,MAC_SK_ai (IDi, SAi 1, SAi2, Ni)发送给 Responder,其中SAi2是两个通信实体可用的真正用于通信时候的密码算法集合,MAC_SK_ai (IDi, SAi 1, SAi2, Ni)指的是用SK_ai对IDi,SAi 1,SAi2, Ni这些输入做MAC运算,其中MAC算法是通过SAil,SArl来协商的。S814 :Responder在收到上一个消息后,对IDi, SAil, SAi2, Ni重新做MAC运算, 来比对消息中的载荷是否相同。如果相同,做下面的过程,如果不相同,则丢弃报文,中断流程。S815 =Responder 将 SAr2, MAC_SK_ar (IDr, SAr 1, SAr2, Nr)发送给 Initiator,其中SAr2是Responder选择的用于通信时候的密码算法,MAC_SK_ar (IDr, SAr 1, SAr2, Nr) 指的是用SK_ar 对IDr,SAr 1, SAr2,Nr这些输入做MAC运算,其中MAC算法是通过SAi 1, SArl来协商的。S816 =Initiator在收到对方的MAC值以后,重新计算一下MAC值,并和收到的值作比对,如果相同,做下面的流程,如果不相同,则丢弃报文并中断流程。S817 =Initiator利用SK_d来产生真正用于通信的会话密钥prf+(SK_d,Ni |Nr)。S818 :Responder利用SK_d来产生真正用于通信的会话密钥prf+(SK_d,Ni | Nr)。实施例3:图9是根据本发明实施例的基于非对称密钥认证和哈希函数问题的防止拒绝服务攻击的方法的流程图,其具体包括如下步骤S901 请求设备anitiator)在本地产生随机数Ni。S902 Initiator 将 IDi,SAil,Ni,CERTi 发往响应设备(Responder),其中 IDi 为 Initiator的ID, SAil为Initiator所支持的密码算法集合,Ni为Initiator的随机数,CERTi为hitiator的证书。优选的,在本实施例中,预警模块和逆向资源耗费模块位于响应设备中。S903:如果此时预警模块已经发现在短时间内有大量的请求会话流量进入系统, 他就会触发逆向资源耗费模块,并将这个要求会话的用户定为攻击嫌疑人。S904 逆向资源耗费模块启动。并且判断这个IP地址在短时间内有没有发动过请求,如果没有,则为这个IP设置一个η的初始值。S905 逆向资源耗费模块向攻击者提出一个η比特的数y。S906 攻击嫌疑人计算问题(或者随机回答问题)。S907 攻击嫌疑人向逆向资源耗费模块回答χ。S908:逆向资源耗费模块检测Hash(X)的前η个比特是否为y,如果是,进入下一步,如果不是,则进一步检测η是否为设定的阈值。如果η为设定的阈值,则将这个IP列入黑名单,中断连接;如果η不为设定的阈值,则将η加1,并中断本次连接。S909 =Responder在本地产生随机数Nr。S910 =Responder 在本地产生 Sk_d = prf+ (Ni |Nr, Master key),其中 prf 为一个伪随机函数,Master key为双方的主密钥。S911 =Responder M IDr,SArl,Ni,CERTr 给 hitiator,其中 IDr 为 Responder 的 ID, SArl为Responder所选择的密码算法,Nr为Responder的随机数,CERTr为Responder 的证书。S912 Initiator 在本地产生 Sk_d = prf+ (Ni |Nr, Master key),其中 prf 为一个伪随机函数,Master key为双方的主密钥。S913 Initiator 将 SAi2,Sig_sk_i (IDi, SAi 1,SAi2, Ni)发送给 Responder,其中SAi2是两个通信实体可用的真正用于通信时候的密码算法集合,Sig_sk_i(IDi, SAil, SAi2,Ni)指的是用Initiator的私钥Sk_i对IDi, SAil, SAi2,Ni这些输入做签名运算,其中签名算法是通过SAi 1,SArl来协商的。S914 =Responder在收到上一个消息后,用对方证书里面的公钥解密签名,来比对消息中的载荷是否相同。如果相同,做下面的过程,如果不相同,则丢弃报文,中断流程。S915 :Respondei^fSAr2,Sig_sk_r(IDr,SArl,SAr2,Nr)发送给 hitiator,其中 SAr2是Responder选择的用于通信时候的密码算法,Sig_sk_r(IDr,SArl, SAr2,Nr)指的是用Responder的私钥sk_r对IDr,SArl,SAr2,Nr这些输入做签名运算,其中签名算法是通过SAi 1,SArl来协商的。S916 =Initiator在收到对方的签名值以后,用对方的证书里面的公钥来解密签名,并和上一次报文作比对,如果相同,做下面的流程,如果不相同,则丢弃报文并中断流程。S917 =Initiator利用SK_d来产生真正用于通信的会话密钥prf+(SK_d,Ni |Nr)。S918 :Responder利用SK_d来产生真正用于通信的会话密钥prf+(SK_d,Ni | Nr)。实施例4:图10是根据本发明实施例的基于非对称密钥认证和图三着色问题的防止拒绝服务攻击的方法的流程图,其具体包括如下步骤SlOOl 请求设备anitiator)在本地产生随机数Ni。
S1002 Initiator 将 IDi,SAil,Ni,CERTi 发往响应设备(Responder),其中 IDi 为 Initiator的ID, SAil为Initiator所支持的密码算法集合,Ni为Initiator的随机数, CERTi为hitiator的证书。优选的,在本实施例中,预警模块和逆向资源耗费模块位于响应设备中。S1003:如果此时预警模块已经发现在短时间内有大量的请求会话流量进入系统, 他就会触发逆向资源耗费模块,并将这个要求会话的用户定为攻击嫌疑人。S1004 逆向资源耗费模块启动。并且判断这个IP地址在短时间内有没有发动过请求,如果没有,则为这个IP设置一个η的初始值。S1005 逆向资源耗费模块向攻击者提出一个图G =〈V,Ε>,其中|V| = η。S1006 攻击嫌疑人计算问题(或者随机回答问题)。S1007 攻击嫌疑人向逆向资源耗费模块回答着色向量<xl,x2. . . xn>。S1008:逆向资源耗费模块检测这个向量是否为三着色,如果是,进入下一步,如果不是,检测η是否为设定的阈值。如果η为设定的阈值,则将这个IP列入黑名单,中断连接; 如果η不为设定的阈值,则将η加1,并中断本次连接。S1009 Responder在本地产生随机数Nr。SlOlO :Responder 在本地产生 Sk_d = prf+(Ni |Nr,Master key),其中 prf 为一个伪随机函数,Master key为双方的主密钥。SlOll :Responder 将 IDr,SArl,Ni,CERTr 给 Initiator,其中 IDr 为 Responder 的 ID, SArl为Responder所选择的密码算法,Nr为Responder的随机数,CERTr为Responder 的证书。S1012 Initiator 在本地产生 Sk_d = prf+(Ni I Nr ,Master key),其中 prf 为一个伪随机函数,Master key为双方的主密钥。S1013 :Initiator 将 SAi2,Sig_sk_i (IDi, SAi 1, SAi2, Ni)发送给 Responder,其中SAi2是两个通信实体可用的真正用于通信时候的密码算法集合,Sig_sk_i (IDi, SAi 1, SAi2,Ni)指的是用Initiator的私钥Sk_i对IDi,SAil,SAi2,Ni这些输入做签名运算,其中签名算法是通过SAi 1,SArl来协商的。S1014 Aesponder在收到上一个消息后,用对方证书里面的公钥解密签名,来比对消息中的载荷是否相同。如果相同,做下面的过程,如果不相同,则丢弃报文,中断流程。S1015 =Responder 将 SAr2, Sig_sk_r (IDr, SAr 1, SAr2, Nr)发送给 Initiator,其中SAr2是Responder选择的用于通信时候的密码算法,Sig_sk_r (IDr, SAr 1, SAr2,Nr)指的是用Responder的私钥sk_r对IDr,SArl, SAr2,Nr这些输入做签名运算,其中签名算法是通过SAi 1,SArl来协商的。S1016 =Initiator在收到对方的签名值以后,用对方的证书里面的公钥来解密签名,并和上一次报文作比对,如果相同,做下面的流程,如果不相同,则丢弃报文并中断流程。S1017 =Initiator利用SK_d来产生真正用于通信的会话密钥prf+(SK_d,Ni |Nr)。S1018 Aesponder利用SK_d来产生真正用于通信的会话密钥prf+(SK_d,Ni |Nr)。本发明还提供了一种基于KMP的防止拒绝服务攻击的装置,其可以运用上述各个基于KMP的防止拒绝服务攻击的方法的实施例。图11是根据本发明实施例的基于密钥管理协议的防止拒绝服务攻击的装置的结构示意图,其具体包括第一判断模块1102,用于判断接收到的报文是否异常;发送模块1104,用于在判断出异常时,向发送所述报文的实体发送携带有问题信息的请求消息;接收模块1106,用于接收来自所述实体的所述问题信息的答复信息;第二判断模块1108,用于判断所述答复信息是否正确;认证模块1110,用于在所述答复信息正确时,对接收到的所述报文进行认证。本发明实施例在接收到报文之后,没有直接对该报文进行认证,而是向发送报文的实体发送携带有问题的信息,并只有上述实体返回正确答复的情况下,才对上述报文进行认证。这样,如果上述实体是攻击设备,则需要消耗大量的资源来反复答复上述问题,从而无法实现攻击的目的。优选的,上述认证装置还包括处理模块1112,用于在判断出所述接收到的报文异常时,将自然数η加上预定的步长,并根据更新后的η生成所述问题信息,其中,对所述问题信息进行答复所需的运算复杂度与所述η相关,所述η越大,所述运算复杂度越大。通过上述的方法,逐步增加了发起攻击的实体对所述问题信息进行答复所需的运算复杂度,而这种运算复杂度的提高,更有效地防止了发起攻击的实体继续发送攻击报文, 逐级提升了安全强度。作为另一种可选的方案,上述问题信息的运算复杂度与自然数η相关,其中,上述 η越大,上述问题信息的运算复杂度越大。在这种情况下,若接收到的答复信息不正确,则处理模块1112将η加上预定的步长。此后,接收模块1106接收上述实体发送的当前报文; 第一判断模块1102判断上述当前报文是否异常;若异常,则处理模块1112根据更新后的η 生成当前问题信息,并通知发送模块1104将上述当前问题信息发送给上述实体;第二判断模块1108对接收到的来自上述实体的上述当前问题信息的答复信息进行判断;若上述当前问题信息的答复信息正确,则认证模块1110对接收到的上述当前报文进行认证。优选的,上述认证装置还包括第三判断模块1114,用于在所述发送模块向发送所述报文的实体发送携带有问题信息的请求消息之前,判断所述η是否小于第三阈值;通知模块1116,用于在η小于所述第三阈值时,通知所述处理模块1112执行将η加上预定的步长的步骤;在η大于等于所述第三阈值时,通知所述接收模块1106停止接收来自所述实体的报文。通过上述的方法,可以避免无穷尽地与发送攻击的实体进行交互,互相消耗系统资源,从而进一步保证了系统的安全性。优选的,所述问题信息包括η比特的数据Y,哈希函数,用于指示所述实体返回数据X的指示信息,其中,对X进行所述哈希函数运算得到的函数值的前η个比特为所述数据 Y,η为自然数。优选的,该哈希函数为MD5。作为另一种优选的实施例,上述问题信息包括η比特的数据Y,哈希函数;上述答复信息包括上述实体返回的数据X。优选的,在本优选实施例所提出的上述问题信息和答复信息的情况下,所述第二判断模块1108对接收到的来自上述实体的上述问题信息的答复信息进行判断包括对X进行上述哈希函数运算得到函数值;若得到的上述函数值的前η 个比特为上述数据Y,则上述答复信息正确。优选的,所述问题信息包括图G的信息,用于指示所述实体返回所述图G的三着色向量的指示信息,其中,图G = <V,E>,|V| =η,η为自然数。
作为另一种优选的实施例,上述问题信息包括图G的信息;上述答复信息包括 上述实体返回的上述图G的三着色向量,其中,图G =〈V,E>, |V| = η,η为自然数,V用于表示节点,E用于表示节点之间的连线。在本优选实施例所提出的上述问题信息和答复信息的情况下,所述第二判断模块1108对接收到的来自上述实体的上述问题信息的答复信息进行判断包括若上述三着色向量将上述图G正确三着色,则上述答复信息正确。上述问题信息只是本发明的优选方式,本发明不仅限于此,例如,本发明中的问题信息还可以是其他的运算函数。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于密钥管理协议的防止拒绝服务攻击的方法,其特征在于,包括 判断接收到的报文是否异常;若异常,则向发送所述报文的实体发送携带有问题信息的请求消息; 对接收到的来自所述实体的所述问题信息的答复信息进行判断; 若所述答复信息正确,则对接收到的所述报文进行认证。
2.根据权利要求1所述的方法,其特征在于,所述判断接收到的报文是否异常的步骤包括判断在时间段内接收到的报文是否同时满足以下条件,若同时满足,则所述报文异常在所述时间段内接收到的所述报文的数量超过第一阈值; 在所述时间段内接收到的所述报文的间隔小于第二阈值。
3.根据权利要求1所述的方法,其特征在于,对所述问题信息进行答复所需的运算复杂度与自然数η相关,其中,所述η越大,所述运算复杂度越大,向发送所述报文的实体发送携带有问题信息的请求消息包括将η加上预定的步长;根据更新后的η生成所述问题信息,并发送给所述实体。
4.根据权利要求3所述的方法,其特征在于,在向发送所述报文的实体发送携带有问题信息的请求消息之前,还包括判断所述η是否小于第三阈值;若η小于所述第三阈值,则执行将η加上预定的步长的步骤; 若η大于等于所述第三阈值,则停止接收来自所述实体的报文。
5.根据权利要求1所述的方法,其特征在于,所述问题信息包括η比特的数据Y,哈希函数;所述答复信息包括所述实体返回的数据X。
6.根据权利要求5所述的方法,其特征在于,对接收到的来自所述实体的所述问题信息的答复信息进行判断的步骤包括对X进行所述哈希函数运算得到函数值;若得到的所述函数值的前η个比特为所述数据Y,则所述答复信息正确。
7.根据权利要求1所述的方法,其特征在于,所述问题信息包括图G的信息;所述答复信息包括所述实体返回的所述图G的三着色向量,其中,图G =〈V,E>,IVI = η,η为自然数,V用于表示节点,E用于表示所述节点之间的连线。
8.根据权利要求7所述的方法,其特征在于,对接收到的来自所述实体的所述问题信息的答复信息进行判断的步骤包括若所述三着色向量将所述图G正确三着色,则所述答复信息正确。
9.一种基于密钥管理协议的防止拒绝服务攻击的装置,其特征在于,包括 第一判断模块,用于判断接收到的报文是否异常;发送模块,用于在判断出异常时,向发送所述报文的实体发送携带有问题信息的请求消息;接收模块,用于接收来自所述实体的所述问题信息的答复信息; 第二判断模块,用于判断所述答复信息是否正确;认证模块,用于在所述答复信息正确时,对接收到的所述报文进行认证。
10.根据权利要求9所述的装置,其特征在于,还包括处理模块,用于在判断出所述接收到的报文异常时,将自然数η加上预定的步长,并根据更新后的η生成所述问题信息,其中,对所述问题信息进行答复所需的运算复杂度与所述η相关,所述η越大,所述运算复杂度越大。
11.根据权利要求10所述的装置,其特征在于,还包括第三判断模块,用于在所述发送模块向发送所述报文的实体发送携带有问题信息的请求消息之前,判断所述η是否小于第三阈值;通知模块,用于在η小于所述第三阈值时,通知所述处理模块执行将η加上预定的步长的步骤;在η大于等于所述第三阈值时,通知所述接收模块停止接收来自所述实体的报文。
12.根据权利要求9所述的装置,其特征在于,所述问题信息包括η比特的数据Y,哈希函数;所述答复信息包括所述实体返回的数据X。
13.根据权利要求12所述的装置,其特征在于,所述第二判断模块用于在对X进行所述哈希函数运算得到的函数值的前η个比特为所述数据Y时判断所述答复信息正确。
14.根据权利要求9所述的装置,其特征在于,所述问题信息包括图G的信息;所述答复信息包括所述实体返回所述图G的三着色向量;其中,图G = <V,E>,IV| = η,η为自然数,V用于表示节点,E用于表示所述节点之间的连线。
15.根据权利要求14所述的装置,其特征在于,所述第二判断模块用于在所述三着色向量将所述图G正确三着色时判断所述答复信息正确。
全文摘要
本发明公开了一种基于密钥管理协议的防止拒绝服务攻击的方法和装置,其中,该基于密钥管理协议的防止拒绝服务攻击的方法包括判断接收到的报文是否异常;若异常,则向发送上述报文的实体发送携带有问题信息的请求消息;对接收到的来自上述实体的上述问题信息的答复信息进行判断;若上述答复信息正确,则对接收到的上述报文进行认证。本发明解决了现有技术中认证机制由于受到攻击而导致的工作效率明显降低问题,有效地防止了攻击。
文档编号H04L29/06GK102281258SQ20101019943
公开日2011年12月14日 申请日期2010年6月9日 优先权日2010年6月9日
发明者周晨, 王鸿彦, 端时立, 陈浩然, 韦银星 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1