CN103838605B - 具有丢包容忍和机密保障的无线传感器网络代码分发方法 - Google Patents
具有丢包容忍和机密保障的无线传感器网络代码分发方法 Download PDFInfo
- Publication number
- CN103838605B CN103838605B CN201310697086.3A CN201310697086A CN103838605B CN 103838605 B CN103838605 B CN 103838605B CN 201310697086 A CN201310697086 A CN 201310697086A CN 103838605 B CN103838605 B CN 103838605B
- Authority
- CN
- China
- Prior art keywords
- packet
- source node
- program image
- page
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
具有丢包容忍和机密保障的无线传感器网络代码分发方法,属于无线传感器网络应用技术领域,(1):源节点对待更新程序映像和运行在节点上的旧程序映像进行字节级比较获得待分发的程序映像增量;(2):源节点对程序映像增量进行分发前的预处理;(3):无线传感器网络进行代码分发;(4):传感器节点进行代码分发的验证和装配,并将接收到且验证成功的数据包装配成程序映像增量;(5):传感器节点基于已经运行在其上的旧程序映像,重编译产生新的更新好的程序映像,并加载。本发明本身的方案复杂度不高,易于操作和实现,适应无线传感器网络这种资源受限的环境。本方法同时具备了丢包容忍属性和机密性保障属性。
Description
技术领域
本发明属于无线传感器网络应用技术领域,具体涉及为具有丢包容忍和机密保障的无线传感器网络代码分发方法。
背景技术
无线传感器网络在国防军事、农业、医疗卫生、工业、智能交通等众多领域有着广阔的应用前景,其应用通常被部署于长期无人看守的环境中。然而,随着时间的推移, 无线传感器节点上的应用程序经常需要增加一些功能或者修复软件中存在的问题, 这就需要对整个网络所有的节点进行在线代码分发。在一些网络规模较大或者是节点部署环境较恶劣的情况下,人工手动地对所有节点编程将是一项非常耗时、耗力甚至是不可能完成的任务。因此在无线传感器网络(Wireless Sensor Networks,WSNs)中需要一种机制能够通过无线的方式远程对节点软件进行更新。WSNs 在线代码分发技术是一种有效的解决途径。
增量式多跳代码分发方法是WSNs 在线代码分发中最主流的一类方法。这类方法的通用做法是首先通过计算新旧程序映像之间字节级的差异确定分发目标,然后将更新目标分成固定大小的页,每页被进一步分割成固定大小的数据包,最终将该数据包作为基本的数据传输单位进行传输。传输时,页按序传输。这类方法最初的考虑重点是如何降低代码分发过程中的能耗,基本都没有考虑在线代码分发的安全性。
为此,针对传感器节点资源极度受限的计算环境,许多学者提出采用基于对称密钥加密方法来加强在线代码分发方法的安全性和可靠性。虽然这种方法可以减少更新代码的认证开销,缩短端到端传输的时间延迟。然而,使用对称密钥加密方法,需要在发送者和接收者之间事先建立一个共享密钥。在在线代码分发过程中,只要有一个节点被俘获就意味着共享密钥被泄露,导致整个网络都不再安全。
此外,即便使用源节点与传感器节点之间的配对密码(pairwise keys) 方案,也会因WSNs规模增大所产生的显著开销,而变得难以实用。
针对这些缺点,基于PKC(Public Key Cipher)的安全认证方法被提了出来。这类方法的主要思想是使用单向Hash函数和数字签名的混合方法来认证网络中的更新代码包和源节点的身份。数字签名主要用来认证源节点的身份,即一个可信的源节点有一个私钥,同时每个传感器节点预置了这个源节点相应的公钥。源节点用它的私钥对每个更新包进行签名,传感器节点用公钥来验证每个接收更新包的真实性。任何节点在没有获得私钥的情况下,都无法冒充源节点的合法签名。但是,现有的解决方案普遍存在方法复杂度较高、无法在资源受限的无线传感器网络中实现的问题。另外,现有所有的解决方案基本都没有考虑无线传感器易于丢包的通信特性,也没有考虑待分发代码的保密性需求。
发明内容
本发明的目的在于克服上述提到的缺陷和不足,而提供具有丢包容忍和机密保障的无线传感器网络代码分发方法。
本发明实现其目的采用的技术方案如下。
具有丢包容忍和机密保障的无线传感器网络代码分发方法,包括以下步骤:
步骤(1):源节点对待更新程序映像和运行在节点上的旧程序映像进行字节级比较获得待分发的程序映像增量;
步骤(2):源节点对程序映像增量进行分发前的预处理,包括以下内容:
(2.1),源节点将代码映像分成固定大小的页,每页进一步被分成固定大小的数据包;
(2.2),源节点按页序对页内所有的数据包采用reed-solomon方法进行编码;
(2.3), 源节点计算每个数据包的Hash值,该Hash值被嵌入到选定的数据包合适的位置;
(2.4),源节点采用CP弱认证机制,然后通过数字签名包来发起一次代码分发;
步骤(3):无线传感器网络进行代码分发;
步骤(4):传感器节点进行代码分发的验证和装配,并将接收到且验证成功的数据包装配成程序映像增量;
步骤(5):传感器节点基于已经运行在其上的旧程序映像,重编译产生新的更新好的程序映像,并加载。
更具体的,步骤(2.4)中CP弱认证机制,包括如下步骤:
(2.41)源节点随机选取一组随机数作为起点,对每个随机数不断的进行Hash计算,从而为每一个程序映像产生一个单向密钥链;
(2.42)计算密钥谜的答案;
(2.43)重新构造广播包,并广播该新构造的广播数据包。
更具体的,所述步骤(4)包括以下步骤:
(4.1)传感器节点在收到数字签名后,首先通过简单的Hash操作进行数字签名认证之前的初步验证;
(4.2)如果初步认证通过再进行进一步的数字签名认证;
(4.3)数字签名认证通过后,源节点身份得到确认,开始从链路层接收数据包,解密数据包;
(4.4)传感器节点将数据包装配成数据页,再将数据页装配成最终的程序映像。
与现有的发明相比,本发明提出了具有丢包容忍和机密保障的无线传感器网络代码分发方法,同时兼顾了在线代码分发的安全性、可靠性和容错性。
在安全性方面,本方法没有采用高复杂性、高计算消耗的数字签名等非对称密码技术,而是采用了低计算消耗、低复杂度的Hash函数。通过有效的Hash值嵌入技术,能保证在页内数据包乱序到达情况下,仍能通过简单的、多次Hash操作就能对所接收的代码包进行一致性认证。本发明中,一次代码更新操作是通过包含代码映像Hash值的根的数字签名操作来发起。
为了防御基于数字签名的DoS攻击,本方法在发送数字签名之前引入CP(CipherPuzzle)弱认证机制,也就是在进行数字签名认证操作之前,先通过简单的Hash操作进行“粗略”验证,能避免节点进行昂贵而无谓的数字签名认证操作。
为了提供在线代码分发的机密性保障,本方法采用了对称加密方法对数据包进行加密,并采用动态秘钥以提高机密性。
在丢包容忍方面,方法采用reed-solomon编码方法对页内数据包进行编码,接收节点只要接收到指定阈值的数据包就可以正确解码整个数据页内的所有数据,从而可以容忍一定量的丢包。
与现有的解决类似问题的发明相比,本发明本身的方案复杂度不高,易于操作和实现,适应无线传感器网络这种资源受限的环境。更加重要的是本方法同时具备了丢包容忍属性和机密性保障属性,是现有所有安全的在线代码分发方法所不具备的。
附图说明
图1是本发明的流程示意图;
图2是本发明的原理框图;
图3是本发明的部分流程示意图;
图4是本发明的面向数据包认证和机密性保障的PI预处理示意图;
图5是本发明的CP机制的工作原理。
具体实施方式
下面结合附图,对本发明作进一步详细说明。
对于一个已经投入使用的无线传感器网络应用系统,为了进行无线在线代码更新,需要经历远程重启正运行的程序映像到代码更新模式——>代码更新——>远程重启到更新好的代码映像。在该流程下,本发明采用的详细技术方案如图1所示,方案将参与在线代码分发的无线传感器网络分成了三个角色:源节点或基站,无线传感器网络本身,传感器节点。
步骤(1):源节点对待更新程序映像和运行在节点上的旧程序映像进行字节级比较获得待分发的程序映像增量。
步骤(2):源节点对程序映像增量进行分发前的预处理。包括以下内容:
(2.1),源节点将代码映像分成固定大小的页,每页进一步被分成固定大小的数据包。
(2.2),源节点按页序对页内所有的数据包采用reed-solomon方法进行编码,确保程序映像分发具有丢包容忍的属性。具体的编码方法如下:
假定一页内有 n个数据包,分别计为:d1,d2, …,dn,每个数据包大小为k字节。同时假定有 m个冗余数据包,分别计为:r1,r2, …,rm,每个数据通包大小也为k字节。每个冗余数据包的内容从原始数据包计算,我们的目标是定义每个冗余数据包ri的计算,以确保d1,d2, …,dn, r1,r2, …,rm中的n个数据包被接收后,整个页面就能被成功重建,从而允许代码分发过程中部分数据包丢失。
对于每个冗余数据包ri,可以采用公式(1)进行计算。
FD=R (1)
这里D和R分别代表原始和冗余数据包向量,F代表一个矩阵,其中每一行对应一个函数。
本发明中将F定义为一个m×n 的vandermonde 矩阵:fi,j=ji-1, 基于此,等式(1)可以转换为等式(2)。
(2)
任何一个冗余数据包ri的计算方法如等式(2)所示。为了解码接收到的数据包,可以定义矩阵A和向量E为,。为此,可以得到等式(3)
(3)
等式(3)中的向量中的每一行对应一个数据包。通过上述面向丢包容忍的程序映像(Program Image)PI的预处理后,节点在接收到n+m中的n个数据包后,就能正确的解码出整个数据页面中的所有数据包,本方法具有丢包容忍的属性,能工作在丢包比较严重的无线等噪声环境中。
(2.3),源节点计算每个数据包的Hash值,该Hash值被嵌入到选定的数据包合适的位置,以用于数据一致性验证。
(2.4),源节点采用CP(Cipher Puzzle)弱认证机制,以防御基于数字签名的DoS攻击,且避免节点进行昂贵而无谓的数字签名认证操作,然后通过数字签名包来发起一次代码分发。
源节点在进行数字签名认证之前引入了CP(Cipper Puzzle)弱认证机制, CP的工作原理如下:
(2.41)源节点随机选取一组随机数作为起点,对每个随机数不断的进行Hash计算,从而为每一个PI产生一个单向密钥链。产生的Hash密钥链如式(4)所示,其中密钥K’ i,j表示第i个程序映像第jth次更新对应的密钥。
(4)
(2.42)计算Pi,j。这里Pi,j 是一个密钥谜的答案,用于第i个程序映像第jth 次更新。图5给出了CP的基本工作原理,源节点在广播数字签名开始一次代码更新之前,首先通过公式(5)离线计算Pi,j。
(5)
这里K’ i,j-1表示在上次代码更新操作中已经释放的密钥,符号表示公式(5)左右两边的前K位相等。
(2.43)按照公式(6)重新构造广播包P’ adv,并广播该新构造的广播数据包P’ adv。
(6)
如图4所示,为了能进行立即的包验证和提供机密性保障,在进行代码分发之前,需要进一步进行数据包预处理。图4中,H表示Hash函数,EA(B)表示用密钥A对内容B加密,P操作表示针对数据页面进行的一系列操作,如图4中的虚线框所示。源节点首先将代码映像分成固定大小的页,每页进一步被分成固定大小的数据包。然后,源节点从最后一个页面开始,不断重复P操作直到第一页,针对每个页面的P操作包含下列步骤:
1)将数据页分成N个固定大小的原始数据包。
2)通过Reed-Solomon编码方法将N个原始数据包编码成成N+M个数据包,其中含M个冗余数据包。
3)通过Hash函数H计算每个编码后的数据包的Hash值,并将其内嵌到前一个页面对应的编码后的数据包的后面。
4)通过EA(B)加密每一个数据包。密钥为正在加密的数据包的Hash值的前L个字节,每个数据包的密钥都不同,这种动态密钥能加强数据包的机密性。
对于第一页的Hash值,源节点处理方法是在这些Hash值基础上,建立一个MerkleHash树,其建立过程为:源节点首先通过联合操作,将固定数量的Hash值联合成一个数据包,并计算该数据包的Hash值。然后,将刚计算出来的Hash值,两两联合成一个数据包,并计算Hash值。这个过程不断重复,直到最后只剩一个Hash值,将该Hash值嵌入到数字签名包,在代码映像分发阶段,由源节点通过数字签名包首先分发到每个传感器节点。
步骤(3):无线传感器网络进行代码分发。通过链路层,按页分发加密过的数据包。
步骤(4):传感器节点进行代码分发的验证和装配,并将接收到且验证成功的数据包装配成程序映像增量。
(4.1),传感器节点在收到数字签名后,首先通过简单的Hash操作进行数字签名认证之前的初步验证。
在接收到P’ adv广播数据包后,传感器节点按照下述步骤进行验证。
(4.11)通过公式(5)验证P’ adv,如果公式(5)成立,则进行第二步,否则拒绝更新,停止本次更新操作。
(4.12)从P’ adv中提取并解密.如果解密成功,进行第三步,否则拒绝更新,停止本次更新操作。
(4.13)提取K’ i,j并通过H(K’ i,j)=K’ i,j-1验证。如果H(K’ i,j)=K’ i,j-1成立,进行第四步,否则拒绝更新,停止本次更新操作。
(4.14)验证数字签名。
(4.2),如果初步认证通过再进行进一步的数字签名认证。
(4.3),数字签名认证通过后,源节点身份得到确认,开始从链路层接收数据包,解密数据包。通过简单的Hash操作和Hash值比对进行数据包的一致性验证,验证通过后移除数据包中内嵌的Hash值,当收到一页内数量上满足要求的数据包(不需要全部)后进行解码获得整页数据。
(4.4),传感器节点将数据包装配成数据页,再将数据页装配成最终的程序映像。
步骤(5):传感器节点基于已经运行在其上的旧程序映像,重编译产生新的更新好的程序映像,并加载。
本发明按照实施例进行了说明,在不脱离本原理的前提下,本方案还可以作出若干变形和改进。应当指出,凡采用等同替换或等效变换等方式所获得的技术方案,均落在本发明的保护范围内。
Claims (1)
1.具有丢包容忍和机密保障的无线传感器网络代码分发方法,其特征在于,包括以下步骤:
步骤(1):源节点对待更新程序映像和运行在节点上的旧程序映像进行字节级比较获得待分发的程序映像增量;
步骤(2):源节点对程序映像增量进行分发前的预处理,包括以下内容:
(2.1),源节点将代码映像分成固定大小的页,每页进一步被分成固定大小的数据包;
(2.2),源节点按页序对页内所有的数据包采用reed-solomon方法进行编码:
假定一页内有 n个数据包,分别计为:d1,d2, …,dn,每个数据包大小为k字节;同时假定有 m个冗余数据包,分别计为:r1,r2, …,rm,每个冗余数据包大小也为k字节;每个冗余数据包的内容从原始数据包计算,我们的目标是定义每个冗余数据包ri的计算,以确保d1,d2, …,dn, r1,r2, …,rm中的n个数据包被接收后,整个页面就能被成功重建,从而允许代码分发过程中部分数据包丢失;
对于每个冗余数据包ri,采用公式(1)进行计算;
FD=R (1)
这里D和R分别代表原始和冗余数据包向量,F代表一个矩阵,其中每一行对应一个函数;
将F定义为一个m×n 的vandermonde 矩阵:fi,j=ji-1, 基于此,等式(1)可以转换为等式(2);
(2)
任何一个冗余数据包ri的计算方法如等式(2)所示;为了解码接收到的数据包,定义矩阵A和向量E为,;为此,可以得到等式(3)
(3)
等式(3)中的向量中的每一行对应一个数据包;通过上述源节点按页序对页内所有的数据包采用reed-solomon方法进行编码的处理后,节点在接收到n+m中的n个数据包后,就能正确的解码出整个数据页面中的所有数据包;
(2.3), 源节点计算每个数据包的Hash值,该Hash值被嵌入到选定的数据包合适的位置;
(2.4),源节点采用CP弱认证机制,然后通过数字签名包来发起一次代码分发;
(2.41)源节点随机选取一组随机数作为起点,对每个随机数不断的进行Hash计算,从而为每一个程序映像产生一个单向密钥链;
(2.42)计算密钥谜的答案;
(2.43)重新构造广播包,并广播该新构造的广播数据包;
步骤(3):无线传感器网络进行代码分发;包括如下步骤:
对于第一页的Hash 值,源节点处理方法是在这些Hash 值基础上,建立一个MerkleHash 树,其建立过程为:源节点首先通过联合操作,将固定数量的Hash 值联合成一个数据包,并计算该数据包的Hash 值;然后,将刚计算出来的Hash 值,两两联合成一个数据包,并计算Hash 值;这个过程不断重复,直到最后只剩一个Hash 值,将该Hash 值嵌入到数字签名包,在代码映像分发阶段,由源节点通过数字签名包首先分发到每个传感器节点;
步骤(4):传感器节点进行代码分发的验证和装配,并将接收到且验证成功的数据包装配成程序映像增量,包括以下步骤:
(4.1)传感器节点在收到数字签名后,首先通过简单的Hash操作进行数字签名认证之前的初步验证;
(4.2)如果初步认证通过再进行进一步的数字签名认证;
(4.3)数字签名认证通过后,源节点身份得到确认,开始从链路层接收数据包,解密数据包;
(4.4)传感器节点将数据包装配成数据页,再将数据页装配成最终的程序映像;
步骤(5):传感器节点基于已经运行在其上的旧程序映像,重编译产生新的更新好的程序映像,并加载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310697086.3A CN103838605B (zh) | 2013-12-18 | 2013-12-18 | 具有丢包容忍和机密保障的无线传感器网络代码分发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310697086.3A CN103838605B (zh) | 2013-12-18 | 2013-12-18 | 具有丢包容忍和机密保障的无线传感器网络代码分发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103838605A CN103838605A (zh) | 2014-06-04 |
CN103838605B true CN103838605B (zh) | 2017-07-28 |
Family
ID=50802138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310697086.3A Expired - Fee Related CN103838605B (zh) | 2013-12-18 | 2013-12-18 | 具有丢包容忍和机密保障的无线传感器网络代码分发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103838605B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105824644A (zh) * | 2016-03-25 | 2016-08-03 | 重庆邮电大学 | 一种适用于无线传感器网络的增量式代码分发协议 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101448281A (zh) * | 2008-12-31 | 2009-06-03 | 宁波中科集成电路设计中心有限公司 | 一种无线传感器网络中的容错方法 |
CN102006625A (zh) * | 2010-11-10 | 2011-04-06 | 清华大学 | 基于前向纠错的车载自组网可靠广播协议的系统及方法 |
CN102421094A (zh) * | 2011-08-31 | 2012-04-18 | 浙江大学 | 一种无线传感器网络的分布式安全重编程方法 |
CN103368731A (zh) * | 2013-07-23 | 2013-10-23 | 华南理工大学 | 基于哈希树的无线传感器网络安全数据发现和传播方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050028001A1 (en) * | 2003-07-29 | 2005-02-03 | Jian Huang | Secured software patching and upgrade method for densely deployed networks having spanning-tree topology |
-
2013
- 2013-12-18 CN CN201310697086.3A patent/CN103838605B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101448281A (zh) * | 2008-12-31 | 2009-06-03 | 宁波中科集成电路设计中心有限公司 | 一种无线传感器网络中的容错方法 |
CN102006625A (zh) * | 2010-11-10 | 2011-04-06 | 清华大学 | 基于前向纠错的车载自组网可靠广播协议的系统及方法 |
CN102421094A (zh) * | 2011-08-31 | 2012-04-18 | 浙江大学 | 一种无线传感器网络的分布式安全重编程方法 |
CN103368731A (zh) * | 2013-07-23 | 2013-10-23 | 华南理工大学 | 基于哈希树的无线传感器网络安全数据发现和传播方法 |
Non-Patent Citations (2)
Title |
---|
"Incremental network programming for wireless sensors";Jaein Jeong等;《Sensor and Ad Hoc Communications and Networks》;20041007;第25-33页 * |
"无线局域网接入认证协议的抗DoS攻击技术研究";高琳;《中国优秀硕士学位论文全文数据库 信息科学辑》;20120215(第2期);第I136-701页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103838605A (zh) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107249009B (zh) | 一种基于区块链的数据校验方法及系统 | |
Aman et al. | Low power data integrity in IoT systems | |
CN101917270B (zh) | 一种基于对称密码的弱认证和密钥协商方法 | |
Portmann | Key recycling in authentication | |
CN105162599B (zh) | 一种数据传输系统及其传输方法 | |
CN105228157B (zh) | 一种无线传感器网络安全轻量重编程方法 | |
CN103079198B (zh) | 传感器节点的密钥更新方法和系统 | |
CN102611557B (zh) | 一种基于背包体制的安全网络编码数据传输方法 | |
CN104219252A (zh) | 基于纠错编码的密钥前向一致性校验方法 | |
WO2023236551A1 (zh) | 一种面向蜂窝基站的去中心化可信接入方法 | |
CN116260587A (zh) | 一种抗量子、基于哈希签名且具有小尺寸的签名认证方法 | |
Ayub et al. | Secure consumer-centric demand response management in resilient smart grid as industry 5.0 application with blockchain-based authentication | |
Krontiris et al. | Scatter–secure code authentication for efficient reprogramming in wireless sensor networks | |
CN104010310A (zh) | 基于物理层安全的异构网络统一认证方法 | |
Iqbal et al. | Low‐Cost and Secure Communication System for SCADA System of Remote Microgrids | |
Kolesnikov et al. | MAC aggregation resilient to DoS attacks | |
Ren et al. | IPSadas: identity‐privacy‐aware secure and anonymous data aggregation scheme | |
CN103823691B (zh) | 基于网络编码的无线传感器网络安全在线重编程方法 | |
US9191324B2 (en) | MAC aggregation with message multiplicity for use in a multi-node data network | |
CN103838605B (zh) | 具有丢包容忍和机密保障的无线传感器网络代码分发方法 | |
CN103686715B (zh) | 轻量级机密的无线体域网安全数据发现与分发方法 | |
CN103702325A (zh) | 轻量级的无线传感器网络安全小数据分发方法 | |
CN110932863A (zh) | 一种基于编码的广义签密方法 | |
CN109039841A (zh) | 加入级联组网的方法、装置及刀箱 | |
Lucks et al. | Concrete security for entity recognition: The Jane Doe protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170728 Termination date: 20171218 |