CN104142837B - 无线传感器网络中的安全代码分发方法 - Google Patents
无线传感器网络中的安全代码分发方法 Download PDFInfo
- Publication number
- CN104142837B CN104142837B CN201410238004.3A CN201410238004A CN104142837B CN 104142837 B CN104142837 B CN 104142837B CN 201410238004 A CN201410238004 A CN 201410238004A CN 104142837 B CN104142837 B CN 104142837B
- Authority
- CN
- China
- Prior art keywords
- data page
- hash
- hash value
- node
- layer
- 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
本发明公开了一种无线传感器网络中的安全代码分发方法,包括对待分发的程序映像进行分层和计算Hash摘要,并对所得的Hash链首元素的Hash值进行数字签名;通过节点的接收和验证后,对于通过第一层验证的数据页,不需要再发送以第二层及以下的数据包。本发明通过Hash值保证了分发的安全性,通过分层处理策略的引入降低了程序映像分发的负载。在程序映像分发过程中满足了安全和低负载两方面的需求。
Description
技术领域
本发明涉及安全认证领域,尤其涉及一种无线传感器网络中的安全代码分发方法。
背景技术
无线传感器网络在农业、环境监测、生态保护等众多领域有着广阔的应用前景,其应用通常被部署于长期无人看守的环境中。然而,随着时间的推移,无线传感器节点上的应用程序经常需要增加一些功能或者修复软件中存在的问题,这就需要对整个网络所有的节点进行重编程。在一些网络规模较大或者是节点部署环境较恶劣的情况下,人工手动地对所有节点编程将是一项非常耗时、耗力甚至是不可能完成的任务。因此在WirelessSensor Networks(WSNs)中需要一种机制能够通过无线的方式远程对节点软件进行更新。WSNs代码分发(Code Dissemination)技术是一种有效的解决途径。
增量式多跳代码分发算法是WSNs在线代码分发中最主流的一类方法。这类方法的通用做法是首先通过计算新旧映像之间字节级的差异确定分发目标,然后将更新目标分成固定大小的页,每页被进一步分割成固定大小的数据包,最终将该数据包作为基本的数据传输单位进行传输。传输时,页按序传输。这类方法基本都没有考虑代码分发的安全性。为此,针对传感器节点资源极度受限的计算环境,许多学者提出采用基于对称密钥加密方法来加强代码分发算法的安全性和可靠性。虽然这种方法可以减少更新代码的认证开销,缩短端到端传输的时间延迟。然而,使用对称密钥加密方法,需要在发送者和接收者之间事先建立一个共享密钥。在代码分发过程中,只要有一个节点被俘获就意味着共享密钥被泄露,导致整个网络都不再安全。此外,即便使用基站与传感器节点之间的配对密码(pairwise keys)方案,也会因WSNs规模增大所产生的显著开销,而变得难以实用。针对这些缺点,基于PKC(Public Key Cipher)的安全认证算法被提了出来。这类算法的主要思想是使用单向Hash函数和数字签名的混合方法来认证网络中的更新代码包和基站的身份。数字签名主要用来认证基站的身份,即一个可信的基站有一个私钥,同时每个传感器节点预置了这个基站相应的公钥。基站用它的私钥对每个更新包进行签名,传感器节点用公钥来验证每个接收更新包的真实性。任何节点在没有获得私钥的情况下,都无法冒充基站的合法签名。但是,现有的解决方案普遍存在算法复杂度较高、没有同时考虑安全性和代码分发能耗有效性的缺点。
发明内容
为了克服现有的无线传感器网络代码分发复杂性高、安全性低、能源消耗大的缺点,本发明提供一种复杂度低、安全性高、能源消耗小的基于哈希摘要和层策略的安全代码分发方法。该方法解决的技术问题主要是在提供代码分发安全性的同时尽量降低由此产生的额外负载。因为无线传感器网络基本都由电池供电,额外负载将增加系统能耗,降低系统使用时长。本发明专利主要运用了预验证、层策略和按需验证技术来避免不必要Hash值的传送,从而降低传输负载。
一种无线传感器网络中的安全代码分发方法,包括如下步骤:
步骤1,基站将待分发的程序映像进行预处理,得到多层数据页及各层对应的Hash链,其中每个数据页包含若干数据包,对第一层Hash链的第一个H节点的Hash值进行数字签名;
步骤2,基站广播步骤1所得的数字签名;
步骤3,传感器节点接收且对所述的数字签名进行验证,通过后,从第一层起,接收并验证Hash链,并根据判定条件依次逐层接收数据页,判定方式如下:
在同层中的各个数据页中,对于数据包全部通过验证的数据页,计算当前数据页的Hash值,并通过与Hash链中对应的Hash值比较来进行验证:验证通过,则接收下一个数据页;
否则,向基站请求发送该数据页所对应的下一层Hash链,对整个数据页进行重传;
对于数据包未全部通过验证的数据页,针对其中未通过的数据包进行重新接收和验证,直至重复预定次数或验证通过。
在步骤1中,程序映像即为经过编译的程序代码,即可执行程序。
该步骤1预处理过程主要发生在基站,因为基站有充足的供电,因此不需要过多的关注能耗问题。但是经过这种预处理后,能实现按需传输,如果步骤7中对数据页的验证通过,则第二层及其以下层的所有Hash值都不需要传送,能节约较大的传输能耗。
步骤1中的预处理具体包括如下步骤:
步骤1-1,设定第一层分页数和最大负载,将程序映像按第一层分页数进行等长划分,得到第一层数据页,计算各个数据页的Hash值,并将其插入到第一层Hash链中H节点对应的位置;
步骤1-2,将各个数据页等长划分为若干数据包,其中每个数据包大小不超过最大负载,计算每个数据包的Hash值,并提取Hash值摘要,将Hash值插入到该层Hash链中HD节点对应的位置;
步骤1-3,判断划分后的数据页是否超过最大负载:是,设定第二层分页数,将该数据页按第二层分页数进行划分,得到划分后的数据页,计算每个数据页的Hash值,从后往前依次将各个Hash值追加到前一个Hash节点的末尾,得到该数据页对应Hash链,并将第二层Hash链中的第一个元素的Hash值插入上层Hash链对应的FHC节点;否则,进入步骤1-4;
步骤1-4,计算每个数据页的Hash值,从后往前依次将各个Hash值追加到前一个Hash节点的末尾,得到的Hash链;
步骤1-5,重复步骤1-3和1-4,直至划分后的每个数据页均小于或等于最大负载,对于第一个Hash节点的Hash值进行数字签名。
每一层的Hash链可能出现三类节点:H节点,它存储(子)数据页的hash值;HD节点,它存储每个数据包的Hash值摘要;FHC节点,它存储下一层对应Hash链中第一个元素的Hash值。通常情况下H节点在每一层的Hash链中都必须存在,为了减少代码分发的负载,H节点的个数通常不超过2个。HD节点仅仅存在第一层的Hash链中,FHC节点则在每一层中都可能出现,也可能不出现,决定于代码分发的程序映像的大小,如果出现,FHC节点的个数也不会超过2,因为FHC节点的个数不会超过H节点的个数。这三类节点统称为Hash节点,在各个Hash节点的插入之后,计算各类Hash节点的Hash值,从后往前依次将他们的Hash值追加到前一个Hash节点的末尾,从而构成Hash链。
在步骤1-1中,第一层分页数设定方式如下:
第一层分页数的计算公式如下:
其中,ML为最大负载,PI表示程序映像的大小,最大第一层分页数max_n的计算公式为:
数据包个数p的计算公式为:
|H(.)|为Hash值长度,|Sig(.)|表示数字签名的大小,|Header|表示头信息的大小。
其中,数据页的大小是指该数据页除去头信息之后能够负载的数据量大小,其中数据页的大小由最大负载、程序映像以及最大第一层分页数决定。
在步骤1-3中,对于第i个数据页,第二层分页数的计算方式如下:
第二层分页数的计算公式如下:
其中,|IBi|表示第i个数据页的长度,ML表示最大负载,最大第二层分页数max_sub_n的计算公式如下:
其中,|H(.)|为Hash值长度。
第二层分页数由最大负载、上一层数据页的大小决定。
在步骤3中,每个Hash值的Hash值摘要的计算方法为,对所计算得到的Hash值的各个字节中提取一位,将所得的所有数据组成Hash值摘要。
通过Hash摘要的引入,实现了预验证操作。Hash值通常由一个Hash函数计算而来(某种意义上也是一个摘要),比如哈希函数SHA1其Hash值的长度为160位,即20个字节。本发明安全代码分发方法不是传送整个Hash值,而是从这20个字节的Hash值中,每个字节提取一位,构成一个不超过三个字节的Hash摘要,用于预验证操作,这样有很多的hash值就不需要传送,只有在验证失败的情况下,才会要求进一步传送。
判断当前数据页的数据包是否均通过验证的方法为:对于每个数据页设定一个位向量,位向量中的各位与该数据页中的数据包一一对应,对于验证通过的数据包,位向量中的对应位设为1,对于未通过验证的数据包,位向量中的对应位设为0。
只要该数据页所对应的位向量有一位为0,则表明该数据页存在验证未通过的数据包,位向量的引入方便计算和判断。
本发明的优点在于:
通过Hash值保证了代码分发的安全性。
通过分层处理策略的引入降低了代码分发的负载。
通过Hash摘要的引入,实现了预验证操作。通过预验证和Hash节点的分类方法,实现了按需传输,从而大大降低了代码分发过程中无谓传输负载。
附图说明
图1为本发明方法一个实施例的代码分发预处理过程;
图2为本发明方法的步骤流程图。
具体实施方式
现结合附图和实施例对本发明进行详细的解释说明。
如图2所示,本发明方法的具体步骤如下:
步骤1,基站将待分发的程序映像进行预处理,得到多层数据页及各层对应的Hash链,其中每个数据页包含若干数据包,对第一层Hash链的第一个H节点的Hash值进行数字签名。
其中,如图1所示,步骤1中的预处理具体包括如下步骤:
步骤1-1,设定第一层分页数和最大负载,将程序映像按第一层分页数进行等长划分,得到第一层数据页,计算各个数据页的Hash值,并将其插入到第一层Hash链中H节点对应的位置;
步骤1-2,将各个数据页等长划分为若干数据包,其中每个数据包大小不超过最大负载,计算每个数据包的Hash值,并提取Hash值摘要,将Hash值插入到该层Hash链中HD节点对应的位置;
步骤1-1和步骤1-2表示为如下伪码:
预处理算法()
步骤1-3,判断划分后的数据页是否超过最大负载:是,设定第二层分页数,将该数据页按第二层分页数进行划分,得到划分后的数据页,计算每个数据页的Hash值,从后往前依次将各个Hash值追加到前一个Hash节点的末尾,得到该数据页对应Hash链,并将第二层Hash链中的第一个元素的Hash值插入上层Hash链对应的FHC节点;否则,进入步骤1-4。
步骤1-3可表示为如下伪码数据子页预处理算法(|IBi|)//对应第i个数据页的下一层预处理
其中,伪码中所用到的符号如表1中所示:
表1
步骤1-4,计算每个数据页的Hash值,从后往前依次将各个Hash值追加到前一个Hash节点的末尾,得到的Hash链;
步骤1-5,重复步骤1-3和1-4,直至划分后的每个数据页均小于或等于最大负载,对于第一个Hash节点的Hash值进行数字签名。
该步预处理过程主要发生在基站,因为基站有充足的供电,因此不需要过多的关注能耗问题。但是经过这种预处理后,能实现按需传输,如果步骤7中的验证通过,则第二层及其以下层的所有Hash值都不需要传送,能节约较大的传输能耗。
步骤2,基站广播步骤1所得的数字签名。
步骤3,传感器节点接收且对所述数字签名进行验证,通过后,从第一层起,接收并验证Hash链,并根据判定条件依次逐层接收数据页,判定方式如下:
在同层中的各个数据页中,对于数据包全部通过验证的数据页,计算当前数据页的Hash值,并通过与Hash链中对应的Hash值比较来进行验证:验证通过,则接收下一个数据页。
否则,向基站请求发送该数据页所对应的下一层Hash链,对整个数据页进行重传。
为了标记数据包是否验证通过,引入了位向量,每一个数据包对应位向量中的一位。验证通过则将对应的位置1,否则置0。若该数据页所对应的位向量有一位为0,则
对于数据包未全部通过验证的数据页,针对其中未通过的数据包进行重新接收和验证,直至重复预定次数或验证通过。
本发明通过Hash值保证了分发的安全性,通过分层处理策略的引入降低了程序映像分发的负载。在程序映像分发过程中满足了安全和低负载两方面的需求。
Claims (5)
1.一种无线传感器网络中的安全代码分发方法,其特征在于,包括如下步骤:
步骤1,基站将待分发的程序映像进行预处理,得到多层数据页及各层对应的Hash链,其中每个数据页包含若干数据包,对第一层Hash链的第一个H节点的Hash值进行数字签名;
步骤2,基站广播步骤1所得的数字签名;
步骤3,传感器节点接收且对所述数字签名进行验证,通过后,从第一层起,接收并验证Hash链,并根据判定条件依次逐层接收数据页,判定方式如下:
在同层中的各个数据页中,对于数据包全部通过验证的数据页,计算当前数据页的Hash值,并通过与Hash链中对应的Hash值比较来进行验证:验证通过,则接收下一个数据页;
否则,向基站请求发送该数据页所对应的下一层Hash链,对整个数据页进行重传;
对于数据包未全部通过验证的数据页,针对其中未通过的数据包进行重新接收和验证,直至重复预定次数或验证通过;
步骤1中的预处理具体包括如下步骤:
步骤1-1,设定第一层分页数,分页数最大负载,数据包最大负载,将程序映像按第一层分页数进行等长划分,得到第一层数据页,计算各个数据页的Hash值,并将其插入到第一层Hash链中H节点对应的位置;
步骤1-2,将各个数据页等长划分为若干数据包,其中每个数据包大小不超过数据包最大负载,计算每个数据包的Hash值,并提取Hash值摘要,将Hash值插入到该层Hash链中HD节点对应的位置;
步骤1-3,判断划分后的数据页是否超过数据页最大负载:是,设定第二层分页数,将该数据页按第二层分页数进行划分,得到划分后的数据页,计算每个数据页的Hash值,从后往前依次将各个Hash值追加到前一个Hash节点的末尾,得到该数据页对应Hash链,并将第二层Hash链中的第一个元素的Hash值插入上层Hash链对应的FHC节点;否则,进入步骤1-4;
步骤1-4,计算每个数据页的Hash值,从后往前依次将各个Hash值追加到前一个Hash节点的末尾,得到的Hash链;
步骤1-5,重复步骤1-3和1-4,直至划分后的每个数据页均小于或等于数据页最大负载,对于第一个Hash节点的Hash值进行数字签名;
H节点,它存储数据页的hash值;HD节点,它存储每个数据包的Hash值摘要;FHC节点,它存储下一层对应Hash链中第一个元素的Hash值。
2.如权利要求1所述无线传感器网络中的安全代码分发方法,其特征在于,在步骤1-1中,第一层分页数设定方式如下:
第一层分页数的计算公式如下:
其中,ML为最大负载,PI表示程序映像的大小,最大第一层分页数max_n的计算公式为:
数据包个数p的计算公式为:
|H(.)|为Hash值长度,|Sig(.)|表示数字签名的大小,|Header|表示头信息的大小。
3.如权利要求1或2所述无线传感器网络中的安全代码分发方法,其特征在于,在步骤1-3中,对于第i个数据页,第二层分页数的计算方式如下:
第二层分页数的计算公式如下:
其中,|IBi|表示第i个数据页的长度,ML表示最大负载,最大第二层分页数max_sub_n的计算公式如下:
其中,|H(.)|为Hash值长度。
4.如权利要求1所述无线传感器网络中的安全代码分发方法,其特征在于,在步骤3中,每个Hash值的Hash值摘要的计算方法为,对所计算得到的Hash值的各个字节中提取一位,将所得的所有数据组成Hash值摘要。
5.如权利要求1所述无线传感器网络中的安全代码分发方法,其特征在于,判断当前数据页的数据包是否均通过验证的方法为:对于每个数据页设定一个位向量,位向量中的各位与该数据页中的数据包一一对应,对于验证通过的数据包,位向量中的对应位设为1,对于未通过验证的数据包,位向量中的对应位设为0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410238004.3A CN104142837B (zh) | 2014-05-29 | 2014-05-29 | 无线传感器网络中的安全代码分发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410238004.3A CN104142837B (zh) | 2014-05-29 | 2014-05-29 | 无线传感器网络中的安全代码分发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104142837A CN104142837A (zh) | 2014-11-12 |
CN104142837B true CN104142837B (zh) | 2017-01-04 |
Family
ID=51852019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410238004.3A Expired - Fee Related CN104142837B (zh) | 2014-05-29 | 2014-05-29 | 无线传感器网络中的安全代码分发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104142837B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102202383A (zh) * | 2011-06-14 | 2011-09-28 | 四川大学 | 无线传感器网络中应用多信道代码分发的重编程方法 |
CN102883466A (zh) * | 2011-07-15 | 2013-01-16 | 中国科学院深圳先进技术研究院 | 无线传感器网络中的数据分发方法 |
-
2014
- 2014-05-29 CN CN201410238004.3A patent/CN104142837B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102202383A (zh) * | 2011-06-14 | 2011-09-28 | 四川大学 | 无线传感器网络中应用多信道代码分发的重编程方法 |
CN102883466A (zh) * | 2011-07-15 | 2013-01-16 | 中国科学院深圳先进技术研究院 | 无线传感器网络中的数据分发方法 |
Non-Patent Citations (3)
Title |
---|
"Lightweight Remote Image Management for Secure Code Dissemination in Wireless Sensor Networks";An Liu等;《IEEE》;20090425;第1242-1250页 * |
"Secure code distribution in dynamically programmable wireless sensor networks ";Jing Deng等;《2006 5th International Conference on Information Processing in Sensor Networks》;20061231;第292-300页 * |
"无线传感器网络在线代码分发最新研究进展";张国萍;《浙江理工大学学报(自然科学版)》;20150331;第33卷(第2期);第119-226页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104142837A (zh) | 2014-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107249009B (zh) | 一种基于区块链的数据校验方法及系统 | |
KR101301775B1 (ko) | 센서 네트워크의 측정 데이터에 대한 분산 검증을 수행하는방법 및 상기 방법을 수행하는 시스템 | |
Dutta et al. | Securing the deluge network programming system | |
CN106454815A (zh) | 一种基于leach协议的无线传感器网络路由方法 | |
Tan et al. | Secure multi-hop network programming with multiple one-way key chains | |
Kgwadi et al. | Securing RDS broadcast messages for smart grid applications | |
CN102170352A (zh) | 使用具有温特尼茨单次签名的ecdsa的方法 | |
KR20120052305A (ko) | 무선 네트워크에서 민감한 데이터를 안전하게 브로드캐스트하기 위한 방법 | |
US20120011566A1 (en) | System and method for sensor network authentication based on xor chain | |
CN102684874B (zh) | 一种基于ecdsa算法的无线传感器网络广播认证方法 | |
CN104363593A (zh) | 面向两层传感器网络的可验证Top-k查询处理方法 | |
CN103634788A (zh) | 前向安全的无证书多代理签密方法 | |
Zhang et al. | LR-Seluge: Loss-resilient and secure code dissemination in wireless sensor networks | |
CN115208924B (zh) | 一种基于无人机的物联网数据采集方法及装置 | |
Bagaa et al. | Sedan: Secure and efficient protocol for data aggregation in wireless sensor networks | |
Ogundoyin | An Efficient, Secure and Conditional Privacy-Preserving Authentication Scheme for Vehicular Ad-hoc Networks. | |
Mbarek et al. | A secure authentication mechanism for resource constrained devices | |
Kolesnikov et al. | MAC aggregation resilient to DoS attacks | |
CN104142837B (zh) | 无线传感器网络中的安全代码分发方法 | |
CN103823691B (zh) | 基于网络编码的无线传感器网络安全在线重编程方法 | |
CN104320778B (zh) | 无线传感器网络中长数据流的完整性保护方法 | |
CN102572821A (zh) | 一种低功耗实时无线传感器网络广播认证方法 | |
Mbarek et al. | A broadcast authentication scheme in iot environments | |
CN104735655A (zh) | 一种基于mac单向散列函数的工业无线网络密钥管理方法 | |
Deng et al. | Efficiently authenticating code images in dynamically reprogrammed wireless sensor networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
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: 20170104 Termination date: 20170529 |