杨宏宇,韩越
(中国民航大学计算机科学与技术学院,天津 300300)
随着网络技术的发展,无线Mesh网络(WMN,wirelss Mesh network)[1-2]被广泛应用于多个领域。WMN传输介质的开放性和网络拓扑结构的动态性,使该网络极易遭受内部恶意节点的攻击。同时,由于内部恶意节点可以利用合法授权进行伪装,传统的路由机制无法在路由过程中将其准确识别,导致大量信息在路由传输过程中遭到破坏[3],因此,如何在路由过程中有效识别恶意节点,构造安全的路由路径,成为目前WMN安全路由机制研究的热点。
Sarma等[4]提出了一种基于安全分层和角色的安全路由协议(SHaRP, secure hierarchical and role based routing protocol),该协议在对路由控制信息进行加密的同时计算节点信誉值和链路的质量安全值,根据计算结果选出安全的路由路径。Bounouni等[5]提出了一种节点信誉值与贡献值混合的确认方法(NHACK, new hybrid acknowledgment approach),采用基于监控确认技术的信誉值计算方法,并结合贡献系统计算节点在路由建立过程中的贡献值,依据节点信誉值与贡献值选出安全高效的路由路径。吴军等[6]提出了一种基于反馈可信度的可信机会路由转发模型,通过反馈可信度模型评价节点行为,进而识别出无线Mesh网络中的恶意节点,实现了路由过程中共谋攻击的防御。Guo等[7]提出了一种基于信任机制的安全访问控制方案,采用基于贝叶斯理论的信任机制进行恶意节点识别,并采用改进Diffie-Hellman密钥协商协议实现路由过程中的密钥交换,保障路由信息的安全性。Sookhak等[8]提出了一种无线网络恶意节点检测新方法,对数据分组标记的同时采用密钥预分配技术来进行恶意节点的识别,在不需要使用同步时钟等额外硬件的情况下实现对恶意节点的检测。上述研究成果虽然能够为无线Mesh网络的路由安全提供一定的保障,但仍存在以下不足:在路由过程中对节点的评价不够全面,缺乏时效性和动态性,没有结合节点历史行为与当前行为对节点做出综合评价,导致内部恶意节点的识别不够准确。
针对上述不足,本文将节点动态信誉值评价引入路由机制的设计中,提出了一种基于动态信誉的无线 Mesh网络安全路由机制(SRMDR, secure routing mechanism based on dynamic reputation),通过动态信誉机制对节点做出综合评价,然后根据评价结果在路由过程中准确识别并隔离内部恶意节点,保障路由安全。
本文将主观逻辑理论[9]与信誉评价机制相结合,提出了一种新的动态信誉机制。依据路由过程中节点对数据分组的转发情况和链路质量进行信誉值评估,同时考虑节点信誉值随时间的变化,实时更新节点信誉值,最终准确识别出恶意节点,为路由选择提供依据。
节点i对节点j的信誉值评价可用四元组表示,四元组中的元素为2个节点间的信任度bi;j、不信任度di;j、不确定度ui;j和信赖度ai;j。其中,bi;j表示节点i对节点j的信任程度,di;j表示节点i对节点j的不信任程度,ui;j表示节点i对节点j信任中的不确定程度,ai;j表示节点i愿意相信节点j是可信节点的程度。为避免其他因素干扰,保证节点评价的客观性,本文默认ai;j=0.5并统一用a表示,其他各元素满足式(1)所示的条件[10]。
本文提出的动态信誉机制中需要计算的节点信誉值包括直接信誉值、推荐信誉值、综合信誉值和动态信誉值。具体计算过程如下。
1) 根据节点对数据分组的转发情况和链路质量,计算节点的直接信誉值。
2) 结合邻居节点的推荐信息,计算节点的推荐信誉值。
3) 根据节点的直接信誉值和推荐信誉值,计算节点的综合信誉值。
4) 整合节点的历史综合信誉值和当前综合信誉值,计算节点的动态信誉值。
其中,si:j表示节点j从节点i接收到的数据分组中成功转发的数量,fi:j表示节点j从节点i接收到的数据分组中丢弃的数量,Li:j表示节点i与节点j之间无线链路的链路质量,计算式为
其中,Pi:j表示节点i与节点j之间无线链路的正向传输率,Pj:i表示节点i与节点j之间无线链路的反向传输率,kt表示无线链路两端的发送节点在一次传输过程中共发送的数据分组数量,ks表示无线链路两端的接收节点在一次传输过程中共接收到的数据分组数量。
由于节点i可能没有足够的历史交互数据来评价节点j,且计算出的直接信誉值无法对节点j做出全面的判断,因此节点i会向邻居节点发起推荐信誉值计算过程,进一步对节点j进行评价。推荐信誉值的具体计算过程为:节点i向邻居节点广播发送信誉值查询信息,发起推荐信誉值计算过程;节点i的邻居节点收到查询信息后,查询本地记录,如果存在关于节点j的信誉值,则发送响应消息,将节点j的直接信誉值计算结果发送给节点i;若节点i的邻居节点中有n(n>2)个节点的信誉值数据库中存在对节点j的直接信誉值计算结果,则对于每个推荐者m,首先由式(5)计算相应的权重因子hm为
由于恶意节点在转发过程中会丢弃部分数据分组,因此它们的直接信誉值Tdir会很小。在推荐信誉值计算过程中,这些恶意节点的推荐信息对信誉值计算的影响就会很小,从而保证最终的综合推荐信誉值更加准确。
得到加权因子后,由式(6)对接收到的所有推荐信息进行整合。
得到节点的直接信誉值和推荐信誉值后,计算节点的综合信誉值为
其中,γ代表权重因子,表示直接信任度对综合信任度的影响程度。
无线Mesh网络中节点的行为会随时间的推移发生变化,之前计算的节点信誉值对节点的评价作用会随时间发生衰减,不能真实地体现节点当前的状态。当前计算的节点信誉值没有考虑节点的历史表现,对节点的评价不够全面,因此,为了保障节点评价的动态性和全面性,需要计算节点的动态信誉值综合考虑节点的历史综合信誉值和当前综合信誉值,使节点的评价更加全面准确。假设节点的信誉值计算间隔为10 s,则为节点10 s前的综合信誉值,为节点当前的综合信誉值。的计算式为
其中,ω1和ω2为权重因子,由于当前综合信誉值比历史综合信誉值具有更高的参考价值,因此ω1和ω2需满足 0<ω1<ω2<1,ω1+ω2=1;τ为衰减因子,表示历史信誉值随时间的衰减程度,且0<τ<1。
本文将动态信誉机制应用于无线Mesh网络路由过程,提出了一种基于动态信誉的安全路由机制(SRMDR)。该机制由路由建立和路由维护这2个阶段组成。
SRMDR通过源节点广播路由请求(RREQ,route request)信息发起路由建立,源节点构建RREQ信息,并向邻居节点广播发送。邻居节点收到源节点发来的RREQ信息,通过动态信誉机制判断源节点是否可信,随后向源节点发送路由响应(RREP, route respond)信息进行响应。假设节点信誉值的阈值为β(β∈[0.0, 1.0]),SRMDR路由建立的具体过程设计如下。
步骤1 源节点j生成RREQ信息,并广播发送给邻居节点。
步骤 2 节点j的任意邻居节点i收到 RREQ信息后,采用动态信誉机制对节点j进行评价,鉴别其是否为可信节点。具体过程如下。
1) 节点i查询本地信誉值数据库,搜寻有关节点j的数据分组转发信息。根据查询结果计算节点j的直接信誉值并将其保存在本地信誉值数据库中。
3) 节点i向邻居节点广播信誉值查询信息,要求提供关于节点j的推荐信息,发起推荐信誉值计算过程。
4) 节点i和节点j的任意共同邻居节点m收到信誉值查询信息后,查询本地信誉值数据库并将查询结果反馈给节点i。
5)节点i将收到的所有邻居节点反馈的推荐信息进行整理,计算出节点j的推荐信誉值
6) 节点i根据计算得出的直接信誉值和推荐信誉值,计算节点j的综合信誉值即为节点j的当前综合信誉值再结合信誉值数据库中节点j的历史综合信誉值计算节点的动态信誉值
步骤3 节点j收到RREP消息后,执行步骤2来判断节点i是否为可信节点。若节点j将节点i判定为可信节点,则将其作为路由中的下一跳节点进行数据传递,否则将其隔离。
步骤4 循环执行步骤2和步骤3,直到找出源节点到目的节点之间符合要求的路由路径。
步骤 5 如果存在多条符合要求的路径,则选择节点平均动态信誉值最高的路径作为最终的安全路径。节点的平均动态信誉值通过路径中所有节点的动态信誉值之和除以节点数量来计算。
由于无线Mesh网络存在动态性,节点的行为会随时间发生变化,已建立的安全路由路径会遭到破坏,因此路由的维护过程也变得同等重要。假设l、m、n为已建立的路由路径上的任意相邻节点,SRMDR路由维护的具体过程设计如下。
步骤1 节点m定期计算上一跳节点l的动态信誉值并与阈值β比较。若则接收来自节点l的数据分组,并执行步骤2判断下一跳节点n是否为可信节点;若则停止接收来自节点l的数据分组,并向源节点发送路由维护消息。
步骤2 节点m计算下一跳节点n的动态信誉值并与阈值β比较。若则继续将节点n作为下一跳节点,并将数据分组发送给节点n;若则停止向节点n发送数据分组,并向源节点发送路由维护消息。
步骤 3 源节点收到路由维护消息后,首先广播通知所有节点对新发现的恶意节点进行记录并予以隔离,然后重新发起路由建立的过程,建立新的安全路由路径。
在 NS2仿真环境中获取 SRMDR、混合无线Mesh 协议(HWMP, hybrid wireless Mesh protocol)、SHaRP[4]这3种路由机制的恶意节点识别率、网络吞吐量和端到端平均时延的指标数据,并对仿真实验结果进行对比和分析。
采用网络仿真工具 NS2(NS-2.35)[12]进行仿真实验,通过Matlab(Matlab R2016a)对实验结果进行处理和展示。
NS2环境设置与实验过程如下。
1) 编写OTcl脚本,生成一个900 m×900 m的模拟区域,设置追踪文件监测数据分组传递情况。
2) 生成60个网络节点,随机分布在模拟区域中,节点的网络布局如图1所示。由于本文提出的SRMDR不受节点分布影响,因此随机分布节点的网络布局对实验结果不会产生影响。
图1 NS2中节点的网络布局
3) 设置节点的通信半径为200 m。
4) 设置MAC层采用IEEE 802.11的无线网络通用标准。
5) 设定流量传输模型为恒定比特率模型。
6) 将编写的 SRMDR源码文件夹添加到 NS2的 ns-allinone-2.35/ns-2.35目录中,在 PT_NTYPE之前加入 PT_SRMDR,将 PT_SRMDR添加到commom/packet.h文件列表中,并在p_info类中定义新的分组类name_[PT_SRMDR]="srmdr"。
7) 在trace/cmu-trace.cc的format()函数中添加 case PT_SRMDR,记录分组信息,编译priqueue.cc文件中的recv()函数声明队列优先级。
8) 修改 OTcL库文件,在 tcl/lib/ns-packet.tcl中添加 SRMDR,设定属性默认值,修改 Makefile中的OBJ_CC变量,编译新添加的文件,得到trace跟踪文件。
9)利用gawk分析trace跟踪文件,提取实验结果数据,然后采用Matlab对数据进行图形化展示。
实验参数设置如表1所示。
表1 实验参数
恶意节点识别率是指被识别出的恶意节点数占恶意节点总数的比率。本文实验通过比较3种路由机制的恶意节点识别率随时间的变化情况,分析SRMDR准确识别恶意节点的能力。实验过程设计如下。
步骤1 设置节点信誉值阈值为0.6,并作为恶意节点判定依据。
步骤2 在生成的60个节点中,随机选取20个节点设置为具有分组丢失行为的恶意节点。
步骤3 当实验时间t=0~10 s时,节点开始传输数据,传输节点计算相邻节点综合信誉值并与阈值比较,开启恶意节点识别过程。
步骤4 设置动态信誉值计算周期为10 s,当t=20 s时,传输节点结合相邻节点历史综合信誉值与当前综合信誉值,计算相邻节点动态信誉值并与阈值比较,进一步识别恶意节点。
步骤 6 在相同环境下分别加载 HWMP和SHaRP,计算这2种路由机制相应时刻的恶意节点识别率并与SRMDR比较。
随着时间的变化,3种路由机制的恶意节点识别率变化情况如图2所示。
图2 3种路由机制的恶意节点识别率变化情况
由图2可知,在实验的初始阶段,3种路由机制的恶意节点识别率都不高且比较接近。随着时间的增加,3种路由机制的恶意节点识别率都逐渐增加且SRMDR的恶意节点识别率高于其他2种路由机制。这是因为初始阶段节点间交互行为较少,可用于计算节点信誉值的依据不足。随着时间的增加,节点信誉值计算过程不断完善,同时由于SRMDR采用动态信誉机制,综合考虑节点的历史信誉值和当前信誉值,使节点评价具有实时性且更加全面。因此,随着时间的增加,相对于其他2种路由机制,SRMDR可以更加及时准确地识别出恶意节点。
网络吞吐量是指网络节点单位时间内成功传输的数据量。本文实验通过比较3种路由机制的网络吞吐量随恶意节点数的变化情况,分析 SRMDR在恶意节点影响下保证网络吞吐量的能力。实验过程设计如下。
步骤1 分别在实验环境中设置2、4、…、20个恶意节点。
步骤 2 恶意节点在数据传输过程中随机产生分组丢失行为,设置恶意节点的分组丢失率为20%~60%。
步骤3 经过100 s后,统计网络中传输的数据量。
随着恶意节点数量的变化,3种路由机制的网络吞吐量变化情况如图3所示。
图3 3种路由机制的网络吞吐量变化情况
由图3可知,随着恶意节点数量的增加,3种路由机制下的网络吞吐量都有所下降,但在具有相同数量恶意节点的网络环境中,SRMDR的网络吞吐量相对较高。这是因为恶意节点数量越多,网络重新建立路由的概率越大,网络的传输效率越低。但在恶意节点数量相同的情况下,SRMDR根据节点对数据的转发行为和链路质量对节点的信誉做出全面评价,从而更加有效、灵活地识别出网络中的恶意节点,减小数据分组在转发过程中被丢弃的概率,有效改善网络的传输效率,提高网络的吞吐量。
端到端平均时延是指数据分组从源节点传输到目的节点所需要的平均时间。本文实验通过比较3种路由机制的端到端平均时延随恶意节点数的变化情况,分析SRMDR传送数据所需的时间开销。实验过程设计如下。
步骤 1 设置实验环境中数据的传输速率为11 Mbit/s。
步骤 2 统计每个数据分组从源节点开始发送的时间。
步骤 3 统计每个数据分组经过网络传输后,到达目的节点的时间。
步骤 4 待数据传输完成,由数据分组传输时间=数据分组到达时间-数据分组发送时间,分别计算每个数据分组的传输时间并求和。
步骤 5 统计整个传输过程中网络传输数据分组的总数。
随着恶意节点数量的变化,3种路由机制的端到端平均时延变化情况如图4所示。
图4 3种路由机制的端到端平均时延变化情况
由图4可知,随着网络中恶意节点数量的增加,3种路由机制的平均时延都出现增长,原因是恶意节点增多导致路由建立过程所需的时间增长,平均时延随之增加。在恶意节点数量相同的情况下,SRMDR的平均时延高于其他2种路由机制,原因是SRMDR在路由建立过程中综合评估节点的当前信誉值和历史信誉值,增加了一定时间开销。但这种额外开销仍处于一般网络服务许可范围内,且不会显著影响网络传输效率。此外,正是由于SRMDR采用动态信誉机制对节点行为和链路质量进行全面的评价,使路由过程中节点的质量和数据的安全性得到保障。
本文针对无线Mesh网络安全路由机制匮乏、内部恶意节点在数据传输过程中容易产生分组丢失的问题,提出了一种基于动态信誉的无线 Mesh网络安全路由机制——SRMDR。SRMDR采用动态信誉机制,根据节点对数据的转发行为和链路质量对节点的信誉进行全面评价,依据评价结果识别并隔离恶意节点,最终利用可信节点在路由的建立与维护过程中传递数据。与 HWMP、SHaRP机制相比,SRMDR具有较高的恶意节点识别率,并能有效降低数据分组在路由传输过程中的分组丢失率,提高网络吞吐量。
在未来工作中,将研究降低SRMDR时间开销的方法,进一步提高SRMDR的运行效率。