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

文档序号:6548181阅读:109来源:国知局
无线传感器网络中的安全代码分发方法
【专利摘要】本发明公开了一种无线传感器网络中的安全代码分发方法,包括对待分发的程序映像进行分层和计算Hash摘要,并对所得的Hash链首元素的Hash值进行数字签名;通过节点的接收和验证后,对于通过第一层验证的数据页,不需要再发送以第二层及以下的数据包。本发明通过Hash值保证了分发的安全性,通过分层处理策略的引入降低了程序映像分发的负载。在程序映像分发过程中满足了安全和低负载两方面的需求。
【专利说明】无线传感器网络中的安全代码分发方法

【技术领域】
[0001] 本发明涉及安全认证领域,尤其涉及一种无线传感器网络中的安全代码分发方 法。

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


【发明内容】

[0004] 为了克服现有的无线传感器网络代码分发复杂性高、安全性低、能源消耗大的缺 点,本发明提供一种复杂度低、安全性高、能源消耗小的基于哈希摘要和层策略的安全代码 分发方法。该方法解决的技术问题主要是在提供代码分发安全性的同时尽量降低由此产生 的额外负载。因为无线传感器网络基本都由电池供电,额外负载将增加系统能耗,降低系统 使用时长。本发明专利主要运用了预验证、层策略和按需验证技术来避免不必要Hash值的 传送,从而降低传输负载。
[0005] 一种无线传感器网络中的安全代码分发方法,包括如下步骤:
[0006] 步骤1,基站将待分发的程序映像进行预处理,得到多层数据页及各层对应的 Hash链,其中每个数据页包含若干数据包,对第一层Hash链的第一个Η节点的Hash值进行 数字签名;
[0007] 步骤2,基站广播步骤1所得的数字签名;
[0008] 步骤3,传感器节点接收且对所述的数字签名进行验证,通过后,从第一层起,接收 并验证Hash链,并根据判定条件依次逐层接收数据页,判定方式如下:
[0009] 在同层中的各个数据页中,对于数据包全部通过验证的数据页,计算当前数据页 的Hash值,并通过与Hash链中对应的Hash值比较来进行验证:验证通过,则接收下一个数 据页;
[0010] 否则,向基站请求发送该数据页所对应的下一层Hash链,对整个数据页进行重 传;
[0011] 对于数据包未全部通过验证的数据页,针对其中未通过的数据包进行重新接收和 验证,直至重复预定次数或验证通过。
[0012] 在步骤1中,程序映像即为经过编译的程序代码,即可执行程序。
[0013] 该步骤1预处理过程主要发生在基站,因为基站有充足的供电,因此不需要过多 的关注能耗问题。但是经过这种预处理后,能实现按需传输,如果步骤7中对数据页的验证 通过,则第二层及其以下层的所有Hash值都不需要传送,能节约较大的传输能耗。
[0014] 步骤1中的预处理具体包括如下步骤:
[0015] 步骤1-1,设定第一层分页数和最大负载,将程序映像按第一层分页数等长划分为 第一层数据页,计算各个数据页的Hash值,并将其插入到第一层Hash链中Η节点对应的位 置;
[0016] 步骤1-2,将各个数据页等长划分为若干数据包,其中每个数据包大小不超过最大 负载,计算每个数据包的Hash值,并提取Hash值摘要,将Hash值插入到该层Hash链中HD 节点对应的位置;
[0017] 步骤1-3,判断划分后的数据页是否超过最大负载:是,设定第二层分页数,将该 数据页按第二层分页数进行划分,得到划分后的数据页,计算每个数据页的Hash值,从后 往前依次将各个Hash值追加到前一个Hash节点的末尾,得到该数据页对应Hash链,并将 第二层Hash链中的第一个元素的Hash值插入上层Hash链对应的FHC节点;否则,进入步 骤 1-4 ;
[0018] 步骤1-4,计算每个数据页的Hash值,从后往前依次将各个Hash值追加到前一个 Hash节点的末尾,得到的Hash链;
[0019] 步骤1-5,重复步骤1-3和1-4,直至划分后的每个数据页均小于或等于最大负载, 对于第一个Hash节点的Hash值进行数字签名。
[0020] 每一层的Hash链可能出现三类节点:H节点,它存储(子)数据页的hash值;HD 节点,它存储每个数据包的Hash值摘要疋HC节点,它存储下一层对应Hash链中第一个元 素的Hash值。通常情况下Η节点在每一层的Hash链中都必须存在,为了减少代码分发的 负载,Η节点的个数通常不超过2个。HD节点仅仅存在第一层的Hash链中,FHC节点则在 每一层中都可能出现,也可能不出现,决定于代码分发的程序映像的大小,如果出现,FHC节 点的个数也不会超过2,因为FHC节点的个数不会超过Η节点的个数。这三类节点统称为 Hash节点,在各个Hash节点的插入之后,计算各类Hash节点的Hash值,从后往前依次将他 们的Hash值追加到前一个Hash节点的末尾,从而构成Hash链。
[0021 ] 在步骤1-1中,第一层分页数设定方式如下:
[0022] 第一层分页数的计算公式如下:
[0023]

【权利要求】
1. 一种无线传感器网络中的安全代码分发方法,其特征在于,包括如下步骤: 步骤1,基站将待分发的程序映像进行预处理,得到多层数据页及各层对应的Hash链, 其中每个数据页包含若干数据包,对第一层Hash链的第一个Η节点的Hash值进行数字签 名; 步骤2,基站广播步骤1所得的数字签名; 步骤3,传感器节点接收且对所述数字签名进行验证,通过后,从第一层起,接收并验证 Hash链,并根据判定条件依次逐层接收数据页,判定方式如下: 在同层中的各个数据页中,对于数据包全部通过验证的数据页,计算当前数据页的 Hash值,并通过与Hash链中对应的Hash值比较来进行验证:验证通过,则接收下一个数据 页; 否则,向基站请求发送该数据页所对应的下一层Hash链,对整个数据页进行重传; 对于数据包未全部通过验证的数据页,针对其中未通过的数据包进行重新接收和验 证,直至重复预定次数或验证通过。
2.如权利要求1所述无线传感器网络中的安全代码分发方法,其特征在于,步骤1中的 预处理具体包括如下步骤: 步骤1-1,设定第一层分页数和最大负载,将程序映像按第一层分页数等长划分为第一 层数据页,计算各个数据页的Hash值,并将其插入到第一层Hash链中Η节点对应的位置; 步骤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值进行数字签名。
3.如权利要求2所述无线传感器网络中的安全代码分发方法,其特征在于,在步骤1-1 中,第一层分页数设定方式如下: 第一层分页数的计算公式如下:
其中,ML为最大负载,PI表示程序映像的大小,最大第一层分页数max_n的计算公式 为:

数据包个数P的计算公式为:
Η(·)为Hash值长度,|Sig(.) |表示数字签名的大小,Header表示头信息的大小。
4.如权利要求2或3所述无线传感器网络中的安全代码分发方法,其特征在于,在步骤 1-3中,对于第i个数据页,第二层分页数的计算方式如下: 第二层分页数的计算公式如下: 其中,|ΙΒ」表示第i个数据页的长度,ML表示最大负载,最大第二层分页数maX_SUb_ η的计算公式如下:
其中,Η(·)为Hash值长度。
5.如权利要求1所述无线传感器网络中的安全代码分发方法,其特征在于,在步骤3 中,每个Hash值的Hash值摘要的计算方法为,对所计算得到的Hash值的各个字节中提取 一位,将所得的所有数据组成Hash值摘要。
6.如权利要求1所述无线传感器网络中的安全代码分发方法,其特征在于,判断当前 数据页的数据包是否均通过验证的方法为:对于每个数据页设定一个位向量,位向量中的 各位与该数据页中的数据包一一对应,对于验证通过的数据包,位向量中的对应位设为1, 对于未通过验证的数据包,位向量中的对应位设为0。
【文档编号】G06F9/445GK104142837SQ201410238004
【公开日】2014年11月12日 申请日期:2014年5月29日 优先权日:2014年5月29日
【发明者】谢满德 申请人:浙江工商大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1