现有的应用于无线传感网的密钥管理方案,几乎没有考虑无线网路的不可靠性,网络中存在丢包率这一现实。为此我们提出一种能量有效的抗妥协的认证加密算法STAE,采用分段传输、OFB分组加密、认证并重构信息等方法,增强了数据传输和重构的安全性及效率,保证网络中备在一定丢包率和部分妥协节点的情况下,仍能有效地抵御侦听、数据篡改和DoS攻击等行为。
一、抗妥协加密方案
本文我们了提出一个高效节能的分段传输认证加密( SubsectionTransport Authenticated Encryption,STAE)算法,该算法允许网络中存在一定的丢包率和部分妥协节点,下面作详细介绍。
1、STAE算法设计原理
STAE算法适用予多跳数据传输模式,可用于分簇或非分簇网络结构,算法对于节点位置、无线设备都没有特别的要求q每个源节点向聚合节点发送检测数据,检测数据由定时更新的网络密钥进行加密,聚合节点将这些检测数据进行解密并聚合,聚合数据达到一定量后,被分成若干小段,以分组密码进行加密处理,然后通过不同的路由发送给Sink节点。Sink节点的能量不受限,收集到足够的分段数据后,即可以进行数据重构,以获得完整的信息a STAE算法中重构信息所需要的分段数据数量小于被传输的分段数据的数量,因此,系统允许存在部分数据丢失的情况d而中继节点由于只获得一条分段数据,无法重构信息。
STAE算法中各分段数据采用分组式对称密钥模式进行认证和加密。加密采用OFB模式有效地提高系统的容错性和保密性。
2、分段传输方案
各聚合节点将聚合处理后的数据保存到各自内部缓存区,缓存区装满后,将对这些数据进行分段(如分成,段)并加密后,通过广条不相交的路由获得多条路由,以多跳的方式到达Sink节点(如图l所示)。Sink节点需要至少z条分段数据即可进行数据重组恢复原始信息。
因此,该方案不仅提供了保密性,还能容忍网络中存在少数妥协节点,具有较强的容错性和抗妥协性。
3、认证加密方案
恶意者可以通过侦听获得一些零散消息,还可以对消息内容进行篡改,或者发送一些垃圾数据以达到攻击目的。Sink节点可以通过采用不同的z个节点的数据进行信息重构,如果两次重构结果明显不同,则说明网络中发生攻击。这种方式只能判断攻击行为是否发生,无法判断哪条数据是伪数据。因此,方案采用OFB模式和CTR模式组合对数据的真实性进行认证。采用OFB加密模式的原因是该模式没有错误扩散,密文中单个位的错误只引起恢复明文的单个错误。由于无线传感网对同一事件产生的数据存在较大的冗余性,这种单个错误不会影响恢复明文和信息的重构。
1)加密算法
STAE加密算法如图2所示,通过将缓存区中的数据进行分段,经过一系列计算,将得到各段认证标记TagJ及加密数据G Tagi的长度取决于底层分组加密算法的分组长度。在此以—个64位分组加密算法为例,详细步骤描述如下:
(1)数据分段:首先,采用分段传输方案中的方法,将S拆分成长度相等的段,根据多项式只(x)构成,条分段数据:E(1)—(r)。
(2)初始赋值:使用密钥髟对随机初始向量IV进行加密。得到初始加密向量Civ。
(3)逻辑运算:对于第1段数据E(1),将cwraJ左移刀位后,其低位用移出的高,l位补位,得到C1,然后以密钥K对C:采用底层分组加密算法进行加密。将加密得到的密文与第一个数据段Fi(1)进行逻辑异或运算,得到第1段数据密文G。
(4)最终结果:按照上述步骤(3)的方法,如图2所示,将前1阶段经密钥足加密得到的密文取出高以位,对移位后的Gv的低位进行补位,参与第2段运算,依次得到每一段数据密文C2,C311,..t,C各段认证标记Tag1,Tag2一iTagt由C与各段密文进行或运算后,经密钥K加密得到。
2、解密算法
解密算法与加密算法类似,由Sink节点完成。首先对密文状态下的数据进行认证,如果Tag'#Tag则拒绝该段无效数据;否则继续解密。只要获得z条有效数据,即可使用多项式内插法解出Fi,由Si=fi(0)得到原始数据。
二、抗妥协加密方案再无线传感网中的应用
1、安全性分析
STAE算法允许网络中存在一定的丢包率和少数妥协节点,在此情况下作算法的安全性分析。
1)通过侦听获取信息的可能性
STAE算法中,重构信息的前提是至少获得z条分段数据,且这些数据来自相同的节点。
分段数据通过r条不同的路由传送,每条路由只包含1部分数据。攻击者需要至少获取2条路由上的数据,且这些数据晗巧来自相同的节点,才能够重构信息,得到有用资料。由于攻击者不可能完全掌握网络的拓扑结构,无法得知哪些路由上的的数据来自相同的节点,因此通过侦听获取信息很难成功。
2)虚假信息注入攻击
如果攻击者攻陷了至少z个节点,那么其能否向网络注入虚假信息?即使攻击者操纵了z个妥协节点,但不能保证Sink节点将使用由这z个节点提供的分段数据来重构信息(Sink节点可能使用那些没有遭到攻击的路由的数据)。另外,由于STAE算法提供了OFB加密模式对数据的真实性进行认证,Sink节点可以拒绝无效的数据,而选择其他真实性得到证实的数据来重构信息。通过数据篡改欺骗Sink节点几乎不存在可能:攻击者不知道预期的消息认证码;对于攻击者来说,注入一段假数据来修改原有数据是非常困难的。
3)拒绝服务攻击
实施拒绝服务(Denial of Senrice,DoS)攻击可分为两种情况:第一种情况是不转发数据,第二种情况是发送垃圾数据。对于不转发数据,可以看作该传感器节点因能量耗尽而完全失效;要处理垃圾数据则较困难,如果没有消息认证码,攻击者仅仅需要攻陷一条路由并不断地发送垃圾数据即可达到目的。在这种情况下,Sink节点为了重构信息可能有数倍的输出量,却难以判断哪些信息是真实的。而本文方案采用消息认证码,垃圾数据及时被拒绝,如同错误的分段数据被丢失。
通过实施DoS攻击达到阻止Sink节点收集z个有效分段数据的目的,攻击者需要攻陷至少r - z+1条不同的路由(即攻陷,r- z+1个不同路由上的节点)。由于攻击者不可能知道具体的路由拓扑,他只能随机地攻击节点,进行DoS攻击几乎不可能成功。因此,攻击者不得不攻陷比r- z+1更多的节点,这对于攻击者来说,其难度和代价都太大了,基本无法实现。
4)加密算法的安全性
STAE算法提供双因子的消息认证码,由Highn值生成所需的消息认证码标记。使用双因子消息认证比使用单因子消息认证具有更高的可信度m。
通常加密认证算法较难解决的—个问题就是可能存在重复的随机数和加密密钥吼,此时,如果在相同的位置产生相同的消息,那么其生成的密文则相同。而STAE算法由不同的密钥流产生不同的Highn值,从而避免了这种情况发生。
STAE算法网络中所有节点共享一个通用的定期更新的网络密钥,如果两个节点共享一个Highn值,它们将会建立一条虚拟私有连接,其他节点即使拥有相关的密钥也无法加入到该连接中,除非它们拥有这个Highn值。STAE算法通过建立虚拟私有连接,进一步提高了通信的安全性,有效地抵御了恶意节点的攻击。该机制可以扩展到建立安全多路组播。
从保证系统安全性角度考虑,建议使用64位分组密码的STAE算法。
小知识之无线传感器网络
无线传感器网络(Wireless Sensor Networks, WSN)是一种分布式传感网络,它的末梢是可以感知和检查外部世界的传感器。WSN中的传感器通过无线方式通信,因此网络设置灵活,设备位置可以随时更改,还可以跟互联网进行有线或无线方式的连接。通过无线通信方式形成的一个多跳自组织网络。