微传感器技术、微电子技术、无线通信技术以及计算机技术的进步,极大地推动了集信息采集、处理、无线传输等功能于一体的无线传感器网络WSN(Wireless Sensor Networks)的发展。WSN以其低成本、低功耗的特点,在军事、环境监测、医疗健康等领域有着广泛的应用,并逐渐深入到人类生活的各个领域。
当WSN部署在一个敌对的环境中,安全性就显得极为重要,因为它们容易产生不同类型的恶意攻击。例如,敌人可以冒充合法节点窃取网络中的通信数据,或者发送错误的信息给其他节点。为了确保从网络中收集到的数据正确可靠,节点间的数据通信必须采取安全机制。而WSN区别于其他传统的无线网络,具有非常有限的资源,如有限的能量、带宽以及处理和存储数据的能力,这就要求面向WSN的安全机制必须轻量简单,易于在微型传感器上实现。
近几年,WSN的安全问题受到了许多研究者的关注。参考文献[1]提出一种低通信开销的点对点认证协议,该协议的安全性完全依赖于基站,如果基站被攻陷,网络将毫无安全性可言。参考文献[2]提出点到多点认证方案,解决了共享密钥问题,但是无法抵御DoS攻击。参考文献[3]提出一种随机密钥分配方案,但该方案无法保证网络的连通性。参考文献[4]提出一种使通信双方具有q个公共密钥的q-composite模型,增强了网络的连通性,但方案增加了通信开销。参考文献[5]认为任何一种单一的密钥机制都不可能实现WSN所需的安全通信,因此提出多密钥机制——LEAP协议,其优点是任何节点的受损都不会影响其他节点的安全,缺点是节点部署后,在一个特定的时间内必须保留全网通用的组密钥,若组密钥一旦被暴露,则整个网络的安全都受到威胁。
本文在LEAP的多密钥机制基础上,对网络区域进行簇的划分,以减少数据传输产生的能量消耗,并设计密钥更新算法,进一步增强网络的安全性。
1 基于固定簇结构的密钥管理方案
1.1 固定簇结构
在本方案中,网络区域被基站划分为若干大小相等、固定不变的的网格,每个网格形成一个簇,每个簇有一个轮换选出的簇头节点,如图1所示。节点在网络中的位置是已知的,节点形成簇是基于它们的位置。簇区域的划分是在簇头选举的第一轮进行,在整个网络生命周期内不再变动。从第二轮开始,不再需要基站的任何控制信息,极大地减少了在初始化阶段与基站的通信量。
采用网格的形式划分并固定簇区域的方法,可以使簇头节点均匀分布在网络中,以得到较优化的簇结构。同时,由于簇区域已经固定,在每一轮的初始化阶段(除了第一轮)要完成的工作只是簇头节点的选择,减少了形成簇所需要的一系列广播带来的能耗。
当簇形成以后,簇头节点确定TDMA时隙表并通告每个簇内成员。当簇头的电池能量降低到一个预定的值Ehmin时,或作为簇头节点服务了一段预定的时间后,它将在簇内广播一条新的选举信息,选出一个新的簇头节点。
1.2 网络密钥类型
本方案支持四种类型的密钥:个体密钥、对密钥、簇密钥和组密钥。下面将讨论每一种类型的密钥。
(1)个体密钥:每个成员节点都有一个唯一的与基站共享的密钥,用于成员节点与基站之间的安全通信。例如,一个成员节点如果发现邻居节点的异常行为,可以发送警报给基站;基站也可以使用该密钥加密信息发送给成员节点。
(2)对密钥:每个节点与其直接邻居节点共享一个对密钥。对密钥用于需要加密或进行数据源认证的安全通信。例如,一个节点可以使用它的对密钥保护其与邻居节点的簇密钥,或保证其读数能传输到一个聚合节点。但是对密钥不能在消极参与中使用。
(3)簇密钥:簇头节点与其成员节点共享一个簇密钥,以确保本地广播信息(如路由控制信息、节点间传送的消息)的安全性。研究人员已经发现,在网络处理技术中,数据融合和消极参与对节省WSN的能量消耗是非常重要的。例如,当一个节点侦听到邻居节点转发的数据与当前自己读取的数据相同时,则可以选择不发送。在响应最大值聚合操作时,如果一个节点读取的数据小于侦听到的数据,即可废止自己的数据。为了使消息安全可行,邻居节点应该能够解密并验证信息的级别,如传感器读取的数据和邻居转发的数据。这意味着这些信息应该被加密或通过本地共享密钥验证身份。因此,在本方案中每个簇都拥有一个唯一的簇密钥,用于簇内信息的加密,其直接邻居节点使用相同密钥解密或验证该信息。
(4)组密钥:用于对整个网络中的广播消息进行加密,如基站发布任务或查询。由于组密钥在网络所有节点中共享,如果一个节点被攻陷,应即时更新组密钥,因此需要一个有效的密钥更新机制。
1.3 随机密钥分配方案
随机密钥分配方案主要分为4个阶段:
(1)密钥重新分配阶段。由中央密钥服务器生成一个大型脱机密钥池,其密钥分配步骤如下:
①分配一个唯一的节点标识符或密钥环标识符给每个传感器节点。
②从密钥池中选择m个不同的密钥给传感器节点,形成一个钥匙环。
③将密钥环装入传感器节点的内存。
(2)传感器部署阶段。传感器是随机挑选并统一大面积分布的。通常,一个成员节点的邻居节点数目n远小于网络节点的总数N。
(3)密钥发现阶段。在该阶段,每个传感器节点广播明文密钥标识符或使用私有共享密钥发现机制发现与邻居节点共享的密钥。通过比较拥有的密钥,一个传感器节点可以建立与之共享密钥的节点名单,然后广播此名单。通过从邻居收到的名单,一个传感器节点就可以构建一个基于邻居之间共享密钥关系的密钥图。
(4)对密钥建立阶段。如果一个传感器节点与给定的邻居共享密钥,此共享密钥被视为它们的对密钥。如果一个传感器节点不与给定的邻居共享密钥,即可在密钥发现阶段利用密钥图查找密钥路径,从而建立对密钥。该方案有两个特点,第一,预装在一个节点中的密钥也可以安装在其他节点中,即一个密钥可以由一对以上的节点共享。第二,在当前大部分方案中,预装密钥与节点ID之间没有任何关系。
1.4 密钥更新方案
如果一些节点使用同一密钥进行了20 k/3次加密运算(k是密钥的位数),则进行密钥更新。
(1)定期簇密钥更新:簇头节点使用簇密钥进行了20 k/3次加密运算后,由其产生新的随机簇密钥,新密钥用旧密钥加密,附加数字签名,并向簇中所有成员发送。
(2)定期组密钥更新:当基站使用相同的密钥进行了20 k/3次加密运算后,由基站产生新的随机组密钥,新密钥用旧密钥加密,附加数字签名并在网络中广播。
(3)成员加入簇密钥更新:新成员加入簇,簇头将产生新密钥,新密钥用旧密钥加密并发送给所有簇成员,新簇密钥用对密钥加密并发送给新成员,随后,簇头请求基站执行成员加入组密钥更新。