基于跳数防御的wsn虫洞攻击

无线传感器网络反应式路由协议AODV协议。
IAODV (Improved AODV) 协议。
**区别:**相比较于AODV协议, IAODV协议增加了源节点路由跳数判断机制和和随机选择路由的虫洞攻击防御方案。从网络管理者的角度出发, 不引入额外的硬件辅助, 也不需要节点之间时钟同步。
1 虫洞攻击
虫洞攻击一般由至少两个相距较远的恶意节点合谋发起, 合谋节点之间建立一条比正常节点间高效的私有信道。当虫洞攻击发起时, 合谋节点之一在网络的一端获取网络中的数据分组, 通过私有信道将数据分组传递至另一个合谋节点, 然后该合谋节点再把数据分组重放回网络中。数据分组在私有信道的传递过程中被恶意节点实施选择性丢弃或者数据篡改等恶意行为, 实现对网络的攻击。
在这里插入图片描述
N1和N2是网络中相距较远的两个节点,两节点不在可通信范围之内。正常情况下,两者需要经过多跳路由才能实现互相通信。M1和M2是两个恶意节点,它们之间建立起一条私有信道。M1和M2分别处于N1和N2的通信范围,当N1发送数据时,M1首先收到该数据,然后M1通过私有信道把该数据传递给其合谋节点M2。M2
接收到数据后继续将其转发N2。这样,N1和N2就会误认为彼此是邻居节点,M1和M2也因此获得路由权。
表面现象让我们觉得,如果虫洞合谋节点是忠实可靠的节点,虫洞有信道反而形成了一条更加高效的网络链路,提供了一个高效的网络连接服务,有效地减少了数据传输的延时。但实际上,虫洞合谋节点在数据传递的过程中并不忠实于传递所有数据,而是对数据包实施选择性丢弃或者数据篡改等恶意行为。更严重的是,即使网络通信已经采用了加密或认证机制,恶意节点仍然可以发起虫洞攻击。
本文思想:
作为网络的管理者,应该清楚网络的规模与拓扑构在数据传输过程中,如果源节点和目的节点之间的路由要经过10跳左右才能实现源节点和目的节点的通信,而某一条路由仅经过5跳甚至更少的跳数就可以实现节点间通信,网络管理者就可以断定此路由遭受到了虫洞攻击。
首先对网络作如下假设:
①整个网络是一个分层结构;
②每个节点都有其唯一的ID;
③源节点和目的节点不是虫洞攻击的合谋节点;
④节点与其邻居节点之间进行直接通信,与非邻居节点之间以多跳方式进行通信。
IAODV协议路由过程的算法描述如下:
①当源节点希望与目的节点进行数据传输,并且源节点路由表中没有到达此目的节点的有效路由时,源节点就会发起路由发现过程。
②源节点生 成 一 个 路 由 请 求 分 组 即RREQ分 组,RREQ分组中包含其ID号、源节点地址、源节点序列号、目的节点地址、目的节点序列号和跳数计数器等信息,写入RREQ分组中,然后泛洪广播该RREQ分组。
③当中间节 点 接 收 到 该RREQ分 组 后,首 先 检 查RREQ分组的ID号和源节点地址信息,以确认自己之前是否已经处理过相同的RREQ分组。若是已经处理过,则丢弃该分组,以防止路由环路的出现。若之前没有收到过该RREQ分组,中间节点将做两项作:一是更新本地路由表,更新内容包括目的序列号、定时器等;二是建立到达源节点的反向路由。完成上述更新工作后,中间节点将RREQ分组中的跳数加1,然后继续将其转发。
④当RREQ到达目的节点或者到目的节点路由的中间节点,目的节点或者该中间节点就会沿着反向路由向源节点回复路由响应分组,即
RREP分组。RREP分组中包括目的节点地址、目的节点序号、源节点地址以及源节点到目的节点的跳数值等信息。
⑤同转发RREQ分组的中间节点类似,转发RREP分组的中间节点也会做两项工作,一是更新本地路由表,二是建立从源节点到目的节点正向路由,为源节点向目的节点传送数据分组创建路由。完成上述更新工作后,中间节点将RREP分组中的跳数加1,然后继续转发,直至将RREP分组转发至源节点。
⑥源节 点 在 接 收 到 从 目 的 节 点 转 发 来 的 第 一 个RREP分组后,并不立即传输数据。源节点首先创建一个路由表,将RREP
分组存储起来,同时设置一个定时器,等待随后从其他反向路由转播到源节点的所有的RREP分组。定时器时间的设置要使得源节点能接收到随后到达的所有RREP分组。另外,随后到达的RREP分组不对源路由保存的RREP分组作任何更新,这样能保证源节点可以接收到所有从源节点到目的节点的路由。
⑦定时器时间结束后,源节点将所有RREP分组的跳数字段中的跳数信息提取出来。
⑧利用分布函数模型,路由跳数为随机变量X,分布函数为(X)。 据 路 由 跳数的分布函数F(X),设置一个安全区间(a,b)
(0<a<b<1),如图2所示。区间(a,b)的设置是灵的网络管理者可以依据网络规模和网络拓扑结构来调整区间值,以适应不同的网络环境。安全区间对应的跳数区间(i,j)称之为安全跳数区间。
⑨根据安全跳数区间,源节点将接收到的RREP分组里处于安全跳数区间内的路由保存起来,并在数据传过程中随机使用这些路由。随机使用这些路由的目的在于:一是可以平衡节点能量的使用,延长网络寿命;二是即使包含在安全区间内的路由再次遭受攻击,随机使用安全跳数区间内的路由也能降低网络遭受虫洞攻击的概率

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值