基于双层模糊逻辑信任的OLSR安全路由协议①
2022-09-20刘光杰
刘 杰, 刘光杰
(南京信息工程大学 电子与信息工程学院, 南京 210044)
1 引言
MANET是一种自组织网络, 移动节点通过无线链路和多跳转发连接, 没有固定的网络基础设施[1].MANET由于其灵活性强, 广泛应用于救灾、车载网络、军事服务等领域. 然而, 由于其分布式特性、网络拓扑结构的不断动态变化和没有绝对控制中心, MANET容易受到恶意节点的各种攻击[2].
MANET中的通信分为两种类型: “单跳通信” 和“多跳通信”. 在前者中, 位于彼此通信范围内的节点直接通信, 而在多跳通信中, 当目的节点超出源节点通信范围时, 需要中间节点将消息中继到目的节点. 从广义上讲, 路由协议可以分为3类: 主动路由协议、被动路由协议、混合协议[3]. 在主动路由协议中, 仅当需要将数据包发送到特定目的地, 并且没有可用的缓存路由时, 才会获得路由. 如动态源路由(dynamic source routing, DSR)、即按需距离矢量路由协议(ad hoc ondemand distance vector routing, AODV). 在被动路由协议中, 所有的路由都是预先发现的, 所有的路由都是可用的, 并且一直由网络中的所有节点维护. 如目的节点序列距离矢量(destination sequenced distance vector,DSDV)路由协议、优化状态链路路由协议 (optimized link-state routing, OLSR)[4]. 在混合协议中, 这类协议是主动和被动协议的混合. 对于本地邻居, 使用主动技术,对于较远的节点, 使用被动路由机制. 区域路由协议(zone routing protocol, ZRP)是一种混合路由协议. 目前MANET常用的路由协议之一是OLSR, 该协议是对传统路由协议链路状态的改进, 使用了多点中继(multi-point relay, MPR)技术[4], 每个节点在其所有单跳邻居之间最优选择一个MPR的子集, 以覆盖所有的2跳邻居, 且只允许MPR节点生成和转发 (topology control, TC)广播消息, 大大减少了网络中的中继数量和信息量. 但OLSR与传统路由协议相比, 需要大量的带宽和能源资源、开销, 且不支持多播和安全性. 因此,OLSR容易遭受各种恶意攻击, 如黑洞攻击、重放攻击、自私行为等[5]. 黑洞攻击最具破坏性, 攻击者通过谎称到达目的地的最短路径来吸引所有数据包, 后将数据全部转储, 恶意阻止数据转发到目的节点. 此外,恶意节点渗透到网络中, 会修改、盗用、注入数据, 甚至产生虚假消息. 攻击会采取“自私”的形式[6], 当一个或多个节点拒绝将流量中继到网络的其余节点时, 为了保留能量, 攻击者会隐式地阻止节点之间的通信.
当前增强OLSR安全性的工作主要基于密码学方法. Semchedine等人[7]提出了一种对标准OLSR路由协议的扩展, 称为加密优化链路状态路由(CRY OLSR),以保护其免受黑洞攻击. 该提议的机制基于非对称密码, 允许识别并隔离网络中的恶意节点, 但基于非对称加密算法的现代密码学通常是沉重的, 计算压力和能耗高. Baadache等人[8]提出了一种基于认证的端到端确认的方法, 用来检查中间节点对数据包的正确转发,可检测出自组网络中的黑洞攻击. 该方案的局限性是可以防止外部攻击, 但仍然容易受到内部攻击. 综合来说, 基于密码学的安全路由协议由于需要额外的信息交换, 网络和计算开销大, 以及密钥管理和公钥基础设施的支持, 对资源有限的移动设备不友好, 且无法应对存在内部恶意节点的攻击场景.
基于信任模型的安全路由设计总体轻量却能较好应对内部攻击场景, 已受到了广泛关注. 如Shcherba等人[9]提出了一个新的布尔值信誉模型, 该框架由3个模块(信誉模块、信任模块和加权模块)组成, 并与OLSR路由协议交互以减轻丢包攻击. 每个节点的信誉模块计算所有其他节点的本地信誉值, 并将这些值收集在网络中广播的信誉向量中. Bhuvaneswari等人[10]提出利用虚构节点检测和防止网络中导致虫洞、黑洞以及灰洞攻击. 这些恶意入侵者通过虚假HELLO消息和基于虚拟节点定期发送的TC消息验证被及时识别.尽管已经提出了许多信任管理方案来评估信任值, 但是没有一项工作明确地说明应测量什么来评估网络信任. 在此基础上, Tu等人[11]提出了建立基于云模型和模糊Petri网的CFPN信任推理机制来计算节点的信任值, 通过设置固定的阈值检测[12]和排除恶意节点. 该方法由于网络传输范围短、节点移动性高, 在网络拓扑频繁变化情况下设置一个固定的信任阈值, 将很难权衡误报率、检测率、丢包率等性能指标[13]. Inedjaren等人[14]利用模糊逻辑模型, 将模糊的、随机的节点可信度的性能指标由定性描述转化为定量描述, 评估网络信任和减少计算开销. 该方案中节点的信任值是基于单个信任属性标准来计算的, 可能会出现自举时间问题[15], 即基于信任的方案在网络中建立信任所需的时间, 将会给恶意节点提供更多的机会来丢弃数据包并在网络中长时间不被发现, 且静态阈值的设置难以适应网络环境的动态性.
为解决上述问题, 本文提出一种基于环境自适应决策的双层模糊逻辑信任OLSR (EFT-OLSR)作为原始OLSR的安全扩展协议. 该模型使用双层模糊逻辑计算节点的信任级别, 极大降低计算的复杂度; 并根据链路变化率、节点度、2跳连通性动态调整信任阈值,隔离恶意节点, 有效检测恶意节点发起的黑洞攻击和自私攻击.
2 基于环境自适应决策的双层模糊逻辑信任路由(EFT-OLSR)协议
OLSR协议是典型的先验式链路状态协议, 也是802.11s推荐的无线Mesh网路由协议[16]. 该协议主要采用两个路由消息: 握手(HELLO)和拓扑控制(TC)消息, HELLO消息用来执行链路感知, 邻居检测和MPR选择, TC消息用来声明MPR信息. 其次, 该协议引入了多点中继(MPR)节点的概念, MPR节点周期性发送TC消息, 将拓扑信息扩散到整个网络. OLSR协议具有以下两个优点:
1) 只有MPR节点才能转发TC消息, 减小了路由发现过程中洪泛消息的数量.
2) 节点发送的TC消息, 只包括与多点中继选择者节点(MPR selector)之间的链路信息, 减小了路由发现过程中洪泛消息的长度.
一个节点想要将数据包发送到目的节点, 首先需要将这个包发送到它的MPR节点, 所以MPR节点是攻击者的中心目标. 为了检测和防止恶意节点发起的黑洞攻击和自私攻击, 本文提出一种基于环境自适应决策的双层模糊逻辑模型, 将该模型嵌入到OLSR协议中, 首先通过模糊逻辑计算所属节点的可信度水平;其次根据网络环境中链路变化率、节点度、2跳连通性, 构建出动态的信任阈值. 当一个节点的可信值小于阈值时, 该节点就被标记为恶意节点, 避免了恶意节点作为MPR节点, 有效的解决了黑洞攻击和自私攻击,提高网络性能. 其模型框架如图1所示.
图1 模型框架
2.1 参数提取模块
基于信任路由机制的方案中, 参数提取往往基于单一的属性标准[16]. 如FT-OLSR中仅选取数据包数量属性进行决策, 未考虑到节点因自私攻击, 造成的数据包大量丢失. 由于节点频繁的加入和离开网络, 使用单一的属性准则会花费更多的时间去建立信任模型, 给行为不端的节点提供更多的机会破坏网络的拓扑结构,最终不能有效的发现并处理恶意节点. 为了加快信任机制的建立过程, 有效的处理恶意节点行为, 在参数提取时, 采用多个属性的标准. 于是选取数据包数量属性和节点的剩余能量属性, 避免一个或多个节点拒绝将流量中继到网络的其余节点的情况, 而造成的自私攻击.
1) HELLO消息的数量和TC消息的数量(nHELLO,nTC)
在OLSR中, 最主要的两个属性是HELLO消息和TC消息. HELLO消息用来执行链路感知, 邻居检测和MPR选择, TC消息用来声明MPR信息. 因此, 在参数提取时要考虑节点产生的nHELLO和nTC.
2) 节点剩余能量(P)
由于节点的频繁移动会消耗大量的能量, 有些节点为了保护自身的能量消耗, 会采取“自私”的攻击形式, 隐式地阻止节点之间的通信. 这种恶意攻击常常难以被发现. 在资源受到限制的情况下, 参数提取时必须考虑到节点的剩余能量[15].2
.2 双层模糊推理模块
FT-OLSR中选取两输入单输出的Mamdani[17]进行决策, 其模糊规则数增加为指数级, 在资源有限的移动设备中实现该构造会增加计算负载和路由开销. 本文通过运用双层模糊逻辑结构, 使得模糊规则数极大减少, 限制了计算的复杂性, 加快模糊控制器的响应速度, 如图2所示.
图2 双层模糊逻辑结构
在第一层模糊结构中, 选取那些对输出结果有着较大影响的变量为第一层结构的输入变量, 即nHELLO和nTC; 接着选取对输出结果有着次要影响的变量: 节点剩余能量(P), 与第一层结构的输出变量M共同作为第二层结构的输入, 其结构图如图3所示.
1)模糊化处理
计算信任值检查节点的行为, 即“正常或恶意”, 其基础是TC信息的数量和 HELLO信息的数量. 因此,把这两个变量作为模糊系统第一层的输入, 对每个输入使用两个隶属度级别: 低、高. 通过使用相应的预定义变量和隶属函数[18], 将nHELLO和nTC化为模糊语言变量. 如图3所示, HELLO隶属函数的数量估计了nHELLO值的程度. nTC的隶属函数也定义在图3中.
图3 nHELLO和nTC的隶属函数
第1层结构有一个输出变量: M, 同时与节点剩余能量(P)共同作为第2层结构的输入变量, 其模糊语言变量可被定义为: {Low, Medium, High}, 其隶属度函数表示如图4所示.
图4 M和P的隶属函数
第2层结构的输出为: Trust, 也是整个模糊系统的输出. 模糊语言变量可被定义为: {Very low, Low,Medium, High, Very high}, 其隶属度函数如图5所示.
图5 Trust的隶属函数
2) 模糊规则库的构建
在该模型中, 为模糊推理模块[19]建立了一个规则库. 采用了If-then规则, 则第一层的模糊规则可表示为:
第2层的模糊规则可表示为:
3)去模化
该模型采用加权平均法进行去模化处理, 并利用式(3)对节点的信任值进行预测:
VL(x): 1跳邻居节点x的信任度, 对应信任度为Very low.
L(x): 1跳邻居节点x的信任度, 对应信任度为Low.
M(x): 1跳邻居节点x的信任度, 对应信任度为Medium.
H(x): 1跳邻居节点x的信任度, 对应信任度为High.
VH(x): 1跳邻居节点x的信任度, 对应信任度为Very high.
信任值介于0到1之间. 当信任水平值较低时, 节点表现出的恶意行为多于相邻节点的正常行为.
2.3 决策模块
由于MANET中的节点具有移动性, 网络拓扑变化频繁, 因此, 很难在基于信任的方案中设置一个合适的信任阈值, 检测出恶意节点. FT-OLSR中仅使用静态的、预定义的信任阈值, 忽视每个节点的网络环境. 使用静态阈值会导致高误报率和低恶意节点检测率. 若阈值太低, 错误率将会很高, 从路由路径中移除恶意节点会迟缓. 为解决上述问题, 在该模块中, 采用了一种新的环境自适应的决策方法, 该策略根据网络条件调整路由协议中的信任阈值.
2.3.1 网络模型
本文考虑由一些移动节点组成的自组网. 设该网络模型为图G (V,E), 其中V是节点的集合, E是链路的集合[20]. 所有节点都有一个均匀的传输范围r0, 当且仅当节点x与v之间的欧氏距离小于传输范围r0时, 无线链路( x,v)∈E.
2.3.2 网络参数
1) 链路变化率(η)
由于网络的移动性, 网络的组成以及各个节点的邻域经常发生变化. 节点可通过计算邻域链路变化的速率来确定其邻域内节点的可移动性. 设x是一个节点, 关注单个节点x的链路变化率[21], 从而得到节点x平均的链路变化率为:
其中, λ表示平均链路连接率, µ表示平均断链率, η表示平均链路变化率.
每一个新节点进入节点x的传输范围, 就会产生一条到x的新链路, 因此x附近的新节点数等于每一个时间间隔[t-1, t]下在x处的链路连接率, 设为λx:
同理, 断链数为每个时间间隔[t-1, t]内移动出节点x传输区域的节点总数. 断链率设为µx:
节点x在t时刻的最小链路变化率为0, 表示没有新的节点到达, 也由于没有移动的节点而导致的链路中断(网络是临时静态的). 同样的, 当节点x在t时刻,所有与其直接相连的邻居都不在传播范围, 则可能出现最大断链率. Samar等人[22]表明, 当最大的链接连接率等于断链率时, 最大链路变化率可为:
若邻域的链路变化率较高, 考虑到节点间交互时间较短, 较低的信任阈值可能是避免误报的最佳选择.同样, 如果一个邻域内的链路变化率较低, 则网络趋向于静态, 因此较高的信任阈值可能是最佳选择. 对于链路变化率, 其最优的信任阀值公式如下:
2) 节点度(ℓ)
定义为一个节点的1跳邻居中的节点数量. 设x为节点, x在t时刻的节点度定为 ℓx(t), 传输范围为r0定义为:
节点度为0的节点是孤立的, 即没有邻居; 因此,最小节点度 m in(ℓx)=0. 此外, 如果网络中所有节点都直接连接到x, 则节点有最大节点度m ax(ℓx), 节点度直接影响信任阈值. 在计算信任阈值时, 每个节点都考虑其1跳邻域内的节点度. 1跳邻居的节点度越高, 信任阈值越高, 反之亦然. 当源节点有更多可供选择的1跳节点时, 可以容忍更严格的信任阈值, 网络分区的风险也更低. 如果将恶意的节点m与路由路径隔离, 节点x仍然可以连接到网络中. 通过式(10), 可以找到节点x处的最优信任阈值:
由式(10)可知, 节点度的最大值为最高信任阈值(1), 节点度的最小值为最低信任阈值(0).
3) 2跳连通性
设仅通过邻居z可达的2跳邻居的节点数w, 则节点x的2跳邻居定义为:
节点x的2跳连通性σ (x,z)定义如下:
对于特定的1跳邻居z, 节点 min(σx)最小2跳连通性为0, 表明通过该节点不能达到任何2跳节点. 相反, 一个节点其邻居z的最大2跳连通性最大值是|2hop(x)|, 这表明x的所有2跳邻居只能通过节点z到达.
2跳连通性是一个重要参数, 表示网络对节点故障的容忍度, 将行为不正常的节点与路由路径隔离之前,确保网络的连通性. 其2跳连通性σ (x,z)的最优信任阈值公式如下:
由式(13)可知, 当σ (x,z)值最大时, 信任阈值最小(0), 当σ (x,z)值最小时, 信任阈值最大(1).
将以上的方程合并到数学模型中, 计算恶意节点的信任阈值为:
最后为了保持高保真的仿真场景, 需将式(14)计算的信任阈值作为性能指标测试的依据.
2.4 EFT-OLSR协议
EFT-OLSR路由协议的主要模块是信任管理机制.EFT-OLSR路由协议以上述提出的多属性环境自适应决策的模糊逻辑信任模型为基础, 这些组件之间关系如图6所示.
图6 EFT-OLSR协议流程图
3 仿真实验与分析
该实验采用网络模拟器3 (NS-3)进行了测试该方案的性能. 为了获得可靠的结果, 要确保部署的仿真场景能够高保真地表示所提出方案.
3.1 仿真环境构建
为实现这一目标, 考虑了网络节点的随机部署, 以更好地评估提出的方案. 在仿真实验中, 将节点的移动速度在1-10 m/s之间变化. 并且节点移动性采用Constant Waypoint mobility model移动性模型; 且随机选择恶意节点, 以保持其在网络中的分布均匀. 恶意节点数设置为节点总数的10%-60%. 在实验中, 让恶意节点以25%的概率随机或有选择地丢弃数据包来模拟这种攻击.与真实场景中一样, 恶意节点与常规节点没有区别, 因此具有相同的移动属性, 如速度、方向等. 模拟场景的参数如表1所示.
表1 模拟场景的参数
3.2 性能指标
仿真中, 通过不同的性能指标测试设计方案, 以下为分析提出的方案时考虑的性能指标:
1)数据包传递率(PDR): 源节点产生的数据包数量与目的地接收到的数据包数量的比率.
2)平均端到端延迟: 数据包从源节点发送到目的地所花费的平均时间.
3)丢包率: 行为不正常的节点丢失的数据包占发送数据包总数的百分比.
3.3 模拟结果与分析
测试1: 不同节点速度下的性能比较.
1)数据包传递率(PDR)
该测试比较不同节点速度下FT-OLSR和EFTOLSR性能. 图7(a)表明, 两种路由协议的PDR都随着节点移动速度的增加而降低. 在较低的节点速度下,EFT-OLSR比FT-OLSR性能更好, 因为链路变化速率越低, 自适应阈值越严格, 恶意节点在较早期就被隔离,并保持较高的数据包传递率. 然而, 随着节点速度增大,链路变化速率较高, 自适应阈值保持较低水准, 导致EFT-OLSR的数据包传递率较低, 但仍高于FT-OLSR.
图7 不同节点速度下的性能比较
2)平均端到端延迟
如图7(b)所示, 两种协议的平均端到端延迟都随着节点速度的增加而增加, 随着节点速度的提高, 链路连接很容易崩溃. 因此, 源节点在发送包之前必须发起更多路由请求, 这增加了这两种协议的平均端到端延迟. 相对于FT-OLSR协议, EFT-OLSR的平均端到端延迟相对较高. 因为为了保证较高的数据包传递率, 可能会使数据包沿较长的路径行进, 以避免恶意节点的出现.
3)丢包率
如图7(c)所示, 两种协议的丢包率都随着节点速度的增加而增加, FT-OLSR的丢包率显著上升, EFTOLSR的丢包率缓慢上升. 这是因为EFT-OLSR用较高的时延, 保证了较高的数据包传递率, 防止恶意节点转发数据包. 然而, FT-OLSR没有考虑网络拓扑的变化, 未能有效阻止恶意节点, 导致恶意节点随机的丢弃数据包, 造成丢包率大幅度上升.
测试2: 不同恶意节点数量的性能比较
1) 数据包传递率(PDR)
图8(a)显示了在改变恶意节点数量时FT-OLSR和EFT-OLSR的PDR变化. 当恶意节点数量较低时,EFT-OLSR比FT-OLSR性能更好. 原因是, 网络拓扑中的正常节点数远远大于恶意节点数时, 源节点在路由路径中有更多的备选节点, 获得更高的阈值, 恶意节点将从路径中删除, 使得PDR更高. 然而, 随着恶意节点数量的增加, 该网络拓扑已经完全失去了原有的构造,被恶意节点肆意破坏, 采用的阈值变低, 使得FT-OLSR和EFT-OLSR的PDR基本相同.
2)平均端到端延迟
图8(b)显示了与FT-OLSR协议相比, 增加恶意节点数的EFT-OLSR协议平均端到端延迟. 结果表明, 在恶意节点数量较少的时候EFT-OLSR的端到端延迟略高, 因为为了保证较高的PDR, 可能会让数据包沿着较长的路径避开恶意节点. 随着恶意节点的增加, FT-OLSR开始高于EFT-OLSR的均端到端延迟, 因为EFT-OLSR虽花费更多时间寻找能够正确传递信息的路径, 但当恶意节点逐渐覆盖整个网络拓扑时, FT-OLSR协议已经更加难以正确的传递数据包.
3)丢包率
图8(c)显示了不同恶意节点下两种协议的丢包率. 从图中可以看出, 与FT-OLSR协议相比, 采用EFTOLSR协议的丢包率更低. 原因是, 在EFT-OLSR协议下, 网络中的每个节点都在考虑其本地网络条件的情况下计算恶意节点隔离的阈值, 恶意节点被提前检测到. 然而FT-OLSR协议采用静态阈值, 容易误报恶意节点, 丢包率增加.
图8 不同恶意节点数量的性能比较
4 结论
本文提出一种基于环境自适应决策的双层模糊逻辑信任OLSR(EFT-OLSR)作为原始OLSR的安全扩展协议.
(1)通过模糊逻辑计算所属节点的可信度水平; 并根据网络环境中链路变化率、节点度、2跳连通性, 构建出动态的信任阈值. 当一个节点的可信值小于阈值时, 该节点就被标记为恶意节点, 避免了恶意节点作为MPR节点, 有效的解决了黑洞攻击和自私攻击, 提高网络性能.
(2)仿真结果表明, 本文提出的EFT-OLSR协议在数据包传递率、平均端到端时延、丢包率方面与FTOLSR协议相比性能更好, 且降低了恶意节点的误报率.
(3)当然本文提出的协议也有需要改进的地方, 如提取更多的参数, 加快信任机制的建立过程. 需研究和开发一个尽可能通用的信任模型, 有效检测和防止恶意节点发起的常见攻击.