本发明涉及一种面向ipv6主机通信的主动防御方法,尤其是结合滑动时间窗口进行跳变的主动防御方法。
背景技术:
ipv6网络恢复了端到端通信,每个ipv6节点对应一个全球可路由的单播地址。由于地址空间的充足,无需再使用网络地址转换(networkaddresstranslation,nat)等技术。在此情况下,攻击者能够更加准确的对目标ipv6节点实施探测攻击,因此如何增强ipv6通信的隐蔽性,保证ipv6节点的安全性已受到愈来愈多的关注。
移动目标防御(movingtargetdefense,mtd)是美国提出的“改变游戏规则”的革命性技术之一,旨在增加信息系统随机性、多样性和动态性,从而提升攻击难度与代价。地址跳变(addresshopping,ah)是指通信双方按照既定协议伪随机地改变通信地址,实现网络主动防御,是移动目标防御在网络层的一种典型应用。现有的地址跳变技术主要存在以下三方面的问题,一是依赖时间同步机制,对网络延迟等要求较高;二是依赖事件触发机制,相应报文存在被截获的可能;三是地址跳变过程中容易产生数据包的丢失,影响会话效率。
技术实现要素:
本发明为了解决ipv6网络节点地址跳变过程中存在的延迟高、触发难和效率低等问题,提出一种基于滑动时间窗口的ipv6地址跳变主动防御方法(addresshoppingbasedonslidingtimewindowinipv6,ahstw),通信双方利用共享密钥协商地址跳变参数,引入时间窗口机制,通信双方仅接收处于时间窗口内的通信数据包,既保证了通信安全性,又保证了通信效率。
本发明所采用的技术方案:
一种基于滑动时间窗口的ipv6地址跳变主动防御方法,其特征是:包括下述步骤:
1)定义该方法中的发送时间窗口(sendertimewindow)为:通信发送者向接收者发送数据包的窗口;
2)定义该方法中的接收时间窗口(receivertimewindow)为:通信接收者接收发送者数据包的窗口;
3)定义该方法中的地址跳变间隔为:通信双方根据地址跳变方案从一个ipv6地址跳变到下一个ipv6地址的时间间隔;
4)定义该方法中的参数协商过程为:通信双方对滑动窗口大小、跳变间隔时长等参数进行协商的过程;
5)定义该方法中的地址跳变通信过程为:参数协商完成后,通信双方进行通信的过程。
6)当通信发起者初次与通信接收者进行通信,或通信发起者欲更改时间窗口等参数时,将执行参数协商过程。
7)当参数协商过程完成之后,通信发起者与通信接收者将执行地址跳变通信过程。
步骤1)中发送时间窗口和步骤2)中接收时间窗口,均需要利用时间窗口自适应调整算法进行计算。时间窗口自适应调整算法根据ipv6网络传输往返时延(round-triptime,rtt),自适应调整通信双方的时间窗口。时间窗口自适应调整算法为:
步骤6)的参数协商过程包括:①通信发起者生成随机数nonce、地址跳变间隔τ、以及发送者时间窗口stw(stw≥1);②通信发起者将nonce、τ和stw加密后发送至通信接收者;③通信接收者接收后解密,利用三个参数信息生成接收者时间窗口rtw(rtw≥stw),并向通信发起者确认;④如果通信发起者受到了确认,则可以进行跳变通信,如果没有收到确认,则返回①重新执行。
步骤7)的地址跳变通信过程包括:①通信发起者和通信接收者生成一个哈希链(hashchain);②根据哈希链生成跳变地址信息列表(addresshoppinglist,ahl);③通信发起者和通信接收者根据地址跳变间隔τ和各自当前系统时间tcurrent进行地址跳变,选择采用跳变地址信息列表中的某一项实施通信过程。
步骤7)地址跳变通信过程中,哈希链hashchain={hc0,hc1,...,hcn}的生成公式为:
其中,hashi(nonce)=hashi-1(hash(nonce))。
步骤7)地址跳变通信过程中,跳变地址信息列表的表项生成公式为:
本发明的有益积极效果:
1、本发明鉴于ipv6地址暴露于网络的易探测特征,利用主动防御能够有效扰乱潜在攻击者对于端地址的窥测和对通信流量的分析。
2、本发明提出基于滑动时间窗口的ipv6地址跳变,为下一代互联网移动目标防御的研究和应用具有非常重要的理论价值和现实意义。
3、本发明提出的基于滑动时间窗口的ipv6地址跳变模型,通过引入时间窗口自适应调整算法,使ipv6节点间的通信呈现随机化、动态化的特点,且能适应较复杂的网络环境。
4、本发明在保证ipv6节点间通信的安全性的同时,能够保证其通信的整体效率不受太大影响。同时,对外表现出较好的抗流量截获分析能力和抗dos攻击能力。
附图说明
图1为基于滑动时间窗口的ipv6地址跳变模型结构;
图2为跳变地址信息列表的表项结构图;
图3为滑动时间窗口基本思想示意图。
具体实施方式
下面结合说明书附图对本发明进行详细说明:图1中,其中alice和bob为模型中的ipv6通信节点,alice为通信发起者,bob为通信接收者。ar表示ipv6子网的接入路由器;虚线单向箭头表示通信节点的地址跳变过程,双向实箭头表示通信节点间的通信。
实施例:本发明基于滑动时间窗口的ipv6地址跳变主动防御方法,具体包括下述步骤:
步骤1:以alice与bob之间的通信为例,当alice初次与bob进行通信或alice欲更改时间窗口等参数时,将执行参数协商过程;
步骤2:当alice与bob之间完成参数传递与确认之后,双方进行基于滑动时间窗口的ipv6地址跳变通信过程。
下面详细说明步骤1和步骤2所包含的相关内容:
(一)步骤1:
①首先,alice以时间戳为种子生成一个随机数nonce,同时,生成一个地址跳变间隔τ和发送者时间窗口stw(stw≥1),即:
alice:nonce=generaterandom(seedtimestamp),stw=generatestw()
②之后,alice将随机数nonce、地址跳变间隔τ和发送者时间窗口stw用共享密钥key加密后发送给bob,即:
alice→bob:encryptkey(nonce|τ|stw)
③bob收到alice发送的消息后,用共享密钥进行解密并提取出其中的参数信息,生成接收者时间窗口rtw(rtw≥stw),然后向alice发送确认消息;
bob:decryptkey(nonce|τ|stw)
rtw=generatertw(stw)
bob→alice:encryptkey(ack)
④alice判断是否收到bob发回的确认消息,若未收到,返回①;若收到,alice和bob将进行地址跳变通信过程。
(二)步骤1中的时间窗口自适应调整:
实际ipv6通信过程中的网络时延是不可避免的,包括发送时延delaysend、传输时延delaytransit、处理时延delayhandle和排队时延delayqueue等,为提高跳变通信模型的适应能力,采用时间窗口自适应调整算法(timewindowadaptiveadjustmentalgorithm,twaa),其基本思想是根据ipv6网络传输往返时延(round-triptime,rtt)自适应调整通信双方的时间窗口。具体算法如表1所示:
表1时间窗口自适应调整算法
在twaa算法中,假设发送者与接收者之间的传输时延是相同的,且只考虑接收者回复数据包时的处理时延、排队时延和发送时延。通过twaa算法,通信双方能够自适应调整时间窗口的大小,保证数据传输的效率与网络环境适应能力,其中stw≤rtw,因为发送者时间窗口若大于接收者时间窗口,容易出现以下问题,即发送者的数据包到达接收者后,接收者判断出可接收时间已超出窗口范围,接收者丢弃该数据包,引起通信效率降低或终止等后果。
滑动时间窗口的基本思想如图3,由图3可知,根据twaa算法,发送者在时间窗口内选择ipv6地址和端口与接收者进行通信,每经过地址跳变间隔,通信双方的时间窗口就向前滑动一次。
(三)步骤2:
①alice和bob按照以下公式(1)生成一个哈希链hashchain={hc0,hc1,...,hcn}:
其中,hashi(nonce)=hashi-1(hash(nonce))。
②alice和bob根据哈希链hashchain生成跳变地址信息列表(addresshoppinglist,ahl),该表中的每项通过下面公式(2)生成,每个表项的结构如图2所示。
③alice和bob根据地址跳变间隔τ和各自当前系统时间tcurrent进行地址跳变,进而决定采用ahl中的哪一项进行通信。假设初始系统时间为tinit,那么从初始系统时间到当前系统时间所经过的地址跳变间隔次数可由下面公式(3)计算:
如果indexold<indexnew,那么indexold←indexnew,按照公式(1)和公式(2)分别计算
如果indexold=indexnew,那么alice和bob按照
extract(suffixalice,portalice,suffixbob,portbob)
其中,tuplealice=<prefixalice||suffixalice,portalice>,且
tuplebob<prefixbob||suffixbob,portbob>。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。