无线传感器网络中的安全代码分发方法技术

技术编号:10636055 阅读:121 留言:0更新日期:2014-11-12 11:38
本发明专利技术公开了一种无线传感器网络中的安全代码分发方法,包括对待分发的程序映像进行分层和计算Hash摘要,并对所得的Hash链首元素的Hash值进行数字签名;通过节点的接收和验证后,对于通过第一层验证的数据页,不需要再发送以第二层及以下的数据包。本发明专利技术通过Hash值保证了分发的安全性,通过分层处理策略的引入降低了程序映像分发的负载。在程序映像分发过程中满足了安全和低负载两方面的需求。

【技术实现步骤摘要】
无线传感器网络中的安全代码分发方法
本专利技术涉及安全认证领域,尤其涉及一种无线传感器网络中的安全代码分发方法。
技术介绍
无线传感器网络在农业、环境监测、生态保护等众多领域有着广阔的应用前景,其应用通常被部署于长期无人看守的环境中。然而,随着时间的推移,无线传感器节点上的应用程序经常需要增加一些功能或者修复软件中存在的问题,这就需要对整个网络所有的节点进行重编程。在一些网络规模较大或者是节点部署环境较恶劣的情况下,人工手动地对所有节点编程将是一项非常耗时、耗力甚至是不可能完成的任务。因此在WirelessSensorNetworks(WSNs)中需要一种机制能够通过无线的方式远程对节点软件进行更新。WSNs代码分发(CodeDissemination)技术是一种有效的解决途径。增量式多跳代码分发算法是WSNs在线代码分发中最主流的一类方法。这类方法的通用做法是首先通过计算新旧映像之间字节级的差异确定分发目标,然后将更新目标分成固定大小的页,每页被进一步分割成固定大小的数据包,最终将该数据包作为基本的数据传输单位进行传输。传输时,页按序传输。这类方法基本都没有考虑代码分发的安全性。为此,针对传感器节点资源极度受限的计算环境,许多学者提出采用基于对称密钥加密方法来加强代码分发算法的安全性和可靠性。虽然这种方法可以减少更新代码的认证开销,缩短端到端传输的时间延迟。然而,使用对称密钥加密方法,需要在发送者和接收者之间事先建立一个共享密钥。在代码分发过程中,只要有一个节点被俘获就意味着共享密钥被泄露,导致整个网络都不再安全。此外,即便使用基站与传感器节点之间的配对密码(pairwisekeys)方案,也会因WSNs规模增大所产生的显著开销,而变得难以实用。针对这些缺点,基于PKC(PublicKeyCipher)的安全认证算法被提了出来。这类算法的主要思想是使用单向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函本文档来自技高网
...
无线传感器网络中的安全代码分发方法

【技术保护点】
一种无线传感器网络中的安全代码分发方法,其特征在于,包括如下步骤:步骤1,基站将待分发的程序映像进行预处理,得到多层数据页及各层对应的Hash链,其中每个数据页包含若干数据包,对第一层Hash链的第一个H节点的Hash值进行数字签名;步骤2,基站广播步骤1所得的数字签名;步骤3,传感器节点接收且对所述数字签名进行验证,通过后,从第一层起,接收并验证Hash链,并根据判定条件依次逐层接收数据页,判定方式如下:在同层中的各个数据页中,对于数据包全部通过验证的数据页,计算当前数据页的Hash值,并通过与Hash链中对应的Hash值比较来进行验证:验证通过,则接收下一个数据页;否则,向基站请求发送该数据页所对应的下一层Hash链,对整个数据页进行重传;对于数据包未全部通过验证的数据页,针对其中未通过的数据包进行重新接收和验证,直至重复预定次数或验证通过。

【技术特征摘要】
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;...

【专利技术属性】
技术研发人员:谢满德
申请(专利权)人:浙江工商大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1