IPv6子网内基于签名认证的防止源地址伪造的方法

文档序号:7966883阅读:324来源:国知局
专利名称:IPv6子网内基于签名认证的防止源地址伪造的方法
技术领域
IPv6子网内基于认证的防止源地址伪造的方法属于互联网技术领域,尤其涉及网络安全方面的技术。
背景技术
现有的互联网在设计阶段没有充分考虑安全问题,缺乏系统的安全体系结构,在TCP/IP底层协议没有完善的内置安全机制。然而,随着互联网规模的扩大和用户数量的增长,互联网的安全问题越来严重。而在众多的安全威胁中,一个重要的根源就是IP地址伪造行为猖獗。大量的网络攻击行为,如DDoS攻击,TCP SYN洪泛攻击,smurf攻击,ICMP重定向攻击等等都要依赖于IP地址的伪造。而现有的报文转发机制是基于目的地址的,不对源地址做任何验证,并且也不保存分组转发的状态信息。因此导致了源IP地址伪造非常容易,攻击事件发生后也无法追踪攻击者的行为。根据美国计算机应急响应组/协调中心的统计,互联网络的安全事件增长趋势远远超过了互联网规模的增长速度,严重影响了互联网的正常运行。
为了解决源IP地址伪造问题,保证真实地址的访问,目前提出了许多方案,归纳如下●采用认证加密的方法。这是端到端的真实源IP地址访问验证方法。通信双方通过密钥协商,预先建立认证的安全连接。然后基于这个安全连接进行通信。代表方案有IPSec等。
●采用追溯的Trace back的方法。这种方法属于事后措施。它是在数据分组转发的过程中,利用路由器,分组本身或者单独的ICMP(网络控制报文协议)消息来记录分组转发的状态信息。在数据分组转发过程完成后,在接收端发现不合法的分组时,利用前面记录的分组转发的状态信息,从目的端追溯源端。代表方案有SPIE,iTrace,iTrace-CP,PPM,APPM,PPPM,DPM等。
●采用过滤的Filtering的方法。这种方法属于事前措施。这是在数据分组转发的过程中,通过部署在网络中,主要是路由器上的基于一定过滤规则生成的分组过滤器,对转发分组的真实源IP地址进行实时在线的验证。代表的方案有Ingress filtering,DPF,SAVE等。
然而,目前这些方案都存在着不足之处●IPSec这种端到端认证的最大缺陷是使得网络中间的路由系统无法对数据来源的真实性进行验证。
●采用Trace back的方法的缺陷在于首先,trace back类的方法是事后措施,无法实时有效的防止伪造IP地址分组在网络中的传输;第二,作为trace back类方法重要组成部分的回溯算法都比较复杂,实现代价高;第三,它们通常需要依赖于入侵监测系统的灵敏程度。
●现有的Filtering的方法主要缺陷是只对网络前缀的过滤,粒度比较粗,没能对主机地址做进一步的过滤。这样可以防止自治域内及自治域间的源地址伪造,但不能防止子网内的源地址的伪造。
由于Filtering的方式属于事前措施,可以实时的在分组转发过程中对真实地址进行验证,能将损失遏制在发生之前,在实际应用中最为合理。针对现有Filtering方法过滤粒度较粗、不能防止子网内源地址伪造的问题。本发明从Filtering的角度出发,提出了一个保证IPv6子网源地址真实性的方案。本方案主要采用对子网内主机地址进行认证的方法来过滤伪造报文。也就是说,当子网内的一个伪造者伪造本子网内其它主机的地址与外网通信、或者重放本子网内其它主机发往外网的报文时,出口路由器将会认证该报文失败,使得伪造者无法危害外网。仅有拥有真实地址的报文才能通过验证,进行与外网的正常通信。这样与现有的自治域内及自治域间的Filtering方案(如SAVE)配合起来,就可以实现全网各种粒度下防止源地址伪造。

发明内容
本发明的目的在于提供一种基于认证的保证IPv6子网内源地址真实性的方案,使得攻击者伪造本子网内其它主机地址发往外网的报文、以及攻击者重放子网内其它主机发往外网的报文均被过滤掉。这样与现有的其它自治域内及自治域间的Filtering方案(如SAVE)配合起来,就可以实现全网的防止源地址伪造。
我们这里所说的子网是指一个局域网,子网内主机通过路由器与外网连接,如图1。防止子网内源地址伪造,是指防止发往外网的正常数据包的源地址被本子网内的其它攻击主机伪造,从而进行恶意攻击或其它不法活动。因为对大部分子网(如学校的校园网或者其它普通机构的网络)来说,这些子网内的用户如果只在本子网内通信的话,即使相互伪造地址,也不会带来重大的政治经济损失或法律上的纠纷,而且对网络的损害程度也仅仅限于该子网内部,不影响外网的正常运行。然而,一旦该子网内的用户伪造本子网内其它用户的地址与外网通信,不但可能造成政治经济等网络行为上的重大威胁,而且会影响外网的正常运行。除了上述情况,如今日益普及的无线局域网WLAN也是这种类型子网的典型代表,由于每个接入点仅接有限的几个无线主机,只要保证它们的地址在出本子网时是真实的,就可以大大提升无线网络的安全性。
本发明所提供的方法思路在于在IPv6子网的边界路由器入口处部署一个安全认证网关,如图2。子网内的每个主机接入网络时,都需要向该安全认证网关进行接入认证,使得该主机的IP地址及它和安全网关共享的会话密钥(Session Key)绑定起来。通过接入认征后,该主机向外网发出的任何一个报文都需要携带一个签名(由报文的源、目的地址和会话密钥等共同生成)。这些发往外网的报文都会通过安全认证网关,安全认证网关认证报文中携带的签名,只有认证通过,才能发往外网,否则丢弃。
同时,本方法还设计了独特的方法来防止重放攻击。重放攻击其实在某种意义上也是一种地址伪造,如果一个用户窃听子网内他人和外网的信息交换,然后将该消息重放给安全认证网关,仅依靠验证签名,安全认证网关将会错误的接收并转发该报文(因为该重放报文的源地址是真实的)。本方法采用了独特的序列号与时间戳相结合的方法来防止重放攻击。这样,防重放攻击与鉴别源地址真实性的机制结合起来,就可以保证本子网发出的报文源地址都是真实的。
本发明的特征在于该方法使用事前防范的Filtering的思路,采用认证手段实时在线的保证本子网发往外网的报文源地址都没有被伪造。该过程既包括使用带密钥散列的消息认证方法HMAC技术签名认证的源地址真实性鉴别机制,还包括序列号与时间戳相结合的防重放机制。
本方法依次含有以下步骤步骤(1),当IPv6子网内的用户主机接入网络时,首先需要向部署在IPv6子网的边界路由器入口处的一个安全认证网关进行接入认证,这一过程用远程认证拨入用户服务协议Radius或身份认证机制实现;步骤(2),该用户主机通过认证后,生成一个至少12个字节的随机数表示的会话密钥;步骤(3),该用户主机把将步骤(2)生成的会话密钥发送给所述的安全认证网关,安全认证网关将该主机的IP地址与它的会话密钥绑定起来,送入IP源地址和会话密钥绑定关系数据库;步骤(4),该用户主机用带密钥散列的消息认证方法HMAC技术对所发的通往外网的每一个报文做一个签名,该签名由所述的会话密钥、该用户主机的源地址、目的地址及序列号等构成,该签名形成一个真实地址校验头,作为一个新的IPv6扩展头插入到IPv6地址头之后,但在所有其它扩展头之前;步骤(5),所述的安全认证网关使用带密钥散列的消息认证方法HMAC技术校验该报文的签名信息,以确认该报文源地址是否被伪造,若为伪造,便丢弃该报文,否则,执行下一步骤;步骤(6),安全认证网关用校验该报文的序列号在会话密钥的生命期内是否是递增的来判断该报文是否为重放报文,为了抵御重放攻击,所述的会话密钥的生命期需要小于报文序列号循环一周所用的时间;若该序列号在会话密钥的生命期内是递增的,则该报文不是重放报文,转发该报文,否则,将该报文丢弃,拒绝转发。
另外,会话密钥需要经常性的更换以保证安全性。
本发明所提出的保证子网内源地址真实性的方案,可以广泛部署到IPv6子网上以提高安全性。由于本方法采用的认证方法并没有涉及加密解密,而是采用了RFC2104中的带密钥散列的消息认证方法HMAC方法,使得算法效率很高。实验表明,使用P42.1G的CPU软件实现的HMAC/MD5(即采用消息摘要散列算法MD5作为底层算法的HMAC)的处理性能大约在1.63Gbps,这与清华大学出口处的性能相当,如果用硬件实现性能会更高。所以本方法是完全可行的。
本发明的另一个优势是适合增量部署,即插即用,可以通过逐步在某些IPv6子网内部署安全认证网关来进行推广。同时与自治域内或域间的其它Filtering技术(如SAVE)结合起来,可以构成一套全网的防止源地址伪造机制。本发明已在清华大学与比威网络技术有限公司合作研制的网络设备中得到应用,并计划在CERNET2和中国下一代网络CNGI中推广。


图1.现有子网体系结构示意图;图2.子网内真实地址访问系统体系结构示意图;图3.HMAC原理图;图4.“真实地址校验头”格式;图5.整个系统工作流程图;图6.本系统的具体实施示意图。
具体实施例方式
子网内用户的接入认证过程采用常用的radius等身份认证机制就可以了。下面我们主要介绍本发明的两个核心机制报文源地址真实性鉴别机制和放重放攻击机制。我们采用了带密钥散列的消息认证方法HMAC安全认证网关对报文源地址真实性的鉴别机制,如图3。图3中的认证过程如下(1)通信双方(主机A,安全认证网关B)共享公共的会话密钥S,主机A将发送给安全认证网关B的消息M中的特定部分(源地址、目的地址报文序列号等)和S联接后再用消息摘要函数MD5或SHA1等计算hash值,生成消息认证符H[M||S];(2)主机A将认证符H[M||S]追加到消息M之后形成消息对<M,H[M||S]>,并发送给安全认证网关B;(3)安全认证网关B收到该消息对后,由于安全认证网关B也知道S ,所以B可以根据收到的报文重新进行计算hash值,并把计算结果与报文中的hash值进行比较。如果两个数值相等,安全认证网关B可以确认数据确是从主机A发送来的;如果不相等,B可以推测出数据是由伪造者发送的,将其丢弃。
防重放攻击我们采用了序列号与时间戳相结合的方法。时间戳和序列号都是目前流行的防重放攻击方法。时间戳方法的原理是主机A向安全认证网关B发起通信,A发送报文的时候会在报文上加上一个时间戳,表明报文的发送时间Ta。安全认证网关B收到后,从本机读取当前时间Tb。假设B允许接收的报文时间窗口是ΔT,那么若|Tb-Ta|>ΔT,则属重放报文,丢弃。然而,由于不同参与者之间的不可能做到绝对的时钟同步以及网络中传输时间的不确定性,ΔT的设置一般要比实际的传输时间大一些。所以当B收到A的报文,如果|Tb-Ta|<ΔT,在该方法中该报文应该属于非重放报文,可是这种情况下,在剩下的(ΔT-|Tb-Ta|)时间内发来的重放报文,B仍然会错误的接受。所以该方法抵御重放攻击的粒度较粗。
序列号方法的原理是在认证交换中使用一个序数来给每一个消息报文编号,这个序列号在每次传送新数据包时递增,仅当收到的消息序数顺序合法时才接受。这种方法要求验证方必须保持上次消息的序号,仅当接收到的消息序号大于已存的上次消息的序号才接收。但该方法也不能可靠的抵御重放攻击。在实际操作中,序列号总是有一定长度的,比方说16位,该大小序号的最大值能达到65535。序号递增到该值后,从0开始计数,如此循环下去。正是这种循环机制给重放攻击者制造了机会。比如主机A向安全认证网关B发起通信,在序号第n轮从0递增到65535的过程中,攻击者截获并储存了主机A的一个序号为300的报文。在序号后续的第n+1、n+2……轮递增过程中,只要主机A发送序号小于300的报文,攻击者发送在第n轮时储存的那个报文给B,B将无法识别出该重放报文。因此单凭序列号的方法也无法完成可靠有效的抵御重放攻击的任务。
基于此,我们提出了将时间戳和序列号相结合的方法来可靠的抵御重放攻击。给每个报文加时间戳可以比较粗粒度的抵御重放攻击,如前所述,在验证端允许接收的时间窗口ΔT内,仅采用时间戳是无法抵御在此期间的重放攻击的,我们可以在报文中再设一个序列号来解决这个问题。还以主机A向安全认证网关B通信为例,安全认证网关B收到一个报文后,若|Tb-Ta|<ΔT(Ta报文时间戳,表明报文的发送时间;TbB收到报文的当前时间;ΔTB允许接收的时间窗口),它将记录该报文中携带的序列号。在剩下的(ΔT-|Tb-Ta|)这段时间内,如果安全认证网关B收到来自同一IP地址的报文,而且其中的序列号小于等于所记录的序列号,则仍属重放攻击,丢弃。否则,则属合法报文。
该方法克服了时间戳机制弊端的同时也克服了序列号方法的缺陷。我们把接收端允许接收的时间窗口ΔT设置成小于序列号循环一周所用的时间,这样就用时间戳机制避免了序列号循环可能造成的重放攻击。
然而,在我们的方法中,不必在报文中携带一个时间戳。因为在本文的方法中,为了方便更新会话密钥,主机发往外网的报文会携带它当前使用的会话密钥版本号。我们可以借用会话密钥版本号作为报文发送端的时间戳,会话密钥的生命期就可以充当接收端允许接收的时间窗口的作用。我们设置会话密钥的生命期小于序列号循环一周所用的时间;同时我们使用长度较长的序列号,使得会话密钥的生命期不至于太短,刚好符合密钥安全性的要求。
这样,我们结合序列号和时间戳两种抵御重放攻击的方法,克服了两种方法的缺陷,使之成为一个可靠的抵御重放攻击的方案。
本方法中报文携带的签名及用于防重放攻击的序列号是放在一个新设计的称之为“真实地址校验头”的IPv6扩展头中的。该扩展头的报文格式如图4。该报文各域的说明如下●下个报头8位。指明紧挨着“真实地址校验头”的下一个头的类型,可能是其它扩展头或者是上层(TCP/UDP等)协议头。
●报头长度8位。指明该头长度。不包括最初的8个字节。
●消息摘要算法类型8位。说明使用的签名算法,现在使用的MD5编号为1.
●密钥版本号8位。为了方便会话密钥的更新。
●序列号32位。用于抵抗重放攻击。
●认证数据(可变长)认证数据。如果采用MD5的话,大小是128位。认证数据应该包括对以下几个部分的Hash■IPV6源地址,16个字节
■IPV6目的地址,16个字节■会话密钥,12个字节或者更多。
■会话密钥版本号,2个字节■序列号,4个字节所以认证数据=消息摘要算法(IPV6源地址+IPV6目的地址+会话密钥+会话密钥版本号+序列号)。
在图5中,我们给出了整个系统的工作流程,如下(1)主机在和外网通信时,发出的每个IPv6报文都要携带一个“真实地址校验头”的扩展头,该头包括一些必要的签名信息(见上文对“真实地址校验头”部分),以供安全网关对报文源IP地址的真实性做校验。该头的位置应该位于IPv6头之后,其它所有扩展头之前。
(2)安全认证网关收到该报文后,需要做下述校验a)如果该报文未携带“真实地址校验头”,直接丢弃;b)根据数据库信息使用HMAC验证签名信息,以鉴别其源地址是否是它真正属于的主机;如果没通过校验,则丢弃。
c)根据报文中的序列号是否在会话密钥生命期内是递增的来判断该报文是否是重放报文,如果是,则丢弃。
(3)通过校验后,去掉“真实地址校验头”,重组该报文。这是因为考虑到部分部署,如果其它子网没有部署本系统的话,将因为不能识别该扩展头而丢弃该报文。如果是全局部署的话,这一步就没有必要了。但是为了保护用户的隐私,我们要求安全认证网关要将用户的真实地址校验头中的密钥版本号,序列号和签名的域都填充零。
完成上述工作后,安全认证网关转发该报文。
在图6中,我们给出了一个具体的实例来说明本发明的
具体实施例方式在图6中,A为受害者,B伪造A的源地址向外网发送报文,C则监听A发出的报文并进行重放。当安全认证网关上的源地址真实性鉴别机制和防重放攻击机制关闭时,所有伪造报文和重放报文均能顺利发至外网。一旦安全认证网关上的功能开启,所有由B发出的伪造报文及由C发出的重放报文100%被安全认证网关过滤掉了(发送10,000,000个报文做测试)。C的重放攻击过程比较简单,只是监听A的报文并将其发送给安全认证网关即可。这时,由于其重放报文序列号并没有递增,安全认证网关将识别出该报文为重放报文,丢弃。B的伪造过程可以分这么几种1.简单伪造。即只伪造A的源地址发送报文给安全认证网关。这时,因为B没有A的会话密钥,因此安全认证网关从签名很容易鉴别出该报文是伪造A的地址发过来的,丢弃。
2.全面伪造。即B截获一个A发出的报文,然后将B自己发送的报文的源、目的地址伪造成截获的A的报文的源、目的地址,并将截获的A的报文中的“真实地址校验头”附在B发送的报文中。这时,安全认证网关凭HMAC校验该签名将不能识别出该报文源地址是伪造的(因为所有HMAC校验信息都与A发来的真实报文是一致的)。然而,由于该报文为了躲避HMAC的校验不能改动截获A报文中的序列号,所以安全认证网关会识别出该报文是一个重放报文,将其丢弃。
可见,通过这样一套基于认证的子网内真实地址保证机制,每个发往外网的伪造了源地址的或者重放报文都能被安全认证网关过滤掉,从而保证了每个从本子网发往外网的报文源地址都是真实的。由此可见,本发明达到了预期目的。
权利要求
1.IPv6子网内基于签名认证的防止源地址伪造的方法其特征在于,本方法依次含有以下步骤步骤(1),当IPv6子网内的用户主机接入网络时,首先需要向部署在IPv6子网的边界路由器入口处的一个安全认证网关进行接入认证,这一过程用远程认证拨入用户服务协议Radius或身份认证机制实现;步骤(2),该用户主机通过认证后,生成一个至少12个字节的随机数表示的会话密钥;步骤(3),该用户主机把将步骤(2)生成的会话密钥发送给所述的安全认证网关,安全认证网关将该主机的IP地址与它的会话密钥绑定起来,送入IP源地址和会话密钥绑定关系数据库;步骤(4),该用户主机用带密钥散列的消息认证方法HMAC技术对所发的通往外网的每一个报文做一个签名,该签名由所述的会话密钥、该用户主机的源地址、目的地址及序列号等构成,该签名形成一个真实地址校验头,作为一个新的IPv6扩展头插入到IPv6地址头之后,但在所有其它扩展头之前;步骤(5),所述的安全认证网关使用带密钥散列的消息认证方法HMAC技术校验该报文的签名信息,以确认该报文源地址是否被伪造,若为伪造,便丢弃该报文,否则,执行下一步骤;步骤(6),安全认证网关用校验该报文的序列号在会话密钥的生命期内是否是递增的来判断该报文是否为重放报文,为了抵御重放攻击,所述的会话密钥的生命期需要小于报文序列号循环一周所用的时间;若该序列号在会话密钥的生命期内是递增的,则该报文不是重放报文,转发该报文,否则,将该报文丢弃,拒绝转发。
2.根据权利要求1所述的IPv6子网内基于签名认证的防止源地址伪造的方法其特征在于,当其它IPv6子网未部署所述的防止源地址伪造方法模块,则在权利要求1所述的步骤(6)中判断结果为非重放报文后,要增加一个去掉真实地址校验头,重组报文的步骤。
全文摘要
IPv6子网内基于签名认证的防止源地址伪造的方法属于网络安全领域。本发明特征在于该方法中,用户主机发往外网的报文携带一个由会话密钥、源地址、目的地址及报文序列号等使用消息摘要函数MD5或SHA1形成的签名,部署在IPv6子网边界路由器入口处的安全认证网关对该报文签名进行认证,以确认该报文源地址没有被伪造;同时,安全认证网关通过校验报文的序列号在会话密钥的生命期内是否是递增的来判断报文是否为重放报文。该方法能够有效防止IPv6子网内的源地址伪造,性能也足以满足现有子网的要求,同时支持增量部署,可以通过逐步在某些IPv6子网内部署安全认证网关来进行推广。
文档编号H04L9/32GK1921488SQ20061011319
公开日2007年2月28日 申请日期2006年9月19日 优先权日2006年9月19日
发明者毕军, 吴建平, 解利忠 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1