产生错误定位信息的节点能被已知它们位置的节点检测到,典型的是被其他信标节点检测到。为做到这一点,从另一信标节点na收到信标信号的信标节点n,能根据收到的信标信号估计出它的位置(x′,y′),然后比较实际的位置(x,y)和估计的位置。如果这两个位置的差高于特定门限值τ,这可能表示产生信标信号的节点na是恶意的。在Liu等(2005a)文献中,这一方法用于这种情况,即位置估计基于接收信号强度指示器(Received Signal Strength Indicator,RSSI),并且当非信标节点发出请求时,信标信号单播给非信标节点。该方案由下列步骤组成:
1)一个信标节点n,例如检测信标,请求一个来自另外信标节点的信标信号Breq。这个检测信标执行功能时,就好像它不是信标节点。
2)目标信标发送一个信标信号Bbeacon。信标信号通常也包括目标信标na的位置(xa,ya)。
3)检测信标根据RSSI计算,估计到目标信标位置(xa,ya)的距离da。
4)因为检测节点已经知道它的位置,就能计算出它到Bbeacon发出的目标节点位置的距离d。如果估算距离da和计算出的距离d的差高于门限值τ,这表示这个目标节点是恶意的,即
如果,则目标节点是恶意的(www.xing528.com)
虽然这项技术能检测出信标信号的异常,但是因为信标信号可能会被其他节点重放,所以它们不能总是指出信标是恶意的。当受到虫洞攻击时,这种情况尤为突出。为了处理这个问题,被重放的信标信号应该被过滤掉。在之前章节中讲过的阻止虫洞攻击的技术,能消除经由虫洞发送的信标信号。然而,它们不能检测出局部重放的信标信号,例如与一个信标为邻的恶意节点阻塞了它的信号,重放信标信号,就好像恶意节点是信标节点一样。
在Liu等(2005a)文献中介绍了基于往返时间(Round Trip Time,RTT)的方案。在这个方案中,在部署之前,两个节点之间的最大RTT期望值被测试并已知。节点对一个信标信号挑战信标,用式(13-1)计算出信标信号的RTT。如果计算出的RTT高于RTT期望值,这说明它是被重放的信标信号,因此丢弃。
RTT=(t4-t1)-(t3-t2) (13-1)
式中,t1是发送方发送完第一个比特的时刻;t4是它接收完回复中的第一个字节的时刻。基本上,(t4-t1)是发送方发送请求和收到回复的时间差。t4和t1在发送方都是可用的。然而(t4-t1)也包括了回复方处理的时间和由于消息认证码(MAC)的延迟。因此,这个值会基于许多参数不同而不同。为了从RTT中消除这些不可预测的因素,从中减去(t3-t2)。(t3-t2)是接收方收到请求的第一个字节时刻t2和发送完回复的第一个字节时刻t3的时间差。
检测到恶意信标不足以阻止它们的攻击。一个恶意节点会声称信标是敌手。因此,一个机制需要确保检测信标是友好的,它们的报告是正确的。为达到这一目的,Liu等(2005a)文献中依靠信标节点和基站之间的认证机制。信标向基站报告它们的发现。基站为每一个信标维护一个报告和警报计数器。信标不允许以超过规定的速率报告。为此,使用了报告计数器。每个警报计数器是信标的可靠性值。每当收到一个信标的负面报告时,它的警报计数器值增加。当警报计数器值超过门限值时,信标被撤销。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。