传感器网络的安全分析
由于传感器网络自身的一些特性,使其在各个协议层都容易遭受到各种形式的攻击。下面着重分析对网络传输底层的攻击形式。
1 物理层的攻击和防御
物理层中安全的主要问题就是如何建立有效的数据加密机制,由于传感器节点的限制,其有限计算能力和存储空间使基于公钥的密码体制难以应用于无线传感器网络中。为了节省传感器网络的能量开销和提供整体性能,也尽量要采用轻量级的对称加密算法。
对称加密算法在无线传感器网络中的负载,在多种嵌入式平台构架上分别测试了RC4、RC5和IDEA等5 种常用的对称加密算法的计算开销。测试表明在无线传感器平台上性能较优的对称加密算法是RC4,而不是目前传感器网络中所使用的RC5。
由于对称加密算法的局限性,不能方便地进行数字签名和身份认证,给无线传感器网络安全机制的设计带来了较大的困难。因此高效的公钥算法是无线传感器网络安全亟待解决的问题。
2 链路层的攻击和防御
数据链路层或介质访问控制层为邻居节点提供可靠的通信通道,在MAC协议中,节点通过监测邻居节点是否发送数据来确定自身是否能访问通信信道。这种载波监听方式特别容易遭到拒绝服务攻击也就是DOS。在某些MAC层协议中使用载波监听的方法来与相邻节点协调使用信道。当发生信道冲突时,节点使用二进制值指数倒退算法来确定重新发送数据的时机,攻击者只需要产生一个字节的冲突就可以破坏整个数据包的发送。因为只要部分数据的冲突就会导致接收者对数据包的校验和不匹配。导致接收者会发送数据冲突的应答控制信息ACK使发送节点根据二进制指数倒退算法重新选择发送时机。这样经过反复冲突,使节点不断倒退,从而导致信道阻塞。恶意节点有计划地重复占用信道比长期阻塞信道要花更少的能量,而且相对于节点载波监听的开销,攻击者所消耗的能量非常的小,对于能量有限的节点,这种攻击能很快耗尽节点有限的能量。所以,载波冲突是一种有效的DOS攻击方法。
虽然纠错码提供了消息容错的机制,但是纠错码只能处理信道偶然错误,而一个恶意节点可以破坏比纠错码所能恢复的错误更多的信息。纠错码本身也导致了额外的处理和通信开销。目前来看,这种利用载波冲突对DOS的攻击还没有有效的防范方法。
解决的方法就是对MAC的准入控制进行限速,网络自动忽略过多的请求,从而不必对于每个请求都应答,节省了通信的开销。但是采用时分多路算法的MAC协议通常系统开销比较大,不利于传感器节点节省能量。
3 网络层的攻击和防御
通常,在无线传感器网络中,大量的传感器节点密集地分布在一个区域里,消息可能需要经过若干节点才能到达目的地,而且由于传感器网络的动态性,因此没有固定的基础结构,所以每个节点都需要具有路由的功能。由于每个节点都是潜在的路由节点,因此更易于受到攻击。无线传感器网络的主要攻击种类较多,简单介绍如下。
3. 1 虚假路由信息
通过欺骗,更改和重发路由信息,攻击者可以创建路由环,吸引或者拒绝网络信息流通量,延长或者缩短路由路径,形成虚假的错误消息,分割网络,增加端到端的时延。
3. 2 选择性的转发
3. 3 污水池( sinkhole)攻击
3. 4 Sybil攻击
在这种攻击中,单个节点以多个身份出现在网络中的其他节点面前,使之具有更高概率被其他节点选作路由路径中的节点,然后和其他攻击方法结合使用,达到攻击的目的。它降低具有容错功能的路由方案的容错效果,并对地理路由协议产生重大威胁女巫。
3. 5 蠕虫洞(wormholes)攻击
攻击者通过低延时链路将某个网络分区中的消息发往网络的另一分区重放。常见的形式是两个恶意节点相互串通,合谋进行攻击。
3. 6 Hello洪泛攻击
很多路由协议需要传感器节点定时地发送HELLO包,以声明自己是其他节点的邻居节点。而收到该Hello报文的节点则会假定自身处于发送者正常无线传输范围内。而事实上,该节点离恶意节点距离较远,以普通的发射功率传输的数据包根本到不了目的地。网络层路由协议为整个无线传感器网络提供了关键的路由服务。如受到攻击后果非常严重。
无线传感器网络的节点定位机制
关于无线传感器网络的定位问题分为两类,一类是无线传感器网络对自身传感器节点的定位,另一类是无线传感器网络对外部目标的定位。本文主要讨论前者。
节点准确地进行自身定位是无线传感器网络应用的重要条件。由于节点工作区域或者是人类不适合进入的区域,或者是敌对区域,传感器节点有时甚至需要通过*行器抛撒于工作区域,因此节点的位置都是随机并且未知的。然而在许多应用中,节点所采集到的数据必须结合其在测量坐标系内的位置信息才有意义,否则,如果不知道数据所对应的地理位置,数据就失去意义。除此之外,无线传感器网络节点自身的定位还可以在外部目标的定位和追踪以及提高路由效率等方面发挥作用。因此,实现节点的自身定位对无线传感器网络有重要的意义。
获得节点位置的一个直接想法是利用**定位系统(GPS)来实现。但是,在无线传感器网络中使用GPS来获得所有节点的位置受到价格、体积、功耗以及可扩展性等因素限制,存在着一些困难。因此目前主要的研究工作是利用传感器网络中少量已知位置的节点来获得其他未知位置节点的位置信息。已知位置的节点称作锚节点,它们可能是被预先放置好的,或者采用GPS或其他方法得知自己的位置。未知位置的节点称作未知节点,它们需要被定位。锚节点根据自身位置建立本地坐标系,未知节点根据锚节点计算出自己在本地坐标系里的相对位置。
根据具体的定位机制,可以将现有的无线传感器网络自身定位方法分为两类:基于测距的(Range-based)方法和不基于测距的(Range-free)方法[6]。基于测距的定位机制需要测量未知节点与锚节点之间的距离或者角度信息,然后使用三边测量法、三角测量法或较大似然估计法计算未知节点的位置。而不基于测距的定位机制*距离或角度信息,或者不用直接测量这些信息,仅根据网络的连通性等信息实现节点的定位。
无线传感器网络的特点
1、 无线传感器网络包括了大面积的空间分布
比如在军事应用方面,可以将无线传感器网络部署在战场上跟踪敌人的军事行动,智能化的终端可以被大量地装在宣传品、子弹或炮弹壳中,在目标地点撒落下去,形成大面积的监视网络。
2、 能源受限制
网络中每个节点的电源是有限的,网络大多工作在无人区或者对人体有伤害的恶劣环境中,更换电源几乎是不可能的事,这势必要求网络功耗要小以延长网络的寿命,而且要尽较大可能的节省电源消耗。
3、 网络自动配置,自动识别节点
这包括自动组网、对入网的终端进行身份验证、防止非法用户入侵。相对于那些布置在预先*地点的传感器网络而言,无线传感器网络可以借鉴ad hoc方式来配置,当然前提是要有一套合适的通信协议保证网络在无人干预情况下自动运行。
4、 网络的自动管理和高度协作性
在无线传感器网络中,数据处理由节点自身完成,这样做的目的是减少无线链路中传送的数据量,只有与其他节点相关的信息才在链路中传送。以数据为中心的特性是无线传感器网络的又一个特点,由于节点不是预先计划的,而且节点位置也不是预先确定的,这样就有一些节点由于发生较多错误或者不能执行*任务而被中止运行。为了在网络中监视目标对象,配置冗余节点是必要的,节点之间可以通信和协作,共享数据,这样可以保证获得被监视对象比较全面的数据。
对用户来说,向所有位于观测区内的传感器发送一个数据请求,然后将采集的数据送到*节点处理,可以用一个多播路由协议把消息送到相关节点,这需要一个一的地址表,对于用户而言,不需要知道每个传感器的具体身份号,所以可以用以数据为中心的组网方式。
5、与移动ad hoc网络的区别
无线传感器网络作为一种分布式传感器网络,和移动ad hoc网络有相似点,但又有很多不同。移动ad hoc网络可以用于没有无线基础设施存在或出于费用和安全方面的考虑不方便设置无线基础设施的场合,而传感器很多时候被布置在近地环境中,地波吸收现象不能被忽视,并且高密度布置的传感器网络中的多用户接口也造成了很高的误比特率。作为移动通信的两种基本组网模式之一,移动ad hoc网络中的传输模型是典型的多对多式,而传感器网中的传输模型更偏向于分层次模型(多对一传输)。一般来说,无线传感器网络的节点比典型的移动终端或手持设备有更多的资源受限要求,但对于计算的要求则是可有可无的,当需要执行计算任务时,如果通信成本比计算成本低,计算任务就被送到中心节点去执行。
大规模传感器网络中的节点移动性管理
这个问题实质上就是没有无线基础设施的无线传感器网络中的节点查询问题。较简单的资源查询方式是全局泛洪法,但是对于资源有限的无线传感器网络不适用,因此在设计工作中应该尽量避免使用全局泛洪法。扩展环搜索法(expanding ring search)用增加生存时间(Time-To-Live, TTL)的方式重复泛洪,这种方式和由此派生出来的方式也不适合无线传感器网络。在改善泛洪法的效率方面,文献[6]中提出的方案是通过减少查询每个节点时出现的多余消息去减少泛洪法固有的冗余,在没有出现明显的冗余情况下,这种方案对提高效率没有太多贡献。在ad hoc网络中,查询节点是通过基于簇(clusters)和界标(landmarks)的层次表来实现的,这种方式需要在节点之间设置复杂的协调机制,当节点移动时或者簇头(cluster-head)或界标失败时,层次表需要重新配置。而且,通常簇头会成为一个瓶颈,所以我们通常避免这种分层次的协调表,也避免使用簇头。
GLS[7]中提出的技术是基于一种所有节点都已知的网络网格图。节点使用位置服务器保存它们的位置,并用一种基于ID号的算法去更新它们的位置,当节点寻找*ID号的节点位置时,也用这种算法去服务器寻找目标节点的位置。对于知道网络的网格图和它们自己的位置并且知道目标节点的ID号的节点,这种方法是一个好方法。
文献[8]中介绍了一种针对大规模移动传感器网络的查询方法,这种方法借用了小世界(small worlds)的概念,利用节点的移动性去提高查询效率,并引入了关联(contacts)的概念。其工作原理是首先在相邻节点间建立关联,当它们移动时,再关联新的相邻节点,这样提高了查询的效率。与传统的路由查询方式不同,这种设计基本目标不是去优化路由或者响应延时,而是去减少通信的系统开销,这一点在能量受限的环境中非常重要,特别是对于传感器数量众多的网络中的一次性查询(通信的生存时间很短)。文中给出的协议是可升级的(scalable)、自动配置的,非常适应节点的移动性要求。仿真结果显示它比边缘泛洪法提高效率60-70%,比泛洪法提高效率80-90%,比扩展环搜索法则有更大的改善。
针对无线传感器网络中的分布式定位,文献[9]比较了三种定位算法:ad hoc、鲁棒定位、N跳多向法(N-hop multilateration)。具体选择哪种算法要取决于某些网络参数,比如差错分布和连通性等。