发明名称 基于信任的IP网络两阶段容错容侵路由实现方法
摘要 本发明公开了一种基于信任的IP网络两阶段容错容侵路由机制。该机制分为两个阶段:第一阶段为路由发现,即发现多条可信路径;第二阶段为选择最佳路径,即在已发现的路径中选用最佳的进行路由。在第一阶段,本发明利用了乘加混合信任关系评估方法,有效地提高了IP网络路由的容错容侵性能。在第二阶段,通过路径定级策略,使得用户总是使用最佳路由来通信,可以有效地阻止多种针对路径的攻击。此外,本发明还详细描述了一种具有容错容侵性能的信任值的定义、度量、更新和获取方法。
申请公布号 CN101296181B 申请公布日期 2010.12.08
申请号 CN200810045402.8 申请日期 2008.06.26
申请人 电子科技大学 发明人 纪俊杰;阳小龙;隆克平;王进;吴雄飚;林建人
分类号 H04L12/56(2006.01)I;H04L12/26(2006.01)I;H04L1/16(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L12/56(2006.01)I
代理机构 代理人
主权项 1.一种基于信任的IP网络两阶段容错容侵路由实现方法,其特征在于,包括以下步骤:步骤1信任关系的定义、度量与更新:利用T<sub>ij</sub>来表示节点i所维护的关于节点j的信任值,它由两部分组成:一是直接对目标节点进行监测,另一是接收其它相邻节点对它的评价,用式(1)表示T<sub>ij</sub>=a(T<sub>ij</sub>)<sub>D</sub>+(1-a)(T<sub>ij</sub>)<sub>ID</sub>    (1)其中T<sub>ij</sub>取值范围为[0,1],(T<sub>ij</sub>)<sub>D</sub>和(T<sub>ij</sub>)<sub>ID</sub>分别称作直接信任值和间接信任值;α∈[0,1]为用户可以自行调节的常数,目的在于区分直接信任值与间接信任值对T<sub>ij</sub>的不同贡献,直接信任值(T<sub>ij</sub>)<sub>D</sub>取决于用户对特定应用的需求,用式(2)表示(T<sub>ij</sub>)<sub>D</sub>=c<sub>1</sub>f<sub>1</sub>(·)+c<sub>2</sub>f<sub>2</sub>(·)+…+c<sub>i</sub>f<sub>i</sub>(·)+…+(1-c<sub>1</sub>-c<sub>2</sub>-…-c<sub>n-1</sub>)f<sub>n</sub>(·)   (2)其中,c<sub>1</sub>+c<sub>2</sub>+…+c<sub>n</sub>=1,c<sub>i</sub>∈[0,1]为常数,由用户根据各个信任映射函数对信任值的贡献程度来进行设置,n为用户定制的信任映射函数的总个数,f<sub>i</sub>(.)为第i个信任映射函数,各个信任映射函数都是用户自定义的;间接信任值(T<sub>ij</sub>)<sub>ID</sub>是由各个节点之间广播交互而得到的间接信任值信息,用式(3)表示<img file="FSB00000087330300011.GIF" wi="1573" he="210" />其中l是节点i相邻节点的下标,N<sub>i</sub>为与节点i相邻节点的个数,w<sub>il</sub>是一个权值,其具体表述形式如下所示: <img file="FSB00000087330300021.GIF" wi="1884" he="228" />其中,l∈N<sub>i</sub>,当节点本身所维护的关于其它某节点的信任值大于一个特定门限值TH时,就认为该节点是合作的,即完全可信任的,参数constant代表与之处于合作关系时节点所贡献的关于其它节点的间接信任值信息的权重,<img file="FSB00000087330300022.GIF" wi="147" he="86" />表示与之不合作关系时节点所贡献的关于其它节点的间接信任值信息的权重,k为节点l在网络中的节点度数;t表示满足公式(4)中,节点l对节点i的信任值低于门限TH的持续时间;步骤2信任关系获取:1)节点i利用混合监听模块对网络节点j和网络行为进行监测,进而收集节点i的信任映射函数库中函数所需要的参数信息;2)然后根据式(2)来计算直接信任值(T<sub>ij</sub>)<sub>D</sub>;3)节点i接收其它节点传来的关于节点j的间接信任值(T<sub>ij</sub>)<sub>ID</sub>;4)根据式(3)和(4)对(T<sub>ij</sub>)<sub>ID</sub>进行处理;5)而后,根据式(1),并利用已经得到的直接信任值(T<sub>ij</sub>)<sub>D</sub>和间接信任值(T<sub>ij</sub>)<sub>ID</sub>得到信任值T<sub>ij</sub>;6)最后,节点i根据信任值T<sub>ij</sub>决定如何处理节点i,j之间的行为,即如果T<sub>ij</sub>满足用户的信任水平要求i就与j进行业务往来,反之,则相反;7)此外,节点i将T<sub>ij</sub>以间接信任值的身份向其它节点传播;步骤3路由发现:(1)初始化:初始化各个节点间的信任关系;(2)RRM路由发现,RRM路由发现包结构为:RRM={ID<sub>RRM</sub>,A<sub>T</sub>,S<sub>R</sub>}   (5)其中ID<sub>RRM</sub>为与IP相关的标识符,A<sub>T</sub>为信任关系评估策略集合,S<sub>R</sub>为记录所走路径的堆栈存储器,TTL为路径最大长度,T是一个时间参数;当源端 节点RRM消息到达目的节点后,目的节点将逐跳反向发送确认ACK消息,该ACK由三部分组成:ACK={ID<sub>RRM</sub>,S<sub>A</sub>,S<sub>R</sub>}        (6)其中,S<sub>A</sub>为记录ACK反向确认所走路径的堆栈存储器;路由发现步骤如下:1)将TTL字段值减1,若TTL降为0,则路由发现失败重新启动路由发现过程;2)启动定时器T<sub>R</sub>,若路径确认消息ACK返回源节点前T<sub>R</sub>值超过RRM中字段T值,则路由发现失败重新启动路由发现过程;3)源节点s判断所有相邻节点是否有目的节点;4)若有,则根据A<sub>T</sub>中的信任映射函数库对目的节点进行信任评估;若没有,因为M=1,所以节点s只随机地选择一个相邻节点,其中,M为随机选择的相邻节点个数;5)节点s根据自己的信任关系评估策略,即信任映射函数库fs<sub>i</sub>(·)对节点a进行信任关系评估,此时A<sub>T</sub>中的信任映射函数库为fs<sub>i</sub>(·),跳数为0,q只能取值为1,μ<sub>q</sub>=1;6)若节点a满足信任水平要求,节点s向a发送路由请求消息RRM,反之,则随机选择M=1个相邻节点继续执行;7)节点a接收节点s的RRM请求,并判断近期T<sub>C</sub>是否曾接收过相同ID<sub>RRM</sub>的RRM请求,其中,T<sub>C</sub>为避免形成环路而设定的时间周期;8)若是,则有环路产生,节点a丢弃节点s的RRM请求,并使节点s继续随机选择M=1个相邻节点继续执行;若否,继续执行;9)将节点a压入堆栈S<sub>R</sub>中,并将节点a的信任映射函数库与节点s的求并集,并更新A<sub>T</sub>,此刻的A<sub>T</sub>为fs<sub>i</sub>(·)与fa<sub>i</sub>(·)的并集,跳数为1,q取值为1或2,<img file="FSB00000087330300031.GIF" wi="201" he="132" />10)将TTL字段值减1,若TTL降为0,则路由发现失败重新发起路由发现过程,这里假设TTL没有降为0;11)节点a判断所有相邻节点是否有目的节点;12)若有,则根据A<sub>T</sub>中的信任映射函数库对目的节点进行信任评估;若没有,因为M=1,所以节点a随机地选择一个相邻节点,假设该相邻节点为b;13)节点a根据此刻A<sub>T</sub>中的信任关系评估策略集对节点b进行信任关系评估,此刻的信任关系评估策略集为fs<sub>i</sub>(·)与fa<sub>i</sub>(·)的并集,跳数为1,q可以取值为1和2,<img file="FSB00000087330300041.GIF" wi="202" he="128" />14)若节点b满足信任水平要求,节点a向b发送路由请求消息RRM;反之,则节点a继续随机地选择M=1个相邻节点,继续执行;15)节点b接收节点a的RRM请求,并判断近期T<sub>C</sub>是否曾接收过相同ID<sub>RRM</sub>的RRM请求,T<sub>C</sub>为避免形成环路而设定的时间间期;16)若是,则有环路产生,节点b丢弃节点a的RRM请求,并使节点a继续随机选择M=1个相邻节点继续执行;若否,继续执行;17)将节点b压入堆栈S<sub>R</sub>中,并将节点b的信任映射函数库与A<sub>T</sub>中的信任关系策略集求并集,并继续更新A<sub>T</sub>,此刻的A<sub>T</sub>为fs<sub>i</sub>(·),fa<sub>i</sub>(·)与fb<sub>i</sub>(·)的并集,跳数为2,q取值为1,2或3,<img file="FSB00000087330300042.GIF" wi="201" he="128" />18)将TTL字段值减1,若TTL降为0,则路由发现失败重新发起路由发现过程,这里假设TTL没有降为0;19)节点b判断所有相邻节点是否有目的节点;20)若有,则根据A<sub>T</sub>中的信任映射函数库对目的节点进行信任评估;若没有,因为M=1,所以节点a随机地选择一个相邻节点;21)节点b根据此刻A<sub>T</sub>中的信任关系评估策略集对节点d进行信任关系评估,此刻的信任关系评估策略集为fs<sub>i</sub>(·),fa<sub>i</sub>(·)与fb<sub>i</sub>(·)的并集,跳数为2,q取 值为1,2和3,<img file="FSB00000087330300051.GIF" wi="203" he="126" />22)若节点d满足信任水平要求,节点b向d发送路由请求消息RRM;反之,路由发现失败;23)节点d接收节点b的RRM请求,并判断近期T<sub>C</sub>是否曾接收过相同ID<sub>RRM</sub>的RRM请求,T<sub>C</sub>为避免形成环路而设定的时间间期;24)若是,则有环路产生,节点d丢弃节点b的RRM请求;若否,继续执行;25)将节点d压入堆栈S<sub>R</sub>中,并将节点d的信任映射函数库与A<sub>T</sub>中的信任关系策略集求并集,并继续更新A<sub>T</sub>,此刻的A<sub>T</sub>为fs<sub>i</sub>(·),fa<sub>i</sub>(·),fb<sub>i</sub>(·)与fd<sub>i</sub>(·)的并集,跳数为3,q取值为1,2,3或4,<img file="FSB00000087330300052.GIF" wi="202" he="125" />26)目的节点d,根据S<sub>R</sub>中的路径信息,向上一跳节点b回送ACK,并从S<sub>R</sub>中取出栈顶节点d压入堆栈S<sub>A</sub>中;27)节点b收到ACK后,继续向节点b的上一跳节点a回送ACK,并从S<sub>R</sub>中取出此刻栈顶节点b压入堆栈S<sub>A</sub>中;28)节点a收到ACK后,继续向上一跳节点s回送ACK,并从S<sub>R</sub>中取出此刻栈顶节点a压入堆栈S<sub>A</sub>中;29)发现了一条信任路径r={s,a,b,d},路由发现结束;其中源节点s,经中继节点a和b,可以到达目的节点d,节点s的直接信任映射函数库为fs<sub>i</sub>(·),对应的加权系数为cs<sub>i</sub>,其中<img file="FSB00000087330300053.GIF" wi="209" he="114" />其计算直接信任函数的定义为(T<sub>ij</sub>)s<sub>D</sub>=cs<sub>1</sub>fs<sub>1</sub>(·)+cs<sub>2</sub>fs<sub>2</sub>(·)+…+cs<sub>i</sub>fs<sub>i</sub>(·)+…+(1-cs<sub>1</sub>-cs<sub>2</sub>-…-cs<sub>n-1</sub>)fs<sub>n</sub>(·);同理,节点a,b和d的信任映射函数库分别为fa<sub>i</sub>(·),fb<sub>i</sub>(·)和fd<sub>i</sub>(·),对应的加权系数分别为ca<sub>i</sub>,cb<sub>i</sub>和cd<sub>i</sub>,其对应的计算直接信任映射函数的定义分别为:(T<sub>ij</sub>)a<sub>D</sub>=ca<sub>1</sub>fa<sub>1</sub>(·)+ca<sub>2</sub>fa<sub>2</sub>(·)+…+ca<sub>i</sub>fa<sub>i</sub>(·)+…+(1-as<sub>1</sub>-as<sub>2</sub>-…-as<sub>n′-1</sub>)fa<sub>n′</sub>(·),(T<sub>ij</sub>)b<sub>D</sub>=cb<sub>1</sub>fb<sub>1</sub>(·)+cb<sub>2</sub>fb<sub>2</sub>(·)+…+cb<sub>i</sub>fb<sub>i</sub>(·)+…+(1-cb<sub>1</sub>-cb<sub>2</sub>-…-cb<sub>n″-1</sub>)fb<sub>n″</sub>(·)和(T<sub>ij</sub>)d<sub>D</sub>=cd<sub>1</sub>fd<sub>1</sub>(·)+cs<sub>2</sub>fd<sub>2</sub>(·)+…+cd<sub>i</sub>fd<sub>i</sub>(·)+…+(1-cs<sub>1</sub>-cd<sub>2</sub>-…-cd<sub>n′″-1</sub>)fd<sub>n′″</sub>(·),假设M=1,各个节点信任评估策略求并时各个节点的信任映射函数库在A<sub>T</sub>中的权重为 μ<sub>q</sub>,其中<img file="FSB00000087330300061.GIF" wi="303" he="123" />步骤4选择最佳路径:(1)对步骤3发现的n条可信路径,根据用户对最佳的要求,计算其优先级别,即最佳性依次递减存储在优先级缓存P<sub>n</sub>中,其中,P<sub>n</sub>={r1,r2,...,rn};(2)根据用户选用的最佳路径个数G判断此时P<sub>n</sub>中可用路径个数是否大于等于G,一般1≤G≤n,此处不妨假设G=1,且P<sub>n</sub>=P<sub>3</sub>,即P<sub>3</sub>={r1,r2,r3};(3)若是,则选择其中的最佳G条可信路径路由,由P<sub>3</sub>={r1,r2,r3}可知,此处选择r1路径通信;若否则重启路由发现过程;(4)应用A<sub>T</sub>中相应的信任关系评估策略对P<sub>n</sub>中路径进行实时评估;(5)若某时刻路径r1不再满足用户的要求,则将r1从P<sub>3</sub>移除;(6)根据用户选用的最佳路径个数G判断此时P<sub>n</sub>中可用路径个数是否大于等于G;(7)若是,则选择其中的最佳G条可信路径路由,由P<sub>2</sub>={r2,r3}可知,此处选择r2路径通信;若否则重启路由发现过程;(8)若某时刻路径r2也不再满足用户的要求,则将r2从P<sub>2</sub>移除;(9)判断此时Pn中可用路径个数是否大于等于G,此处Pn=P<sub>1</sub>;(10)若是,则选择此时最佳路径通信;若否,则重启路由发现过程;(11)若某时刻路径r3不再满足用户的要求,则将r3从P<sub>1</sub>移除;(12)判断此时Pn中可用路径个数是否大于等于G,此处Pn为空;(13)若是,则选择此时最佳路径通信;若否,则重启路由发现过程;(14)重启步骤3的路由发现过程发现了n’条可信路径,即Pn’={r1,r2,...,rn’};(15)继续执行步骤4中的步骤(1);(16)通信结束。 
地址 610054 四川省成都市建设北路二段4号