ISSN在线(2278 - 8875)打印(2320 - 3765)
玛杜丽Bijjal1,维迪雅Kulkarni2,Vibha Amboji3
|
相关文章Pubmed,谷歌学者 |
访问更多的相关文章国际先进研究期刊》的研究在电子、电子、仪表工程
层的无线传感器网络安全是至关重要的方面,它在本质上是双重的即保留隐私和完整性。为了保护隐私,中间层即存储节点处理编码查询了编码的数据不知道传感器收集的数据的实际值。为此,我们使用前缀隶属函数。保存查询结果的完整性,我们考虑了两种不同的技术Merkle哈希树和邻居链接和比较这两种技术的性能。
关键字 |
完整性、隐私范围查询、传感器网络、Merkle哈希树,附近的链接 |
介绍 |
无线传感器网络(WSN)可以被定义为网络设备表示节点可以感知环境和通信监控领域的信息通过无线链接。WSN已经广泛部署各种应用程序,如环境遥感、建筑安全监测、地震预测等。在这方面,考虑一个层的传感器网络体系结构中存储节点从附近的传感器收集数据从网络的水槽和回答查询。存储节点作为传感器和水槽之间的一个中间层用于存储数据和处理查询。存储节点传感器网络带来了三个主要的好处。首先,节省电力传感器通过将所有收集到的数据发送到最近的存储节点,而不是把他们送去水槽通过长路线。第二,传感器可以memory-limited因为数据主要存储在存储节点。第三,查询处理变得更有效率,因为水槽只有查询与存储节点通信。存储节点的包容也带来重大安全挑战。作为存储节点存储数据来自传感器和作为一个重要的角色对于回答查询,他们更容易受到损害,特别是在一个敌对环境。破坏存储节点传感器网络带来重大威胁。 First, the attacker may obtain sensitive data that has been, or will be, stored in the storage node. Second, the compromised storage node may return forged data for a query. Third, this storage node may not include all data items that satisfy the query. |
因此,有必要设计一个协议,它可以防止攻击者获得信息从传感器收集的数据和水槽发出查询,通常可以模仿范围查询,并允许水槽检测受损表现不好时存储节点。隐私,损害一个存储节点不应该允许攻击者获得的敏感信息,并将,存储在节点,以及存储节点收到的查询,并将接收。注意,我们将查询从水槽等机密,因为查询可能泄漏关键信息查询发行人的利益,需要保护,尤其是在军事应用。完整性,水槽需要检测是否存储节点的查询结果包括伪造数据项或不包括所有满足查询的数据。有两个关键挑战解决隐私和integrity-preserving范围查询的问题。首先,一个存储节点需要正确处理编码查询编码数据不知道他们的实际值。第二,水槽需要验证的结果满足查询的查询包含所有数据项和不包含任何伪造数据。 |
模型和问题陈述 |
系统模型 |
two-tired传感器网络由三种类型的节点:传感器、存储节点和一个水槽。传感器是便宜的存储和计算能力有限的传感装置。他们经常大量分布在收集物理或环境数据的领域,例如,温度。存储节点是配备了强大的无线设备存储容量和计算能力远远超过传感器。每个传感器定期将收集到的数据发送给其附近的存储节点。水槽的接触点是传感器网络的用户。雷竞技网页版每次水槽从用户接收问题,它首先将问题转化为多个查询,然后传播查询相应的存储节点,这过程基于他们的数据的查询和查询结果返回给水槽。水槽结合来自多个存储节点的查询结果到最后的答案并将它发送回用户。 |
![]() |
对于上面的网络体系结构中,假设所有的传感器节点和存储节点是松散同步水槽。松散同步到位,我们将时间划分为固定时间间隔和每个传感器收集数据一旦/时间间隔。从一个起始时间,所有的传感器和水槽达成一致,每n时间间隔形成一个时间段。从相同的起始时间,在n次的传感器收集数据,它发送一条消息,其中包含包含(t,我{d1,···, dn}),在那里我是传感器ID和t的序列号是时间段的n数据项{d1,···, dn}传感器收集的si。范围查询”找到所有的数据项,收集在时间t的值在[A, b]”被表示为{t [A, b]}。注意查询在大多数传感器网络应用程序可以很容易地建模为范围查询。 |
威胁模型 |
层的传感器网络,假设传感器和水槽是可信的,但存储节点。在一个充满敌意的环境中,传感器和存储节点可能会受到损害。如果一个传感器被破坏,随后的传感器收集的数据将被攻击者,和破坏传感器可能发送伪造的数据最亲密的存储节点。然而,数据从一个传感器构成的一小部分整个传感器网络的数据收集。因此,我们把主要精力集中于一个存储节点被破坏的情况。影响存储节点会导致更大的损伤比影响传感器传感器网络。存储节点被破坏后,大量的数据存储在节点将被攻击者,并在接收一个查询从水槽,破坏存储节点可能返回一个伪造的结果由包括伪造的数据或不包括合法的数据。因此,攻击者更愿意妥协存储节点。 |
问题定义 |
two-tired传感器网络的基本问题如下:如何设计以安全的方式存储方案和查询协议?在这种情况下,安全性有两种口味,比如隐私和完整性。一个令人满意的解决这个问题应该满足以下两个要求: |
1。数据和查询隐私: |
数据隐私意味着存储节点无法知道实际值的传感器收集的数据。这将确保攻击者无法理解的数据存储在一个存储节点。查询隐私意味着一个存储节点不知道沉发出查询的实际价值。这将确保攻击者不能理解,或者推断出有用的信息,查询,存储节点接收。 |
2。数据的完整性: |
如果一个查询结果存储节点发送到水槽包括伪造的数据或不合法的数据,查询结果保证检测到水槽是无效的。除了这两个困难的要求,一个理想的解决方案应该低功率和空间消耗,因为这些无线设备有有限的资源。 |
隐私保护方案 |
为了保护隐私,每个传感器si数据项加密d1,…,使用自己的秘密密钥dn ki,表示(d1) ki,…(dn)吻。注意,吻是一个共享密钥,水槽里。然而,关键的挑战是如何加密存储节点流程查询加密的数据不知道它们的值。我们的解决方案的想法是将传感器收集的数据和水槽发布查询前缀,然后使用前缀会员验证[8][9]检查数据项是否满足一系列查询。 |
防止存储节点知道数据项的值和范围查询,传感器和水槽应用散列消息验证码(HMAC)[6]每个前缀和范围查询转换的数据项。例如,考虑传感器收集的数据{1、4、5、7、9}和水槽发布查询(3、7)在图2中。传感器首先将收集到的数据范围[min, 1], [1,4]…。(9,max),最小和最大表示上下前往所有可能的数据项,分别。第二,传感器转换每个范围(dj, dj + 1)前缀,表示p ([dj, dj + 1]),然后应用HMAC每个前缀,在p ([dj, dj + 1]),指示为hg (p ([dj, dj + 1]))。第三,传感器将结果发送到存储节点。下沉时执行查询(3、7),它首先将3和6前缀,表示为p(3)和(7),分别,然后应用HMAC每个前缀,p(3)和(7),表示hg (p(3))和hg (p(6)),分别。在接收查询hg (p(3))和hg (p7))从水槽,hg的存储节点检查(p ([dj, dj + 1]))有共同的元素与hg (p(3))或hg (p (7))。基于前缀会员验证,如果hg (p (a))∩hg (p ([dj, dj + 1])) 6≠∅。,∈(dj, dj + 1)。 Therefore, hg (p(3)) ∩ hg(p([1, 4])) 6≠ ∅. And hg (p(7)) ∩ hg (p([5, 7])) ≠ ∅.. Finally, the storage node finds that the query result of [3,7] includes two data items 4 and 5, and then sends (4)ki and (5)ki to the sink. |
![]() |
完整性保护方案 |
数据完整性的意义是双重的。在一个存储节点的结果发送给水槽在应对查询,首先,存储节点不能包含任何数据项不满足查询;其次,存储节点不能排除任何满足查询的数据项。让水槽验证查询结果的完整性,水槽的查询响应从一个存储节点包括两个部分:(1)查询结果QR,其中包括所有满足查询的加密的数据项;(2)签证官的验证对象,包括信息水槽来验证QR的完整性。为了实现这个目的,我们提出两个方案基于两种不同的技术:Merkle哈希树和附近的连锁店。 |
Merkle哈希树(MHT) |
每次一个传感器发送的数据项存储节点,它构造一个Merkle哈希树数据项。图3显示了一个Merkle哈希树构造为八个数据项。假设传感器如果想发送n = 2 m加密数据项(d1) ki, ..... (dn) ki存储节点。传感器如果首先构建一个Merkle哈希树n = 2 m的数据项,这是一个完全二叉树。终端节点是H1……接下来,Hj = h ((dj) ki)每1 j≤≤n。函数是一个单向散列函数sha - 1。 |
每个非终端节点的值v,是谁的孩子们六世和vr,散列连接的重要价值和虚拟现实的价值。例如,在图3中,H12 = h (H1 | H2)。注意,如果数据项的数目n不是2的乘方,临时散列值没有兄弟姐妹他们可能连接被提升,价值没有任何变化,树,直到找到一个兄弟姐妹。注意,结果Merkle哈希树不会平衡的。例如Merkle哈希树在图3中,如果我们删除节点代替,H7, H8、H78让H58 = H56 = H5,由此产生的不平衡树是Merkle哈希树5数据项。Merkle哈希树中使用我们的解决方案有两个特殊的性质,使水槽来验证查询结果的完整性。首先,根的价值是使用键控HMAC函数的计算,关键是ki,传感器和水槽之间共享的关键。例如,在图4中,H18 = HMACki (H14 | H58)。使用一个键控HMAC函数,给出了属性,只有传感器和水槽可以计算根值。第二,终端节点被安排在一个升序排序基于每个数据项的值。 |
![]() |
我们首先讨论传感器如果需要发送到最近的存储节点在数据项dj。每次传感器如果想要发送加密数据项存储节点,它首先计算Merkle哈希树加密的数据项,然后发送根值随着n加密数据项存储节点。注意,在Merkle哈希树中的所有节点,只有根从传感器如果发送到存储节点,因为存储节点可以计算Merkle哈希树中的所有其他节点本身。 |
接下来,可以讨论一个存储节点需要发送什么水槽沿着一条查询结果,即。什么应该被包括在一个验证对象。存储节点的接近传感器,每次收到一个查询从水槽里[a, b],它首先发现的数据项的范围。第二,它计算Merkle哈希树从数据项(根除外)。第三,它将查询结果发送QR和验证对象VO水槽。鉴于数据项(d1) ki, ..... (dn) ki存储节点,d1,…dn,和一系列[a, b], dn-1 < < dn1 <……< dn2≤b < dn2 + 1和1≤n1-1 < n2 + 1≤n,查询结果QR = {(dn1) ki……{(dn2) ki},存储节点应包括验证对象VO = {(dn-1) ki (dn + 2) ki}因为dn-1 ki和(dn + 2) ki确保查询结果包括所有数据项满足查询的查询结果是有界的。让我们调用(dn-1) ki左边的查询结果,和(dn + 2) ki对查询的结果。注意,(dn-1) ki左边界和(dn + 2) ki对绑定可能不存在。如果一个< = d1,然后离开绑定(dn-1) ki并不存在;如果b < = dn,正确的绑定(dn + 2) ki并不存在。 The verification object includes zero to two encrypted data items and O(log n) proof nodes in the Merkel hash tree that are needed for the sink to verify the integrity of the query result. |
将在图4的例子中,假设一个存储节点收到了八个数据项{(2)ki、(5) ki、ki (9), (15) ki, ki (20), (23) ki (34) ki, (40) ki}传感器收集在时间t,和水槽要执行查询(10、30)存储节点。使用定理4.1,存储节点发现查询结果包括(15)ki, (20) ki和(23)ki满足查询。查询结果(即。,the three data items), the storage node also sends (9)ki, (34)ki, H12, H8 and H18 which are marked gray in Fig.4.5, to the sink as the verification object. |
![]() |
接下来,我们将讨论如何水槽使用Merkle哈希树验证查询结果的完整性。在接收查询结果及其验证对象,水槽计算Merkle哈希树的根值,然后验证查询结果的完整性QR = {(dn1) ki……{(dn2) ki}。保存查询结果完整性是当且仅当持有以下四个条件: |
1。查询结果的数据项满足查询。 |
2。如果离开了绑定(dn-1) ki存在,验证dn-1 <,和最近的左邻居(dn-1) ki Merkle哈希树;否则,验证(dn) ki最左边的加密Merkle哈希树中的数据项。 |
3所示。如果正确的绑定(n + 2) ki存在,验证b < dn + 2和(dn + 2)最近的邻居的ki (dn2) ki Merkle哈希树中;否则,验证(dn2) ki Merkle哈希树中最右边的加密的数据项。 |
4所示。计算根值是一样的根值包含在签证官。 |
注意,排序的数据项是至关重要的在我们的方案确保查询结果的完整性。没有这个属性,很难证明一个存储节点查询结果的完整性没有发送所有数据项。 |
社区链接(NC) |
一个名为社区连锁的新数据结构保存完整,然后讨论其使用完整性验证。给定的n数据项d1,···, dn, d0 < d1 <···< dn < dn + 1,我们称之为n个元素的列表使用密钥加密ki, ki (d0 | d1), (d1 | d2) ki,···, ki (dn−1 | dn), (dn | dn + 1) ki,邻居链的n数据项。这里的“|”表示连接。对于任何项目(dj−1 | dj) ki链,我们称之为dj物品的价值和(dj | dj + 1) ki的右邻居项目。图5显示了社区连锁5数据项1,3,5,7,9。 |
![]() |
保存查询结果完整性使用社区链接如下工作。在收集n数据项d1,···, dn,传感器如果发送相应的社区连锁(d0 | d1) ki, ki (d1 | d2)···, (dn−1 | dn) ki, ki (dn | dn + 1),而不是(d1) ki,···, ki (dn),存储节点。给定一个范围查询[a, b],存储节点计算QR像往常一样。签证官的对应验证对象只包含正确的邻居QR最大的数据项。注意,任何查询签证官总是由一个款式。如果QR = {(dn1−1 | dn1) ki,···, (dn2−1 | dn2) ki},然后签证官= {(dn2 | dn2 + 1) ki};如果QR =∅,假设dn2 <≤b < dn2 + 1,然后签证官= {(dn2 | dn2 + 1) ki}。 |
水槽后收到QR和签证官,验证的完整性QR如下。首先,水槽确认每一项QR满足查询。第二,水槽验证存储节点没有排除任何项满足查询。 |
让{(dn1−1 | dn1) ki,···, ki (dj−1 | dj)···, (dn2−1 | dn2) ki}是正确的查询结果和QR是存储节点的查询结果。让我们考虑以下四个案例: |
1。如果存在n1 < j < n2这样(dj−1 | dj) ki不属于QR,水槽可以检测这个错误,因为项目QR不形成一个社区链。 |
2。如果(dn1−1 | dn1) ki不属于QR,水槽可以检测这个错误,因为它知道dn1的存在(dn1 | dn1 + 1) ki和dn1满足查询。 |
3所示。如果(dn2−1 | dn2) ki不属于QR,水槽可以检测这个错误,因为它知道的存在dn2从项目(dn2 | dn2 + 1) ki签证官和dn2满足查询。 |
4所示。如果QR =∅,水槽可以验证这个事实,因为项目(dn2 | dn2 + 1) ki签证官应该满足房地产dn2 <≤b < dn2 + 1。 |
请注意,我们的提交和查询协议旨在促进完整性验证。处理查询在数据项d1 [a, b],···, dn,而不是测试每个数据项是否di在[a, b],我们测试范围(d0, d1)、(d1, d2)···, (dn, dn + 1)包含一个和它范围包含b。因此,一个存储节点不仅可以找到哪些物品满足查询,还可以找到合适的邻居最大的数据项查询结果,验证对象。 |
实验结果 |
为了得到想要的结果,我们需要奔腾4,真正的英特尔,2 gb RAM, 40 gb硬盘,Windows XP / 7, Eclipse indigo IDE, java语言,MySQL数据库。 |
![]() |
传感器节点获取数据,将其发送到最近的存储节点。在我们的实验中模拟4传感器节点。 |
![]() |
存储节点无法看到实际值的传感器收集的数据,除非它输入正确的密码。这将确保攻击者无法理解的数据存储在一个存储节点。它可以保护隐私。 |
![]() |
从登录页面,用户可以登录到受人尊敬的下沉。这里我们选择进入水槽纳入Merkle哈希树和水槽纳入社区链接。 |
![]() |
水槽节点,包含Merkle哈希树(MHT)提供查询结果的完整性。水槽节点可以查看接收到的文件,不守规矩的细节,细节的文件。它可以把一系列查询存储节点。 |
![]() |
水槽节点(NC)和社区链接提供查询结果的完整性。这个水槽也沉的功能一样,包含Merkle哈希树。 |
![]() |
社区链接比Merkle哈希树消耗更少的空间。 |
![]() |
因为Merkle哈希树并计算比社区链接。所以Merkle哈希树消耗更多的空间比社区链接。所以社区链接比Merkle哈希树。 |
结论和未来的工作 |
SafeQ保留隐私和完整性two-tired传感器有效的无线传感器网络。SafeQ使用前缀成员的技术验证,Merkle哈希树,和邻居链接。在安全方面,SafeQ显著增强层的传感器网络的安全。SafeQ阻止破坏存储节点获得一个合理的估计实际值的传感器收集的数据项和水槽发布查询。SafeQ还允许一个水槽检测受损表现不好时存储节点。社区链接比Merkle哈希树存储空间和功耗。未来的工作在本论文实验SafeQ多维空间的数据。 |
引用 |
|