支持多授权租户的安全分布式网络重编程方法

文档序号:7810422阅读:141来源:国知局
支持多授权租户的安全分布式网络重编程方法
【专利摘要】本发明公开了一种支持多授权租户的安全分布式网络重编程方法,包括:网络拥有者及各租户产生公私钥对;租户向网络拥有者发送请求消息;网络拥有者审核请求消息,代理为租户计算条件代理重签名密钥,向租户和代理分别发送确认数据包及访问控制记录;租户接收到确认数据包后进行签名,将所得数字签名发送给代理;代理对租户进行验证,通过后进行数字重签名,将得到的条件代理重签名发送回对应的租户;租户验证条件代理重签名,通过后利用条件代理重签名向无线传感网络发起网络重编程,完成网络重编程。本发明不需要存在基站,能克服集中式方法的单点故障等缺陷,并且能够由网络拥有者对租户进行授权,防止对无线传感器网络的不良篡改。
【专利说明】支持多授权租户的安全分布式网络重编程方法

【技术领域】
[0001] 本发明涉及无线传感器网络领域,尤其涉及一种支持多授权租户的安全分布式网 络重编程方法。

【背景技术】
[0002] 无线传感器网络在农业、环境监测、生态保护等众多领域有着广阔的应用前景,其 应用通常被部署于长期无人看守的环境中。然而,随着时间的推移,无线传感器节点上的 应用程序经常需要增加一些功能或者修复软件中存在的问题,这就需要对整个网络所有 的节点进行重编程。在一些网络规模较大或者是节点部署环境较恶劣的情况下,人工手动 地对所有节点编程将是一项非常耗时、耗力甚至是不可能完成的任务。因此在Wireless Sensor Networks (WSNs)中需要一种机制能够通过无线的方式远程对节点软件进行更新。 WSNs 网络重编程(Network Reprogramming)又称代码分发(Code Dissemination)技术是 一种有效的解决途径。
[0003] 现在,已经有很多学者对在线重编程算法进行了广泛的研究,尤其是安全和节能 方面更是受到了国内外众多学者的广泛关注,并迅速成为了业内研究的热点。然而,现有算 法基本都是集中式的方案,即假设网络体系结构中存在一个基站,而且基站是唯一一个有 权发起网络重编程的一方。另外,现有网络重编程算法操作的是网络内的所有节点,即所有 节点都无选择的全部进行了代码更新。事实上,在WSNs实际应用中,基站并不是总是存在, 比如用于战场监测的WSNs应用系统等。另外集中式的方案,基站是一个备受关注的攻击目 标,很容易产生单点故障,系统不易扩充。更加重要的是,有一类WSNs应用系统其主要目 的是租赁给第三方使用。这种应用中,网络拥有者并不参与代码分发,而是授权给其多个租 赁方。网络拥有者根据租赁方的角色,授权其对指定区域或指定类型的传感器节点进行代 码更新,如果发现租赁方有不良行为,能随时撤销对其授权。虽然已经有文献对此展开了研 究,但是他们提出的方法采用了较为复杂的密码算法,大大的增大了节点的开销,这对能量 有限的无线传感器节点非常不利。
[0004] 现有重编程方法采用了各种方式,比如基于Hash链、Hash树等来提高网络重编程 的安全性。然而他们的共同特点是他们都是集中式的方案,如图1所示,假设网络体系结构 中存在一个基站,而且基站是唯一一个有权发起网络重编程的一方。另外,现有网络重编程 方法操作的是网络内的所有节点,即所有节点都无选择的全部进行了代码更新,而不能控 制或指定部分节点参与网络重编程。事实上,在WSNs实际应用中,基站并不是总是存在, 比如用于战场监测的WSNs应用系统等。另外集中式的方案,基站是一个备受关注的攻击目 标,很容易产生单点故障,系统不易扩充。更加重要的是,有一类WSNs应用系统其主要目的 是租赁给第三方使用。这种应用中,网络拥有者并不参与代码分发,而是授权给其多个租赁 方。


【发明内容】

[0005] 本发明提出了一个不显著增加节点开销,同时支持多授权方、具有细粒度控制的 分布式代码分发算法。
[0006] -种支持多授权租户的安全分布式网络重编程方法,包括如下步骤:
[0007] 步骤1,网络拥有者及各租户产生各自的公私钥对;
[0008] 步骤2,发起网络重编程的租户向网络拥有者发送请求消息,所述请求消息包含租 户公钥;
[0009] 步骤3,网络拥有者审核请求消息,通过后产生由租户接收的确认数据包以及由代 理接收的访问控制记录并发送给对应的接收者,同时代理通过与网络拥有者的交互计算得 到与租户对应的条件代理重签名密钥,所述确认数据包及访问控制记录均包括租户的身份 信息,访问控制记录还包括租户的公钥、包含租户权限的访问控制项;
[0010] 步骤4,租户接收到确认数据包后,对待分发的程序映像进行预处理,利用自身的 私钥对预处理结果以及程序映像的附加信息进行签名,将所得数字签名发送给代理;
[0011] 步骤5,代理利用访问控制记录对租户重编程权限进行验证,利用租户自己的公 钥对其数字签名进行验证,如果通过则利用条件代理重签名密钥将数字签名进行代理重签 名,将得到的条件代理重签名发送回对应的租户;
[0012] 步骤6,租户利用网络拥有者的公钥对条件代理重签名进行验证,如果通过,则利 用条件代理重签名向无线传感网络发起网络重编程,进行程序映像分发。
[0013] 具体程序映像的预处理方法以及分发方法可以根据情况采用如下文献方法中的 一种:
[0014] P. Lanigan, R. Gandhi, P. Narasimhan, Sluice: secure dissemination of code updates in sensor networks, in:IEEE International Conference on Distributed Computing Systems (ICDCSJ 06), 2006.
[0015] P. Dutta, J. Hui, D. Chu, D. Culler, Securing the deluge network programming system,in:Proc. of the 5th International Conference on Information Processing in Sensor networks (IPSN' 06),Nashville,TN,United states,2006, pp. 326-333.
[0016] J. Deng, R. Han, S. Mishra, Secure code distribution in dynamically programmable wireless sensor networks,in:Proc. of the 5th International Conference on Information Processing in Sensor networks(IPSN'06),Nashville,TN, United states,2006,pp. 292-300.
[0017] J. Deng, R. Han, S. Mishra, E_ciently authenticating code images in dynamically reprogrammed wireless sensor networks, in:IEEE Third International Workshop on Pervasive Computing and Communication Security (PerSec'06),Pisa,It aly,2006, pp. 272-276.
[0018] S. Hyun, P. Ning,A. Liu,W. Du, Seluge:Secure and dos-resistant code dissemination in wireless sensor networks,in:Proc. of the 5th International Conference on Information Processing in Sensor networks (IPSN'08),Louis,M0,Unit ed states,2008, pp. 445-456.
[0019] Z. Y. Zhang, R. , Lr-seluge:Loss-resilient and secure code dissemination inwireless sensor networks,in:Proc IEEE ICDCS2011,Minneapolis,Minnesota,USA,20 11, pp. 497-505.
[0020] 本发明提出的框架是分布式的,不需要基站一定存在,能克服集中式方法的单点 故障等缺陷。其中,代理特指为网络拥有者的代理,其代为行使网络拥有者授权的操作,t匕 如进行条件代理重签名。
[0021] 步骤1中,公私钥对< pk,sk >利用系统参数(G,q,g,H)产生,其中G是阶为q的 有限循环群,q为大素数,g是G的任一生成元,Η是安全密码hash函数Η: {04Γ- ><,其中 ζ:表不{l,2,*",q-l}的集合。
[0022] 其中大素数是指长度为160比特以上由0和1所组成序列所表示的素数。
[0023] 步骤3中,所述访问控制记录由网络拥有者产生,由代理维护,产生的方法如下:
[0024] 步骤3-1,为租户分配包含该租户身份信息的个人身份识别码;
[0025] 步骤3-2,根据租户的角色,确定其网络重编程的权限,并构造包含权限的访问控 制项;
[0026] 步骤3-3,每个租户的个人身份识别码、公钥以及访问控制项形成该租户的访问控 制记录。
[0027] 网络拥有者根据租户的角色,确定其有权限进行网络重编程的节点类型(比如温 湿度、二氧化碳节点等)和节点区域,构造对应的访问控制记录。代理在接收到访问控制记 录后,建立起访问控制表,表中每一行对应一个租户的访问控制记录。在后续步骤中,代理 对租户进行权限的验证时,通过在访问控制表中查找用户的个人身份识别码找到对应租户 的访问控制记录。
[0028] 在步骤3中,对任意审核通过的租户i,代理通过与网络拥有者交互的方式为该租 户产生条件代理重签名密钥,其具体方法为:
[0029] 步骤a,网络拥有者向租户发送消息r+slynod q,其中r是网络拥有者选定的随机 数,sk。是网络拥有者的私钥;
[0030] 步骤b,网络拥有者向代理发送所选择的随机数r、网络拥有者的公钥pk。;
[0031] 步骤c,租户向代理发送消息r+sh-skimod q,其中ski为租户的私钥;
[0032] 步骤d,代理计算得到租户i的条件代理重签名密钥,条件代理重签名密钥计算公 式如下:
[0033] rkj = r+sk〇-ski-r mod q = sk^skimod q〇
[0034] 条件代理重签名的引入可以允许多个租户的存在,只有租户权限允许的情况下代 理才会为其提供代理重签名服务,该租户才能进一步发起网络重编程。如果租户有违规行 为或恶意行为,代理只要拒绝为其提供代理重签名服务,该租户就不再有效。而且这些租户 可以以分布式的方式位于各个地方。
[0035] 在步骤3中,向用户发送的确认数据包中包括该用户的个人身份识别码。
[0036] 用户通过收到确认数据包ACK (该ACK包包含其个人身份识别码)来确认自己授 权通过。
[0037] 步骤4中,对于租户i,其利用自身的私钥对预处理结果以及程序映像的附加信息 进行签名的方法为,根据以下公式计算得到数字签名σ i :
[0038] R; = g'1, 〇 i = ri+H(Ri| |m)*skimod q,
[0039] 其中ri是租户i选定的随机数,Η表示哈希函数,符号I I为联合运算,m包含:程 序映像的版本号iVerNum、允许代码更新的传感器分区ID号AID、允许代码更新的传感器类 型ST、Hash树的树根R 〇〇t_IT以及程序映像相关的其他信息0th,其中Hash树的树根R〇〇t_ IT为程序映像的预处理结果。
[0040] 租户利用上述公式,通过自己的私钥对预处理结果以及程序映像的附加信息,例 如程序映像的版本号进行签名。
[0041] 在步骤4中,对于租户i,其向代理发送的消息还包括氏以及m;
[0042] 在步骤5中,具体进行验证的方式如下:
[0043] 步骤5-1,代理通过租户公钥对数字签名进行验证,验证公式为:

【权利要求】
1. 一种支持多授权租户的安全分布式网络重编程方法,其特征在于,包括如下步骤: 步骤1,网络拥有者及各租户产生各自的公私钥对; 步骤2,发起网络重编程的租户向网络拥有者发送请求消息,所述请求消息包含租户公 钥; 步骤3,网络拥有者审核请求消息,通过后产生由租户接收的确认数据包以及由代理 接收的访问控制记录并发送给对应的接收者,同时代理通过与网络拥有者的交互计算得到 与租户对应的条件代理重签名密钥,所述确认数据包及访问控制记录均包括租户的身份信 息,访问控制记录还包括租户的公钥、包含租户权限的访问控制项; 步骤4,租户接收到确认数据包后,对待分发的程序映像进行预处理,利用自身的私钥 对预处理结果以及程序映像的附加信息进行签名,将所得数字签名发送给代理; 步骤5,代理利用访问控制记录对租户重编程权限进行验证,利用租户自己的公钥对其 数字签名进行验证,如果通过则利用条件代理重签名密钥将数字签名进行代理重签名,将 得到的条件代理重签名发送回对应的租户; 步骤6,租户利用网络拥有者的公钥对条件代理重签名进行验证,如果通过,则利用条 件代理重签名向无线传感网络发起网络重编程,进行程序映像分发。
2. 如权利要求1所述支持多授权租户的安全分布式网络重编程方法,其特征在于,步 骤1中,公私钥对<pk,sk>利用系统参数(G,q,g,H)产生,其中G是阶为q的有限循环 群,q为大素数,g是G的任一生成元,Η是安全密码hash函数/7 : !〇jf- > 其中表示 {1,2,…,q-Ι}的集合。
3. 如权利要求1或2所述支持多授权租户的安全分布式网络重编程方法,其特征在于, 步骤3中,所述访问控制记录由网络拥有者产生,由代理维护,产生的方法如下: 步骤3-1,为租户分配包含该租户身份信息的个人身份识别码; 步骤3-2,根据租户的角色,确定其网络重编程的权限,并构造包含权限的访问控制 项; 步骤3-3,每个租户的个人身份识别码、公钥以及访问控制项形成该租户的访问控制记 录。
4. 如权利要求1所述支持多授权租户的安全分布式网络重编程方法,其特征在于,在 步骤3中,对任意审核通过的租户i,代理通过与网络拥有者交互的方式为该租户产生条件 代理重签名密钥,其具体方法为: 步骤a,网络拥有者向租户发送消息r+slynod q,其中r是网络拥有者选定的随机数, sk。是网络拥有者的私钥; 步骤b,网络拥有者向代理发送所选择的随机数r、网络拥有者的公钥pk。; 步骤c,租户向代理发送消息r+sk^-skiinod q,其中sk^为租户的私钥; 步骤d,代理计算得到租户i的条件代理重签名密钥,条件代理重签名密钥计算公式如 下: rki = r+sko-ski-r mod q = sko-skiinod q〇
5. 如权利要求3所述支持多授权租户的安全分布式网络重编程方法,其特征在于,在 步骤3中,向租户发送的确认数据包中包括该租户的个人身份识别码。
6. 如权利要求3所述支持多授权租户的安全分布式网络重编程方法,其特征在于,步 骤4中,对于租户i,其利用自身的私钥对预处理结果以及程序映像的附加信息进行签名的 方法为,根据以下公式计算得到数字签名σ i : = 0 i = ri+H(Ri | |m)*skimod q, 其中A是租户i选定的随机数,Η表示哈希函数,符号I I为联合运算,m包含:程序映像 的版本号iVerNum、允许代码更新的传感器分区ID号AID、允许代码更新的传感器类型ST、 Hash树的树根R〇〇t_IT以及程序映像相关的附加信息Oth,其中Hash树的树根R〇〇t_IT为 程序映像的预处理结果。
7. 如权利要求6所述支持多授权租户的安全分布式网络重编程方法,其特征在于,在 步骤4中,对于租户i,其向代理发送的消息还包括氏以及m; 在步骤5中,具体进行验证的方式如下: 步骤5-1,代理通过租户公钥对数字签名进行验证,验证公式为: - K *pkf{R'llm), 若R^m以及〇 i使得该公式成立,则验证成功,进入步骤5-2 ;否则,拒绝提供代理重签 名服务,发起重编程失败; 步骤5-2,代理根据租户i对应的访问控制记录检查该租户的权限与数字签名中所宣 称权限是否一致:如果一致,则利用条件代理重签名密钥进行重签名;否则,拒绝提供代理 重签名服务,发起重编程失败。
8. 如权利要求6所述支持多授权租户的安全分布式网络重编程方法,其特征在于,步 骤5中代理利用条件代理重签名密钥进行签名的方式为,首先设定尺=尺=g% r。= ri, 接着计算得到条件代理重签名〇。,计算公式如下: σ。= σ JH 取 | | m) *rki =σ 冲取 I ImXsl^-ski) =ri+H(Ri| I m) ^skj+H (Rj I | m) * (sk〇-ski) =I |m)*sk。。
9. 如权利要求8所述支持多授权租户的安全分布式网络重编程方法,其特征在于,在 步骤5中,代理发送给租户的消息还包括R。; 步骤6中,租户对条件代理重签名进行验证的方式为,利用如下公式进行验证: 如发送的R。和σ。满足该公式,则验证成功;否则,验证失败。
【文档编号】H04L9/08GK104104688SQ201410371516
【公开日】2014年10月15日 申请日期:2014年7月30日 优先权日:2014年7月30日
【发明者】谢满德 申请人:浙江工商大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1