朱 颖,朱金荣,时壮壮,徐思韵,夏长权
(扬州大学 物理科学与技术学院,江苏 扬州 225000)
AODV路由协议是按需的一种路由协议,该协议是DSR(Dynamic Source Routing)和DSDV(Destination-Sequenced Distance-Vector Routing)的结合体。网络的运行需要移动节点的相互配合,在此期间既存在正常节点,也存在恶意节点。为确保网络正常运转,需要将路由协议的安全放在首位[1]。Ad Hoc网络目前存在3类安全威胁[2]:1)针对网络本身的攻击;2)针对链路的攻击;3)针对终端的攻击。现有技术针对这3类攻击有对应的解决方法,虽然这些方法能够抵御网络系统的外部攻击,但不能有效解决内部攻击问题。当前,需要一种能够解决网络内部攻击问题的方法,即设计一个基于信任机制[3-4]的最短路径TAODV路由协议。该协议提出一个信任值计算模型,对每个节点的信任值进行相应计算,并引入信任度,对常见的内部攻击提出抵抗策略。综上,可以判断出每个路径上的信任值,最终寻找到一条最短路径。仿真实验结果表明,改进后的路由协议进一步增强了网络的安全性与稳定性。
信任是人类社会的一种自然属性,并不存在权威和统一定义[5]。基本的信任模型有两种,分别是节点信任模型[6]和数据信任模型[7]。据相关统计,截止到2021年,人们对信任的定义已多达100多种。信任的性质分为主观性、关联性以及传递性,同时,存在部分的客观性,而连接信任值模型的就是节点之间的互信任值[8]。设计一个信任值模型,首先需要判断节点之间的互信任值,此时会存在一定几率的恶意节点,需要将这类节点进行隔绝,节点才能够选择出排除恶意节点的正常节点。同时,将路由探索以及网络资源内部的消耗考虑在内,模型选用本地的直接信任方式。
如图1所示,框架结构存在5类模块,分别是运算模块、比较模块、分类模块、更新模块和监测模块。运算模块是通过Beth公式进行信任值的计算,比较模块是将邻居节点与信任阈值进行比较。分类模块是将符合标准的路由节点与不符合标准的路由节点进行分类。监测模块对路由协议进行监测,当邻居节点的信任值小于信任阈值时,将其拉入恶意节点黑名单并隔绝该节点,同时重新进行节点分类,更新分类好的节点信任值,并再一次运算信任值、比较、分类和监测操作。由于网络传输的开始阶段存在传输错误,所以选取小于1/2的值作为信任值阈值,随后,恶意节点的通信失败次数增多,当网络逐渐稳定状态时采用稍大于1/2的值作为信任值阈值。在路由选择路径的途中以节点信任值给出的输出报表为基础,在排除恶意节点的前提下,利用本文设计的基于信任机制TAODV从多条可供选择的路径中选择平均信任值最优的一条路径,从而获取一条从源节点到目的节点的最短路径。
图1 基于信任值模型的框架结构Figure 1. Framework based on trust value model
在数学领域中,二项式分布是n次重复的伯努利实验,贝塔分布则是伯努利分布和二项式分布的共轭先验分布密度,该节点交互成功的概率取决于先验分布和后验分布,其这两种分布均保持贝塔分布的形式,模型比较复杂。高斯分布也称正态分布,其缺点是需要使用完整的样本信息来预测,并且模糊程度较低。Beth模型可以处理分类任务,适合增量式训练,对缺失数据不太敏感,算法也比较简单,因此本文采用Beth计算模型。Beth模型使用算数平均的方式来计算邻居节点信任值,本文采用Beth模型中的简单算术平均方式来计算邻居节点信任值。样本容量记作M,节点i和节点j互相交互M次。在节点i与节点j进行通信时,用y表示成功的次数,用n表示失败的次数。节点i对节点j信任值的计算式如式(1)所示。
(1)
式(2)为该信任值模型的相关计算式。通过控制报文(记作ch)中的信任值tch(i,j)来判断节点j周围存在这一跳范围内的邻居节点i的可能性,此时作为邻居节点的i是恶意节点的概率较低,所以可以将其权值略微调低。通过路由报文(记作cp)能够算出节点i相对于节点j的信任值tcp(i,j)。考虑到在通信过程中可能存在的其他问题,在实际应用中将tcp(i,j)的权值调整为计算值的1.1倍。
trust(i,j)=wk×tch(i,j)+wp×tcp(i,j)
(2)
当节点i与节点j之间尚未存在通讯记录时,若存在未知的新节点添加进Ad Hoc网络中或存在某个节点从原来位置略微调整至其他位置,需要给新节点的初始信任值赋值为1/2,赋值过大将影响其他节点之间的信任值,赋值过小则未起到相关作用。随着时间推移,两者之间的信任值会伴随相互的交流逐渐稳定,并趋于一个值。同时设置一个阈值来判断存在信任值低于阈值的恶意节点的可能性,若发现存在恶意节点则先广播这条错误预警,并排除该节点,确保节点之间都是正常节点。工作流程如图2所示。
图2 节点信任值流程Figure 2. Flow of node trust value
在AODV路由协议的路由选择中,对于相同的RREQ(Route Request)报文,每个节点只能接收一次。当第二次接收到RREQ报文时,该报文将被舍弃。基于该机制,在到达目的节点的路由路径不止一条的情况下,目的节点只会对首个到达的请求做出应答,随着该请求被应答,该请求信息会被舍弃。导致最后从源节点到达目的节点的路径只存在一条,但该条路径却不是最可靠的。因此,为了显示出信任值对路径选择的影响,在路由选择的过程中应该建立不止一条的备选路由路径[9],从而选择出最优路径。
各个路径在备选路由建立路径的途中都各自保留自身的信任值,所以在确定最优路由时,可以通过信任值进行相应的衡量,同时还需将序列号以及跳数的大小一并考虑在内。序列号和跳数越大,信任值越低。规则如下:
1)备选路由路径的目的节点序列号需大于路由表中的路由序列号;
2)当备选路由路径的目的节点序列号与路由表中的路由序列号一致时,备选路由的信任值更大;
3)当备选路由路径的目的节点序列号与路由信任值同路由表中该路由的参数均一致时,备选路由所在的跳数更小。
目的节点在初始时遵守先进先出的原则来决定应答的先后顺序,后续如果发现其他路由请求将以路由请求信任值的大小判断先后顺序,信任值高的路由请求拥有优先权。而邻居节点在接收到路由应答时,会对两者之间的信任值进行比较,前者是其对上一跳节点的信任值,后者是当前路由应答的路径信任值[10]。如果前者的信任值小于后者的信任值,那么路由应答的信任值将由前者取代,持续进行,直至原路返回源节点。所以,路由应答中的路径信任值具有关键性作用。
该协议的源身是AODV路由协议,是以信任机制为基础对AODV路由协议进行一定优化。所以在路由发现和路由维护两方面和AODV路由协议基本保持一致,其中的区别是每个路由节点在运作过程前均需使用信任模型进行运算、比较、分类以及监测。若被监测为恶意节点就舍弃该节点,反之继续运行。该协议选取路径节点序列号较大、跳数较小同时信任值较大的路径作为从源节点到目的节点的路径,可以得出一条最优路径,同时路径具有高可靠性。
以AODV路由协议为基础,在此基础上添加路径信任值的栏目可以得到TAODV路由协议的路由请求分组格式以及路由应答分组格式,如图3和图4所示。如果在通信过程中,中间节点与邻居节点的信任值更大,则以中间节点为准,取代路由中的路径信任值。
图3 TAODV路由请求格式Figure 3. TAODV routing request format
图4 TAODV路由应答格式Figure 4. TAODV route response format
TAODV对常见的几类[11-12]恶意行为提出了对应的抵抗措施,确保节点能够进行安全监测,同时选择信任值高的节点可以在一定程度上增强网络的安全性[13]。
2.2.1 DoS攻击安全监测
AODV在发起路由请求时采用泛洪的方式,该方式较消耗网络资源,易引发链路断裂。链路断裂的原因可能是受到DoS(Denial of Service)攻击,也可能是节点高速移动的影响,所以AODV采取了相关措施进行管理控制。在改进的路由协议中,TAODV路由协议限制了单位时间里节点的发送数量。具体措施表现为每秒钟每个节点发出的RREQ消息的次数要小于RREQ_RATELIMIT次,同时源节点需要遵循二的幂次递减原则。源节点采取换搜索的方式进行泛洪,依次增加搜索的半径,当超过规定的阈值后进行全局搜索。
2.2.2 序列号攻击的安全监测
在AODV路由协议中,路由的新鲜程度由节点的序列号决定,序列号越大,该节点越新鲜。所以在路由控制报文中,序列号较大的目的节点可以优先被选用,从而形成一条从源节点到目的节点的路径。
但恶意节点可以擅自修改自身的节点序列号,而且会将自身的节点序列号修改为较大的序列号达到欺骗效果。为了监测该类攻击,设置一个阈值[14],当邻居节点收到报文时,将目的节点序列号与节点存储的对应的序列号进行对比,若超过则表明发生了序列号攻击。阈值选取序列号常规增加的最大范围是RREQ_RATELIMIT同网络总节点数的乘积。
归一化路由开销用来衡量到达目的节点的代价,其值是两点之间某条路径上所有链路开销的总和,而最小路径开销是达到目的点的最佳路径。跳数是指从源节点到达目的节点所经历节点的个数,而最小跳数是指从源节点到达目的节点所经历的最小跳数。路径是指从源节点到达目的节点所有路段的总和,而最优路径指从源节点到达目的节点所经历的最短的路径长度。为了有效评估TAODV路由协议的性能[15-16],使用仿真软件MATLAB对AODV路由协议和TAODV路由协议从归一化路由开销、最小跳数和最短路径这3个方面依次进行对比实验,从而寻找到一条最优路径。对于给定的路由节点,依次进行无信任机制的AODV路由协议仿真和有信任机制的TAODV路由协议仿真,得出两者之间的归一化路由开销对比图、最小跳数对比图以及最短路径对比图。各个节点信任值的目标结果体现在路由协议的性能上。由于在网络安全方面还存在缺口,所以需要将信任值考虑在内。信任度的指标代指信任值阈值。通过对不同数值的路由节点数进行仿真实验,例如10、20、30、50、100、300、500,进行多组对比实验,从而得出结论。
如图5所示,在路由节点个数相同时,TAODV路由协议的归一化路由开销总体小于AODV路由协议。当TAODV的路由节点数由10个增加至20个时,路由开销却有减少的趋势。这是因为在这个节点数量区间时,Beth算法限制了RREQ的最大传输范围,丢弃了一部分超出范围的不必要控制分组。当路由节点数小于50时,TAODV路由协议的归一化路由开销明显小于AODV路由协议,最高可相差近0.55。原因是AODV在节点运行的过程中容易受到各种恶意节点的攻击[17],从而增加了路由开销,而TAODV路由协议采用信任机制,可以应对各种恶意攻击从而起到防御抵抗作用,减少了路由开销。随着节点数量的增加,两者之间的差距也逐渐平行,TAODV路由协议达到了一种平衡状态。
图5 AODV与TAODV的归一化路由开销对比Figure 5. Comparison of normalized routing overhead between AODV and TAODV
如图6所示,在相同路由节点数的基础上,TAODV路由协议的最小跳数均小于AODV路由协议,并且随着节点数量的增加,两者之间的差距也在不断增大。这是因为AODV路由协议采用基于能量消耗的最小跳数方式,当单个节点的能量耗尽时,该节点仍然可以被选中,但由于节点能量耗尽所以不能被再次使用,因此会增加一些额外的跳数。而TAODV路由协议采用基于信任机制的方式,节点之间的跳数选择会根据信任值的计算式进行选择,择优选择信任值高的节点选取跳数,所以可以在一定程度上减少最小跳数的个数。
图6 AODV与TAODV的最小跳数对比Figure 6. Comparison of the minimum hop count of AODV and TAODV
如图7所示,在相同的路由节点个数下,TAODV路由协议的最优路径总体上小于AODV路由协议,并且随着节点个数超过50个时,TAODV路由协议的最优路径与AODV路由协议的最优路径差距越发明显。这是因为AODV路由协议的开销比TAODV路由协议大,同时又由于AODV路由协议不能有效阻止DoS攻击和序列号攻击,所以影响报文传输,增加了路径选择的负担,从而增加了最优路径的长度。而TAODV路由协议由于采用信任机制的方式,可以在一定程度上减少DoS攻击和序列号攻击,加快报文的传输,从而达到最优路径。
图7 AODV与TAODV的最优路径对比Figure 7. Comparison of the optimal path between AODV and TAODV
AODV路由协议由于不依靠固定基础设施,所以使得协议的安全体系处于一个危险的区域中。而路由安全是路由协议的关键。本文在已有的AODV路由协议基础上,采用基于信任机制的方式对AODV路由协议进行最短路径的研究,得出一个新的路由协议TAODV[18]。新协议基于信任机制,对每个节点的信任值进行相应计算,从而判断出每个路径上的信任值,最终寻找到一条最短路径。由仿真结果可以看出,TAODV路由协议可以有效提高从源节点到达目的节点最短路径的选择,从而达到改善AODV路由协议的效果。目前的设计在AODV路由协议节点的安全性方面有一定的优化改进,但为了更加全面地改进AODV协议得到最优路径,需要从更多方面进行研究,这是本文下一步的研究内容。