范 容,平玲娣,傅建庆,潘雪增
(浙江大学计算机科学与技术学院 杭州310027)
无线传感器网络(wireless sensor network,WSN)由大量微小传感器节点组成,节点之间采用多跳、无线射频或光波等方式通信,相互协作共同完成诸如数据采集、目标跟踪和指定区域监控等任务[1]。在无线传感器网络中,一般通过两种方法来收集感知数据:通过传感器节点实时地感知环境变量,采集数据并转发到汇聚节点(sink node)进行存储;传感器节点在获取感知数据后并不立即转发给汇聚节点,而是存储在本地节点或者本地的数据中心节点上。第二种方法被广泛应用于无人值守的无线传感器网络(unattended wireless sensor network,UWSN)[2]。这是由于在UWSN应用中,传感器节点大多被部署在恶劣环境中,例如冰川、深海、火山口等区域,人类接近这样的区域比较困难,且节点间通信困难,部署用于存储感知数据的汇聚节点也是十分困难的事情。再者,在某些场景下用户关心信息的摘要,包括历史信息的概要或者经过处理后的数据结果,需要感知数据的摘要信息而不是实时数据,这样感知数据不需要立即发送到中央节点或用户终端,而是长时间保存在传感器节点上[3],例如过去两周内的平均湿度,过去两个月内河水中含氧量的变化或者过去半年内土壤中化学物质的浓度[4]。这些感知数据通过基站定期获取或用户自行提取,可避免感知数据的实时传送,降低通信消耗,延长节点生命周期。
目前对于无人值守无线传感器网络的研究已经取得了诸多成果[2~7]。例如在参考文献[2,4,6]中,传感器节点并不实时发送感知数据,而是存储在节点上直到用户来读取;参考文献[3]提出了一种基于秘密共享技术的数据存储策略,提高了数据存活率,降低了通信消耗;参考文献[5]运用传感器的日志信息进行分析,来获取感知数据的历史趋势;参考文献[7]提出了一种基于数据关联性的存储方法,将相关性质相同的数据以一定命名规则进行命名,并存储在特定节点上。
由于传感器节点所拥有的资源有限,设计一种安全、高效的感知数据存储方案面临诸多挑战,需要在设计方案中平衡安全、效率、可行性等方面因素。并且由于传感器节点长期暴露在外,很容易受到各种攻击,例如将传感器节点熔化、腐蚀或者挤压破碎等物理攻击,网络攻击者所实施的俘获节点、篡改数据等复杂网络攻击。总体来说,一个安全、高效的感知数据存储方案需要满足以下3点设计要求。
· 安全性:在存储期间,非授权用户或者攻击者都无法读取已经存储在节点上的数据,能抵御节点妥协攻击。
· 完整性:在存储期间,任一节点可检查其共享数据,以保证数据的完整性,防止被攻击者修改。
· 可靠性:在发生数据丢失时,能在一定程度上保证原始感知数据的恢复。
为了满足以上设计要求,我们研究了基于门限的秘密共享机制,并运用哈希链技术来提高节点感知数据的安全性与可靠性,还提出了一种基于正交向量的动态完整性检查机制来保障感知数据的完整性。本文的创新之处在于:研究基于门限的多重秘密共享机制,并运用此技术在数据加密过程中,较好地平衡了系统的安全性与可行性;提出一种基于正交向量的动态完整性检查机制,减少了不必要的通信消耗与计算量,并能达到完整性保护的作用。
假设在监控区域部署了N个传感器节点的无人值守无线传感器网络,这些节点持续地监控环境变量,并将感知数据存储在节点上,直到节点接收到来自基站或用户发送的数据请求,才把数据发送给基站或用户。假设传感器节点随机布置在一个二维空间V=(G,E)中,其中,G为传感器节点,E为通信链接。在空间V中如存在一对节点(a,b)∈E,表示节点a与节点b可直接通信,即节点b在节点a的无线通信覆盖范围内。此外,除了基站以外,还有一组授权用户可以直接读取节点上存储的感知数据来获得所需要的信息。
由于传感器节点大多数承担了特定的感知任务,假设节点完成每一轮感知任务所需要的存储空间都一致,表示为 ρ=log2(dir),(r∈(0,R],i∈[0,I]),其中,R 是基站服务器两次连续访问节点间传感器节点执行的感知任务轮数(round),I是每轮感知任务中感知操作的次数。一旦传感器节点产生感知数据dir,dir就被加密存储在节点上直到有基站服务器或者授权用户来读取。
虽然传感器节点拥有有限的计算能力,但随着技术的发展与进步,越来越多的研究表明,非对称密钥加密机制也适用于目前已有的节点[8]。此外,我们假设基础的安全机制已经部署在网络中,两节点间的密钥已经能够直接在网络通信中运用。
无人值守无线传感器网络存储系统易遭受来自多方面的攻击:①物理攻击,传感器节点易受到物理攻击,比如粉碎、熔化、腐蚀,被攻击者或环境有意或无意的攻击破坏,这些攻击导致存储在节点中的数据完全损失;②网络攻击,本文中我们假设网络攻击者试图获取存储在感知节点之上的数据。具体来说,网络攻击者首先俘获部分节点,然后试图破解数据的加密密钥并解密数据,网络攻击者希望在不被发现的情况下,试图修改已经存储在节点上的数据。在此,我们假设网络攻击者所能俘获的节点数量有限,并且假设参数I大于网络攻击者所能俘获节点的最大数量。
本文所需要使用的命名规则见表1。
表1 命名与参数
在此章节中,我们将提出一种基于秘密共享机制、安全、高效的分布式数据存储与恢复方案。为了确保感知数据的安全性,传感器节点必须加密已经获取的感知数据并存储在节点的闪存上,这样只有授权用户或者基站服务器才能解密并获取感知数据。此外,由于传感器节点缺乏物理保护,容易遭受节点妥协攻击,系统的可靠性需要保证当部分节点失效后数据仍然可以恢复。为了达到以上目的,尽可能设计出轻量级的存储方案以减少额外的能量消耗,我们引入了基于门限的秘密共享方案、哈希链以及基于向量正交的动态完整性检查机制。
在系统初始化阶段,网络拥有者将选择一个安全的哈希函数h(.),例如SHA-1。在部署节点前,网络拥有者将哈希函数h(.)和参数R、I一起预置到节点中。当节点部署到检测区域后,节点自行将轮数计数变量r和感知数据变量i分别置为1和0。
为了增强感知数据的安全性,我们在方案中将首先产生包含基站服务器在内的授权用户组的密钥,节点可使用此密钥加密之后的数据。在这里,假设已存在一个安全、可靠的密钥中心(trusted key center,TKC),可为整个网络的用户与服务器产生与分发密钥。首先,TKC选择如下公共参数。
· p:大素数,并且 2511
· w=(p-1)/2,并且 2510 · q:可整除 w-1,并且 2159 然后,每一个授权用户在TKC进行注册并选择一个公开值xi∈[n+1,q]为其公钥以及相应的秘密值yi∈[1,q-1]作为私钥,TKC为每一个用户保证公钥的惟一性,并且公布每一个用户的公钥信息。在团体中n个用户都注册完成后,i=1,2,…,n时可决定拉格朗日插值公式: 其中,f(xi)=yi[9],不同于参考文献[9]中的方案,门限值t(也就是机密等级)在本方案中是一个恒定值(t=1)。然后TKC就为这组用户产生私钥与公钥:TKC任意选择整数g和 g′,分别满足 g=h(p-1)/w=h2mod p>1 和 g′=h′(w-1)/qmod w>1,其中,0 在第r轮中,当传感器节点IDs执行感知操作并产生感知数据后dir,完成以下步骤以加密存储感知数据。 ·如果是新的一轮开始,传感器节点选择一个随机数作为此轮的密钥Kr,并且设置k0r=Kr。然后计算哈希值p0r=h(d0r||k0r),其中,d0r并不是具体的感知数据而是此轮感知数据的基本信息,例如原始节点的标识、轮编号和数据产生的时间戳等信息。接着节点将轮密钥Kr用组密钥GK进行加密Ea(Kr,GK): 其中,γ∈[1,w-1]并将轮密钥Kr从内存中删除。 ·传感器节点将数据dir和哈希值pir=h(dir||kir)用当前的对称密钥kir进行加密E(dir||pir,kir),并将此加密数据进行存储。 ·如图1所示,完成存储工作后,传感器节点需要将当前的计数器i和加密密钥进行更新,i=i+1,kir=pri-1=h(dri-1||kri-1)。最后删除前一次的感知数据dri-1、哈希值pri-1和加密密钥kri-1。 ·为了进行动态完整性检查,传感器节点还需要计算当前加密数据的哈希值h(E(dir||pir,kir)),并将其转化为一个n维向量vir。如图2所示,传感器节点先将加密数据的哈希值按照比特位进行分割,例如采用SHA-1作为安全的哈希函数,其输出为160 bit,以4 bit为一组进行分割,以形成一个40维的向量。最后,将这个n维向量加到向量和中: 在完成一轮的感知操作后,传感器节点为了提高感知数据的存活率还需将已经加密存储的感知数据进行分发、共享。本文提出了一种简单、高效的数据共享机制,这个机制不仅提高了感知数据的存活率,优化了存储效率,而且能为之后的数据动态完整性检测与数据恢复提供实现基础。完成以下步骤将数据在节点间进行共享。 · 传感器节点IDs计算产生一非零正交向量Wsr满足Vsr×Wsr=0,并将 Vsr从内存中删除。 · 传感器节点IDs已经预置了参数I,为完成一轮感知操作所能包含的感知数据项。传感器节点选择邻近的I个节点作为其分布式存储节点,并将其进行编号{1,2,3,…,I}。 · 传感器节点IDs根据数据项的编号i发送给相应的节点{E(dir||pir,kir),Wsr,i}。本身保存加密后的轮密钥以及加密后的感知数据基本信息E(d0r||p0r,k0r)。 显而易见的是,由于共享数据是由数据密钥进行加密的,而轮密钥只有原始节点才具有,并且也已经使用用户组密钥GK加密,除授权用户外任何人无法获取感知数据,因此系统可达到较高的安全性。 一段时间后,任一共享数据拥有者(表示成为IDh)可发起对于特定原始节点某一轮次的感知数据进行动态完整性检测,以检查感知数据是否正确存储在各个节点之上。 共享数据拥有者IDh广播原始节点的标识和轮次以发起动态完整性检测{Vr=vhr,r,μ,i},其中,vhr为存储在其上的感知数据哈希值的n维向量,r为轮次,μ为原始节点的标识,i为其收到的感知数据编号。 · 当收到动态完整性检测请求后,传感器节点首先检查是否存储有此节点和轮次的感知数据。如果存在并且其存储的数据编号 i′=(i+1)%I,则计算新的 n维向量值并加入到Vr中,更新消息中的编号i=i+1,并继续发送{Vr,r,μ,i}。 ·当完整性检测发起者IDh重新收到完整性检测请求消息中的数据编号i与其存储的编号一致时,表明所有节点都完成完整性的计算,即可计算Vr×Wr,如果结果等于0,那么表明感知数据已被正确地存储在节点上,反之则已遭破坏。 从组密钥产生阶段可知,基站服务器或授权用户已经预置了其公钥yi与私钥xi。当基站服务器或者授权用户请求响应感知数据时,所有存储相关数据的传感器节点都将其存储的数据上传。由于感知数据分布在各个传感器节点上,每一个节点返回各自存储的感知数据,平衡了用户读取时的能量消耗。当节点收到新一轮完整的数据后,首先解密Kr: 然后可获得k0r,并解密得到d0r,这样即可依次计算kir=pri-1=h(dri-1||kri-1)并解密相应的感知数据,同时可通过pir检查数据的完整性。 在本章节中,我们分析了所提方案的安全性,主要关注§2.2所提出的攻击模型,并进一步分析了其他网络攻击。 (1)分布式数据存储的安全性、可靠性分析 当无人值守的无线传感器网络部署在监控区域,完成系统初始化并开始执行感知任务后,攻击者就开始俘获节点并试图破解存储在节点上的感知数据,窃取数据或篡改数据,以达到其破坏网络的目的。然而攻击者破解已存储的感知数据是非常困难的,首先任何之前使用过的数据密钥都已经被删除,并且由于哈希函数的单向性,即使获取当前所使用的密钥也无法计算出之前所使用的密钥;其次,从数据恢复阶段可知,只有授权用户可通过解密Kr来得到k0r,并依次获取kir以解密相应的感知数据,而本文采用基于门限的团体式秘密共享方案,这样想破解Kr就必须面对离散对数问题。 (2)分布式数据存储动态完整性保障分析 篡改共享数据:当攻击者俘获一些节点后,可能试图在授权用户读取前,修改存储在节点上的感知数据。由于共享数据块是被数据密钥kir加密,并且轮密钥Kr由授权用户组的组公钥进行加密,攻击者无法通过破解密钥来篡改共享数据。再者,如果攻击者直接修改共享数据块,那么其哈希值也必然同时发生变化,这样就无法通过基于正交向量的动态完整性检测机制的检查。 合谋攻击(collusion attack):共享数据的拥有者可能合谋来修改感知数据,换句话说,也就是验证者收到的向量可能被修改来满足最后的正交特性。但这样的攻击在本文所提出的安全机制下无法实现,首先是因为每一个共享数据拥有者都必须参与到动态完整性检测中来,并且每一个拥有者都可成为检测的发起者。这样如果要满足最后的n维向量和Vr×Wr=0的话,那么就需要对I个传感器节点上的共享数据块都做修改。其次由攻击模型可知,攻击者只能俘获一定量的传感器节点,并且假设其数量小于参数I,所以攻击者无法执行合谋攻击。 在本节中,将前文提出的数据存储方案在MicaZ[10]节点上进行实验。MicaZ节点拥有8 MHz主频CPU的ATmega128微处理器、128 kbyte的ROM和4 kbyte的RAM,并且MicaZ节点运行Tiny OS 2.x版本。此外我们选择SHA-1为单向散列函数。以下将通过实验表明本方案在存储开销、通信开销和能量消耗方面的情况,并且可从中得出结论:所提出的分布式数据存储方案满足当前无线传感器节点资源限制特点。 (1)存储开销 表2说明了原始感知数据节点和其他共享数据节点的存储开销,包括感知数据、密钥、向量值的存储空间。 表2 节点的存储开销 (2)通信开销 我们测量了每一轮数据共享时所需要的通信开销,见表3,可知整个方案运行期间通信量的大小。 表3 节点的通信开销 (3)能量消耗 每一个节点的能量消耗可通过公式E=UIt计算得出,其中,U是电压值,I是电流值,t是时间消耗。由于MicaZ节点采用两节AA电池为其供电,那么U≈0.3 V,并且由MicaZ附带的数据手册可知其电流值大约为8 mA。表4中详细列举了节点在方案实施各个阶段不同的能量消耗。 表4 节点的能量消耗 本文提出了一种无人值守的无线传感器网络环境中安全、高效的分布式数据存储方案。此方案提供了动态完整性检测机制,并利用基于门限的团体式秘密共享方法来确保数据的安全性与可靠性。此外,为了保证共享数据的完整性,我们提出了一种基于正交向量的动态完整性检测机制,能够高效、低能耗地完成数据完整性检测工作。本方案的特点:只有授权用户才能访问节点上的感知数据;具有简单、高效的完整性检测机制。最后,通过实验与分析可知,本方案已达到较高的安全等级,并满足传感器节点资源受限的特点。 1 Akyildiz F,Su W,Sankarasubramaniam Y,et al.Wireless sensor networks:a survey.Computer Networks,2002(38):393~422 2 Pietro R D,Mancini L V,Soriente C,et al.Catch me (if you can):data survival in unattended sensor networks.In:Proc of IEEE PerCom’08,Piscataway, NJ, USA,Mar 2008 3 任伟,任毅,张慧等.无人值守无线传感器网络中一种安全高效的数据存活策略.计算机研究与发展,2009,46(12):2 093~2 100 4 Diao Y, Ganesan D, MathurG, etal.Rethinking data management for storage-centric sensor networks,http://www-db.cs.wisc.edu/cidr/cidr2007/index.Html,2007 5 DiaoY, Ganesan D, MathurG, etal.Rethinkingdata management for storage-centric sensor networks,http://www-db.cs.wisc.edu/cidr/cidr2007/index.Html,2007 6 Girao J, WesthoffD, Mykletun E, etal.Tinypeds:Tiny persistent encrypted data storage in asynchronous wireless sensor network.Ad Hoc Networks,2007,5(7):1 073~1 089 7 Ganesan D, Greenstein B, Perelyubskiy D, et al.Multi-resolution storage and search in sensor networks.ACM Trans on Storage,2005,1(3):277~315 8 Gunnar Gaubatz, Jens-Peter Kaps, Berk Sunar.Public key cryptography in sensor network—revisited.In:First European Workshop on Security in Ad-Hoc and Sensor Network(ESAS 2004),Heidelberg Germany,August 2004 9 Harn L,Lin H Y,Yang S.Threshold cryptosystem with multiple secret sharing policies.IEEE Proc Comput Digit Tech,1994,141(2):142~144 10 Crossbow Technology INC.Wireless sensor networks,http://www.xbow.com/Products/WirelessSensorNetworks.htm3.3 感知数据存储
3.4 数据共享
3.5 数据动态完整性检测
3.6 数据恢复
4 分析与实验
4.1 安全性分析
4.2 性能分析
5 结束语