基于不中断TCP连接的IPv6地址动态变更方案

2017-05-18 16:59陈圳烁廖海聪曾水发
科技资讯 2017年8期
关键词:字段数字签名报文

陈圳烁++廖海聪++曾水发

摘 要:研究针对当前IPv6网络地址稳定性所带来的安全防护威胁,分析了目前普遍成熟的地址攻击技术,提出针对IPv6网络的一种保持TCP连接不中断的IPv6地址动态变更方案,并提供配套的安全机制与地址更新算法,保证地址的随机性与安全性。从而在不大量损失系统性能的前提下,通过主动变更通信参数,增大攻击者的地址搜索范围以及耗费时间,使得基于目标地址的长时间攻击中断或失败,增大攻击者流量监听难度,理论分析该方案可大幅提高IPv6网络的整体安全性与抗攻击能力。整体技术方案均基于现今大规模应用的成熟可扩展协议与安全技术,且向下兼容,因此可行性较高,在低代价条件下,对依赖IPv6地址展开的攻击从根源阻断。

关键词:IPv6网络 地址安全 动态更新 TCP协议 不中断连接

中图分类号:TP393 文献标识码:A 文章编号:1672-3791(2017)03(b)-0032-04

IPv6针对IPv4在安全性[1]上做出了较大的改进,例如自身集成IPsec等,通过IPsec中ESP+AH的方式对消息源进行验证,对协议承载的数据进行多种可选手段的高强度加密,从而对目前针对IPv6报文传输内容的攻击方式有了不错的抗攻击能力。但IPv6本身针对地址攻击技术的抗攻击能力依然薄弱[2],尤其在现今计算机计算能力快速提升的环境下,面对大量地址侦听技术,数据窃听技术,流分析技术并没有相应的对抗机制,这也导致了运行IPv6的终端机在错综复杂的网络环境中暴露无遗,一旦被攻击者锁定,在网络层将成为定向的攻击目标。为了在根源上阻止攻击者获取到稳定的目标机地址,该文提出一种保持TCP连接不终端的IPv6地址动态更新方案,通过不定时对主机的IPv6地址进行协商更新,可以在不中断数据连接的前提下,实现地址动态变更。从而令攻击者的地址侦听手段失效或大大增加其攻击成本,如耗费时间等,进而令攻擊者无法进行连续有效的数据窃听或目标跟踪,最终有效保护了通讯双方的信息安全。

1 研究背景

TCP连接依靠双端IP地址与端口号建立可靠连接,每对由(本端IP地址+本端端口号+对端IP地址+对端端口号)组成的四元组唯一标识了一个TCP会话。因此,根据原来的TCP协议,四元组中任意一项发生变化必将导致原有TCP会话解散,从而导致双端TCP连接断开。若要继续原有的会话内容与保持数据传输将需要TCP连接的重新建立,影响用户使用,也导致相关安全设备,如防火墙中的会话表发生震荡。因此需要对TCP协议做适当扩展,实现保持连接的地址更新机制,这将为网络体验的顺畅与灵活提供理论基础,未来具有广泛的应用空间。

地址协商更新过程中要求保证新地址保密以及消息源可靠,故应有配套的安全机制,采用成熟的安全技术来确保有效性及可行性,保证通信安全的同时尽量简化安全机制,降低复杂性。

IPv6地址更新算法要求代价合理,能在大部分运行IPv6的设备上高速完成,减少系统资源的占用与消耗,同时保证每次生成的新地址与使用中的地址不重复,在遇到地址冲突的情况有相应的修正机制重新生成新的IPv6地址。

2 基础知识

2.1 TCP连接保持机制

TCP作为一种可扩展的传输层协议,在TCP头部中包含选项字段,可供添加新的扩展功能以满足未来网络发展所需,如最初规定的MSS选项,即最长报文段长度,以及后来增加的选项表结束,无操作,最大报文段长度,窗口扩大因子,时间戳选项等。该机制同样通过增加新的TCP选项来实现[3],共新增四个选项:请求变更IPv6地址选项、确认IPv6地址可变更选项、IPv6地址数据更新选项、IPv6地址数据更新确认选项。四个选项均以标准TCP选项TLV(TYPE+LENGTH+VALUE)结构构造(kind字段根据TCP标准均设为1字节)。以下数值单位均为字节(Bytes),用于IPv6方案如下,IPv4地址与端口号更新同理,此处不描述。

(1)请求变更IPv6地址选项。

使用TCP自定义选项kind值20,长度字段length为20,data字段填写A端的公钥信息,使用TCP标准padding填充完成格式对齐。

(2)确认IPv6地址可变更选项。

使用TCP自定义选项kind值21,长度字段length为20,data字段填写B端公钥信息,若B端不支持地址变更,data字段置全1,使用TCP标准padding填充完成格式对齐。

(3)IPv6地址数据更新选项。

使用TCP自定义选项kind值22,长度字段length为48,data字段填写加密的新IPv6地址信息与数字签名信息,使用TCP标准padding填充完成格式对齐。

(4)IPv6地址数据更新确认选项。

使用TCP自定义选项kind值23,长度字段length为1,data字段填写1表示确认,使用TCP标准padding填充完成格式对齐。

2.2 相关研究

针对IPv6网络的安全防护问题,亦已有相关文献提出多种主动防御模型[4],但普遍存在逻辑过于复杂,可扩展性差,实现难度大等劣势,更适合在小规模网络环境部署。如文献[5]中,立足于IPv6主动网络防护利用多穴主机多条链路接入网络的特点,借鉴跳频通信的思想,将多穴主机的数据通信在其与外部相连的多个地址域内进行跳变,提出基于多穴跳变的IPv6网络主动防御模型。此模型安全性佳,但是对于主机与链路有严格要求,不适合大规模网络环境下部署。文献[6]同样从跳频通信中得到启发,引入了端信息跳变的概念,认为端信息跳变技术可以实现较好的主动网络防护。文献[7]提出了一种基于地址跳变的信息隐藏技术,通过采用多路由转发来提高对等节点之间数据传输的安全性。另外有基于地址池的地址更新方案,但存在地址重复率高,安全特性不持续的弱点。文献[3]提出了一种动态切换TCP连接IP地址的实现方法,该方案可扩展性高,但没有合理的安全机制与地址更新算法与其配套工作,这也是该方案要重点解决的问题所在。 因此,该研究旨在提出一种模型逻辑相对简单,基于已有的成熟TCP协议,具备一定可扩展性,高安全性,系统资源占用少,实现难度较低的IPv6网络主动防护方案,即该文所述保持TCP连接不中断的IPv6地址动态更新方案。

3 保持TCP连接不中断的IPv6地址动态更新方案

3.1 整体方案说明

该方案主要包含三部分内容,TCP连接保持机制,动态更新过程的安全机制以及IPv6地址动态更新算法,第一部分内容主要通过当前标准的TCP协议扩展选项来完成,第二部分采用公钥加密配合数字签名来保证,第三部分参考RFC4941[8],适当简化来获取更新的IPv6地址。

(1)请求变更阶段。

A端准备更新某TCP连接使用的本地IPv6地址时,向该TCP连接B端发送带此选项的TCP报文,并填充A端公钥信息以支撑后续阶段的数字签名,实现安全的信息交互,等待B端回复,若B端回复拒绝报文则取消变更准备。

(2)确认变更阶段。

B端收到某TCP连接A端发送来的选项kind字段为20的TCP报文后,接收A端公钥信息,回复A端用于地址更新数据加密的B端公钥信息,表示本地支持IPv6地址动态变更且已准备好更新相关TCP连接的IPv6地址参数。若本地不支持IPv6地址参数动态变更,则data填充全1并发回表示拒绝。

(3)数据更新阶段。

A端在收到B端发送的选项kind字段为21的TCP报文之后,接收B端公钥,使用B端提供公钥对新IPv6地址进行加密,并使用A端私钥进行签名,向B端回复包含加密地址数据和数字签名信息的TCP更新报文。A端启动超时定时器,若超时(3 s),则再次发送,并归零计时器,最多发送三次,超过三次超时,认为B端出错或拒绝,A端取消变更。A端在收到B端发送的地址数据更新确认报文后,更新本地TCP连接参数,开始使用新的IPv6地址用于原TCP连接通信。

(4)完成变更阶段。

B端收到A端发送的IPv6地址更新数据报文后,使用A端公钥对签名进行验证,若数字签名验证通过,则使用B端私钥解密获得新IPv6地址数据,确认新地址不存在冲突后,向A端回复此确认报文并更新相关TCP连接地址参数,此后使用新IPv6地址进行相关TCP连接通信。若签名验证失败,或经检测新地址存在冲突,则不回复,使A端计时器三次超时自动放弃地址变更。

3.2 地址更新过程的信息安全机制

地址更新过程的信息安全机制采用公钥加密(非对称密钥加密)配合数字签名[9]来完成,两者均由采用160位密钥长度的ECC椭圆曲线加密算法[10]来完成。

以下记发送地址变更请求方为A端,接收地址变更请求方为B端。

A端先对新IPv6地址采用B端提供的ECC公钥进行加密,然后A端用自己的ECC私钥进行签名。B端收到数据包后先用A端提供的ECC公钥验证签名是否有效,如果有效再通过B端的ECC私钥对数据包里面的IP地址进行解密提取,从而保证通讯过程消息源的可靠性与新IPv6地址保密。

3.3 IPv6地址更新算法

该算法参考RFC4941[8],算法为迭代算法。符号记法参照表1,算法描述如下。

步骤一:取出R,将其与S的前64位拼接,得到128位比特长度值N。

步骤二:对N做SM3运算,结果记为G,取前64位,将第七位置0,记为M.将M与系统IPv6地址保留段和已用段做比较,若无冲突则进入步骤三,若冲突,对N做MD5运算,计算结果的后64位作为R新的赋值,重新开始步骤一。

步骤三:用M取代现有IPv6地址的前64位,并将G的后64比特位作为R新的赋值,供下一轮迭代使用。

3.4 方案工作流程与状态机

方案工作流程如图1所示,终端A为地址变更请求方,终端B为地址变更被请求方。

方案工作状态机如图2所示,终端在内存中保存当前状态,并根据当前状态与收发判断数据包内容决定下一状态。注意超时定时器为3 s,共计3次超时将之间进入失败状态,若有变更需要将重新从开始状态进行请求,简化模型逻辑,降低实现难度。

4 结语

该方案通过一种保持TCP连接不中断的IPv6地址动态更新方案实现了IPv6通信过程中IPv6地址的安全平滑切换,方案基于当前成熟的TCP协议选项扩展,使得该方案可扩展性强,实现难度较低。数据加密以及数字签名由ECC椭圆曲线加密技术支撑,保证了该方案运行速度高,资源占用少,对运行设备的要求不高。对比相关研究已提出的IP地址动态更新机制,该方案在安全性上做出了较为完整的补充,并针对IPv6网络提供一套合理的IPv6地址动态更新算法,保证了地址更新数据的安全性与数据来源的可靠性,从而使得该方案具备进行现实推广的意义与可能。对比其他基于地址池的地址更新方案,该方案在系统资源节省上具有优势,针对依赖目标IPv6地址展开攻击的攻击技术,如嗅探攻击,拒绝服务攻击等,该方案可在低系统资源消耗的条件下,通过动态平滑切换通信IPv6地址,较大增强IPv6通信安全性。

参考文献

[1] S. Kent, K. Seo. Security Architecture for the Internet Protocol[M].RFC Editor,2005.

[2] Scott Hogg,Eric Vyncke.IPv6安全[M].北京:电子邮电出版社,2011.

[3] 温泽辉.一种动态切换TCP连接IP地址的实现方法[J].科技信息,2011,2011(12):633-634.

[4] M. Dunlop, S. Groat, R. Marchany, J. Tront. Implementing an IPv6 Moving Target Defense on a Live Network[C]//Military Communications Conference.2011.

[5] 刘慧生.一种基于多穴跳变的IPv6主动防御模型[J].电子与信息学报,2012,2012(7):1715-1720.

[6] 石乐义.基于端信息跳变的主动网络防护研究[J].通信学报,2008(2):106-110.

[7] Sidalakis M, Schmid S, Hutchison D. Network address hopping: a mechanism to enhance data protection for packet communications[C]//ICC.2005.

[8] T. Narten, R. Draves, S. Krishnan. Privacy Extensions for Stateless Address Autoconfiguration in IPv6[M].RFC Editor,2001.

[9] 王昭,袁春.信息安全原理與应用[M].北京:电子工业出版社,2010.

[10] William Stallings.密码编码学与网络安全原理与实践[M].北京:电子工业出版社,2015.

猜你喜欢
字段数字签名报文
海法新港一期自动化集装箱码头电子数据交换报文系统设计与实现
带钩或不带钩选择方框批量自动换
基于报文类型的限速值动态调整
交通运输行业数字签名系统的设计与实现分析
关于电子商务中安全数字签名的研究
用户设备进行组播路径追踪的方法及系统
基于XML的数字签名在电子病历的应用方法
探讨CNMARC格式中200字段题名的规范著录
掌握方法用好数字签名
无正题名文献著录方法评述