关键词:无线传感器网络 加密 安全方案
一、引言
近年来,随着无线通信、集成电路、嵌入式计算及微机电系统等技术的飞速发展和日益成熟,具有感知能力、计算能力和通信能力的微型无线传感器开始在世界范围内出现。这些传感器具有低成本、低功耗、多功能等特点和无线通信、数据采集、信息处理、协同合作等功能。由这些微型传感器节点构成的传感器网络,能够协调地实时监测、感知和采集网络分布区域内的各种环境或监测对象的信息,并对这些数据进行处理,从而获得详尽而准确的信息,将其传送到需要这些信息的用户。因此,传感器网络[1]是信息感知和采集的一场革命,它能够在任何时间、任何地点和任何环境条件下提供大量详实可靠的信息,因而可以被广泛应用于军事斗争、国家安全、环境监测、交通管理、医疗卫生、制造业和反恐抗灾等领域。
由于传感器网络一般配置在恶劣环境、无人区域或敌方阵地中,加之无线网络本身固有的脆弱性,因而传感器网络安全[2,3]引起了人们的极大关注。传感器网络的许多应用(如军事目标的监测和跟踪等)在很大程度上取决于网络的安全运行,一旦传感器网络受到攻击或破坏,将可能导致灾难性的后果。如何在节点计算速度、电源能量、通信能力和存储空间非常有限的情况下,通过设计安全机制,提供机密性保护和身份认证功能,防止各种恶意攻击,为传感器网络创造一个相对安全的工作环境,是一个关系到传感器网络能否真正走向实用的关键性问题。
传感器网络的研究始于20世纪90年代末期,但安全问题的研究成果近几年才陆续出现,各种安全方案[4~13]不断被提出。但由于传感器网络还未被真正地模型化和量化,无线传感器网络安全方案正处于理论研究阶段,距离实际应用和形成普遍接受的标准还相差甚远。
本文的组织结构如下:第2节给出了无线传感器网络的安全需求;第3节全面描述了消息加密方案中有关的协议和算法;第4节详细分析了方案的安全性和效率;第5节对全文进行总结得出结论。
二、无线传感器网络的安全需求
传感器网络具有许多鲜明特点,如通信能力有限、电源能量有限、计算速度和存储空间有限、传感器节点配置密集和网络拓扑结构灵活多变等,这些特点对于安全方案的设计提出了一系列挑战。一种比较完善的无线传感器网络解决方案应当具备如下基本特征[2~4]:
机密性:传感器网络不应当向其他网络泄漏任何敏感的信息,且因密钥泄漏造成的影响应当尽可能控制在一个小的范围内,从而使得一个密钥的泄露不至于影响整个网络的安全。
真实性:节点身份认证或数据源认证在传感器网络的许多应用中是非常重要的。在传感器网络中,攻击者极易向网络注入信息,接收者只有通过数据源认证才能确信消息是从正确的节点处发送过来的。
完整性:在通信过程中,数据完整性能够保证接收者收到的信息在传输过程中没有被攻击者篡改或替换。
新鲜性:为防止攻击者进行任何形式的重放攻击,我们必须保证每条消息是新鲜的。简单地说,新鲜性是指发送方传给接收者的数据是在最近时间内生成的最新数据。
扩展性:传感器网络的可扩展性表现在传感器数量、网络覆盖区域、生命周期、时间延迟、感知精度等方面的可扩展极限。因此,给定传感器网络的可扩展性级别,安全解决方案必须提供支持该可扩展性级别的安全机制和算法,来使传感器网络保持良好的工作状态。
可用性:传感器网络的安全解决方案所提供的各种服务能够被授权用户使用,并能够有效防止非法攻击者企图中断传感器网络服务的恶意攻击。同时,安全性设计方案不应当限制网络的可用性。
三、基本协议
协议中所用到符号的意义: 表示x在集合N中随机地选取,分别表示两个不同的碰撞自由的单向散列函数(如MD5和SHA-1),║表示字符串连接操作符, 表示使用秘密密钥Ki对消息M进行加密,表示使用密钥Ki生成M的消息认证码。
1.会话密钥建立协议
在传感器网络中,一个完整的会话密钥建立过程通常包括三个阶段,即密钥预分发、单跳密钥发现和多跳密钥建立。
(1)基站产生n个密钥及其对应的标识符(),这些密钥和标识符形成一个密钥池P,即
其中ki为基站生成的密钥,IDi为密钥ki对应的标识符。
(2)基站从n个密钥中随机选出r个密钥,组成某个传感器节点A的密钥环RA,并将密钥环加载到A的存储器中,即:
其中IDAi为密钥kAi对应的标识符。基站保存每个传感器节点的密钥环(包括r个密钥及其对应的标识符)。
(3)传感器节点A计算与基站共享的密钥KBA
并将其加载到存储器中。其中,IDB表示基站的身份标识。
至此,密钥预分发阶段结束,该阶段保证了簇内任意两个节点能够以某一概率在各自的密钥环上找到双方共享的会话密钥。
(4)传感器网络配置时,节点A被随机或者特定地散布在指定的感知区域内。在簇形成过程结束后,它广播一个信息:
*表示节点A所在簇内的任意节点,LA表示节点A的位置信息。
(5)收到该信息的所有节点将确信它在节点A的传输范围内,即二者在同一个簇中,并通过遍历其密钥环,检查是否存在与A广播的密钥标识符集相交的元素。假定节点C在其密钥环上发现存在与A标识符集相交的元素IDAC,则证明节点C与A共享有与IDAC对应的会话密钥KAC。于是,节点C返回给A一响应消息:
(6)A使用共享会话密钥KAC对响应消息进行解密,确信其密钥环与节点C有交集。
单跳密钥发现过程使得节点能够通过广播消息的方式,找到簇内与其共享有密钥环上某个会话密钥的节点。在单跳密钥发现过程结束后,节点A保存已找到共享实体的密钥,并将密钥环上其余密钥删除。
(7)对于簇内尚未与A建立共享密钥的节点来说,可以通过如下过程生成会话密钥。假定节点D在单跳密钥发现过程结束后,仍未与节点A建立共享密钥,但它找到与节点C共享的会话密钥KDC,且节点A与节点C也共享有密钥KAC。此时,A发送一个挑战信息给节点C在对其进行身份认证后,该信息包含A和D共享的密钥KAD及A的位置信息LA
(8)节点C解密消息,并将其使用密钥KDC对消息再次加密后转发给节点D:
(9)节点D验证挑战消息的合法性,并发送一个响应信息给节点A:
其中,nonce是一个随机数,LD是节点D的位置信息。
(10)节点A使用共享密钥KAD对响应消息进行解密,确信与D共享的密钥已经建立。
在多跳密钥建立过程结束后,簇内任意两个节点之间都共享有一个会话密钥。