《基于网络编码的无线传感器网络安全在线重编程方法.pdf》由会员分享,可在线阅读,更多相关《基于网络编码的无线传感器网络安全在线重编程方法.pdf(11页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103823691 A (43)申请公布日 2014.05.28 CN 103823691 A (21)申请号 201310697091.4 (22)申请日 2013.12.18 G06F 9/445(2006.01) G06F 21/64(2013.01) H04L 29/06(2006.01) H04W 84/18(2009.01) (71)申请人 浙江工商大学 地址 310018 浙江省杭州市下沙高教园区学 正街 18 号 (72)发明人 谢满德 魏贵义 (74)专利代理机构 杭州浙科专利事务所 ( 普通 合伙 ) 33213 代理人 吴秉中 (54) 发明名称。
2、 基于网络编码的无线传感器网络安全在线重 编程方法 (57) 摘要 基于网络编码的无线传感器网络安全在线重 编程方法, 属于无线传感器网络应用技术领域, 包 括 :(1) 源节点对待更新程序映像和运行在节点 上的旧程序映像进行字节级比较获得待分发的程 序映像增量 ;(2) 源节点对程序映像增量进行分 发前的预处理 ;(3) 无线传感器网络进行代码分 发 ;(4) 传感器节点进行代码分发的验证和装配, 并将接收到且验证成功的数据包装配成程序映像 增量 ;(5) 传感器节点基于已经运行在其上的旧 程序映像, 重编译产生新的更新好的程序映像, 并 加载。 本发明本身的方法复杂度不高, 易于操作和 实。
3、现, 适应无线传感器网络这种资源受限的环境。 同时第一次实现了兼顾网络重编程的安全性和能 耗。 (51)Int.Cl. 权利要求书 1 页 说明书 6 页 附图 3 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书6页 附图3页 (10)申请公布号 CN 103823691 A CN 103823691 A 1/1 页 2 1. 基于网络编码的无线传感器网络安全在线重编程方法, 其特征在于 : 包括以下步 骤 : 步骤 (1) : 源节点对待更新程序映像和运行在节点上的旧程序映像进行字节级比较获 得待分发的程序映像增量 ; 步骤 (2) : 源节点对程序映。
4、像增量进行分发前的预处理, 包括以下内容 : (2.1) , 源节点将代码映像分成固定大小的页, 每页进一步被分成固定大小的数据包 ; (2.2) , 源节点按页序对页内所有的数据包进行 XOR 的异或网络编码 ; (2.3) , 源节点计算每个数据包的 Hash 值, 该 Hash 值被嵌入到选定的数据包合适的位 置 ; (2.4) , 源节点采用 MSP 弱认证机制, 然后通过数字签名包来发起一次代码分发 ; 步骤 (3) : 无线传感器网络进行代码分发 ; 步骤 (4) : 传感器节点进行代码分发的验证和装配, 并将接收到且验证成功的数据包装 配成程序映像增量 ; 步骤 (5) : 传感。
5、器节点基于已经运行在其上的旧程序映像, 重编译产生新的更新好的程 序映像, 并加载。 2. 如权利要求 1 所述的基于网络编码的无线传感器网络安全在线重编程方法, 其特征 在于 : 步骤 (2.2) 中 , 所述 XOR 的异或网络编码, 它是一个基于邻居节点表, 从所有编码方 案的所有编码组合中, 找出能成功解码出一个数据包的节点个数最多的方法, 其约束条件 包括 : 在编码方案 k 中, 参与编码的消息包的个数为k; 当一个消息包已经被所有节点成功 接收, 则不参与编码 ; 节点能成功解码一个消息包的条件之一是该消息包已经被当前编码 方案选中, 而且是该节点目前所没有接收到的消息 ; 节点。
6、能成功解码一个消息包的另一个 条件是被选中参与编码的消息包只有一个还没有被成功接受, 否则根据异或编码理论节点 就不能正确接受该消息 ; 一个节点一次最多能成功解码一个数据包。 3. 如权利要求 1 所述的基于网络编码的无线传感器网络安全在线重编程方法, 其特征 在于 : 步骤 (2.3) 中, 源节点从最后一个页面开始, 通过 Hash 函数计算页内每个数据包的 Hash 值并将其内嵌到前一页位置相对应的包中, 不断重复此过程直到第一页, 对于第一页 的 Hash 值, 源节点在这些 Hash 值基础上, 建立一个 Merkle Hash 树, 源节点通过联合操作, 将固定数量的 Hash 。
7、值联合成一个数据包, 并计算该数据包的 Hash 值, 然后, 将刚计算出来 的Hash值, 两两联合成一个数据包, 并计算Hash值, 这个过程不断重复, 直到最后只剩一个 Hash 值, 将该 Hash 值嵌入到数字签名包。 4. 如权利要求 1 所述的基于网络编码的无线传感器网络安全在线重编程方法, 其特征 在于 : 步骤 (3) 中, 代码分发过程中, 采用计数器的方法 : 在基础邻居表的基础上, 采用了两 个域SC和RC分别表示向对应的邻居节点发送消息的个数和从对应邻居节点接收消息的个 数, 如果SC或RC超过了特定预值, 则将该节点标记为恶意节点, 将其阻塞一段时间, 在这段 时间。
8、都不向该节点发送消息或接收消息。 权 利 要 求 书 CN 103823691 A 2 1/6 页 3 基于网络编码的无线传感器网络安全在线重编程方法 技术领域 0001 本发明属于无线传感器网络应用技术领域, 具体涉及为基于网络编码的无线传感 器网络安全在线重编程方法。 背景技术 0002 无线传感器网络在农业、 环境监测、 生态保护等众多领域有着广阔的应用前景, 其 应用通常被部署于长期无人看守的环境中。然而, 随着时间的推移 , 无线传感器节点上 的应用程序经常需要增加一些功能或者修复软件中存在的问题 , 这就需要对整个网络所 有的节点进行重编程。在一些网络规模较大或者是节点部署环境较恶。
9、劣的情况下, 人工手 动地对所有节点编程将是一项非常耗时、 耗力甚至是不可能完成的任务。因此在 Wireless Sensor Networks(WSNs) 中需要一种机制能够通过无线的方式远程对节点软件进行更新。 WSNs 在线网络重编程 (Network Reprogramming) 技术是一种有效的解决途径。 0003 增量式多跳代码分发方法是 WSNs 在线网络重编程中最主流的一类方法。这类方 法的通用做法是首先通过计算新旧映像之间字节级的差异确定分发目标, 然后将更新目标 分成固定大小的页, 每页被进一步分割成固定大小的数据包, 最终将该数据包作为基本的 数据传输单位进行传输。传输时。
10、, 页按序传输。这类方法基本都没有考虑网络重编程的安 全性。 0004 为此, 针对传感器节点资源极度受限的计算环境 , 许多学者提出采用基于对称密 钥加密方法来加强网络重编程方法的安全性和可靠性。 虽然这种方法可以减少更新代码的 认证开销 , 缩短端到端传输的时间延迟。然而 , 使用对称密钥加密方法 , 需要在发送者和 接收者之间事先建立一个共享密钥。在网络重编程过程中 , 只要有一个节点被俘获就意味 着共享密钥被泄露 , 导致整个网络都不再安全。 0005 此外,即便使用基站与传感器节点之间的配对密码(pairwise keys) 方案,也会 因 WSNs 规模增大所产生的显著开销 , 而。
11、变得难以实用。 0006 针对这些缺点, 基于 PKC(Public Key Cipher) 的安全认证方法被提了出来。这 类方法的主要思想是使用单向 Hash 函数和数字签名的混合方法来认证网络中的更新代码 包和基站的身份。数字签名主要用来认证基站的身份, 即一个可信的基站有一个私钥 , 同 时每个传感器节点预置了这个基站相应的公钥。基站用它的私钥对每个更新包进行签名 , 传感器节点用公钥来验证每个接收更新包的真实性。任何节点在没有获得私钥的情况下 , 都无法冒充基站的合法签名。 但是, 现有的解决方案普遍存在方法复杂度较高、 没有同时考 虑安全性和网络重编程能耗的缺点。 发明内容 0007。
12、 本发明的目的在于克服上述提到的缺陷和不足, 而提供基于网络编码的无线传感 器网络安全在线重编程方法, 具有法复杂度低、 安全性高、 能源消耗小的特点。 0008 本发明实现其目的采用的技术方案如下。 说 明 书 CN 103823691 A 3 2/6 页 4 0009 基于网络编码的无线传感器网络安全在线重编程方法, 包括以下步骤 : 步骤 (1) : 源节点对待更新程序映像和运行在节点上的旧程序映像进行字节级比较获 得待分发的程序映像增量 ; 步骤 (2) : 源节点对程序映像增量进行分发前的预处理, 包括以下内容 : (2.1) , 源节点将代码映像分成固定大小的页, 每页进一步被分成。
13、固定大小的数据包 ; (2.2) , 源节点按页序对页内所有的数据包进行 XOR 的异或网络编码 ; (2.3) , 源节点计算每个数据包的 Hash 值, 该 Hash 值被嵌入到选定的数据包合适的位 置 ; (2.4) , 源节点采用 MSP 弱认证机制, 然后通过数字签名包来发起一次代码分发 ; 步骤 (3) : 无线传感器网络进行代码分发 ; 步骤 (4) : 传感器节点进行代码分发的验证和装配, 并将接收到且验证成功的数据包装 配成程序映像增量 ; 步骤 (5) : 传感器节点基于已经运行在其上的旧程序映像, 重编译产生新的更新好的程 序映像, 并加载。 0010 更具体的, 步骤 。
14、(2.2) 中,所述XOR的异或网络编码, 它是一个基于邻居节点表, 从 所有编码方案的所有编码组合中, 找出能成功解码出一个数据包的节点个数最多的方法, 其约束条件包括 : 在编码方案 k 中, 参与编码的消息包的个数为k; 当一个消息包已经被所 有节点成功接收, 则不参与编码 ; 节点能成功解码一个消息包的条件之一是该消息包已经 被当前编码方案选中, 而且是该节点目前所没有接收到的消息 ; 节点能成功解码一个消息 包的另一个条件是被选中参与编码的消息包只有一个还没有被成功接受, 否则根据异或编 码理论节点就不能正确接受该消息 ; 一个节点一次最多能成功解码一个数据包。 0011 更具体的,。
15、 步骤 (2.3) 中, 源节点从最后一个页面开始, 通过 Hash 函数计算页内每 个数据包的 Hash 值并将其内嵌到前一页位置相对应的包中, 不断重复此过程直到第一页, 对于第一页的 Hash 值, 源节点在这些 Hash 值基础上, 建立一个 Merkle Hash 树, 源节点通 过联合操作, 将固定数量的Hash值联合成一个数据包, 并计算该数据包的Hash值, 然后, 将 刚计算出来的Hash值, 两两联合成一个数据包, 并计算Hash值, 这个过程不断重复, 直到最 后只剩一个 Hash 值, 将该 Hash 值嵌入到数字签名包。 0012 更具体的, 步骤 (3) 中, 代码。
16、分发过程中, 采用计数器的方法 : 在基础邻居表的基 础上, 采用了两个域SC和RC分别表示向对应的邻居节点发送消息的个数和从对应邻居节 点接收消息的个数, 如果SC或RC超过了特定预值, 则将该节点标记为恶意节点, 将其阻塞 一段时间, 在这段时间都不向该节点发送消息或接收消息。 0013 与现有的发明相比, 本发明提出了基于网络编码的无线传感器网络安全在线重编 程方法, 同时兼顾了在线重编程的安全性和能耗。 0014 在安全性方面, 本发明没有采用高复杂性、 高计算消耗的数字签名等非对称密码 技术, 而是采用了低计算消耗、 低复杂度的 Hash 函数。通过有效的 Hash 值嵌入技术, 能。
17、保 证在页内数据包乱序到达情况下, 仍能通过简单的、 多次 Hash 操作就能对所接收的代码包 进行一致性认证。本发明中, 一次代码更新操作是通过包含代码映像 Hash 值的根的数字签 名操作来发起。 0015 为了防御基于数字签名的 DoS 攻击, 本发明在发送数字签名之前引入 MSP 说 明 书 CN 103823691 A 4 3/6 页 5 (Message Special Puzzle) 弱认证机制, 也就是在进行数字签名认证操作之前, 先通过简 单的 Hash 操作进行 “粗略” 验证, 能避免节点进行昂贵而无谓的数字签名认证操作。针对 重复请求的 DoS 攻击, 方法通过引入计数。
18、器的方法能有效剔除这类请求。 0016 在能耗方面, 本发明采用 XOR 的异或网络编码方法, 基站发送一个数据包, 不同的 节点能获得不同的数据包, 从而总体上减少数据包的传送数量, 从而降低了网络重编程的 能耗。 0017 与现有的解决类似问题的发明相比, 本发明本身的方法复杂度不高, 易于操作和 实现, 适应无线传感器网络这种资源受限的环境。同时第一次实现了兼顾网络重编程的安 全性和能耗。 附图说明 0018 图 1 是本发明的流程示意图 ; 图 2 是本发明的原理框图 ; 图 3 是本发明的安全认证的包预处理过程 ; 图 4 是本发明的 Merkle Hash 树建立过程。 具体实施方。
19、式 0019 下面结合附图, 对本发明作进一步详细说明。 0020 对于一个已经投入使用的无线传感器网络应用系统, 为了进行无线代码更新, 需 要经历远程重启正运行的程序映像到代码更新模式 代码更新 远程重启到更新 好的代码映像。如图 1 和图 2 所示。 0021 方案将参与网络重编程的无线传感器网络分成了三个角色 : 源节点或基站, 无线 传感器网络本身, 传感器节点。源节点首先对待更新程序映像和运行在节点上的旧程序映 像进行字节级比较获得待分发的程序映像增量, 之后进行分发前的预处理。无线传感器网 络本身负责代码分发, 传感器节点负责代码分发的验证和装配, 并将收到验证成功的数据 包装配。
20、成程序映像增量, 之后基于已经运行在其上的旧程序映像, 重编译产生新的更新好 的程序映像, 并加载。本发明重点解决的是代码映像的实际分发, 我们将该操作分成三步 : 代码映像预处理代码映像分发代码映像认证, 以最大限度提高网络重编程的安 全性, 降低能耗。具体方案如下 : 步骤 (1) : 源节点对待更新程序映像和运行在节点上的旧程序映像进行字节级比较获 得待分发的程序映像增量 ; 步骤 (2) : 源节点对程序映像增量进行分发前的预处理, 包括以下内容 : (2.1) , 源节点将代码映像分成固定大小的页, 每页进一步被分成固定大小的数据包 ; (2.2) , 源节点按页序对页内所有的数据包。
21、进行 XOR 的异或网络编码 ; 为了减少节点传输和接收的数据量, 本发明采用网络编码的方案。首先采用了邻居节 点表, 然后采用 XOR 的异或网络编码方法对待发送的数据包进行编码。 0022 节点首先对待发送的数据包进行编码, 再发送编码后的数据包。假定节点的邻居 数为 n, 分别记为 : P1,P2,Pn, 一个待分发的代码页被分成了 t 个固定大小的数据包, 分 别记为 :。节点引入一个邻居节点表来记录邻居节点的状态, 每个邻居在表格 说 明 书 CN 103823691 A 5 4/6 页 6 中对应一条记录, 该记录包含一个长度为t的位向量, 其中每一位对应一个消息, 如果该邻 居没。
22、有相应的消息, 该位置为 1, 否则置为 0。不失一般性, 我们记邻居节点 Pi的位向量为 : Pi(mi1, mi2, mit) mij (0, 1), i=1, 2, n, j=1, 2, t。最终每个节点维护一个 表 1 所示的邻居节点表。初始状态该表为空, 当接收到邻居节点的 NACK 请求后, 他首先检 查该表中是否已经有了对应的记录, 如果没有则添加一条记录, 如果有则更新相应的记录。 0023 表 1 每个节点维护的邻居记录表 基于上述邻居节点表, 本发明采用 XOR 的异或网络编码方法。假设和为待分发的 数据包, 异或编码的总体思想是 : 节点一次发送数据包, 这样有数据包的节。
23、点可以 通过简单的异或操作, 解码得到数据包, 有数据包的节点, 则可以通过简单 的异或操作, 解码得到。因此, 发送一个数据包, 不同的节点能获得不同的数据 包, 从而总体上减少数据包的传送数量。 0024 为了方面描述基于上述邻居节点表的最佳异或编码方法, 首先给出以下定义 定义 1 : 编码方案 k : 指该编码方案中, 参与异或编码的消息个数为k。比如编码方案 1 指该异或编码方案只选择了一个消息参与编码, 编码方案 2 指该异或编码方案选择了二个 消息参与编码, 依此类推。编码方案只与选择参与编码的消息个数有关, 与消息的顺序无 关, 因此对于有t个消息的情况, 编码方案最多有t种。。
24、 0025 其它符号的含义如表 2 所示。 0026 表 2 所用符号的含义 基于上述定义和符号说明, 可以将最优化编码方案的优化目标形式化为 : 说 明 书 CN 103823691 A 6 5/6 页 7 (1) (2) (3) 约束条件为 : (4) (5) (6) , 这里 (7) 这里, (8) 在优化目标中, 表达式 (3) 表示采用编码方案 k 编码组合 s 情况下, 所有节点能成功解 码数据包的个数 ; 表达式 (2) 表示在编码方案 k 的所有编码组合中, 所有节点能成功解码数 据包的最大个数 ; 表达式 (1) 表示在所有编码方案中, 所有节点能成功解码数据包的最大 个数。。
25、 因此我们的优化目标可总结为 : 从所有编码方案的所有编码组合中, 找出能成功解码 出一个数据包的节点个数最多的方案。 0027 约束条件中, 等式 (4) 是确保在编码方案k中, 参与编码的消息包的个数为k; 不等 式 (5) 是确保如果一个消息包已经被所有节点成功接收, 则不参与编码 ; 不等式 (6) 指出节 点能成功解码一个消息包的条件之一是该消息包已经被当前编码方案选中, 而且是该节点 目前所没有接收到的消息 ; 等式 (7) 指出节点能成功解码一个消息包的另一个条件是被选 中参与编码的消息包只有一个还没有被成功接受, 否则根据异或编码理论节点就不能正确 接受该消息 ; 表达式 (8。
26、) 是确保任何节点最多能成功解码一个消息包, 因为根据异或编码 的原理, 一个节点一次最多能成功解码一个数据包。 0028 可以证明上述优化问题为 P 问题, 因此, 最终获得最优解。 0029 (2.3) , 源节点计算每个数据包的Hash值, 该Hash值被嵌入到选定的数据包合适 的位置 ; 源节点从最后一个页面开始, 通过高效的 Hash 函数计算页内每个数据包的 Hash 值并 将其内嵌到前一页位置相对应的包中, 不断重复此过程直到第一页, 其工作过程如图 3 表 示。 对于第一页的Hash值, 源节点处理方法是在这些Hash值基础上, 建立一个Merkle Hash 说 明 书 CN。
27、 103823691 A 7 6/6 页 8 树, 其建立过程如图 4 表示。源节点首先通过联合操作, 将固定数量的 Hash 值联合成一个 数据包, 并计算该数据包的 Hash 值。然后, 将刚计算出来的 Hash 值, 两两联合成一个数据 包, 并计算 Hash 值。这个过程不断重复, 直到最后只剩一个 Hash 值, 将该 Hash 值嵌入到数 字签名包。 0030 (2.4) , 源节点采用 MSP 弱认证机制, 然后通过数字签名包来发起一次代码分发。 0031 为了防御基于数字签名的 DoS 攻击, 基站拟在发送数字签名之前引入 MSP (Message Special Puzzle。
28、) 弱认证机制, 以避免节点进行昂贵而无谓的数字签名认证操 作。 0032 步骤 (3) : 无线传感器网络进行代码分发 ; 代码分发过程中, 如果存在恶意节点, 不断的重复向某个节点请求数据包, 或不断的向 其它节点分发伪造的数据包, 则节点能量将很快耗尽, 而不能工作。针对这种类型的攻击, 本发明采用计数器的方法。 0033 首先在基础邻居表的基础上, 采用了两个域SC和RC分别表示向对应的邻居节点 发送消息的个数和从对应邻居节点接收消息的个数, 如果SC或RC超过了特定预值, 则将该 节点标记为恶意节点, 将其阻塞一段时间, 在这段时间都不向该节点发送消息或接收消息。 0034 表 3 。
29、扩展后的邻居表 步骤 (4) : 传感器节点进行代码分发的验证和装配, 并将接收到且验证成功的数据包装 配成程序映像增量 ; 各传感器节点在收到数字签名后, 首先通过简单的 Hash 操作进行数字签名认证之前 的 “粗略” 验证, 如果通过在进行进一步的数字签名认证。对于收到的数据包, 则只需通过 简单的 Hash 操作和 Hash 值比对进行数据包的一致性验证。 0035 步骤 (5) : 传感器节点基于已经运行在其上的旧程序映像, 重编译产生新的更新好 的程序映像, 并加载。 0036 本发明按照实施例进行了说明, 在不脱离本原理的前提下, 本方案还可以作出若 干变形和改进。 应当指出, 凡采用等同替换或等效变换等方式所获得的技术方案, 均落在本 发明的保护范围内。 说 明 书 CN 103823691 A 8 1/3 页 9 图 1 图 2 说 明 书 附 图 CN 103823691 A 9 2/3 页 10 图 3 说 明 书 附 图 CN 103823691 A 10 3/3 页 11 图 4 说 明 书 附 图 CN 103823691 A 11 。