基于容错容侵的ip可信路由实现方法

文档序号:7686327阅读:185来源:国知局
专利名称:基于容错容侵的ip可信路由实现方法
技术领域
本发明涉及通信技术领域,具体涉及基于容错容侵的IP可信路由实现方法。

背景技术
随着计算机网络技术的不断发展,网络的应用日益广泛,网络通信中的安全问题也受到越来越多的关注。人们希望网络在自身发生故障或遭受病毒等恶意攻击的情况下,仍然能够提供正常的服务。其中,IP网络的可信路由实现方法也成为了广泛研究的一个热点。可信路由是安全路由中的一种重要思想,它借鉴了人类社会关系网中的信任关系,并将其运用于通信领域,在路由器之间建立“信任关系”。路由器之间无论是自身错误还是恶意的行为都利用是否“信任”来决定是否与之“往来”,即将“错误”与“入侵”采用归一化的“信任关系”来处理。在此基础上,通过IP可信路由算法来实现了IP路由的可信性,同时也达到了既容错又容侵的效果。
2004年,由洛杉矶加利福尼亚州大学的“NETWORKED AND EMBEDDEDSYSTEM”实验室设计出了专用于传感器网络的基于信任关系的网络模型RFSN(Reputation-based Framework for High Integrity Sensor Networks)。它利用看门狗机制(watchdog)来建立信任值,并且分布在每一个传感器节点上。每一个节点都维护了其它节点(或其它子网的)的信誉信息,网络中没有集中存储信誉值的实体。
每个路由节点都将其它节点分为了可以合作的和不与其合作的两类,看门狗机制负责采集网络中其它节点的观测信息并进行判决。看门狗机制也可以看作是一些离散模块的集合,每个模块通过对通信信道进行监测来完成特定的功能,比如数据采集模块由两个部分组成被动监听和数据采集;数据核对函数模块包括数据聚合模块和数据延迟模块;而判决模块部分在原文中并没有作详细的说明,其主要作用是根据能量、存储空间、处理开销、链路状况、底层进程等监测到的信息来建立信誉信息。看门狗机制实时地帮助节点建立信誉信息,但它是以牺牲一定的资源为代价的。因此,对该部分进行精明的设计对基于信任关系的网络成功很重要。
RFSN设计的优点是有效结合了一手信息和二手信息来共同构成信任值,同时考虑到了二手信息的不可靠性,并通过信任权值来加以区分给信誉值高的节点提供的二手信息以较高的权重,给信誉值较低的节点提供的二手信息以较小的权重。缺点是(1)它假定看门狗机制只对相邻节点进行监测,这虽然极大的简化了看门狗机制的设计,但是却没有充分共享节点间的信任信息。然而,IP可信网络设计的目的,不仅仅是使各个节点维护相邻节点的信誉信息,而是通过信任信息的交互,来增强全局IP网络的安全性能。因此,信任值的交互,也即是IP可信路由的实现算法也是至关重要的;(2)看门狗机制并没有对判决模块部分做精确的定义;(3)虽然RFEN设计中考虑到了信任值的老化问题,并定义了老化权重来缓解这一情况,但是仍然存在不足。


发明内容
本发明所要解决的技术问题是如何提供一种基于容错容侵的IP可信路由实现方法,该方法在不牺牲露有安全性为代价的基础之上,路由器充分共享节点间的信任信息,统一了相邻节点和不相邻节点的信任值评估策略,同时能防止信任值老化并在一定程度上起到拥塞控制作用。
本发明提出的技术问题是这样解决的提供一种基于容错容侵的IP可信路由实现方法,其特征在于,包括以下步骤 ①当数据包传送到某节点时,该节点为发送节点,发送节点选择接收节点投递数据包,然后接收节点通过信任检测和信任扩展路由表展开检测,若无法通过检测,则投递数据包失败并转入步骤②;如果通过检测,则该接收节点接收数据包,路由成功; ②对投递失败的数据包进行路由恢复接收节点向其上游节点即发送节点直接回传否定应答NACK,则发送节点重新进行可信路由选择,在设定的时范围内,如果二次选路成功,则回传肯定应答ACK到源节点,按二次选路投递数据包;如果二次选路失败,则继续向其再上一级节点回传否定应答NACK,如此通过逐级“回传-选路-回传”的方法来实现可信路由恢复; 其中发送节点和接收节点进行双向信任评估,相邻节点和不相邻节点的信任评估策略为统一的信任值评估策略,并对节点信任关系具体化;对发送方而言首先,源节点要确保目的节点的安全可信,其次,发送节点要将数据包投递给可信的节点;对接收方而言任何节点在接收数据包时,不仅要评估直接发送数据包给它的那个相邻节点,还要评估该数据包的源节点,在二者都可信的前提下,才能接收该数据包。
按照本发明所提供的一种基于容错容侵的IP可信路由实现方法,其特征在于,具体步骤如下 ①信任关系定义 G(V,E)是一个给定的IP网络拓扑,其中,V是路由节点集,E是路由链路集; “A”-“Z”分别表示G网中的节点; α∈
表示信任系数,用于区分一手、二手信任值对信任值所作贡献的大小,可有用户自行定义; k表示路由跳数,max_k表示网络最大路由跳数,可由用户自行定义; TABk表示节点A所维护的关于节点B的总体信任值,其中,A与B之间相距k跳,且它们的取值范围为
,并满足如下关系 另外,信任值都具有单向性; f1k、f2k和f3k分别表示归一化的传播延迟、包投递率和吞吐量


ci表示信任加权系数,(th)k表示k跳时的最低信任加权函数值,它们均可由用户自行定义,tk表示k跳信任加权函数 且i∈[1,3] ____________(5) (TABk)D为节点A所维护的节点B的直接信任值(简称一手信任值) (TABk)ID为节点A所维护的节点B的间接信任值(简称二手信任值) PAk表示与节点A相距k跳的节点集合,Pi(i=1,2,...d)表示与某节点相邻的d个节点,其中d表示该节点的度数。wi表示某节点与其相邻节点Pi之间的信任权重; CAB表示节点A所维护的关于节点B的归一化信任值, Clow是一个阈值,表示网络可以接受的最低归一化信任值; T_holder表示信任缓存时限,t则表示缓存计时器; 节点集SetConsider、Trace和SetNeighbor分别表示安全路由过程中的已考虑节点集、路由路径和某节点的相邻节点集; W表示信任值评估请求域,是一个节点集,用于存储要重新评估信任值的节点; ②信任关系初始化 包括以下步骤 步骤1节点A利用信任监测部分,主动监听、搜集全网中其它节点的信息,并对信息进行分析处理。同时启动计时器,初始化(TTL)k=Max_Timer。Max_Timer的大小取决于跳数、网络性能(k值、归一化延迟、包投递率和吞吐量越大,Max_Timer越大),以ms为单位; 步骤2根据采集到的传播延迟、发包数、收包数和比特数等数据信息,利用公式(2)~(4)求出各节点的归一化延迟、吞吐量和包投递率; 步骤3节点A利用加权/判决模块,根据公式(5)求出各个节点的加权函数,其中,加权系数ci决定了不同函数对一手信任值的不同贡献程度,由用户根据网络现状自行定义; 步骤4同时利用公式(6)进行判决,得出节点在k跳时的一手信任值,其中(th)k是根据用户对不同网络的性能要求,在保证最低通信质量的情况下得出的,是k跳时,网络所能接收的最低加权函数值,如果所得加权函数值不小于该值,则认为此节点是初步可信的,并令直接信任值为1;如果加权函数小于该值,则认为此节点是初步可疑的,并令直接信任值为0; 步骤5根据公式(1)计算出TABk,并储存到信任值路由表的信任值表项之中;由此,IP网络中的每个节点都维护了一个信任值路由表,包括该网中全部节点的初始信任值信息; 步骤6相邻节点之间发送可达性信息,交换各自的可达节点和信任值情况,来自其它节点的信任值就是间接信任值,此时,结合自身信任值路由表中的一手信任值,利用公式(1)计算出可达节点的Tk,再更新自身的信任值路由表; 步骤7时,启动信任监测部分,重新计算节点A、B之间的信任值,更新信任值路由表,回到步骤1; ③IP可信路由实现步骤 第1步数据包经过中间网络到达了某中间节点,不防设该节点为Z,且Trace={A,B,...,Q}; 第2步节点Z判断是否有
第3步若有,则停止数据包的传递,向上游节点Q回传NACK,节点Z的路由任务结束;若没有,则表明节点Z还能够进行下一步路由; 第4步节点Z判断其上游节点Q的信任度,是否有CZQ≥Clow; 第5步若有,则k++,并继续判断源节点的信任度;若没有,则缓存该数据包,令(TTL)k=0,立即启动网络节点信任监测与获取部分,对节点Q进行数据采集,更新路由器的信任扩展表项; 第6步节点Z判断源节点A的信任度,是否有CZA≥Clow; 第7步若有,则接收该数据包,令Trace={A,B,...,Q,Z},SetConsider=SetConsider+Q.SetNeighbor;若没有,则将该数据包缓存,令(TTL)k=0,立即启动网络节点信任监测与获取部分,对A节点进行数据采集,更新路由器的信任扩展表项; 第8步节点Z接收数据包后,如果节点Z就是该数据包的目的节点,那么节点Z停止转发,将该数据包经过处理后提交上层,并返回ACK到源节点,路由过程结束;如果节点Z不是该数据包的目的节点,那么节点Z继续寻找可信路径进行转发; 第9步在数据包被缓存的时限内,如果更新后的信任值高于Clow,则节点Z继续路由;如果更新后的信任值仍然低于Clow,则节点Z停止数据包的传送,向源节点发送NACK; 第10步超出数据包被缓存的时限,则节点Z停止数据包的传送,向源节点发送NACK; 第11步中间节点对来自Trace中下游节点的ACK不做任何修改,继续按照Trace向上游发送ACK,直至到达源节点,路由结束; 第12步中间节点收到了来自Trace中下游节点的NACK,不妨令接该中间节点为Y; 第13步节点Y判断该NACK是否是对自己发送数据包的应答; 第14步若是,则停止该NACK的转发,路由结束;若不是,则节点Y缓存该NACK,并判断是否存在节点Xi∈Y.SetNeighbor(i=1,2,...)满足且Xi不是Trace路径中节点Y的下游节点(不防设该节点为V),即Xi≠V。
第15步若存在,则比较{Xi}中节点的归一化信任值,选出值最大的节点重新转发该数据包;若不存在,则令W=Y.SetNeighbor-SetConsider,要求全网节点重新评估W中节点的信任值,节点Y按照Trace路径向其上游节点发送NACK; 第16步在NACK被缓存的时限内,如果通过新的可信路径将数据包送达了目的节点,则返回ACK到原节点,路由结束;如果无法找到新的可信路径进行传递,则节点Y继续向上游节点发送NACK; 第17步超出NACK被缓存的时限,则节点Y停止二次选路,继续向上游节点发送NACK; 第18步收到信任评估请求的节点立即令W中节点的(TTL)k=0,启动网络节点信任监测与获取部分,更新路由器的信任扩展表项。
本发明中可信路由实现方法的核心是当数据包传送到中间节点Q时,Q根据正向信任度评估策略选择可信节点Z投递数据包,然后节点Z展开包括逆向信任度评估在内的一系列检测若无法通过检测,则投递数据包失败并进行路由恢复;若通过检测,则Z接收数据包,路由成功。路由恢复时,节点Z向其直接上游节点Q回传否定应答,Q重新进行可信路由选择,在设定时间范围内,若二次选路成功,则回传肯定应答到源节点,按二次选路投递数据包;若二次选路失败,则Q继续向其上一级节点回传否定应答,以此类推。本发明通过这种方法来处理网络中出现失败节点的情况,在安全可信的前提下,重新恢复IP路由。
本发明有益效果如下在不牺牲路由安全性为代价的基础之上,路由器充分共享节点间的信任信息,统一了相邻节点和不相邻节点的信任值评估策略,将节点信任关系具体化;同时,通过信任值生存期和计时器来防止信任值老化问题。IP可信路由算法要求发送节点和接收节点进行双向信任评估,并采用一定的机制来找寻最近范围内的安全节点转发数据包。该路由算法不仅收敛快,而且可以在消耗最少资源的前提下,尽快恢复通信。除此之外,该IP可信路由实现方法在容错容侵的同时,还起到了一定程度的拥塞控制作用。该IP路由实现方法安全可信,有效克服了诋毁(bad-mouth)攻击、两面行为(conflictingbehavior)攻击、间隙性(on-off)攻击和节点故障对网络路由带来的危害,具有较强的容错容侵能力。
该IP路由的实现过程是安全可信的,在网络遭受恶意攻击或故障时,可以在消耗最少资源的前提下,很快恢复通信。克服了诋毁攻击、两面行为攻击、间隙性攻击和节点故障对网络路由带来的危害,具有较强的容错容侵能力。



图1是网络节点信任监测与获取功能示意图; 图2是IP路由表的信任表项扩展; 图3是获取二手信任值的参考网络拓扑图; 图4是IP可信路由实现方法中的参考网络; 图5是正常情况下数据包传递过程示意图; 图6是节点非信任情况下的IP路由示意图; 图7是节点非可信情况下IP路由恢复示意图; 图8是IP可信路由实现方法流程示意详图。

具体实施例方式 下面结合附图以及实例对本发明作进一步的说明。
针对RFSN设计在可信路由实现上所存在的缺陷,本发明提出了一种相应的改进方案一种基于容错容侵的IP可信路由实现方法,也即是一种基于信任关系的安全路由策略。图1所示的网络节点信任监测与获取功能示意图是本发明获取信任值的核心机制。发明中所提出的可信路由实现方法适用于通用意义上的IP网络环境,可以对网络异常行为比如诋毁(bad-mouth)攻击、两面行为(conflicting behavior)攻击、间隙性(on-off)攻击和节点故障等具有容错容侵能力。
本发明技术方案的核心设计思想如下在不牺牲路由安全性为代价的基础之上,路由器充分共享节点间的信任信息,统一了相邻节点和不相邻节点的信任值评估策略;同时,通过信任值生存期和计时器来防止信任值老化问题。IP可信路由算法要求发送节点和接收节点进行双向信任评估,并采用一定的机制来找寻最近范围内的安全节点转发数据包。该路由算法不仅收敛快,而且可以在消耗最少资源的前提下,尽快恢复通信。除此之外,该IP可信路由实现方法在容错容侵的同时,还起到了一定程度的拥塞控制作用。
本发明中可信路由实现方法的核心是当中间节点A通过网络节点信任监测与获取功能模块和信任扩展路由表,检测到其下一跳节点是可疑节点(遭受恶意攻击或出现故障),数据包无法继续向前传递时,节点A通知其上游节点B重新进行可信路由选择。如果节点B进行二次选路仍然失败的话,节点B再继续通知其上游节点,以此类推。本发明通过这种方法来处理网络中出现失败节点的情况,在安全可信的前提下,重新恢复IP路由。
基于容错容侵的IP可信路由实现方法中使用的符号含义 G(V,E)是一个给定的IP网络拓扑图,其中,V是路由节点集,E是路由链路集; “A”~“Z”分别表示G网中的节点; α∈
表示信任系数,用于区分一手、二手信任值对信任值所作贡献的大小,可有用户自行定义; k表示路由跳数,max_k表示网络最大路由跳数,可由用户自行定义; TABk、(TABk)D与(TABk)ID分别表示节点A所维护的关于节点B的总体信任值、节点A所维护的节点B的直接信任值(简称一手信任值)和间接信任值(简称二手信任值),其中,A与B之间相距k跳,且它们的取值范围为
,并满足如下关系另外,信任值都具有单向性; f1k、f2k和f3k分别表示归一化的传播延迟、包投递率和吞吐量; ci表示信任加权系数,(th)k表示k跳时的最低信任加权函数值,它们均可由用户自行定义,tk表示k跳信任加权函数; PAk表示与节点A相距k跳的节点集合,Pi(i=1,2,...d)表示与某节点相邻的d个节点,其中d表示该节点的度数。wi表示某节点与其相邻节点Pi之间的信任权重; CAB表示节点A所维护的关于节点B的归一化信任值, Clow是一个阈值,表示网络可以接受的最低归一化信任值; T_holder表示信任缓存时限,t则表示缓存计时器; 节点集SetConsider、Trace和SetNeighbor分别表示安全路由过程中的已考虑节点集、路由路径和某节点的相邻节点集; W表示信任值评估请求域,是一个节点集,用于存储要重新评估信任值的节点。
该可信路由机制将网络节点间的信任程度作为路由选择的一个度量。路由器节点利用新添加的信任监测模块来获取相邻节点的直接监测信任值(即一手信任值),利用改进的路由协议将二手信任值与路由信息绑定分发。最后,路由器节点综合利用一手信任值和二手信任值来决定节点是否参与分组的转发。某些节点即使被攻击、被控制或瘫痪,它们发布的二手信息对计算信任值也是有一定积极贡献的。所以,无论是什么样的节点(好或坏),我们都接收它们发布的二手信任值信息,只是在权重上加以区分。
IP网络节点间的信任关系定义与初始化 1)信任关系定义 用TABk表示节点A所维护的关于节点B的信任值,且A与B之间相距k跳。而TABk与两个值有关,一个是节点直接获取的一手信任值(TABk)D,另一个是节点间接获取的二手信任值(TABk)ID,两者通过加权求和就可得到TABk,表达式是 其中,信任系数α的取值是根据需要人为定义的常数,不同的用户根据自身需求来区分一手、二手信任值对信任值所做贡献的差别,且α∈
, 不论是相邻节点还是不相邻节点之间的信任值都要通过一手信任值与二手信任值的加权求和所得到。每一个节点内部都有一个“信任监控部分”,该部分是在RFSN一文中所提出的watchdog机制的基础上改进而来的。改进后的网络节点信任监测与获取部分如图1所示。
与watchdog机制的被动监听所不同的是,网络节点信任监测与获取部分增加了通往目的节点的初始化跳数,使得之后的信任值计算和比较更方便、更有可比性。该监测功能模块还将被动监听改进为了主动监听,搜集提取节点的能量、存储空间、处理开销、链路状况、底层进程等数据信息;同时定义了具体的函数来量化一手信任值归一化延迟、包投递率和吞吐量。这三个量与信任值都成反比关系,分别的定义如下(k代表跳数) 归一化传播延迟f1k是传播延迟的倒数,用于判断目的节点是否可以正常到达。

包投递率f2k在固定时间内,节点A向节点B发送数据包,B节点接收到的数据包数和A发送的数据包数之比。该函数用于衡量通往目的节点的链路质量。

吞吐量f3k表示节点之间传送的比特数与传播延迟之比。该函数是用来评估目的节点的处理能力。

包投递率减小意味着在传递过程中有数据包的丢失,归一化延迟减小目的节点接收数据过程出错,吞吐量减小都意味着目的节点的处理能力减小。出现以上几种情况,可能是节点故障,链路质量下降,也可能是节点遭受攻击处理能力降低,或者是目的节点拥塞,系统资源紧缺所造成的。不论是以上哪种情况,都预示目的节点不可正常到达,因此要降低目的节点的信任度,为可信路由提供保障。并且也对网络拥塞起到了一定的遏制作用。
在判决模块中,根据以上三个函数对一手信任值的贡献程度进行加权求和,得到加权函数tk。
且i∈[1,3]________(5) 其中,ci是根据需要人为定义的常数。对不同的用户而言,归一化延迟、包投递率和吞吐量分别对一手信任值的影响程度是不同的,用户的侧重也是不同的。(th)k也是根据用户对网络性能的不同要求而定义的一个固定值,也即是用户网络可以容忍的最低加权函数值。将加权函数与一手信任阈值进行比较判决,就可以用布尔量来量化节点的一手信任值(TABk)D 节点之间的二手信任值是通过路由更新的洪泛而来的,并且网络的安全状态是随时间动态变化的,所以二手信任值的大小不仅与中间节点的信任状态有关,而且还与时间变化有关。为了在可信路由生成和更新时更加方便快捷,不论是相邻节点还是不相邻节点都通过统一的公式来定义二手信任值(TABk)ID(如参考网络拓扑图3所示) 其中,Pi(i=1,2,...,d)是与A直接相连的节点(d是节点A的度数);wi(i=1,2,...,d)表示节点A与其相邻的第i个节点Pi之间的信任权重。


的值大于一手信任阈值时,就认为节点Pi是可以信任节点,即节点A通过Pi获取其它节点信任值时,Pi所做的贡献是最大的;当的

值小于一手信任阈值时,就认为节点Pi是不可信任节点,但它对于A获取其它节点的信任值也是有贡献的,贡献度是

是随时间递减的量,而t值由计时器来度量。
节点A所维护的相距k跳节点B的归一化信任值,是由A所维护的关于B的信任值与A所维护的全部k跳节点信任值之和的比值所决定的。归一化的目的是有效克服了诋毁(bad-mouth)攻击、两面行为(conflictingbehavior)攻击、间隙性(on-off)攻击和节点故障对网络路由带来的危害。如果归一化信任值过小则表明该节点的行为与其它同跳范围内的节点的行为差别很大,必定存在可疑。A与B之间的归一化信任值CAB定义如下,且有CAB∈ 其中,PAk表示与节点A相距k跳的节点P。由以上定义可知,k跳信任值TABk是用于节点间相互传递信任信息,并作为二手信任值在节点间相互利用的;而归一化信任值CAB则用于判定节点的可信度。
目前,在关于相邻节点和不相邻节点的信任度评估问题上,大部分都是采用区别对待的方法,相邻与不相邻节点采用各自的信任值获取机制,这会消耗系统资源,也会增加节点的负荷。而本发明将相邻节点和不相邻节点的信任度评估策略有机的统一到了一起,极大的节约了系统资源,使可信路由算法更快捷。
2)信任关系初始化 节点路由表在原IP路由表的基础上做了扩展,形成了IP路由表的信任表项扩展,如图2所示。目的是尽量不改变IP网络的主体构架,同时借助路由信息的传递来附带传递信任值信息,只对原IP协议做少量的修改,而达到容错容侵的可信路由效果。
为了更直观的对本发明进行说明,同时也要足以体现各种可能出现的路由情况,定义一个IP网络拓扑图G(V,E),如图4所示。该网络是有向网络,其有向性指的是信任关系的单向性。首先G中的所有节点要初始化自身的信任扩展路由表。具体步骤如下(以节点A为例) 步骤1节点A利用信任监测部分,主动监听、搜集全网中其它节点的信息,并对信息进行分析处理。同时启动计时器,初始化(TTL)k=Max_Timer。Max_Timer的大小取决于跳数、网络性能(k值、归一化延迟、包投递率和吞吐量越大,Max_Timer越大),以ms为单位; 步骤2根据采集到的传播延迟、发包数、收包数和比特数等数据信息,利用公式(2)~(4)求出各节点的归一化延迟、吞吐量和包投递率; 步骤3节点A利用加权/判决模块,根据公式(5)求出各个节点的加权函数,其中,加权系数ci决定了不同函数对一手信任值的不同贡献程度,由用户根据网络现状自行定义; 步骤4同时利用公式(6)进行判决,得出节点在k跳时的一手信任值,其中(th)k是根据用户对不同网络的性能要求,在保证最低通信质量的情况下得出的,是k跳时,网络所能接收的最低加权函数值,如果所得加权函数值不小于该值,则认为此节点是初步可信的,并令直接信任值为1;如果加权函数小于该值,则认为此节点是初步可疑的,并令直接信任值为0; 步骤5根据公式(1)计算出TABk,并储存到信任值路由表的信任值表项之中;由此,IP网络中的每个节点都维护了一个信任值路由表,包括该网中全部节点的初始信任值信息; 步骤6相邻节点之间发送可达性信息,交换各自的可达节点和信任值情况,来自其它节点的信任值就是间接信任值,此时,结合自身信任值路由表中的一手信任值,利用公式(1)计算出可达节点的Tk,再更新自身的信任值路由表; 步骤7时,启动信任监测部分,重新计算节点A、B之间的信任值,更新信任值路由表,回到步骤1;以保证在Max_Timer时间内,t时刻的信任值是最新的,有效地降低了过时信息对节点可信度的影响。
在信任关系初始化后,节点信任值路由表中的各项信息得到了更新。其中,最大跳数是用户根据网络大小自行定义的一个固定值,用来限制节点的无止境寻路,避免死循环。已考虑节点项在初始化后仍然为空,是专为路由选择而设(在之后的步骤中会详细说明)。
基于容错容侵的IP可信路由实现方法 IP协议对路由算法中涉及的各类数据报格式都做了详细的定义,为了尽可能充分利用原IP协议,本发明在IP协议数据报首部中的IP选项里增加了信任扩展部分,形成了信任扩展后的IP协议数据报格式。除此之外,本发明还新定义了一种数据报——信任值评估请求数据报,专门用于请求全网重新评估某些节点的信任值,用W表示需要重新评估信任值的节点集合。
本发明的路由实现方法的关键是发送节点和接收节点进行双向信任评估。对发送方而言首先,源节点要确保目的节点的安全可信;其次,发送节点要将数据包投递给可信的节点。对接收方而言任何节点在接收数据包时,不仅要评估直接发送数据包给它的那个相邻节点,还要评估该数据包的源节点,在二者都可信的前提下,才能接收该数据包。
以图4的IP网络拓扑为例加以说明。当A~K节点初始化各自路由表的信任值表项之后,假设节点A要传送一个数据包到节点E,以下是IP可信路由实现方法的详细步骤(如图5~图8所示) 第1步数据包经过中间网络到达了某中间节点,不防设该节点为Z,且Trace={A,B,...,Q}; 第2步节点Z判断是否有
第3步若有,则停止数据包的传递,向上游节点Q回传NACK,节点Z的路由任务结束;若没有,则表明节点Z还能够进行下一步路由; 第4步节点Z判断其上游节点Q的信任度,是否有CZQ≥Clow; 第5步若有,则k++,并继续判断源节点的信任度;若没有,则缓存该数据包,令(TTL)k=0,立即启动网络节点信任监测与获取部分,对节点Q进行数据采集,更新路由器的信任扩展表项; 第6步节点Z判断源节点A的信任度,是否有C′ZA≥Clow; 第7步若有,则接收该数据包,令Trace={A,B,...,Q,Z},SetConsider=SetConsider+Q.SetNeighbor;若没有,则将该数据包缓存,令(TTL)k=0,立即启动网络节点信任监测与获取部分,对A节点进行数据采集,更新路由器的信任扩展表项; 第8步节点Z接收数据包后,如果节点Z就是该数据包的目的节点,那么节点Z停止转发,将该数据包经过处理后提交上层,并返回ACK到源节点,路由过程结束;如果节点Z不是该数据包的目的节点,那么节点Z继续寻找可信路径进行转发; 第9步在数据包被缓存的时限内,如果更新后的信任值高于Clow,则节点Z继续路由;如果更新后的信任值仍然低于Clow,则节点Z停止数据包的传送,向源节点发送NACK; 第10步超出数据包被缓存的时限,则节点Z停止数据包的传送,向源节点发送NACK; 第11步中间节点对来自Trace中下游节点的ACK不做任何修改,继续按照Trace向上游发送ACK,直至到达源节点,路由结束; 第12步中间节点收到了来自Trace中下游节点的NACK,不妨令接该中间节点为Y; 第13步节点Y判断该NACK是否是对自己发送数据包的应答; 第14步若是,则停止该NACK的转发,路由结束;若不是,则节点Y缓存该NACK,并判断是否存在节点Xi∈Y.SetNeighbor(i=1,2,...)满足且Xi不是Trace路径中节点Y的下游节点(不防设该节点为V),即Xi≠V。
第15步若存在,则比较{Xi}中节点的归一化信任值,选出值最大的节点重新转发该数据包;若不存在,则令W=Y.SetNeighbor-SetConsider,要求全网节点重新评估W中节点的信任值,节点Y按照Trace路径向其上游节点发送NACK; 第16步在NACK被缓存的时限内,如果通过新的可信路径将数据包送达了目的节点,则返回ACK到原节点,路由结束;如果无法找到新的可信路径进行传递,则节点Y继续向上游节点发送NACK; 第17步超出NACK被缓存的时限,则节点Y停止二次选路,继续向上游节点发送NACK; 第18步收到信任评估请求的节点立即令W中节点的(TTL)k=0,启动网络节点信任监测与获取部分,更新路由器的信任扩展表项。
权利要求
1、一种基于容错容侵的IP可信路由实现方法,其特征在于,包括以下步骤
①当数据包传送到某节点时,该节点为发送节点,发送节点选择接收节点投递数据包,然后接收节点通过信任检测和信任扩展路由表展开检测,若无法通过检测,则投递数据包失败并转入步骤②;如果通过检测,则该接收节点接收数据包,路由成功;
②对投递失败的数据包进行路由恢复接收节点向其上游节点即发送节点直接回传否定应答NACK,则发送节点重新进行可信路由选择,在设定的时范围内,如果二次选路成功,则回传肯定应答ACK到源节点,按二次选路投递数据包;如果二次选路失败,则继续向其再上一级节点回传否定应答NACK,如此通过逐级“回传-选路-回传”的方法来实现可信路由恢复;
其中发送节点和接收节点进行双向信任评估,相邻节点和不相邻节点的信任评估策略为统一的信任值评估策略,并对节点信任关系具体化;对发送方而言首先,源节点要确保目的节点的安全可信,其次,发送节点要将数据包投递给可信的节点;对接收方而言任何节点在接收数据包时,不仅要评估直接发送数据包给它的那个相邻节点,还要评估该数据包的源节点,在二者都可信的前提下,才能接收该数据包。
2、根据权利要求1所述的基于容错容侵的IP可信路由实现方法,其特征在于,具体步骤如下
①信任关系定义
G(V,E)是一个给定的IP网络拓扑,其中,V是路由节点集,E是路由链路集;
“A”-“Z”分别表示G网中的节点;
α∈
表示信任系数,用于区分一手、二手信任值对信任值所作贡献的大小,可由用户自行定义;
k表示路由跳数,max_k表示网络最大路由跳数,可由用户自行定义;
TABk表示节点A所维护的关于节点B的总体信任值,其中,A与B之间相距k跳,且它们的取值范围为
,并满足如下关系
__________________(1)
另外,信任值都具有单向性;
f1k、f2k和f3k分别表示归一化的传播延迟、包投递率和吞吐量
__________________(2)
__________________(3)
__________________(4)
ci表示信任加权系数,(th)k表示k跳时的最低信任加权函数值,它们均可由用户自行定义,tk表示k跳信任加权函数
且i∈[1,3]__________________(5)
(TABk)D为节点A所维护的节点B的直接信任值
__________________(6)
(TABk)ID为节点A所维护的节点B的间接信任值
__________________(7)
PAk表示与节点A相距k跳的节点集合,Pi(i=1,2,...d)表示与某节点相邻的d个节点,其中d表示该节点的度数。wi表示某节点与其相邻节点Pi之间的信任权重;
CAB表示节点A所维护的关于节点B的归一化信任值,
Clow是一个阈值,表示网络可以接受的最低归一化信任值;
T_holder表示信任缓存时限,t则表示缓存计时器;
节点集SetConsider、Trace和SetNeighbor分别表示安全路由过程中的已考虑节点集、路由路径和某节点的相邻节点集;
W表示信任值评估请求域,是一个节点集,用于存储要重新评估信任值的节点;
②信任关系初始化
包括以下步骤
步骤1节点A利用信任监测部分,主动监听、搜集全网中其它节点的信息,并对信息进行分析处理。同时启动计时器,初始化(TTL)k=Max_Timer。Max_Timer的大小取决于跳数、网络性能,以ms为单位;
步骤2根据采集到的传播延迟、发包数、收包数和比特数等数据信息,利用公式(2)~(4)求出各节点的归一化延迟、吞吐量和包投递率;
步骤3节点A利用加权/判决模块,根据公式(5)求出各个节点的加权函数,其中,加权系数ci决定了不同函数对一手信任值的不同贡献程度,由用户根据网络现状自行定义;
步骤4同时利用公式(6)进行判决,得出节点在k跳时的一手信任值,其中(th)k是根据用户对不同网络的性能要求,在保证最低通信质量的情况下得出的,是k跳时,网络所能接收的最低加权函数值,如果所得加权函数值不小于该值,则认为此节点是初步可信的,并令直接信任值为1;如果加权函数小于该值,则认为此节点是初步可疑的,并令直接信任值为0;
步骤5根据公式(1)计算出TABk,并储存到信任值路由表的信任值表项之中;由此,IP网络中的每个节点都维护了一个信任值路由表,包括该网中全部节点的初始信任值信息;
步骤6相邻节点之间发送可达性信息,交换各自的可达节点和信任值情况,来自其它节点的信任值就是间接信任值,此时,结合自身信任值路由表中的一手信任值,利用公式(1)计算出可达节点的Tk,再更新自身的信任值路由表;
步骤7时,启动信任监测部分,重新计算节点A、B之间的信任值,更新信任值路由表,回到步骤1;
③IP可信路由实现步骤
第1步数据包经过中间网络到达了某中间节点,不防设该节点为Z,且Trace={A,B,...,Q};
第2步节点Z判断是否有
第3步若有,则停止数据包的传递,向上游节点Q回传NACK,节点Z的路由任务结束;若没有,则表明节点Z还能够进行下一步路由;
第4步节点Z判断其上游节点Q的信任度,是否有CZQ≥Clow;
第5步若有,则k++,并继续判断源节点的信任度;若没有,则缓存该数据包,令(TTL)k=0,立即启动网络节点信任监测与获取部分,对节点Q进行数据采集,更新路由器的信任扩展表项;
第6步节点Z判断源节点A的信任度,是否有CZA≥Clow;
第7步若有,则接收该数据包,令Trace={A,B,...,Q,Z},SetConsider=SetConsider+Q.SetNeighbor;若没有,则将该数据包缓存,令(TTL)k=0,立即启动网络节点信任监测与获取部分,对A节点进行数据采集,更新路由器的信任扩展表项;
第8步节点Z接收数据包后,如果节点Z就是该数据包的目的节点,那么节点Z停止转发,将该数据包经过处理后提交上层,并返回ACK到源节点,路由过程结束;如果节点Z不是该数据包的目的节点,那么节点Z继续寻找可信路径进行转发;
第9步在数据包被缓存的时限内,如果更新后的信任值高于Clow,则节点Z继续路由;如果更新后的信任值仍然低于Clow,则节点Z停止数据包的传送,向源节点发送NACK;
第10步超出数据包被缓存的时限,则节点Z停止数据包的传送,向源节点发送NACK;
第11步中间节点对来自Trace中下游节点的ACK不做任何修改,继续按照Trace向上游发送ACK,直至到达源节点,路由结束;
第12步中间节点收到了来自Trace中下游节点的NACK,不妨令接该中间节点为Y;
第13步节点Y判断该NACK是否是对自己发送数据包的应答;
第14步若是,则停止该NACK的转发,路由结束;若不是,则节点Y缓存该NACK,并判断是否存在节点Xi∈Y.SetNeighbor(i=1,2,...)满足且Xi不是Trace路径中节点Y的下游节点(不防设该节点为V),即Xi≠V。
第15步若存在,则比较{Xi}中节点的归一化信任值,选出值最大的节点重新转发该数据包;若不存在,则令W=Y.SetNeighbor-SetConsider,要求全网节点重新评估W中节点的信任值,节点Y按照Trace路径向其上游节点发送NACK;
第16步在NACK被缓存的时限内,如果通过新的可信路径将数据包送达了目的节点,则返回ACK到原节点,路由结束;如果无法找到新的可信路径进行传递,则节点Y继续向上游节点发送NACK;
第17步超出NACK被缓存的时限,则节点Y停止二次选路,继续向上游节点发送NACK;
第18步收到信任评估请求的节点立即令W中节点的(TTL)k=0,启动网络节点信任监测与获取部分,更新路由器的信任扩展表项。
全文摘要
本发明公开了一种基于容错容侵的IP可信路由实现方法,包括以下步骤①当数据包传送到某节点时,该节点为发送节点,发送节点选择接收节点投递数据包,然后接收节点通过信任检测和信任扩展路由表展开检测,若无法通过检测,则投递数据包失败并转入步骤②;如果通过检测,则该接收节点接受数据包,路由成功;②对投递失败的数据包进行路由恢复。该IP路由的实现过程是安全可信的,在网络遭受恶意攻击或故障时,可以在消耗最少资源的前提下,很快恢复通信。克服了诋毁攻击、两面行为攻击、间隙性攻击和节点故障对网络路由带来的危害,具有较强的容错容侵能力。
文档编号H04L29/06GK101355495SQ20081004602
公开日2009年1月28日 申请日期2008年9月11日 优先权日2008年9月11日
发明者曾婧杰, 阳小龙, 隆克平 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1