一种无线传感器网络的分布式安全重编程方法

文档序号:7896790阅读:380来源:国知局
专利名称:一种无线传感器网络的分布式安全重编程方法
技术领域
本发明属于无线通信技术领域,特别是涉及到无线传感器网络中的重编程技术。
背景技术
大规模无线传感器网络已经日趋成熟,然而重编程技术的安全问题还没有得到有效的解决。现存的重编程协议是基于集中式的方法,即由基站通过多跳路由的方式将程 序镜像发送到相应结点。这种方法在基站不能工作或者基站无法连接到结点的情况下可靠性会大大降低。同时由于传输路径太长,导致集中式方法效率不高,扩展性弱,易于被攻击。更重要的是,很多无线传感器网络没有配置基站或者难以配置基站。对于这样的网络,被授权的网络用户能够进行分布式重编程显得十分必要。

发明内容
本发明的目的在于提供一种无线传感器网络的分布式安全重编程方法。网络拥有者事先将用户的重编程权限和私钥通过安全的信道分配给该用户,且网络拥有者将系统公共参数装载到所有传感器节点上,所述私钥基于用户的重编程权限和身份信息生成;当用户进入无线传感器网络对目标传感器节点进行重编程时,用户为其新的传感器程序镜像建立重编程数据包并将该重编程数据包发送给所有目标传感器节点;各目标传感器节点在收到所述重编程数据包之后根据装载到自身的所述系统公共参数对所述新的传感器程序镜像进行验证如果所述新的传感器程序镜像通过验证,则相应的目标传感器节点接收并装载所述新的传感器程序镜像,如果验证失败,则将所述重编程数据包丢弃。进一步地,所述“用户为其新的传感器程序镜像建立重编程数据包并将该重编程数据包发送给所有目标传感器节点”的方法如下所述用户将所述重编程数据包设为按先后顺序生成的一个以上的页数据包,其中,后一个生成的页数据包包含有前一个生成的页数据包的哈希值;接着在最后生成的页数据包的哈希值的基础上建立Merkle哈希树,再根据该Merkle哈希树生成初始页的页数据包;该用户将所述Merkle哈希树的根节点和新的传感器程序镜像的元数据组合在一起产生参数集,所述元数据包含新的传感器程序镜像的版本号和大小、以及所有目标传感器节点的身份集合;接着,该用户使用自己的私钥对所述参数集进行签名并将签名所产生的签名信息和所述参数集一并发送给各目标传感器节点;然后,该用户向各目标传感器节点按页数据包的生成的先后顺序的逆序发送所有的所述页数据包。进一步地,所述“各目标传感器节点在收到所述重编程数据包之后根据装载到自身的所述系统公共参数对所述新的传感器程序镜像进行验证”的方法如下目标传感器节点首先检验所述参数集的合法性及用户是否具有重编程权限若所述参数集合法且所述用户具有重编程权限,则目标传感器节点使用所述系统公共参数对所述签名信息进行验证
若所述签名信息合法,则按页数据包的生成的先后顺序的逆序对所述页数据包进行验证其中,初始页的页数据包是由目标传感器节点使用所述Merkle哈希树的根节点进行验证,其他页数据包是由目标传感器节点使用该页数据包的后一个生成的页数据包所包含的哈希值进行验证;如果一旦其中有一个页数据包未通过验证,则表明对所述新的传感器程序镜像的验证失败,直接放弃该新的传感器程序镜像;如果所述新的传感器程序镜像的所有页数据包通过了验证,则装载该新的传感器程序镜像。与现有技术相比,本发明的优点是(1)分布式重编程(Distributed)由于网络拥有者事先将用户的重编程权限和私钥通过安全的信道分配给用户,授予用户自行对目标传感器节点进行重编程的权限,授权用户可以在没有基站的参与下进行重编程,同时保证未授权用户不能进行重编程。(2) 支持不同的用户重编程权限(Supporting Different User Privileges):网络拥有者事先将用户的重编程权限和私钥通过安全的信道分配给用户,通过对用户重编程权限中包含的节点身份集合和保留区的设置,网络拥有者能对用户权限进行限制。(3)部分的重编程能力(Partial Reprogram Capability)为了避免传感器节点被用户完全控制,传感器节点验证通过新的传感器程序镜像后,仅更新对应的那部分模块上的程序镜像,特殊模块 (如对新程序镜像进行认证的模块)仅能被网络拥有者进行重编程。(4)重编程冲突避免 (Avoiding Reprogramming Conflicts)在本发明中,如果进入网络的用户的参数集的合法性、重编程权限的合法性及签名信息都通过验证,则由此刻开始,在该网络用户的重编程有效期内,仅该网络用户被允许对传感器节点进行重编程,以此达到冲突避免的目的。(5) 用户可追踪性(User Traceability)用户使用自己的私钥对参数集进行签名并产生的相应的签名信息,所以用户的签名信息中包含用户私钥,而用户私钥是基于用户的重编程权限和身份信息生成的,因此用户的重编程权限和身份信息仅能由网络拥有者修改。每个用户都有唯一一个对应的身份信息,网络拥有者可以通过该身份信息识别该重编程用户,如此便达到了用户可追踪性。(6)可扩展性(Scalability)网络拥有者仅将系统公共参数装载到所有传感器节点上,所述系统公共参数的大小与用户数量、传感器节点数目无关,因此能够保证在大量传感器节点、大量网络用户环境下系统的有效性。(7)动态参与性(Dynamic Participation)当新用户向网络拥有者注册时,网络拥有者将该用户的私钥和对应的重编程权限通过安全的信道发送给该用 户,即完成用户参与步骤。当有新传感器节点需要加入网络时,网络拥有者只需将系统公共参数装载到传感器节点上并将传感器节点部署到相应位置,即完成节点参与步骤。因此能够支持新传感器节点和新用户的随时加入。(8)新鲜性保障(Freshness)本发明使用检查版本号或者时间戳的方法以保障传感器程序的新鲜性。(9)拒绝服务攻击可抵御(DoS Attacks Resistance)本发明使用信息特定迷惑方法可抵御拒绝服务攻击。


图1是信息特定迷惑方法(Message specific puzzle)的结构示意图。
具体实施例方式有关的技术术语如下表
Uj第j个网络用户 Sj第j个传感器节点UIDj用户Uj的标识号SKj用户Uj的私钥PKj用户Uj的公钥SKowner网络拥有者的私钥PKowner网络拥有者的公钥G循环加法群Gt循环乘法群e双线性映射GXG —GtP循环加法群G的发生器q循环加法群G的素数阶H1从{0,1}* 到 G 的 MapToPoint 哈希函数H2从{0,1}*到Z丨哈希函数映射本发明的分布式安全重编程方法具体过程如下网络拥有者事先将用户的重编程权限和私钥通过安全的信道分配给该用户,所述私钥基于用户的重编程权限和身份信息生成;另外,网络拥有者会将系统公共参数装载到所有传感器节点上。其具体过程如下网络拥有者执行以下操作1.G代表一个由发生器(generator) P = (xP, yP)生成的循环加法群(cyclic additive group), Gt 代表一个循环乘法群(cyclic multiplicative group), G 禾口 Gt 有同样的素数阶q。e =GXG-Gt代表双线性映射(bilinear map)。2.选择一个随机数s e Zq作为主密钥(master key)并且计算相关的公钥PK_CT =s · P。3.选择两个安全加密哈希函数Hl,H2。其中H1 {0,1} * — G而 H! {0,1}* — K 。之后取系统公共参数为 params = {G,GT, e,q,P, PKowner, H1, H2I,系统公共参数在网络部署前预先装载到所有传感器节点上。考虑一个身份信息为UIA e { , 1}*的用户Uj向网络拥有者进行注册。在认证了他的注册信息之后,网络拥有者基于用户Uj 的重编程权限Prij和身份信息UIDj生成Uj的公钥为PKj = H1 (UIDj | | Prij) e G,并且计算用户Uj的私钥SKj = s · PKj,这里“ I I ”表示位串联操作。在此之后,网络拥有者将用户的重编程权限和公私钥{PripPKpSKj通过安全的信道(例如有线传输层安全协议(wired Transport Layer Security protocol)分配给用户U」。用户重编程权限Prij用于表示用户权限的等级,包括节点身份集合(node identities set)、重编程有效期(subscription period)和保留区(reserved),如表1所示。节点身份集合(node identities set)用来标识用户Uj可重编程的节点集合;重编程有效期(subscription period)包含用户可重编程的有效起始时间和结束时间,保留区留给拥有者用来进一步延伸用户权限细节,例如可以用来设置用户对不同的传感器件(例如温度传感器、土壤湿度传感器)的重编程权限, 或者用来设置用户对不同模块的重编程权限(当前的部分重编程技术是按照模块进行划分)。
表1.重编程权限(Prij)的格式举例(括号内数字表示每个域的字节长度)
权利要求
1.一种无线传感器网络的分布式安全重编程方法,其特征是,包括如下步骤网络拥有者事先将用户的重编程权限和私钥通过安全的信道分配给该用户,且网络拥有者事先将系统公共参数装载到所有传感器节点上,所述私钥基于用户的重编程权限和身份信息生成;当用户进入无线传感器网络对目标传感器节点进行重编程时,用户为其新的传感器程序镜像建立重编程数据包并将该重编程数据包发送给所有目标传感器节点;各目标传感器节点在收到所述重编程数据包之后根据装载到自身的所述系统公共参数对所述新的传感器程序镜像进行验证如果所述新的传感器程序镜像通过验证,则相应的目标传感器节点接收并装载所述新的传感器程序镜像,如果验证失败,则将所述重编程数据包丢弃。
2.根据权利要求1所述的无线传感器网络的分布式安全重编程方法,其特征是,所述 “用户为其新的传感器程序镜像建立重编程数据包并将该重编程数据包发送给所有目标传感器节点”的方法如下所述用户将所述重编程数据包设为按先后顺序生成的一个以上的页数据包,其中,后一个生成的页数据包包含有前一个生成的页数据包的哈希值;接着在最后生成的页数据包的哈希值的基础上建立Merkle哈希树,再根据该Merkle哈希树生成初始页的页数据包;该用户将所述Merkle哈希树的根节点和新的传感器程序镜像的元数据组合在一起产生参数集,所述元数据包含新的传感器程序镜像的版本号和大小、以及所有目标传感器节点的身份集合;接着,该用户使用自己的私钥对所述参数集进行签名并将签名所产生的签名信息和所述参数集一并发送给各目标传感器节点;然后,该用户向各目标传感器节点按页数据包的生成的先后顺序的逆序发送所有的所述页数据包。
3.根据权利要求2所述的无线传感器网络的分布式安全重编程方法,其特征是,所述 “各目标传感器节点在收到所述重编程数据包之后根据装载到自身的所述系统公共参数对所述新的传感器程序镜像进行验证”的方法如下目标传感器节点首先检验所述参数集的合法性及用户是否具有重编程权限若所述参数集合法且所述用户具有重编程权限,则目标传感器节点使用所述系统公共参数对所述签名信息进行验证若所述签名信息合法,则按页数据包的生成的先后顺序的逆序对所述页数据包进行验证其中,初始页的页数据包是由目标传感器节点使用所述Merkle哈希树的根节点进行验证,其他页数据包是由目标传感器节点使用该页数据包的后一个生成的页数据包所包含的哈希值进行验证;如果一旦其中有一个页数据包未通过验证,则表明对所述新的传感器程序镜像的验证失败,直接放弃该新的传感器程序镜像;如果所述新的传感器程序镜像的所有页数据包通过了验证,则装载该新的传感器程序镜像。
全文摘要
本发明公开一种无线传感器网络的分布式安全重编程方法,包括如下步骤网络拥有者事先将用户的重编程权限和私钥通过安全的信道分配给该用户,且将系统公共参数装载到所有传感器节点上,所述私钥基于用户的重编程权限和身份信息生成;当用户进入无线传感器网络对目标传感器节点进行重编程时,用户为其新的传感器程序镜像建立重编程数据包并将该重编程数据包发送给所有目标传感器节点;各目标传感器节点在收到所述重编程数据包之后根据装载到自身的所述系统公共参数对所述新的传感器程序镜像进行验证如果所述新的传感器程序镜像通过验证,则相应的目标传感器节点接收并装载所述新的传感器程序镜像,如果验证失败,则将所述重编程数据包丢弃。
文档编号H04W12/04GK102421094SQ20111025591
公开日2012年4月18日 申请日期2011年8月31日 优先权日2011年8月31日
发明者何道敬, 卜佳俊, 尹明剑, 张学锋, 赵志为, 陈纯, 高艺 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1