一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种应用于无线传感器网络的虚假数据途中过滤方法与流程

2021-12-08 02:46:00 来源:中国专利 TAG:


1.本发明属于无线传感器网络安全技术领域,尤其涉及一种应用于无线传感器网络的虚假数据途中过滤方法。


背景技术:

2.无线传感器网络已被广泛应用于军事、工业监测、农业监控、医疗护理等诸多领域。由于传感器节点资源有限,抗捕获能力较弱,容易遭受捕获攻击。攻击者捕获节点后,可获取妥协节点中的所有信息,并且可控制其发起虚假数据注入攻击。攻击者可控制妥协节点伪造虚假的事件数据报并注入网络,也可控制妥协节点将其曾经发送或转发过的事件数据报再次注入网络。这些虚假的或重放的数据报将挤占有限的网络带宽,数据报的转发也将浪费网络中节点的有限能量,虚假数据报还会引发错误警报,影响用户决策。
3.一种有效的解决方法是在将事件数据报转发到sink节点的途中,由转发节点尽早地检测并过滤掉虚假的或重放的数据报,从而节约网络能量和带宽。然而,现有的虚假数据途中过滤方法难以有效防范妥协节点之间协同发起的复杂虚假数据注入攻击,安全性能有待提高。另外,现有方法采用的过滤手段较弱,对虚假数据报的途中过滤概率和过滤效率较低。
4.基于以上情况,必须设计更高效的虚假数据途中过滤方法,尽早地过滤掉各种虚假数据。在提高网络安全性的同时,还要尽量节约网络能耗。


技术实现要素:

5.发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种应用于无线传感器网络的虚假数据途中过滤方法,提高无线传感器网络的安全性,提高对虚假数据报的途中过滤概率和过滤效率,从而节约网络带宽和能耗。
6.为了解决上述技术问题,本发明公开了一种应用于无线传感器网络的虚假数据途中过滤方法,该方法由某个节点v
i
收到其某个邻居节点发出的事件数据报r之后执行,具体包括以下步骤:
7.s1:从事件数据报r中提取出数据报标识;
8.s2:若节点v
i
不是事件数据报r的指定接收者,则转至步骤s3,若节点v
i
是事件数据报r的指定接收者,即节点v
i
是事件数据报r的转发节点,则转至步骤s4;
9.s3:节点v
i
检测本地存储的数据报标识表rilist(初始为空)中是否存储过事件数据报r的数据报标识,若存储过,则转至步骤s5,否则,将事件数据报r的数据报标识存储至rilist表中,转至步骤s5;
10.s4:节点v
i
对事件数据报r进行验证,识别事件数据报r是否为重放数据报或虚假数据报;若事件数据报r被判定为重放数据报或虚假数据报,则丢弃事件数据报r,转至步骤s5,否则,将事件数据报r转发给下一跳转发节点,转至步骤s5;
11.s5:结束;
12.所述事件数据报r的格式为{l
e
,t
e
,e,c,id1,l1,i1,
……
,id
t
,l
t
,i
t
,f}。其中,l
e
是事件的位置;t
e
是检测到事件的时间;e为事件的数据;c是生成事件数据报r的cos(center

of

stimulus)节点上计数器的值,cos节点每生成1个事件数据报,其c的值加1;该事件有t个认证节点,{id
j
,l
j
,i
j
}(1≤j≤t)分别为该事件的第j个认证节点的标识、位置和密钥索引,其中第1个认证节点是cos节点,各认证节点的密钥索引属于不同的密钥分区;f是采用布隆过滤器技术使用n个独立的散列函数分别对各认证节点提供的消息验证码m
j
(1≤j≤t)进行映射得到的字符串,f中1的个数不超过n
×
t,m
j
的计算公式为:其中||表示流连接,id
cos
即为id1,该公式表示用密钥索引为i
j
的密钥对{id
cos
||c||l
e
||e}进行加密;步骤s1从事件数据报r中提取出的数据报标识为{id1,c}。
13.在一种实现方式中,所述步骤s4中,事件数据报r的指定接收者(即事件数据报r的转发节点)v
i
对事件数据报r进行验证,以识别出重放数据报和虚假数据报,具体验证步骤如下:
14.s41:节点v
i
检测本地存储的数据报标识表rilist中是否存储过事件数据报r的数据报标识{id1,c},若存储过,则判定事件数据报r是重放数据报,丢弃事件数据报r;否则,将{id1,c}存储至rilist表中,继续执行步骤s42;
15.s42:检查事件数据报r的格式是否完整、f中是否最多含有n
×
t个1,以及事件数据报r中密钥索引是否属于不同的密钥分区,若事件数据报r的格式不完整,或者f中1的个数超过n
×
t,或者事件数据报r中存在属于相同密钥分区的密钥索引,则判定事件数据报r是虚假数据报,丢弃事件数据报r,否则,继续执行步骤s43;
16.s43:验证事件数据报r中认证节点位置的合理性,即应满足事件位置l
e
和各认证节点的位置l
j
的距离d(l
e
,l
j
)≤r
s
(1≤j≤t),其中,r
s
为传感器节点的感知半径,若验证不通过,则判定事件数据报r是虚假数据报,丢弃事件数据报r,否则,继续执行步骤s44;
17.s44:若节点v
i
持有事件数据报r中某个认证节点使用的密钥k,则计算消息验证码然后计算消息验证码m的每个散列值并查看f中相应位是否为1,若相应位不为1,则判定事件数据报r是虚假数据报,丢弃事件数据报r,否则,继续执行步骤s45;
18.s45:若事件数据报r中某个认证节点的位置在节点v
i
的通信范围内,则节点v
i
执行基于多播路由的认证信息真实性验证算法,验证事件数据报r中各认证节点是否向cos节点提供过该事件的认证信息,以及其位置和密钥索引是否正确,若验证不通过,则判定事件数据报r是虚假数据报,丢弃事件数据报r,否则,判定事件数据报r是合法数据报,将事件数据报r转发给下一跳转发节点。
19.在一种实现方式中,所述s45步骤中,基于多播路由的认证信息真实性验证算法的设计思路为:节点v
i
向事件数据报r中的认证节点发送询问消息ask,然后启动一个计时器,等待各认证节点回复reply消息。某认证节点收到ask消息后,检查自己是否为ask消息中指定的数据报提供过认证信息以及ask消息中自己的位置和密钥索引是否正确,如果自己确实为该数据报提供过认证信息且ask消息中的位置和密钥索引正确,则给节点v
i
回复reply消息,否则不回复reply消息。如果节点v
i
超时未收到某个认证节点的reply消息,则认为它
的认证信息不真实,从而判定事件数据报r的认证信息真实性验证不通过。然而,若某认证节点是节点v
i
的邻居,则节点v
i
可以直接判定该认证节点是否发出过该事件的认证消息,也可以直接检查其位置和密钥索引是否真实(因为各节点会侦听周围节点发出的认证信息,并存入本地的认证信息记录表eilist中,表中记录的认证信息包括:id
cos
,c,发出认证信息的节点的id、位置及生成消息验证码(mac,message authentication code)所使用的密钥索引),因此,节点v
i
不需要给邻居认证节点发送ask消息,仅需要给不是节点v
i
邻居的认证节点发送ask消息。
20.基于多播路由的认证信息真实性验证算法包括以下步骤:
21.d1:节点v
i
初始化接收ask消息的目的节点集合为v
(d)
={v
id1
,v
id2
,
……
,v
idt
}。
22.d2:对于事件数据报r中的每个认证节点v
idj
(1≤j≤t),如果认证节点v
idj
是节点v
i
的邻居,即距离d(l
j
,l
vi
)≤r
c
,r
c
为各个节点的通信半径,则将其从v
(d)
中删除,并加入v
(d’)

23.d3:若v
(d’)
为空,则转步骤d4;若v
(d’)
不为空,则对于v
(d’)
中的每一个认证节点,节点v
i
检查本地的认证信息记录表eilist中是否存有该认证节点为事件数据报r提供的认证信息记录,如果没有存储该认证信息记录,或者记录中该认证节点的位置及密钥索引与事件数据报r中该认证节点的位置及密钥索引不一致,则认为事件数据报r中认证信息真实性验证不通过,否则继续执行步骤d4。
24.d4:若v
(d)
为空,则认为事件数据报r中认证信息真实性验证通过;若v
(d)
不为空,则节点v
i
启动定时器(定时时间应根据v
(d)
中的各认证节点到节点v
i
的最远距离、无线传感器网络的链路质量及具体应用对时延的要求等因素来设定),准备接收各认证节点发回的reply消息,并继续执行步骤d5。
25.d5:不考虑为多播树产生分支,选择下一跳转发节点:按照公式(1)~(3)计算节点v
i
相对于其各个邻居节点v
t
(给节点v
i
发送事件数据报r的邻居节点除外)的ap(v
i
,v
t
,v
(d)
)。其中,ap(v
i
,v
t
,v
(d)
)为节点v
i
相对于节点v
t
到集合v
(d)
的平均前进,cp(v
i
,v
t
,v
(d)
)为节点v
i
相对于节点v
t
到集合v
(d)
的累积前进,|v
(d)
|为v
(d)
中节点的个数,cd(v,v
(d)
)为节点v到v
(d)
中各节点的累积距离,d(v,w)为节点v和节点w之间的欧式距离;然后从中选出平均前进ap最大的邻居节点v
k
作为下一跳转发节点。
26.ap(v
i
,v
t
,v
(d)
)=cp(v
i
,v
t
,v
(d)
)/v
(d)
|
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
27.cp(v
i
,v
t
,v
(d)
)=cd(v
i
,v
(d)
)

cd(v
t
,v
(d)
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0028][0029]
d6:考虑为多播树产生两个分支,选择下一跳的两个转发节点:在v
i
的邻居中任选两个节点v1和v2(给节点v
i
发送事件数据报r的邻居节点除外),将v
(d)
中的各目的节点按照到节点v1和v2距离较近的原则,划分到节点v1的目的节点集合v
(d1)
或节点v2的目的节点集合v
(d2)
中,计算节点v
i
相对于节点v1到集合v
(d1)
的平均前进ap1=ap(v
i
,v1,v
(d1)
)和节点v
i
相对于节点v2到集合v
(d2)
的平均前进ap2=ap(v
i
,v2,v
(d2)
),然后全局选出使得(ap1 ap2)/2最大的两个邻居节点组合<v
k1
,v
k2
>作为下一跳的两个转发节点,从而形成了两个分支。
[0030]
d7:根据步骤d5和步骤d6的平均前进,决定是否引入分支。若步骤d5中最大的ap≥步骤d6中最大的(ap1 ap2)/2,则不进行分支,选择步骤d5中的节点v
k
作为下一跳节点,节
点v
i
将ask消息发送给节点v
k
,该ask消息内含{id1,c,idv
i
,v
(d)
,l
(d)
,i
(d)
},其中l
(d)
和i
(d)
分别是事件数据报r中提供的v
(d)
中各认证节点的位置集合和密钥索引集合;否则,进行分支,选择步骤d6中的节点v
k1
和v
k2
作为下一跳转发节点,节点v
i
将ask消息拆分为ask1消息(内含{id1,c,idv
i
,v
(d1)
,l
(d1)
,i
(d1)
})和ask2消息(内含{id1,c,idv
i
,v
(d2)
,l
(d2)
,i
(d2)
}),分别发给节点v
k1
和v
k2
,其中l
(d1)
和i
(d1)
分别是目的节点集合v
(d1)
中各认证节点的位置集合和密钥索引集合,l
(d2)
和i
(d2)
分别是目的节点集合v
(d2)
中各认证节点的位置集合和密钥索引集合。
[0031]
若不进行分支,节点v
k
收到ask消息后,将v
(d)
中位置在节点v
k
的通信范围内的目的节点删除,并加入v
(d’)
。若v
(d’)
不为空,则节点v
k
广播ask消息(内含{id1,c,idv
i
,v
(d’)
,l
(d’)
,i
(d’)
}),v
(d’)
中的认证节点v
idj
收到广播的ask消息后,若自己确实为该事件数据报提供过认证信息,并且ask消息中给出的自己的位置和密钥索引是正确的,则按照收到ask消息的路由给节点v
i
发回reply消息(内含{id1,c,idv
i
,id
j
})。若v
(d)
不为空,则节点v
k
按照步骤d5~d7的方法选择ask消息的下一跳转发节点,直到将ask消息转发到v
(d)
中所有被验证的认证节点的位置。若进行分支,节点v
k1
和v
k2
对ask消息的转发处理同v
k

[0032]
d8:定时结束后,若节点v
i
收到了v
(d)
中所有认证节点的reply消息,则认为事件数据报r中认证信息真实性验证通过;否则,认为数据报的认证信息真实性验证不通过。
[0033]
有益效果:
[0034]
(1)对于重放攻击,部分现有途中过滤方案未提供任何方案来过滤重放数据报;部分现有途中过滤方案采用了时间戳技术,可在一定程度上防御重放攻击。然而,时间戳技术对网络中各节点的时钟同步要求较高,并且时间窗口大小难以选择,防御效果欠佳;部分现有途中过滤方案中的重放数据报检测方法仅当无线传感器网络采用固定路由时才有效,不适用于动态路由。然而,本发明提出的虚假数据途中过滤方法,既适用于在固定路由下过滤重放数据报,也适用于在动态路由下过滤重放数据报,并且可以在一跳之内过滤掉重放数据报。
[0035]
(2)本发明提出的虚假数据途中过滤方法除了采用消息验证码验证和位置合理性验证等技术,还增加了认证信息真实性验证技术,与现有的虚假数据途中过滤策略相比,可进一步提高虚假数据报的途中过滤概率和过滤效率。在进行认证信息真实性验证时,本发明设计了一种基于多播路由的方案,以节约网络能耗。
附图说明
[0036]
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0037]
图1是本发明中转发节点对事件数据报进行验证的流程图。
[0038]
图2是本发明中认证信息真实性验证的执行流程图。
[0039]
图3是实施例中的无线传感器网络部署图。
具体实施方式
[0040]
本发明提出了一种应用于无线传感器网络的虚假数据途中过滤方法,用于无线传感器网络中数据报的每个转发节点对数据报进行验证,以便及时地过滤掉重放数据报和虚假数据报。转发节点验证数据报的执行流程如图1所示(其中,认证信息真实性验证步骤的
执行流程如图2所示)。下面将借助具体实施例和附图对本发明进行详细描述,但本发明的保护范围并不局限于这些实施例。
[0041]
如图3所示,在长方形的监控区域中部署若干传感器节点(用小圆圈表示),各个节点具有相同的通信半径r
c
和相同的感知半径r
s
,并且r
c
=2r
s
,本技术实施例中r
s
取值为15m。图3中右边的正方形为sink节点,负责接收和处理事件数据报。在节点部署之后,各节点将自己的位置信息发送给sink节点,其邻居收到位置信息后,存储到本地。这样,最终每个节点均存储了其邻居节点的位置信息。
[0042]
(1)正常事件数据报的处理
[0043]
假设在t1时刻某处有事件发生,图3中的三角形代表事件的位置,以其为圆心的实线圆形画出了事件的感知区域,事件感知区域内的节点(称为事件的检测节点)均可检测到此事件。假设在检测节点中选举v
c
作为cos节点,负责产生事件数据报。接下来,v
c
和各检测节点v
j
(1≤j≤7)从本地存储的密钥中随机选择一个密钥k
ij
(i
j
为该密钥的密钥索引),并且用该密钥产生消息验证码m
j
:其中,id
cos
即id
vc
,c是v
c
的计数器值,l
e
是事件的位置,e为事件的数据,表示用密钥索引为i
j
的密钥对{id
cos
||c||l
e
||e}进行加密,加密算法使用rc5算法。然后,v
j
形成认证信息{id
vc
,c,id
vj
,l
j
,i
j
,m
j
}并且发送给v
c
。v
j
的邻居侦听到此认证信息后,将此认证信息(m
j
除外)存储到本地的认证信息记录表eilist中。v
c
也将自己产生的认证信息广播给其邻居节点进行存储。假设t=4,则v
c
随机选出4个属于不同密钥分区的检测节点作为事件的认证节点,假设被选中的认证节点为v
c
、v2、v4和v7。接下来,v
c
使用n=5个独立的散列函数将这4个认证节点提供的消息验证码m
c
、m2、m4和m7映射成字符串f,之后生成该事件的数据报r:{l
e
,t1,e,c,id
vc
,l
vc
,i
vc
,id
v2
,l
v2
,i
v2
,id
v4
,l
v4
,i
v4
,id
v7
,l
v7
,i
v7
,f}。然后,v
c
从其上游节点中随机选择一个节点v
i
,并将事件数据报r发送给v
i
进行转发。
[0044]
v
c
的邻居(图3中以v
c
为圆心的虚线圆形内的节点)均能收到事件数据报r,除了v
i
以外的各个邻居节点从事件数据报r中提取出数据报标识{id
vc
,c},然后检测本地存储的数据报标识表rilist中是否存储过该数据报标识,发现未存储过,于是将{id
vc
,c}存储至rilist表中。
[0045]
v
i
作为事件数据报r的转发节点,需要对事件数据报r进行验证,具体执行过程如下:
[0046]
s41:v
i
检测本地存储的rilist表中是否存储过事件数据报r的数据报标识{id
vc
,c},发现未存储过,于是将{id
vc
,c}存储至rilist表中;
[0047]
s42:v
i
检查事件数据报r的格式是否完整、f中是否最多含有n
×
4个“1”,以及事件数据报r中密钥索引是否属于不同的密钥分区,检查结果为通过;
[0048]
s43:v
i
验证事件数据报r中认证节点位置的合理性,验证结果为通过;
[0049]
s44:假设v
i
持有事件数据报r中认证节点v2使用的密钥k
iv2
,于是使用该密钥计算消息验证码然后计算消息验证码m的每个散列值并查看f中相应位是否为1,结果发现f中相应位均为1,验证通过;
[0050]
s45:由于事件数据报r中有认证节点(例如v
c
)在v
i
的通信范围内,于是v
i
执行基于多播路由的认证信息真实性验证,具体执行过程如下:
[0051]
d1:v
i
初始化接收ask消息的目的节点集合为v
(d)
={v
c
,v2,v4,v7}。
[0052]
d2:由于v
c
和v7是v
i
的邻居(图3中以v
i
为圆心的虚线圆形内的节点均为v
i
的邻居),于是将v
c
和v7从v
(d)
中删除,并加入v
(d’)
。此时,v
(d)
={v2,v4},v
(d’)
={v
c
,v7}。
[0053]
d3:由于v
(d’)
不为空,于是v
i
检查本地的eilist表,找到了v
c
和v7为事件数据报r提供的认证信息记录,并且确认该记录中v
c
和v7的位置及密钥索引与事件数据报r中v
c
和v7的位置及密钥索引是一致的。
[0054]
d4:由于v
(d)
不为空,于是v
i
启动定时器。
[0055]
d5:按照公式(1)~(3)计算v
i
相对于其各个邻居节点v
t
(v
c
除外)的ap(v
i
,v
t
,v
(d)
),然后从中选出ap最大的邻居节点为v6。
[0056]
ap(v
i
,v
t
,v
(d)
)=cp(v
i
,v
t
,v
(d)
)/|v
(d)
|
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0057]
cp(v
i
,v
t
,v
(d)
)=cd(v
i
,v
(d)
)

cd(v
t
,v
(d)
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0058][0059]
d6:在v
i
的邻居中任选两个节点v
t1
和v
t2
(v
c
除外),将v
(d)
中的各目的节点按照到v
t1
和v
t2
距离较近的原则,划分到v
t1
的目的节点集合v
(d1)
或v
t2
的目的节点集合v
(d2)
中,计算ap1=ap(v
i
,v
t1
,v
(d1)
)和ap2=ap(v
i
,v
t2
,v
(d2)
),然后全局选出使得(ap1 ap2)/2最大的两个邻居节点组合为<v6,v7>,从而形成了两个分支。
[0060]
d7:由于步骤d5中最大的ap≥步骤d6中最大的(ap1 ap2)/2,故选择步骤d5中的v6作为下一跳节点,v
i
将ask消息(内含{id
vc
,c,idv
i
,v
(d)
,l
(d)
,i
(d)
},其中l
(d)
和i
(d)
分别是事件数据报r中提供的v
(d)
中各认证节点的位置集合和密钥索引集合)发送给v6。v6收到ask消息后,发现v
(d)
中的节点v2和v4均在其通信范围内,于是直接广播该ask消息,v2和v4收到广播的ask消息后,发现自己是v
(d)
中指定的目的节点,于是检测自己是否为标识为{id
vc
,c}的数据报提供过认证信息,结果发现自己确实提供过认证信息,并且ask消息中给出的自己的位置和密钥索引都是正确的,于是v2和v4按照收到ask的路由给v
i
发回reply消息。
[0061]
d8:定时结束后,v
i
收到了v
(d)
中所有认证节点(即v2和v4)的reply消息,于是认为事件数据报r中认证信息真实性验证通过。
[0062]
由于上述验证步骤均已通过,v
i
判定事件数据报r是合法的事件数据报,于是v
i
从其上游节点中随机选择一个转发节点,并将事件数据报r发送给它。最终,数据报事件数据报r将传送到sink节点(例如,沿着图3中显示的路径传送)。
[0063]
(2)重放数据报的过滤
[0064]
假设在t1之后的某个时刻v
c
被敌人捕获,成为恶意妥协节点。敌人控制v
c
将其之前生成的事件数据报r:{l
e
,t1,e,c,id
vc
,l
vc
,i
vc
,id
v2
,l
v2
,i
v2
,id
v4
,l
v4
,i
v4
,id
v7
,l
v7
,i
v7
,f}再次注入网络,企图耗费网络资源。假设v
c
从其上游节点中选择v
m
作为转发节点,并将事件数据报r发送给它。
[0065]
v
c
的邻居(v
m
除外)收到事件数据报r之后,从事件数据报r中提取出数据报标识{id
vc
,c},然后检测本地存储的数据报标识表rilist中是否存储过该数据报标识,发现已经存储过{id
vc
,c},则不再重复存储。
[0066]
v
m
作为事件数据报r的转发节点,需要对事件数据报r进行验证,执行过程如下:
[0067]
s41:v
m
检测本地存储的rilist表中是否存储过事件数据报r的数据报标识{id
vc

c},结果发现已经存储过,因此,判定事件数据报r是重放数据报,直接丢弃事件数据报r。
[0068]
(3)虚假数据报的过滤
[0069]
假设在t2时刻,恶意妥协节点v
c
拟伪造一个虚假的数据报并注入网络。v
c
将虚假事件的位置l
e1
伪造在自己的周围(图3中菱形代表的位置),v
c
作为该虚假事件的cos节点,另外再选择虚假事件感知范围(图3中的以菱形为圆心的实线圆形)内的节点v1、v8和v9作为该虚假事件的认证节点。由于v1、v8和v9均为v
c
的邻居(图3中以v
c
为圆心的虚线圆形内的节点均为v
c
的邻居),因此,v
c
存有它们的位置信息(即l
v1
、l
v8
和l
v9
),可直接用于虚假数据报中,但v
c
不知道它们的密钥分区、密钥索引以及密钥。此时,v
c
为它们伪造属于不同密钥分区的密钥索引,分别为i
v1’、i
v8’和i
v9’。此外,虚假事件的读数和v
c
计数器的值分别随机伪造为e1和c1(但要确保c1不等于c),数据报中所需的f值伪造为含有不超过5
×
5个1的值,记作f1。最终,v
c
形成了虚假的数据报r1:{l
e1
,t2,e1,c1,id
vc
,l
vc
,i
vc
,id
v1
,l
v1
,i
v1’,id
v8
,l
v8
,i
v8’,id
v9
,l
v9
,i
v9’,f1}。然后,v
c
从其上游节点中随机选择一个节点(假设为v
i
),并将数据报r1发送给它。
[0070]
v
c
的邻居(v
i
除外)收到数据报r1之后,从数据报r1中提取出数据报标识{id
vc
,c1},然后检测本地存储的数据报标识表rilist中是否存储过该数据报标识,发现未存储过,于是将{id
vc
,c1}存储至rilist表中。
[0071]
v
i
作为数据报r1的转发节点,需要对数据报r1进行验证,具体执行过程如下:
[0072]
s41:v
i
检测本地存储的rilist表中是否存储过数据报r1的数据报标识{id
vc
,c1},发现未存储过,于是将{id
vc
,c1}存储至rilist表中;
[0073]
s42:v
i
检查数据报r1的格式是否完整、f1中是否最多含有5
×
5个1,以及数据报r1中的密钥索引是否属于不同的密钥分区,检查结果为通过;
[0074]
s43:v
i
验证数据报r1中认证节点位置的合理性,验证结果为通过;
[0075]
s44:假设v
i
没有持有数据报r1中任何认证节点使用的密钥,于是默认本步骤的消息验证码验证为通过;
[0076]
s45:由于数据报r1中有认证节点(例如v
c
)在v
i
的通信范围内,于是v
i
执行基于多播路由的认证信息真实性验证,具体执行过程如下:
[0077]
d1:v
i
初始化接收ask消息的目的节点集合为v
(d)
={v
c
,v1,v8,v9}。
[0078]
d2:由于v
c
、v8和v9是v
i
的邻居(图3中以v
i
为圆心的虚线圆形内的节点均为v
i
的邻居),于是将v
c
、v8和v9从v
(d)
中删除,并加入v
(d’)
。此时,v
(d)
={v1},v
(d’)
={v
c
,v8,v9}。
[0079]
d3:由于v
(d’)
不为空,于是v
i
检查本地的eilist表中是否存有v
c
、v8和v9为数据报r1提供的认证信息记录,结果没有找到相应的认证信息记录,因此,v
i
认为数据报r1中认证信息真实性验证不通过,继而判定数据报r1是虚假数据报,并且丢弃数据报r1。
[0080]
本发明提供了一种应用于无线传感器网络的虚假数据途中过滤方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献