一种提升IPv6协议数据包安全性的方法与流程

文档序号:12376712阅读:377来源:国知局
一种提升IPv6协议数据包安全性的方法与流程

本发明涉及IPv6协议及网络安全领域,特别是涉及一种携带用户真实身份标识的IPv6目标选项包头扩展方法。



背景技术:

随着近年来互联网网络规模的急剧膨胀、上层应用的不断丰富,网络结构和功能日趋复杂,网络的管控能力也日趋减弱,互联网安全形势也更加严峻,这使得互联网可追责性问题成为互联网急待解决的问题之一,其意义在于发生网络安全事件后,可以通过攻击数据包样本从而确定发送责任人。

当前互联网体系架构中,仅能支持根据数据包的源地址确定发送方的来源,但仅根据IP源地址来推断发送者的身份的方式是不充分的,这是因为:(1)IP地址与用户身份仅具有弱关连性,仅从数据包的源地址出发,断定其发送者的身份是不可取的;(2)互联网体系架构本身并无源地址认证机制,路由器也仅根据目标地址进行转发,使得数据包源地址可以被任意修改;(3)路由器对数据包的转发是没有状态的,即路由器并不保存数据包转发的情况,这使得数据包的转发路径没有追溯性;(4)IP地址的短缺以及IPv4/IPv6过渡需要等情况,在NAT(Network Address Translation)机制支持下,IP源地址在到达目的网络时已不断被转换;(5)互联网自治域间拓扑连接复杂,即使了解数据包在某一区域的转发路径,仍无法确定其整个转发路径以确定真实发送源;(6)最后,自治域与其拥有的IP前辍列表时有变动,同时该映射关系在BGP协议中还有收敛延迟;以上这些问题使得数据包携带发送者身份标识具有积极的意义。

目前已有方案对数据包标识用户或主机的身份做出了研究,这些研究主要分为地址加密方案、语义分离方案以及其他创新方案。

GSE方案提出将IPv6地址的前64位作为路由标识,后64位作为主机身份标识。此方案为最早提出IP地址携带主机身份标识的方案,但该方案最终没有被IETF采用作为IPv6标准。在现有IPv6标准的SLAAC(Stateless Address Auto-Configuration)地址分配模式下,主机将自身48位网卡物理地址(MAC)转换为IEEE-EUI 64位标识符后,与接入路由器使用路由器通告(RA)消息的64位路由前辍相结合形成128位IPv6地址,故其地址的后64位可作为主机标识,但是该机制无法解决源地址假冒的问题。CGA,TrueIP以及AIP等方案通过对源地址对称加密的方式,将数据包中的IP源地址字段用加密后的数据取代,最后在网络出口设备上对该地址予以检验和还原,从而达到了源地址验证的目的。然而由于公共密钥的共享问题,使得这些方案适用的范围受到了限制。IPSec是一种端到端加密认证方案,其主要通过认证包头(Authenticated Header)、对称加密算法以及ISAKMP协议进行密钥协商,从而实现端到端的用户认证,但该方案无法阻止中间人攻击(man-in-the-middle attack)手段,也无法支持第三方判别与审计。SPM是一个自治系统到自治系统的解决方案,每一对互相通信的自治域对均拥有对方的临时密钥并进行源地址验证,但方案无法克服不相邻的自治域间、中间节点进行假冒和重放的攻击行为。

为了解决IP地址主义过载、解耦IP地址所包含的位置(LOC)与身份(ID)语义,LISP等方案均采用在IP层上建立身份标识层,同时对EIDs(Endpoint Identifiers)与RLOCs(Routing Locators)标识进行映射解析,达到语义分离以及缓解路由爆炸的问题;之后的LISP+ALT、LISP+DHT、AMIA,HIP等方案采用在IP层上建立身份标识层的做法进行IP双重语义分离,但这些方案均需要额外的身份、位置映射系统或机机,才能保证分组的可达性,并且实现开销及部署难度都较大。

还有如RBA在内的创新方案,将现有TCP/IP架构完全推倒,提出基于身份角色的体系架构(Role-Based Architecture)。该架构将现有的协议栈改为协议堆的方式,将层级架构转变为扁平架构,使每个节点赋予一个唯一的角色ID,并在数据包头中填入接收的角色ID,路由器则根据目标角色进行转发。因此,RBA具有灵活性、可扩展性、可审计性等优点,但实现开销较大、且处理开销效率不如IP协议,同时还会增加系统和用户理解的复杂性。最后APIP方案通过建立域内可信担保代理,在验证用户身份后,在数据包发送时对其源地址用可信代理的IP地址予以替换,同时在数据包接收时再进行相应的转发。其优点是不仅可以对数据包进行真实性担保、对用户的数据流的隐私予以保护,还可对用户数据流进行灵活地控制,但该方案并没有解决源地址假冒的问题,同时可信代理实际已成为一个NAT设备,在大规模并发请求下其可能成为故障瓶颈点。



技术实现要素:

本发明的主要目的在于,提出一种提升IPv6协议数据包安全性的方法,使数据包能够携带发送者用户真实身份标识,同时防止身份标识的假冒与篡改,并支持第三方审计与验证。

本发明提供了一种提升IPv6协议数据包安全性的方法,包含如下步骤:

A1.设备根据数据包的IP源地址匹配用户身份;

A2.对身份匹配成功的用户数据包扩展身份标识选项并填充字段数据;

A3.更新数据包相关字段。

可选的,在如上的步骤A1之前,还可以进行步骤A0:排除不适合扩展身份标识选项的数据包。

优选地,所述步骤A2包括在IPv6目标选项包头扩展身份标识选项。

进一步优选地,所述身份标识选项包括选项类型字段、选项长度字段、选项版本字段、保留字段、自治域号字段、用户身份标识字段、时间戳字段、数字签名字段。

更进一步地优选,所述选项类型字段表示身份标识选项的类型,8位,赋值为“00011111”;选项长度字段表示身份标识选项的总长度,8位,最大长度≤64字节;选项版本字段表示身份标识选项的版本,4位,赋值为“0001”;保留字段表示用于将来可能需要补充的数据,8位,赋值“00000000”;自治域号字段表示用户所在的自治域号,32位,旧的16位自治域号在前面补齐16位0成为32位;用户身份标识UID字段用于指示用户标识,64位;时间戳字段表示身份标识选项的创建时间,64位;数字签名字段为用户私钥对数据包的数字签名,长度取决于所采用的数字签名算法。

再更进一步地优选,用户身份标识的生成算法为:UID=SubString(Houtside(Hinside(user original identity code),user-password));其中,UID为用户身份标识,Hinside表示普通哈希算法,Houtside表示普通哈希算法和加密哈希混合算法,参数user original identity code与user-password表示用户原始的身份标识及密码。最优选,所述普通哈希算法为MD5,加密哈希混合算法为HMAC-SHA1,SubString表示截断函数。

再更进一步地优选,所述数字签名的生成算法为:Signature(P)=H(Ks||PUID-Header||H(Pbody));其中,P表示当前需要签名的数据包,H为数字签名算法,Ks表示发送者私钥,PUID-Header和Pbody分别代表本扩展选项除数字签名字段外的内容,数据包IP协议之上的数据内容。最优选,所述数字签名算法为DSA-SHA1算法。

进一步地优选,所述更新数据包相关字段包括:目标选项包头中的包头总长度,IPv6协议基本包头中的载荷长度值、下一个包头值。

本发明的有益效果为:本发明可以在对用户透明的情况下,在用户接入网关或整体网络出口网关上,对用户数据包扩展本发明所提出的用户身份标识选项,从而实现端到端的通信身份认证,并支持发送方和接收方以外的第三方检测部门进行验证身份标识的合法性。本发明总体机制有利于增强互联网可追责性,减少互联网假冒攻击行为的产生,对构建安全可信的互联网具有积极意义。

本发明实施例还具有如下的有益效果:通过对数据包扩展身份标识选项,增加具体字段以及其数据生成方式,能有效防止身份标识的假冒与篡改。增加时间戳字段可以有效防止他人假冒身份标识进行重放攻击行为;在多重哈希以及加密的运算下,恶意用户将无法根据数据包中携带的身份标识推导出用户的原始身份标识;数字签名字段长度不固定,能够支持多种签名算法。

附图说明

图1为本发明实施例中接入设备对数据包的处理流程示意图。

图2为本发明实施例目标选项包头中扩展身份标识选项的示意图。

具体实施方式

下面结合具体实施方式并对照附图对本发明作进一步详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。

如图1所示,本发明可利用可编程的用户网络接入设备或网络整体出口设备(以下简称“设备”),对用户数据包扩展本发明提出的身份标识选项,进一步地,实施例包括以下步骤:

A0.可选地,设备首先排除不适合扩展身份标识选项的数据包,如DNS,BGP,DHCP等协议数据包。

A1.根据IP源地址匹配用户身份:设备根据数据包的IP源地址,在本地数据表中查找该IP地址所映射的用户身份标识及其私钥。若本地数据中查找失败,则向管理域内控制器请求该用户的身份标识及私钥、同时缓存至本地数据库。若控制器中仍不存在相关记录,则直接将数据包丢弃。

A2.对身份匹配成功的用户数据包扩展身份标识选项并填充字段数据:若数据包已有目标选项包头,则在已有目标选项包头之后扩展本发明所提出的身份标识选项;否则,创建目标选项包头并扩展本发明提出的身份标识选项。

身份标识选项,其主要字段、意义、大小、数据生成方式如下,其示意图如图2所示:

(1)选项类型Option Type:表示身份标识选项的类型,8位,赋值为“00011111”。根据IPv6协议规范,该值的前两位“00”表示“跳过该选项并继续处理后续选项”,第三位“0”表示“路由过程不改变包内容”,之后的5位为自定义值“11111”,目的是便于网络设备识别及处理(该值最终确定还需要向“互联网数字分配机构”IANA申请)。

(2)包头总长度Opt Data Len:身份标识选项的总长度,8位,表示的数据长度内容以字节为单位,本选项的最大长度不能超过64字节。

(3)版本Version:身份标识选项的版本,4位,当前赋值为“0001”。

(4)保留字段Reversed:用于将来可能需要补充的数据,8位,当前赋值“00000000”。

(5)自治域号AS Number:用户所在的自治域号,32位。旧的16位自治域号可以在前面补齐16位0成为32位。由于互联网是以AS为单位进行管理,因此数据包的来源应体现其所在自治域。同时,自治域与其所拥有的地址前辍映射关系并非固定,并且互联网还存在着较多的多点接入(multi-homing)、地址转换(NAT)、以及IP源地址可能被篡改等情况,这使得该字段的设计具有合理性。

(6)用户身份标识UID,用于指示用户标识,64位,其生成算法为:UID=SubString(Houtside(Hinside(user original identity code),user-password))。其中,Hinside与Houtside分别表示普通哈希算法(如MD5)和加密哈希混合算法(如HMAC-SHA1);参数user original identity code与user-password表示用户原始的身份标识及密码。该算法首先对用户原始的身份标识进行MD5哈希运算(哈希摘要结果长度为128位),之后再利用用户密码作为参数,使用HMAC-SHA1对以上结果进行加密哈希(运算结果长度为160位),最后再采用截断函数SubString截取运算结果的前64位作为用户最终的身份标识(用户认证相关数据由本管理域/本自治域控制器统一存储)。若同一管理域(自治域)内出现重复的身份标识,可对HMAC-SHA1算法所生成的160位运算结果再进行HMAC-SHA1运算后,再截取前64位作为用户的身份标识;若仍有重复UID,重复以上操作步骤直到同一自治域内无相同的UID即可。在以上多重哈希以及加密的运算下,恶意用户将无法根据数据包中携带的身份标识推导出用户的原始身份标识。

(7)时间戳Timestamp,身份标识选项的创建时间,64位,以防止他人假冒身份标识进行重放攻击行为。

(8)数字签名Digital Signature,用户私钥对数据包的数字签名,以防止数据包内容被假冒和篡改。其长度取决于所采用的数字签名算法,本发明支持多种签名算法,如DSA-SHA1:160位;DSA-SHA256:256位;RSA-MD5:128位,其生成算法为:Signature(P)=H(Ks||PUID-Header||H(Pbody));其中,P表示当前需要签名的数据包,H为数字签名算法,本实施例采用DSA-SHA1算法,Ks表示发送者私钥,PUID-Header和Pbody分别代表身份标识选项除签名字段外的内容、以及数据包IP协议之上的数据内容。整体签名生成算法利用用户的私钥及DSA-SHA1对扩展包头内容及数据包上层数据签名而生成。

A3.修改数据包相关字段:

(1)修改目标选项包头中的“包头总长度(Hdr Ext Len)”、以及修改IPv6协议基本包头中的“载荷长度(Payload Length)”值,即在原值基上增加本发明所提出的身份标识选项扩展长度值;

(2)修改“下一个包头(Next Header)”值,根据RFC标准,在指示下一个包头的链表中修改相应的值。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1