基于信任的ip网络两阶段容错容侵路由机制的制作方法

文档序号:7686289阅读:101来源:国知局

专利名称::基于信任的ip网络两阶段容错容侵路由机制的制作方法
技术领域
:本发明涉及通信
技术领域
,具体涉及一种基于信任的IP网络两阶段容错容侵路由才凡制。
背景技术
:网络路由安全是网络安全的重中之重。然而,目前IP网络路由器或只能筒单地发现和接收路由信息不能有效地识別路由相关恶意攻击,或只能阻止有限种类的路由威胁与异常。比如,0SPFv2利用密码和加密的MD5来提高路由安全性;用InternetProtocolSecurity(1PSec)来确保通信的保密性和完整性;用Secure-BGP来保障BGP间确认的正确性;还有其它才支术比如加密等。可是这些技术提高安全性能很有限,比如加密技术很难阻止来自内部的攻击。近来,一些研究者开始利用路由器节点间的信任关系来构建安全路由新框架。正如SergioMarti,PrasannaGanesanandHectorGarcia-Moli_na在文"SPR0UT:P2PRoutingwithSocialNetworks"(刊登在IPTPS2004上)中所提及的,这些基于信任关系的路由策略主要分为两类1、基于源端信任(source—routing)(即乘'〖生)2、基于邀匕一淵M言4壬(hop—by—hoprouting)(民卩力口性)。所谓乘性,即将全局信任以自己为核心,每寻找下一跳时都必须通过源节点的信任关系评估才行。所谓加性,即每选择下一跳节点时只要能通过上一跳节点的信任关系评估策略即可,进而来构建整个信任路径。而这两种方法有各自的优点,也存在不可避免的缺点。比如,前者优点在于每选择下一跳都经过源节点的认可;缺点在于源节点对于非相邻节点监测所评估到的信任值不如对相邻节点监测所评估到的信任值可靠。对于后者,其优缺点正好和乘性方法相反。
发明内容本发明所要解决的技术问题是如何提供一种基于信任的IP网络两阶段容错容侵路由机制,该机制有效的避免了现有技术中所存在的缺陷,有效地提高了路由的容错容侵性能。本发明所提出的技术问题是这样解决的提供一种基于信任的IP网络两阶段容错容侵路由机制,其特征在于,包括以下步骤步骤l信任关系的定义、度量与更新利用Tij来表示节点Z所维护的关于节点)的信任值,它由两部分组成一是直接对目标节点进行监测,一是接收其它相邻节点对它的评价,用式(l)表示;=a(。D+(7-")CP,D(1)其中Tij取值范围为[O,l],(Tij)d和(Tij)ro分别称作直接信任值和间接信任值;cte为用户可以自行调节的常数,目的在于区分直接信任值与间接信任值对Tij的不同贡献,直接信任值(Tij)D取决于用户对特定应用的需求,用式(2)表示(;)d^".)+Gf"')+…+c,S(.)+…+GH—…—c"-》fn(〕(2)其中,Cl+C2—..+C;i=i。cj为常数,由用户根据各个信任映射函数对信任值的贡献程度来进行设置,/2为用户定制的信任映射函数的总个数,n(.)为第/个信任映射函数,各个信任映射函数都是用户自定义的;间接信任值(Tij)ro是由各个节点之间广播交互而得到的间接信任值信息,用式(3)表示(;)/d=^"1>"*^(3)其中/是节点z'相邻节点的下标,7V^为与节点!'相邻节点的个数。wu是一个权值,其具体表述形式如下所示11(4)L2*2,"其中,/e^.。当节点本身所维护的关于其它某节点的信任值大于一个特定门限值77/时,就认为该节点是合作的,即完全可信任的,参数cwwtoW代表与之处于合作关系时节点所贡献的关于其它节点的间接信任值信息的权重,丄+丄2*2,表示与之不合作关系时节点所贡献的关于其它节点的间接信任值信息的权重;步骤2信任关系获取1)节点i利用混合监听模块对网络节点j和网络行为进行监测,进而收集节点i的信任映射函数库中函数所需要的参数信息;2)然后根据式(2)来计算直接信任值(Tij)D;3)节点f接收其它节点传来的关于节点/的间接信任值(Tij)m;4)根据式(3)和(4)对(Tij)ro进行处理;5)而后,根据式(l),并利用已经得到直接信任值(Tij)D和间接信任值(Tij)ro得到信任值ly;6)最后,节点/根据信任值决定如何处理节点/,_/之间的行为,即如果Tg满足用户的信任水平要求!就与进行业务往来,反之,则相反;7)此外,节点i将Tij以间接信任值的身份向其它节点传播;步骤3路由发现(1)初始化初始换各个结点间的信任关系;(2)RRM路由发现,RRM路由发现包结构为RRM—1D薩,At,Sr)(5)其中IDRRM为与IP相关的标识符,AT为信任关系评估策略集合,SR为记录所走路径的堆栈存储器,TTL为路径最大长度,T是一个时间参数;当源端节点RRM消息到达目的节点后,目的节点将逐跳反向发送确认ACK消息,该ACK由三部分组成ACK={IDRRM,SA,SR}(6)路由发现步骤如下1)将TTL字段值减一,若TTL降为O,则路由发现失败重新启动路由发现过程;2)启动定时器Tr,若路径确认消息ACK返回源节点前IV值超过RRM中字段T值,则路由发现失败重新启动路由发现过程;3)源节点s判断所有相邻节点是否有目的节点;4)若有,则根据at中的信任映射函数库对目的节点进行信任评估;若没有,因为M4,所以s只随机地选择一个相邻节点;5)节点s根据自己的信任关系评估策略(即信任映射函数库",(.))对节点a进行信任关系评估,此时at中的信任映射函数库为"iO,跳数为O,q只能取值为l,一。6)若节点a满足信任水平要求,节点s向谈送路由请求消息RRM,反之,则随机选择M4个相邻节点继续执行;7)节点a接收节点s的RRM请求,并判断近期Tc是否曾接收^目同IDrrm的RRM请求;'8)若是,则有环路产生,节点a丟弃节点s的RRM请求,并使节点s继续随机选择M-1个相邻节点继续执行;若否,继续执行;9)将节点a压入堆栈SR中,并将节点a的信任映射函数库与节点s的求并集,并更新At,此刻的at为"iO与"iO的并集,跳数为l,q可以取值为l和2,《=i10)将TTL字段值减一,若TTL降为O,则路由发现失败重新发起路由发现过程(这里假设TTL没有降为0);11)节点a判断所有相邻节点是否有目的节点;12)若有,则根据AT中的信任映射函数库对目的节点进行信任评估;若没有,因为M二1,所以a随机地选择一个相邻节点,假设该相邻节点为b;13)节点a才艮据此刻At中的信任关系评估策略集(此刻为0与(.)的并集)对节点b进行信任关系评估,跳数为l,q可以取值为l和2,1>《=1;《=i14)若节点b满足信任水平要求,节点a向b发送路由请求消息RRM;反之,则节点a继续随机地选择M-1个相邻节点,继续执行;15)节点b接收节点a的RRM请求,并判断近期Tc(Tc为避免形成环路而设定的时间间期)是否曾接收过相同IDRRM的RRM请求;16)若是,则有环路产生,节点b丢弃节点a的RRM请求,并使节点a继续随机选择M-1个相邻节点继续执行;若否,继续执行;17)将节点b压入堆栈SR中,并将节点b的信任映射函数库与AT中的信任关系策略集求并集,并继续更新AT,此刻的AT为"iO,f"iO与f6iO的并集,跳数为2,q可以取值为l,2和3,=1;18)将TTL字段值减一,若TTL降为0,则路由发现失败重新发起路由发现过程(这里假设TTL没有降为O);19)节点b判断所有相邻节点是否有目的节点;20)若有,则根据AT中的信任映射函数库对目的节点进行信任评估;若没有,因为M4,所以a随机地选择一个相邻节点;21)点b根据此刻AT中的信任关系评估策略集(此刻为"iO,";0与"(.)的并集)对节点d进行信任关系评估,跳数为2,q可以取值为l,2和3,^>《=1;22)若节点d满足信任水平要求,节点b向拔送路由请求消息RRM;反之,路由发现失败;23)节点d接收节点b的RRM请求,并判断近期Tc(Tc为避免形成环路而设定的时间间期)是否曾接收过相同IDRRM的RRM请求;24)若是,则有环路产生,节点d丢弃节点b的RRM请求;若否,继续执行;25)将节点d压入堆栈SR中,并将节点d的信任映射函数库与At中的信任关系策略集求并集,并继续更新AT,此刻的AT为"iO,f"iO,f^O与f《0的并集,跳数为3,q可以取值为l,2,3和4,i/^=l;26)目的节点d,根据Sr中的路径信息,向上一跳节点b回送ACK,并从Sr中取出栈顶节点d压入堆栈SA中;27)节点b收到ACK后,继续向节点b的上一跳节点a回送ACK,并从Sr中取出此刻栈顶节点b压入堆栈SA中;28)节点a收到ACK^,继续向上一跳节点s回送ACK,并从Sr中取出此刻栈顶节点a压入堆栈SA中;29)发现了一条信任路径r^s,a,b,d},路由发现结束;其中源节点s,经中继节点a和b,可以到达目的节点d。节点s的直接信任映射函数库为"i(.),对应的加权系数为q,其中玄a,i,其计算直接信任函数的定义为(2^)s。=cs^f&(.)+os2f&(-)+…+c^fSi(.)+…+(1—c&_cs2-----""一;)"n(');同理,节点a,b和d的信任映射函数库分别为f。iO,f6i0和f《0,对应的加^又系数分别为A,4和c《.,其对应的计算直接信任映射函数的定义分别为(;)。D=f。1(.)+Cfl-,f.a2()"1-----Ca;fai()"1-----h(1-,一OS2-----w)ffln'(0,(S.)~=f^(.)+c62f62(.)+…+f4()+…+(1_cZj_c&2-----c&,一)f6n(-)禾口(S.)4=C《f《(.)+OS2f《(.)+…+C《f《(-)+…+(1--C《-----cUf《(-)。假设M=l,各个节点信任评估策略求并时各个节点的信任映射函数库在AT中的权重为L'跳数+1a,其中Z步骤4选择最佳路径(1)对第一阶段发现的n条可信路径,根据用户对最佳的要求,计算其优先级别,即最佳性依次递减存储在优先级緩存Pn中,其中,Pn={rl,r2,...,m};(2)根据用户选用的最佳路径个数G(这里一般l^G^n,此处不妨假设G:l)判断此时Pn(此处Pn=P3,即P产(rl,r2,r3》)中可用路径个数是否大于等于G(此处G=l);(3)若是,则选择其中的最佳G条可信路径路由,由P3-化l,r2,r3》可知,此处选择rl路径通信;若否则重启^各由发现过程;(4)应用AT中相应的信任关系评估策略对Pn中路径进行实时评估;(5)若某时刻路径rl不再满足用户的要求,则将rl从P3移除;(6)根据用户选用的最佳路径个数G判断此时Pn中可用路径个数是否大于等于G;(7)若是,则选择其中的最佳G条可信路径路由。由P2叫r2,r3》可知,此处选择r2路径通信;若否则重启路由发现过程;(8)若某时刻路径r2也不再满足用户的要求,则将r2从P2移除;(9)判断此时Pn(此处Pn=P,)中可用聘4圣个数是否大于等于G;(10)若是,则选择此时最佳路径通信;若否,则重启路由发现过程;(11)若某时刻路径r3不再满足用户的要求,则将r3从P!移除;(12)判断此时Pn(此处Pn为空)中可用路径个数是否大于等于G;(13)若是,则选择此时最佳路径通信;若否,则重启路由发现过程;(14)重启第一阶段的路由发现过程发现了n,条可信路径,即Pn,={rl,r2,...,rn,};...(15)继续执行第二阶段步骤(1);(16)通信结束。通常路由是一个完整的过程,而本发明人为地将路由分为两个阶段。两阶段路由策略,即分为路由发现和选择最佳路径路由两个阶段。路由发现阶段确保生成一定数量满足用户要求的路径;选择最佳路径路由阶段确保所使用的路径总是所发现的可靠路径中最佳的。该策略使得路由动态灵活,有效地提高了路由的容错容侵性能。本发明有许多优点。比如l)在信任值定义与更新方面,具有普遍适用性、可扩展性、多样性、归一化处理和既容错又容侵特性;2)信任关系评估方面,乘加混合方法有许多优越性;3)路由方面a.具有接收端可控性,即接收端可以决定是否接收以及采用何种优先级别接收,可以有效地阻止所有基于兜售消息的攻击,比如DDoS/SPAM/SPIT/SPIM等;b.不可寻迹性,因为中继节点或其它恶意节点即便预知整个通信路径,但它们很难得到整个路径节点双向的信任关系,所以很难循迹;c.两阶段路由使得路由更加动态灵活,可以有效地阻止多种针对路径的攻击;d.可扩展性,可以将本发明的思想、算法和步骤由节点间扩展应用到比如AS之间、0verlay各层之间。图1是直接信任值监测实现图;图2是信任关系获取过程图;图3基于信任的IP网络两阶段容错容侵路由机制流程图;图4是RRM包具体结构;图5是信任评估策略集合AT的组成结构;图6是RRM请求过程示意图;图7是路由确认(ACK)示意图。具体实施方式下面结合附图以及实施例对本发明作进一步的说明。1、信任关系的定义、度量与更新本发明利用Tu来表示节点i所维护的关于节点y的信任值。它由两部分组成一是直接对目标节点进行监测,一是接收其它相邻节点对它的评价。因此,其定义如下定义17;,a(7;.)D+(7-a)(;.)ffl(1)其中Tij取值范围为[O,l],(Tij)D和(TijU分别称作直接信任值和间接信任值;"6[O,l]为用户可以自行调节的常数,目的在于区分直接信任值与间接信任值对Tij的不同贡献。当网络初始化时,我们假定任何节点的信任值都为0.5。直接信任值(Ti》D取决于用户对特定应用的需求。比如,语音业务希望延迟尽可能小,而邮件业务却要求低丢包率。该机制使得用户可以根据自身业务的需求自定义直接-信任值。其定义如下定义2(7;丄、f,(,)+c2f2(.)+…+c,f,(.)+…+(1—。-。一一/)fn(.)(2)其中,Ci+C2+...+Cn=i。。e为常数,可以由用户根据各个信任映射函数对信任值的贡献程度来进行设置。w为用户定制的信任映射函数的总个数,fi(.)为第/个信任映射函数。各个信任映射函数都是用户自定义的,比如可以将第一个函数定义为包投递率,第二个定义为延迟函数,第三个定义为吞吐量函数以及其它的。用户可以根据自己的喜好和对各网络性能指标的关注度,来选取信任映射函数的种类,数量及函数具体实现方式。此外,用户还可以自己决定各个信任映射函数在直接信任值中的权重,即q值,它可以由用户在内调节。当然里面的"l"表示该信任映射函数被选用,"0,,表示未被选用。直接信任值的监测过程如附图中图1所示。间接信任值(Tij)m是由各个节点之间广播交互而得到的间接信任值信息。某些节点对特定节点非常信任,而有的节点却不信任,所以我们要区别对待。它可以定义如下定义3(。,广去'f(3)其中/是节点z'相邻节点的下标,M为与节点z'相邻节点的个数。wn是一个权值,其具体表述形式如下所示z/11(4)其中,/EA^。当节点本身所维护的关于其它某节点的信任值大于一个特定门P艮值7H时,就认为该节点是合作的,即完全可信任的。相反,则反之。公式(4)中参数co/MtoW代表与之处于合作关系时节点所贡献的关于其它节点的间接信任值信息的权重。丄+丄表示与之不合作关系时节点所贡献的关于其它节点的间接信任值信息的权重。公式(4)中A表示节点的度数(即节点的分支数),Z表示一定时器所设定的时间长度。因为即使有些节点被攻击、被控制或自身出现故障,它们发布的间接信任值信息对计算信任值也是有一定积极贡献的。所以,无论是什么样的节点(好或坏),都接收它们发布的间接信任值信息,只是在权重上有所区分。这样既可以充分共享一切有利用价值的信息,又不以牺牲安全性为代价。我们通过权值对下列情形予以区别对待(a)好的节点和不好的节点;(b)节点由于自身故障或;波恶意攻击控制两种情况下所发布的间接信任值的有用性;(c)在节点:被恶意控制或攻击的前提下,该节点的度数较大或较小的不同。2、^各由4几制将路由分为两个阶段第一阶段为路由发现(发现多条路径),第二阶段为选则最佳路径(一条或多条)。这里"最优"是由用户根据自身要求灵活定义的。在路由发现阶段,根据信任评估策略集合生成一定量的路径;在最佳路径选择阶段,源端不断地评估各个活动的路径的性能,进而调整各条路径在可信路径集合Pn中的优先级别,源端总是选择既定数量的高优先级(即最佳)的路径来通信。乘加混合信任路径评估方法'第1部分中讨论的信任主要是维护的相邻节点的信任值,这里我们还要知道非相邻节点间的信任值。对路径评估时,跳数越多信任值就会越低。目前已提出的信任路由机制中,仅仅采用基于源端信任(source-routing)(即乘性)或跳-浪M言任(hop-by-hoprouting)(即加性)中的某一种。所谓乘性,即形如Source-routing:P=T(s,a)*T(s,b)糸T(s,c)*T(s,d),这里s为源端节点、d为目的端节点,a、b、c分别为中继节点,T表示信任值,P表示路径性能。上式并不表示4个部分相乘,它只是逻辑上为乘性关系。即将全局信任以自己为核心,每寻找下一跳时都必须通过源节点s的信任关系评估才行。其优点在于每选择下一跳都经过源节点的认可;缺点在于源节点对于非相邻节点监测所评估到的信任值不如对相邻节点监测所评估到的信任值可靠。所谓加性,即形如hop-by-hop(相力口)P=T(s,a)+T(a,b)+T(b,c)+T(c,d),它也并不是指4个因子简单相加,而是指它们之间是逻辑上的加性关系。即每选择下一跳节点时只要能通过上一跳节点的信任关系评估策略即可,进而来构建整个信任路径。其优缺点正好和乘性方法相反。乘性与加性方法有各自的优缺点。基于此,本发明提出了一种乘性与加性相结合的信任路径评估方法,我们称它为乘加混合方法。乘加混合方法,即将源节点与中继节点的信任关系评估策略求并后作为新的信任关系评估策略。例如,源节点为s,目的节点为d,中继节点为a和b。在路由发现时,首先根据节点a对信任的评估策略来寻找下一跳可信节点。假如找到节点b,则当节点b再继续寻找下一跳可信节点时,b将节点a和b的信任评估策略求并后再作为新的评估策略......。当然,源节点与中继节点各自自身的信任评估策略可能完全不同,也可能部分相同。所以它们之间是求并集。另外,源节点与中继节点的信任评估策略在下一跳节点信任关系评估中所占的权重可以由用户和具体的业务来调整。至于,每个节点各自的信任评估策略各个节点可以针对各自对信任的评价标准自行定义。例如,可以采用第1部分中提出的信任映射函数库来监测获取信任关系。采用这种方法,虽然会增加一定的开销,但是可以避免乘性方法与加性方法各自的缺点,并可充分综合利用乘性与加性各自的优点使得安全性能进一步提高。值得特別说明的是一般随着路径长度的增加,信任程度也会随之下降。^旦如果采用乘加混合方法,那么距离源节点越远的节点所要能通过信任评估的策略越复杂和完备。这样便降低了恶意节点得逞的机会。从而,可以有效地解决随着路径长度增加信任水平下降的难题。此外,值得说明的是,当源端去评估其它节点或路径的信任关系时,其它节点同时也在评估对源节点的信任水平。因为信任的不可传递性和不可逆性,或许存在源端对某节点很信任而该节点却不信任源端节点的情况。即存在节点不愿意为源节点提供中继(即对它不信任),那么源节点会很快4全测到该节点对它不予理会,从而源节点自然会降低对该节点的信任,进而改走其它的路径。利用乘加混合方法完成路由发现,即发现多条信任路径,亦即分两阶段路由策略的第一阶段后,我们开始实施两阶段路由策略的第二阶段。第一阶段路由发现路由初始化时可釆用自动的方式。(可以利用第l部分中信任关系评估实现方法,首先初始化各个结点间的信任关系,为路由发现所用。)信任路由发现中所用的路由发现包结构,我们称它为RRM(ROUTINGREQUESTMESSAGE),它包含的最重要的3部分如定义4所示。定义4RRM={IDRRM,AT,SR}(5)另外,我们还要定义RRM的结构。其结构如附图中图4所示。其中ID,为与IP相关的标识符。AT为信任关系评估策略集合。Sa为记录所走路径的堆栈存储器。TTL为路径最大长度(即跳数),T是一个时间参数。捎带的其它信息可以是其它的RRM、路径更新信息和信任关系变更信息等等,用户可自行设定。其中At的結构如附图中图5所示。RRM不仅在有通信业务时可以触发,当信任关系发生变化、节点信任评估策略发生变化时也进行路由发现,以即时更新路由表。RRM的转发利用带限制的洪泛策略。因为无限制的洪泛不^U曾大了网络开销,还增加了恶意节点攻击成功的可能性。所以,每寻找下一跳时,不但要使得最大路径长度值减l(并判断是否降为零,若为零则路由发现失败,重新路由发现过程),还要随机地将RRM洪泛给固定数量(设为M)的相邻节点。其if各由请求过程如附图中图6所示。当源端节点RRM消息到达目的节点后,目的节点将逐跳反向发送确认(ACK)消息。该ACK的组成结构主要有3部分,其构成如定义5所示。定义5ACKHID^'SaA}(6)每发送一次ACK,则将堆栈SR中栈顶节点弹出并压入堆栈SA中。其示意图如附图中图7所示。因为我们可以对节点所能维护的路径跳数进行约束,即源节点并不能同时得知Sr和Sa,进而不能得知整个路径信息。对于中继节点,所得知的只是不完整的Sr和Sa信息。因为路由发现时随机地在M个相邻节点中寻找下一跳,所以节点如果不知道确切的路径,则存在很强的碰撞性。从而,降低了恶意节点获取到路由信息的成功率。此外,即便恶意节点同时得到了SR和SA,那么恶意节点要取得在整个路径中各个节点的信任是很困难的。从而,进一步增强了安全性。第二阶段选则最佳路径路由发现过程结束后会发现多条路径符合条件。但是,特定节点和业务,可以根据自身要求,将这些路径划定不同的级别。采用其中最佳路径(比如,最信任或最小代价等)。或同时采用几条较佳路径来同时进行通信。这样只要任何一条路径信息到达目标节点即可,进一步提高了消息投递的成功率。此外,我们也可以只用一条最佳路径来通信。同时,我们通过不断地对该业务进行监控,一旦发现通信质量不能满足我们的要求。则自动切换到我们在路由发现阶段所发现的次佳路径。昔时的次佳路径在这时已经是最佳路径了。因为,我们在不停地对这些路径状况进行评估。它们的状况一旦发生变化,那么它们的级别也会相应地发生变化。特别需要指出的是,路由分两阶段策略的两个阶段并不是在时间上完全先后顺次并独立执行的。比如,第二阶段完成并进行了一定的通信业务后,实时地监测到最佳路径优先级的变化,甚至可信任路径集合Pn中含有的可信任的路径的数量不足。那么此刻就会触发路由发现过程,即第一阶段。也就是说,这两个阶段有时候是交互进行的,甚至有交叠。g由机制的总体流程图如附图中图3所示。具体实施例方式信任关系荻取具体实施步骤(1)节点y利用混合监听模块对网络节点y和网络行为进行监测,进而收集节点/的信任映射函数库中函数所需要的^信息;(2)然后根据定义(2)来计算直接信任值(Tij)d;(3)节点/接收其它节点传来的关于节点y的间接信任值(TijU;(4)根据定义(3)和(4)对(Tjm进行处理;(5)而后,根据定义(l),并利用已经得到直接信任值(Tij)。和间接信任值(Ti》m得到信任值Tij;(6)最后,节点/才艮据信任值Tij决定如何处理节点/,y之间的行为,即如果Tij满足用户的信任水平要求7就与y进行业务往来,反之,则相反。(7)此外,节点/将L」以间接信任值的身份向其它节点传播。其信任关系获取过程如附图中图2所示。第一阶段——路由发现的具体实施举例假设存在由源节点s,经中继节点a和b,可以到达目的节点d。节点s的直接信任映射函数库为f《0,对应的加权系数为%,其中玄q.=1,其计算直接信任函数的定义为=fA(.)+a^f<s2(-)+…+c《fO+…+(l-c、-《2-----cs"一》f;同理,节点a,b和d的信任映射函数库分别为f^0,f6i(.)和f《0,对应的加权系数分别为A,^和c《,其对应的计算直接信任映射函数的定义分别为(;)。B=COjfA(')+Cfl2f"2(.)H----+CO,,fa;(.)H-----h(1-fl^-叫-----a^,—7)ffln,(),)&D=c乜f^(.)+c&2f62()+…+fA()+…+(1-dj广c62-----cZ^w)f6n(.)和(g-)=c《f《()+c&fd2()+…+cd,.fA()+',+(1--《-----c《-—,)f《"(.)°假设M=l,各个节点信任评估策略求并时各个节点的信任映射函数库在AT中的权重为跳数+1其中Za"。=1第一阶段一一路由发现步骤1)将TTL字段值减一,若TTL降为O,则路由发现失败重新启动路由发现过程。2)启动定时器L,若路径确认消息ACK返回源节点前L值超过RRM中字段T值,则路由发现失败重新启动路由发现过程。(这里假设没有超时。)3)源节点s判断所有相邻节点是否有目的节点。4)若有,则根据AT中的信任映射函数库对目的节点进行信任评估(假设此处没有目的节点);若没有,因为M4,所以s只随机地选择一个相邻节点。(假设该相邻节点为a)。5)节点s根据自己的信任关系评估策略(即信任映射函数库"i(.))对节点a进行信任关系评估,此时AT中的信任映射函数库为"iO,跳数为0,q只能取值为l,1。6)若节点a满足信任水平要求,节点s向a发送路由请求消息RRM,反之,则随机选择M-1个相邻节点继续执行。(此处假设节点a满足要求。)7)节点a接收节点s的RRM请求,并判断近期Te(Te为避免形成环路而设定的时间间期)是否曾接收过相同I队服的RRM请求。8)若是,则有环路产生,节点a丟弃节点s的RRM请求,并使节点s继续随机选择M-1个相邻节点继续执行;若否,继续执行。(此处假设无环路产生。)9)将节点a压入堆栈SK中,并将节点a的信任映射函数库与节点s的求并集,并更新At,此刻的AT为f^(.)与f"iO的并集,跳数为l,q可以取值为l和10)将TTL字4史值减一,若TTL降为O,则路由发现失败重新发起路由发现过程(这里假设TTL没有降为0)。11)节点a判断所有相邻节点是否有目的节点。12)若有,則根据At中的信任映射函数库对目的节点进行信任评估(假_没此处没有目的节点);若没有,因为M-l,所以a随机地选择一个相邻节点,布支设该相邻节点为b。13)节点a才艮据此刻At中的信任关系评估策略集(此刻为f、0与f&0的并集)对节点b进行信任关系评估,跳数为l,q可以取值为l和2,^>《=1。14)若节点b满足信任水平要求,节点a向b发送路由请求消息RRM;反之,则节点a继续随机地选择M4个相邻节点,继续执行。(此处假设节点b满足要求。)15)节点b接收节点a的RRM请求,并判断近期T。(T。为避免形成环路而设定的时间间期)是否曽接收过相同ID咖的RRM请求。16)若是,则有环路产生,节点b丟弃节点a的RRM请求,并使节点a继续随机选择M-1个相邻节点继续执行;若否,继续执行。(此处假设无环路产生。)17)将节点b压入堆栈SR中,并将节点b的信任映射函数库与AT中的信任关系策略集求并集,并继续更新AT,此刻的AT为f^0,faiO与"iO的并集,跳数为2,q可以取值为l,2和3,j>《=1。18)将TTL字段值减一,若TTL降为O,则路由发现失败重新发起路由发现过程(这里々i设TTL没有降为0)。19)节点b判断所有相邻节点是否有目的节点。20)若有,则根据AT中的信任映射函数库对目的节点进行信任评估(假设此处有目的节点d);若没有,因为KKL,所以a随机地选择一个相邻节点。21)点b根据此刻At中的信任关系评估策略集(此刻为fSi(),f&(.)与f(.)的并集)对节点d进行信任关系评估,跳数为2,q可以取值为l,2和3,《=i:-.22)若节点d满足信任水平要求,节点bfed发送路由请求消息RRM;反之,路由发现失败。(此处假设节点d满足要求。)23)节点d接收节点b的RRM请求,并判断近期T。(Tc为避免形成环路而设定的时间间期)是否曾接收过相同IDrrm的RRM清求。24)若是,则有环路产生,节点d丟弃节点b的RRM请求;若否,继续执行。(此处假设无环路产生。)25)将节点d压入堆栈SR中,并将节点d的信任映射函数库与AT中的信任关系策略集求并集,并继续更新AT,此刻的AT为f&0,f"iO,fZ^.)与f《0的并集,跳数为3,q可以取值为l,2,3和4,|>9=1。26)目的节点d,根据Sr中的路径信息,向上一跳节点b回送ACK,并从Sr中取出栈顶节点d压入堆栈SA中。27)节点b收到ACK后,继续向节点b的上一跳节点a回送ACK,并从Sr中取出此刻栈顶节点b压入堆栈SA中。28)节点a收到ACK后,继续向上一跳节点s回送ACK,并从SR中取出此刻栈顶节点a压入堆栈SA中。29)发现了一条信任路径r—s,a,b,d},路由发现结束。第二阶段一一选则最佳路径具体实施步骤1)对第一阶段发现的n条可信路径,根据用户对最佳的要求,计算其优先级别,即最佳性依次递减存储在优先级缓存P中。其中,Pn={rl,r2,…,rn)。(这里假设发现了3条可信路径,即P3={rl,r2,r3)。)2)根据用户选用的最佳路径个数G(这里一般1《G《n,此处不妨假设GO判断此时PJ此处Pn=P3,即P3={rl,r2,r3})中可用路径个数是否大于等于G(此处G=l)。3)若是,则选择其中的最佳G(这里G-l)条可信路径路由。由P3={rl,r2,r3}可知,此处选择rl路径通信;若否则重启路由发现过程。4)应用AT中相应的信任关系评估策略对Pn中路径进行实时评估。5)若某时刻路径rl不再满足用户的要求,则将rl从Pd多除(假设此刻路径rl不再满足要求)。6)根据用户选用的最佳路径个数G(这里G-l)判断此时PJ此处Pn=P2,即P2={r2,r3})中可用路径个数是否大于等于G(此处G=l)。7)若是,则选择其中的最佳G(这里GO条可信路径路由。由P2={r2,r3}可知,此处选择r2路径通信;若否则重启路由发现过程。8)若某时刻路径r2也不再满足用户的要求,则将r2从P:移除(假设此刻路径r2不再满足要求)。9)判断此时Pn(此处Pn=PJ中可用路径个数是否大于等于G(此处G=l)。10)若是,则选择此时最佳路径通信;若否,则重启路由发现过程。(此处,我们的假设表明该改用r3进行通信。此时P产(r3}。)11)若某时刻路径r3不再满足用户的要求,则将r3从Pi移除。(假设此刻路径r3不再满足要求)。l2)判断此时Pn(此处Pn为空)中可用路径个数是否大于等于G(此处G=l)。13)若是,则选择此时最佳路径通信;若否,则重启路由发现过程。(此处,我们的假设表明判断此时Pn(此处Pn中路径个数为0)中可用路径个数小于G(此处G-1)。所以重启路由发现过程。)14)重启第一阶段的路由发现过程发现了n,条可信路径,即Pn,={rl,r2,…,rn,}。15)继续执行第二阶段步骤1)。16)通信结束。权利要求1、一种基于信任的IP网络两阶段容错容侵路由机制,其特征在于,包括以下步骤步骤1信任关系的定义、度量与更新利用Tij来表示节点i所维护的关于节点j的信任值,它由两部分组成一是直接对目标节点进行监测,一是接收其它相邻节点对它的评价,用式(1)表示Tij=a(Tij)D+(1-a)(Tij)ID(1)其中Tij取值范围为,(Tij)D和(Tij)ID分别称作直接信任值和间接信任值;α∈为用户可以自行调节的常数,目的在于区分直接信任值与间接信任值对Tij的不同贡献,直接信任值(Tij)D取决于用户对特定应用的需求,用式(2)表示(Tij)D=c1f1(·)+c2f2(·)+…+cifi(·)+…+(1-c1-c2-…-cn-1)fn(·)(2)其中,c1+c2+…+cn=1。ci∈为常数,由用户根据各个信任映射函数对信任值的贡献程度来进行设置,n为用户定制的信任映射函数的总个数,fi(.)为第i个信任映射函数,各个信任映射函数都是用户自定义的;间接信任值(Tij)ID是由各个节点之间广播交互而得到的间接信任值信息,用式(3)表示<mathsid="math0001"num="0001"><math><![CDATA[<mrow><msub><mrow><mo>(</mo><msub><mi>T</mi><mi>ij</mi></msub><mo>)</mo></mrow><mi>ID</mi></msub><mo>=</mo><mfrac><mn>1</mn><msub><mi>N</mi><mi>i</mi></msub></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>l</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>l</mi><mo>=</mo><msub><mi>N</mi><mi>i</mi></msub></mrow></munderover><msub><mi>w</mi><mi>il</mi></msub><mo>*</mo><msub><mi>T</mi><mi>lj</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math></maths>其中l是节点i相邻节点的下标,Ni为与节点i相邻节点的个数。wil是一个权值,其具体表述形式如下所示<mathsid="math0002"num="0002"><math><![CDATA[<mrow><msub><mi>w</mi><mi>il</mi></msub><mo>=</mo><mfencedopen='{'close=''><mtable><mtr><mtd><mi>cons</mi><mi>tan</mi><mi>t</mi><mo>,</mo><mo>&ForAll;</mo><msub><mi>T</mi><mi>il</mi></msub><mo>&GreaterEqual;</mo><mi>TH</mi></mtd></mtr><mtr><mtd><mfrac><mn>1</mn><msup><mn>2</mn><mi>k</mi></msup></mfrac><mo>+</mo><mfrac><mn>1</mn><msup><mn>2</mn><mi>t</mi></msup></mfrac><mo>,</mo><mo>&ForAll;</mo><msub><mi>T</mi><mi>il</mi></msub><mo>&lt;</mo><mi>TH</mi></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math></maths>其中,l∈Ni。当节点本身所维护的关于其它某节点的信任值大于一个特定门限值TH时,就认为该节点是合作的,即完全可信任的,参数constant代表与之处于合作关系时节点所贡献的关于其它节点的间接信任值信息的权重,id="icf0003"file="A2008100454020003C2.tif"wi="12"he="7"top="81"left="23"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>表示与之不合作关系时节点所贡献的关于其它节点的间接信任值信息的权重;步骤2信任关系获取1)节点i利用混合监听模块对网络节点j和网络行为进行监测,进而收集节点i的信任映射函数库中函数所需要的参数信息;2)然后根据式(2)来计算直接信任值(Tij)D;3)节点i接收其它节点传来的关于节点j的间接信任值(Tij)ID;4)根据式(3)和(4)对(Tij)ID进行处理;5)而后,根据式(1),并利用已经得到直接信任值(Tij)D和间接信任值(Tij)ID得到信任值Tij;6)最后,节点i根据信任值Tij决定如何处理节点i,j之间的行为,即如果Tij满足用户的信任水平要求i就与j进行业务往来,反之,则相反;7)此外,节点i将Tij以间接信任值的身份向其它节点传播;步骤3路由发现(1)初始化初始化各个节点间的信任关系;(2)RRM路由发现,RRM路由发现包结构为RRM={IDRRM,AT,SR}(5)其中IDRRM为与IP相关的标识符,AT为信任关系评估策略集合,SR为记录所走路径的堆栈存储器,TTL为路径最大长度,T是一个时间参数;当源端节点RRM消息到达目的节点后,目的节点将逐跳反向发送确认ACK消息,该ACK由三部分组成ACK={IDRRM,SA,SR}(6)路由发现步骤如下1)将TTL字段值减一,若TTL降为0,则路由发现失败重新启动路由发现过程;2)启动定时器TR,若路径确认消息ACK返回源节点前TR值超过RRM中字段T值,则路由发现失败重新启动路由发现过程;3)源节点s判断所有相邻节点是否有目的节点;4)若有,则根据AT中的信任映射函数库对目的节点进行信任评估;若没有,因为M=1,所以s只随机地选择一个相邻节点;5)节点s根据自己的信任关系评估策略(即信任映射函数库fsi(·))对节点a进行信任关系评估,此时AT中的信任映射函数库为fsi(·),跳数为0,q只能取值为1,μq=1。6)若节点a满足信任水平要求,节点s向a发送路由请求消息RRM,反之,则随机选择M=1个相邻节点继续执行;7)节点a接收节点s的RRM请求,并判断近期TC是否曾接收过相同IDRRM的RRM请求;8)若是,则有环路产生,节点a丢弃节点s的RRM请求,并使节点s继续随机选择M=1个相邻节点继续执行;若否,继续执行;9)将节点a压入堆栈SR中,并将节点a的信任映射函数库与节点s的求并集,并更新AT,此刻的AT为fsi(·)与fai(·)的并集,跳数为1,q可以取值为1和2,<mathsid="math0003"num="0003"><math><![CDATA[<mrow><munderover><mi>&Sigma;</mi><mrow><mi>q</mi><mo>=</mo><mn>1</mn></mrow><mn>2</mn></munderover><msub><mi>&mu;</mi><mi>q</mi></msub><mo>=</mo><mn>1</mn><mo>;</mo></mrow>]]></math></maths>10)将TTL字段值减一,若TTL降为0,则路由发现失败重新发起路由发现过程(这里假设TTL没有降为0);11)节点a判断所有相邻节点是否有目的节点;12)若有,则根据AT中的信任映射函数库对目的节点进行信任评估;若没有,因为M=1,所以a随机地选择一个相邻节点,假设该相邻节点为b;13)节点a根据此刻AT中的信任关系评估策略集(此刻为fsi(·)与fai(·)的并集)对节点b进行信任关系评估,跳数为1,q可以取值为1和2,<mathsid="math0004"num="0004"><math><![CDATA[<mrow><munderover><mi>&Sigma;</mi><mrow><mi>q</mi><mo>=</mo><mn>1</mn></mrow><mn>2</mn></munderover><msub><mi>&mu;</mi><mi>q</mi></msub><mo>=</mo><mn>1</mn><mo>;</mo></mrow>]]></math>id="icf0005"file="A2008100454020005C1.tif"wi="16"he="10"top="67"left="149"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>14)若节点b满足信任水平要求,节点a向b发送路由请求消息RRM;反之,则节点a继续随机地选择M=1个相邻节点,继续执行;15)节点b接收节点a的RRM请求,并判断近期TC(TC为避免形成环路而设定的时间间期)是否曾接收过相同IDRRM的RRM请求;16)若是,则有环路产生,节点b丢弃节点a的RRM请求,并使节点a继续随机选择M=1个相邻节点继续执行;若否,继续执行;17)将节点b压入堆栈SR中,并将节点b的信任映射函数库与AT中的信任关系策略集求并集,并继续更新AT,此刻的AT为fsi(·),fai(·)与fbi(·)的并集,跳数为2,q可以取值为1,2和3,<mathsid="math0005"num="0005"><math><![CDATA[<mrow><munderover><mi>&Sigma;</mi><mrow><mi>q</mi><mo>=</mo><mn>1</mn></mrow><mn>3</mn></munderover><msub><mi>&mu;</mi><mi>q</mi></msub><mo>=</mo><mn>1</mn><mo>;</mo></mrow>]]></math>id="icf0006"file="A2008100454020005C2.tif"wi="16"he="10"top="153"left="86"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>18)将TTL字段值减一,若TTL降为0,则路由发现失败重新发起路由发现过程(这里假设TTL没有降为0);19)节点b判断所有相邻节点是否有目的节点;20)若有,则根据AT中的信任映射函数库对目的节点进行信任评估;若没有,因为M=1,所以a随机地选择一个相邻节点;21)点b根据此刻AT中的信任关系评估策略集(此刻为fsi(·),fai(·)与fbi(·)的并集)对节点d进行信任关系评估,跳数为2,q可以取值为1,2和3,<mathsid="math0006"num="0006"><math><![CDATA[<mrow><munderover><mi>&Sigma;</mi><mrow><mi>q</mi><mo>=</mo><mn>1</mn></mrow><mn>3</mn></munderover><msub><mi>&mu;</mi><mi>q</mi></msub><mo>=</mo><mn>1</mn><mo>;</mo></mrow>]]></math>id="icf0007"file="A2008100454020005C3.tif"wi="16"he="10"top="222"left="165"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>22)若节点d满足信任水平要求,节点b向d发送路由请求消息RRM;反之,路由发现失败;23)节点d接收节点b的RRM请求,并判断近期TC(TC为避免形成环路而设定的时间间期)是否曾接收过相同IDRRM的RRM请求;24)若是,则有环路产生,节点d丢弃节点b的RRM请求;若否,继续执行;25)将节点d压入堆栈SR中,并将节点d的信任映射函数库与AT中的信任关系策略集求并集,并继续更新AT,此刻的AT为fsi(·),fai(·),fbi(·)与fdi(·)的并集,跳数为3,q可以取值为1,2,3和4,<mathsid="math0007"num="0007"><math><![CDATA[<mrow><munderover><mi>&Sigma;</mi><mrow><mi>q</mi><mo>=</mo><mn>1</mn></mrow><mn>4</mn></munderover><msub><mi>&mu;</mi><mi>q</mi></msub><mo>=</mo><mn>1</mn><mo>;</mo></mrow>]]></math>id="icf0008"file="A2008100454020006C1.tif"wi="16"he="10"top="67"left="115"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>26)目的节点d,根据SR中的路径信息,向上一跳节点b回送ACK,并从SR中取出栈顶节点d压入堆栈SA中;27)节点b收到ACK后,继续向节点b的上一跳节点a回送ACK,并从SR中取出此刻栈顶节点b压入堆栈SA中;28)节点a收到ACK后,继续向上一跳节点s回送ACK,并从SR中取出此刻栈顶节点a压入堆栈SA中;29)发现了一条信任路径r={s,a,b,d},路由发现结束;其中源节点s,经中继节点a和b,可以到达目的节点d。节点s的直接信任映射函数库为fsi(·),对应的加权系数为csi,其中<mathsid="math0008"num="0008"><math><![CDATA[<mrow><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>cs</mi><mi>i</mi></msub><mo>=</mo><mn>1</mn><mo>,</mo></mrow>]]></math>id="icf0009"file="A2008100454020006C2.tif"wi="17"he="8"top="156"left="118"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>其计算直接信任函数的定义为(Tij)sD=cs1fs1(·)+cs2fs2(·)+…+csifsi(·)+…+(1-cs1-cs2-…-csn-1)fsn(·);同理,节点a,b和d的信任映射函数库分别为fai(·),fbi(·)和fdi(·),对应的加权系数分别为cai,cbi和cdi,其对应的计算直接信任映射函数的定义分别为(Tij)aD=ca1fa1(·)+ca2fa2(·)+…+caifai(·)+…+(1-as1-as2-…-asn′-1)fan′(·),(Tij)bD=cb1fb1(·)+cb2fb2(·)+…+cbifbi(·)+…+(1-cb1-cb2-…-cbn″-1)fbn″(·)和(Tij)dD=cd1fd1(·)+cs2fd2(·)+…+cdifdi(·)+…+(1-cs1-cd2-…-cdn″′-1)fn″′(·)。假设M=1,各个节点信任评估策略求并时各个节点的信任映射函数库在AT中的权重为μq,其中id="icf0010"file="A2008100454020006C3.tif"wi="24"he="10"top="224"left="42"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>步骤4选择最佳路径(1)对第一阶段发现的n条可信路径,根据用户对最佳的要求,计算其优先级别,即最佳性依次递减存储在优先级缓存Pn中,其中,Pn={r1,r2,...,rn};(2)根据用户选用的最佳路径个数G(这里一般1≤G≤n,此处不妨假设G=1)判断此时Pn(此处Pn=P3,即P3={r1,r2,r3})中可用路径个数是否大于等于G(此处G=1);(3)若是,则选择其中的最佳G条可信路径路由,由P3={r1,r2,r3}可知,此处选择r1路径通信;若否则重启路由发现过程;(4)应用AT中相应的信任关系评估策略对Pn中路径进行实时评估;(5)若某时刻路径r1不再满足用户的要求,则将r1从P3移除;(6)根据用户选用的最佳路径个数G判断此时Pn中可用路径个数是否大于等于G;(7)若是,则选择其中的最佳G条可信路径路由。由P2={r2,r3}可知,此处选择r2路径通信;若否则重启路由发现过程;(8)若某时刻路径r2也不再满足用户的要求,则将r2从P2移除;(9)判断此时Pn(此处Pn=P1)中可用路径个数是否大于等于G;(10)若是,则选择此时最佳路径通信;若否,则重启路由发现过程;(11)若某时刻路径r3不再满足用户的要求,则将r3从P1移除;(12)判断此时Pn(此处Pn为空)中可用路径个数是否大于等于G;(13)若是,则选择此时最佳路径通信;若否,则重启路由发现过程;(14)重启第一阶段的路由发现过程发现了n’条可信路径,即Pn’={r1,r2,...,rn’};(15)继续执行第二阶段步骤(1);(16)通信结束。全文摘要本发明公开了一种基于信任的IP网络两阶段容错容侵路由机制。该机制分为两个阶段第一阶段为路由发现,即发现多条可信路径;第二阶段为选择最佳路径,即在已发现的路径中选用最佳的进行路由。在第一阶段,本发明利用了乘加混合信任关系评估方法,有效地提高了IP网络路由的容错容侵性能。在第二阶段,通过路径定级策略,使得用户总是使用最佳路由来通信,可以有效地阻止多种针对路径的攻击。此外,本发明还详细描述了一种具有容错容侵性能的信任值的定义、度量、更新和获取方法。文档编号H04L12/56GK101296181SQ20081004540公开日2008年10月29日申请日期2008年6月26日优先权日2008年6月26日发明者吴雄飚,林建人,进王,纪俊杰,阳小龙,隆克平申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1