书签 分享 收藏 举报 版权申诉 / 11

基于网络编码的无线传感器网络安全在线重编程方法.pdf

  • 上传人:a2
  • 文档编号:6150728
  • 上传时间:2019-04-20
  • 格式:PDF
  • 页数:11
  • 大小:1.08MB
  • 摘要
    申请专利号:

    CN201310697091.4

    申请日:

    2013.12.18

    公开号:

    CN103823691A

    公开日:

    2014.05.28

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 9/445申请日:20131218|||公开

    IPC分类号:

    G06F9/445; G06F21/64(2013.01)I; H04L29/06; H04W84/18(2009.01)I

    主分类号:

    G06F9/445

    申请人:

    浙江工商大学

    发明人:

    谢满德; 魏贵义

    地址:

    310018 浙江省杭州市下沙高教园区学正街18号

    优先权:

    专利代理机构:

    杭州浙科专利事务所(普通合伙) 33213

    代理人:

    吴秉中

    PDF完整版下载: PDF下载
    内容摘要

    基于网络编码的无线传感器网络安全在线重编程方法,属于无线传感器网络应用技术领域,包括:(1)源节点对待更新程序映像和运行在节点上的旧程序映像进行字节级比较获得待分发的程序映像增量;(2)源节点对程序映像增量进行分发前的预处理;(3)无线传感器网络进行代码分发;(4)传感器节点进行代码分发的验证和装配,并将接收到且验证成功的数据包装配成程序映像增量;(5)传感器节点基于已经运行在其上的旧程序映像,重编译产生新的更新好的程序映像,并加载。本发明本身的方法复杂度不高,易于操作和实现,适应无线传感器网络这种资源受限的环境。同时第一次实现了兼顾网络重编程的安全性和能耗。

    权利要求书

    权利要求书
    1.  基于网络编码的无线传感器网络安全在线重编程方法,其特征在于:包括以下步骤:
    步骤(1):源节点对待更新程序映像和运行在节点上的旧程序映像进行字节级比较获得待分发的程序映像增量;
    步骤(2):源节点对程序映像增量进行分发前的预处理,包括以下内容:
    (2.1),源节点将代码映像分成固定大小的页,每页进一步被分成固定大小的数据包;
    (2.2),源节点按页序对页内所有的数据包进行XOR的异或网络编码;
    (2.3),源节点计算每个数据包的Hash值,该Hash值被嵌入到选定的数据包合适的位置;
    (2.4),源节点采用MSP弱认证机制,然后通过数字签名包来发起一次代码分发;
    步骤(3):无线传感器网络进行代码分发;
    步骤(4):传感器节点进行代码分发的验证和装配,并将接收到且验证成功的数据包装配成程序映像增量;
    步骤(5):传感器节点基于已经运行在其上的旧程序映像,重编译产生新的更新好的程序映像,并加载。

    2.  如权利要求1所述的基于网络编码的无线传感器网络安全在线重编程方法,其特征在于:步骤(2.2)中,所述XOR的异或网络编码,它是一个基于邻居节点表,从所有编码方案的所有编码组合中,找出能成功解码出一个数据包的节点个数最多的方法,其约束条件包括:在编码方案k中,参与编码的消息包的个数为k;当一个消息包已经被所有节点成功接收,则不参与编码;节点能成功解码一个消息包的条件之一是该消息包已经被当前编码方案选中,而且是该节点目前所没有接收到的消息;节点能成功解码一个消息包的另一个条件是被选中参与编码的消息包只有一个还没有被成功接受,否则根据异或编码理论节点就不能正确接受该消息;一个节点一次最多能成功解码一个数据包。

    3.  如权利要求1所述的基于网络编码的无线传感器网络安全在线重编程方法,其特征在于:步骤(2.3)中,源节点从最后一个页面开始,通过Hash函数计算页内每个数据包的Hash值并将其内嵌到前一页位置相对应的包中,不断重复此过程直到第一页,对于第一页的Hash值,源节点在这些Hash值基础上,建立一个Merkle Hash树,源节点通过联合操作,将固定数量的Hash值联合成一个数据包,并计算该数据包的Hash值,然后,将刚计算出来的Hash值,两两联合成一个数据包,并计算Hash值,这个过程不断重复,直到最后只剩一个Hash值,将该Hash值嵌入到数字签名包。

    4.  如权利要求1所述的基于网络编码的无线传感器网络安全在线重编程方法,其特征在于:步骤(3)中,代码分发过程中,采用计数器的方法:在基础邻居表的基础上,采用了两个域SCRC分别表示向对应的邻居节点发送消息的个数和从对应邻居节点接收消息的个数,如果SCRC超过了特定预值,则将该节点标记为恶意节点,将其阻塞一段时间,在这段时间都不向该节点发送消息或接收消息。

    说明书

    说明书基于网络编码的无线传感器网络安全在线重编程方法
    技术领域
    本发明属于无线传感器网络应用技术领域,具体涉及为基于网络编码的无线传感器网络安全在线重编程方法。
    背景技术
    无线传感器网络在农业、环境监测、生态保护等众多领域有着广阔的应用前景,其应用通常被部署于长期无人看守的环境中。然而,随着时间的推移, 无线传感器节点上的应用程序经常需要增加一些功能或者修复软件中存在的问题, 这就需要对整个网络所有的节点进行重编程。在一些网络规模较大或者是节点部署环境较恶劣的情况下,人工手动地对所有节点编程将是一项非常耗时、耗力甚至是不可能完成的任务。因此在Wireless Sensor Networks(WSNs)中需要一种机制能够通过无线的方式远程对节点软件进行更新。WSNs 在线网络重编程(Network Reprogramming)技术是一种有效的解决途径。
    增量式多跳代码分发方法是WSNs 在线网络重编程中最主流的一类方法。这类方法的通用做法是首先通过计算新旧映像之间字节级的差异确定分发目标,然后将更新目标分成固定大小的页,每页被进一步分割成固定大小的数据包,最终将该数据包作为基本的数据传输单位进行传输。传输时,页按序传输。这类方法基本都没有考虑网络重编程的安全性。
    为此,针对传感器节点资源极度受限的计算环境,许多学者提出采用基于对称密钥加密方法来加强网络重编程方法的安全性和可靠性。虽然这种方法可以减少更新代码的认证开销,缩短端到端传输的时间延迟。然而,使用对称密钥加密方法,需要在发送者和接收者之间事先建立一个共享密钥。在网络重编程过程中,只要有一个节点被俘获就意味着共享密钥被泄露,导致整个网络都不再安全。
    此外,即便使用基站与传感器节点之间的配对密码(pairwise keys) 方案,也会因WSNs规模增大所产生的显著开销,而变得难以实用。
    针对这些缺点,基于PKC(Public Key Cipher)的安全认证方法被提了出来。这类方法的主要思想是使用单向Hash函数和数字签名的混合方法来认证网络中的更新代码包和基站的身份。数字签名主要用来认证基站的身份,即一个可信的基站有一个私钥,同时每个传感器节点预置了这个基站相应的公钥。基站用它的私钥对每个更新包进行签名,传感器节点用公钥来验证每个接收更新包的真实性。任何节点在没有获得私钥的情况下,都无法冒充基站的合法签名。但是,现有的解决方案普遍存在方法复杂度较高、没有同时考虑安全性和网络重编程能耗的缺点。
    发明内容
    本发明的目的在于克服上述提到的缺陷和不足,而提供基于网络编码的无线传感器网络安全在线重编程方法,具有法复杂度低、安全性高、能源消耗小的特点。
    本发明实现其目的采用的技术方案如下。
    基于网络编码的无线传感器网络安全在线重编程方法,包括以下步骤:
    步骤(1):源节点对待更新程序映像和运行在节点上的旧程序映像进行字节级比较获得待分发的程序映像增量;
    步骤(2):源节点对程序映像增量进行分发前的预处理,包括以下内容:
    (2.1),源节点将代码映像分成固定大小的页,每页进一步被分成固定大小的数据包;
    (2.2),源节点按页序对页内所有的数据包进行XOR的异或网络编码;
    (2.3),源节点计算每个数据包的Hash值,该Hash值被嵌入到选定的数据包合适的位置;
    (2.4),源节点采用MSP弱认证机制,然后通过数字签名包来发起一次代码分发;
    步骤(3):无线传感器网络进行代码分发;
    步骤(4):传感器节点进行代码分发的验证和装配,并将接收到且验证成功的数据包装配成程序映像增量;
    步骤(5):传感器节点基于已经运行在其上的旧程序映像,重编译产生新的更新好的程序映像,并加载。
    更具体的,步骤(2.2)中,所述XOR的异或网络编码,它是一个基于邻居节点表,从所有编码方案的所有编码组合中,找出能成功解码出一个数据包的节点个数最多的方法,其约束条件包括:在编码方案k中,参与编码的消息包的个数为k;当一个消息包已经被所有节点成功接收,则不参与编码;节点能成功解码一个消息包的条件之一是该消息包已经被当前编码方案选中,而且是该节点目前所没有接收到的消息;节点能成功解码一个消息包的另一个条件是被选中参与编码的消息包只有一个还没有被成功接受,否则根据异或编码理论节点就不能正确接受该消息;一个节点一次最多能成功解码一个数据包。
    更具体的,步骤(2.3)中,源节点从最后一个页面开始,通过Hash函数计算页内每个数据包的Hash值并将其内嵌到前一页位置相对应的包中,不断重复此过程直到第一页,对于第一页的Hash值,源节点在这些Hash值基础上,建立一个Merkle Hash树,源节点通过联合操作,将固定数量的Hash值联合成一个数据包,并计算该数据包的Hash值,然后,将刚计算出来的Hash值,两两联合成一个数据包,并计算Hash值,这个过程不断重复,直到最后只剩一个Hash值,将该Hash值嵌入到数字签名包。
    更具体的,步骤(3)中,代码分发过程中,采用计数器的方法:在基础邻居表的基础上,采用了两个域SCRC分别表示向对应的邻居节点发送消息的个数和从对应邻居节点接收消息的个数,如果SCRC超过了特定预值,则将该节点标记为恶意节点,将其阻塞一段时间,在这段时间都不向该节点发送消息或接收消息。
    与现有的发明相比,本发明提出了基于网络编码的无线传感器网络安全在线重编程方法,同时兼顾了在线重编程的安全性和能耗。
    在安全性方面,本发明没有采用高复杂性、高计算消耗的数字签名等非对称密码技术,而是采用了低计算消耗、低复杂度的Hash函数。通过有效的Hash值嵌入技术,能保证在页内数据包乱序到达情况下,仍能通过简单的、多次Hash操作就能对所接收的代码包进行一致性认证。本发明中,一次代码更新操作是通过包含代码映像Hash值的根的数字签名操作来发起。
    为了防御基于数字签名的DoS攻击,本发明在发送数字签名之前引入MSP(Message Special Puzzle)弱认证机制,也就是在进行数字签名认证操作之前,先通过简单的Hash操作进行“粗略”验证,能避免节点进行昂贵而无谓的数字签名认证操作。针对重复请求的DoS攻击,方法通过引入计数器的方法能有效剔除这类请求。
    在能耗方面,本发明采用XOR的异或网络编码方法,基站发送一个数据包,不同的节点能获得不同的数据包,从而总体上减少数据包的传送数量,从而降低了网络重编程的能耗。
    与现有的解决类似问题的发明相比,本发明本身的方法复杂度不高,易于操作和实现,适应无线传感器网络这种资源受限的环境。同时第一次实现了兼顾网络重编程的安全性和能耗。
    附图说明
    图1是本发明的流程示意图;
    图2是本发明的原理框图;
    图3是本发明的安全认证的包预处理过程;
    图4是本发明的Merkle Hash树建立过程。
    具体实施方式
    下面结合附图,对本发明作进一步详细说明。
    对于一个已经投入使用的无线传感器网络应用系统,为了进行无线代码更新,需要经历远程重启正运行的程序映像到代码更新模式——>代码更新——>远程重启到更新好的代码映像。如图1和图2所示。
    方案将参与网络重编程的无线传感器网络分成了三个角色:源节点或基站,无线传感器网络本身,传感器节点。源节点首先对待更新程序映像和运行在节点上的旧程序映像进行字节级比较获得待分发的程序映像增量,之后进行分发前的预处理。无线传感器网络本身负责代码分发,传感器节点负责代码分发的验证和装配,并将收到验证成功的数据包装配成程序映像增量,之后基于已经运行在其上的旧程序映像,重编译产生新的更新好的程序映像,并加载。本发明重点解决的是代码映像的实际分发,我们将该操作分成三步:代码映像预处理——>代码映像分发——>代码映像认证,以最大限度提高网络重编程的安全性,降低能耗。具体方案如下:
    步骤(1):源节点对待更新程序映像和运行在节点上的旧程序映像进行字节级比较获得待分发的程序映像增量;
    步骤(2):源节点对程序映像增量进行分发前的预处理,包括以下内容:
    (2.1),源节点将代码映像分成固定大小的页,每页进一步被分成固定大小的数据包;
    (2.2),源节点按页序对页内所有的数据包进行XOR的异或网络编码;
    为了减少节点传输和接收的数据量,本发明采用网络编码的方案。首先采用了邻居节点表,然后采用XOR的异或网络编码方法对待发送的数据包进行编码。
    节点首先对待发送的数据包进行编码,再发送编码后的数据包。假定节点的邻居数为 n,分别记为:P1,P2,…Pn,一个待分发的代码页被分成了t个固定大小的数据包,分别记为:                                                。节点引入一个邻居节点表来记录邻居节点的状态,每个邻居在表格中对应一条记录,该记录包含一个长度为t的位向量,其中每一位对应一个消息,如果该邻居没有相应的消息,该位置为1,否则置为0。不失一般性,我们记邻居节点Pi的位向量为:Pi(mi1,mi2,…,mit)   mij∈(0,1),i=1,2,…,n,j=1,2,…,t。最终每个节点维护一个表1所示的邻居节点表。初始状态该表为空,当接收到邻居节点的NACK请求后,他首先检查该表中是否已经有了对应的记录,如果没有则添加一条记录,如果有则更新相应的记录。
    表1  每个节点维护的邻居记录表

    基于上述邻居节点表,本发明采用XOR的异或网络编码方法。假设和为待分发的数据包,异或编码的总体思想是:节点一次发送数据包,这样有数据包的节点可以通过简单的异或操作,解码得到数据包,有数据包的节点,则可以通过简单的异或操作,解码得到。因此,发送一个数据包,不同的节点能获得不同的数据包,从而总体上减少数据包的传送数量。
    为了方面描述基于上述邻居节点表的最佳异或编码方法,首先给出以下定义
    定义1:编码方案k:指该编码方案中,参与异或编码的消息个数为k。比如编码方案1指该异或编码方案只选择了一个消息参与编码,编码方案2指该异或编码方案选择了二个消息参与编码,依此类推。编码方案只与选择参与编码的消息个数有关,与消息的顺序无关,因此对于有t个消息的情况,编码方案最多有t种。
    其它符号的含义如表2所示。
    表2 所用符号的含义

    基于上述定义和符号说明,可以将最优化编码方案的优化目标形式化为:
                                                  (1)
                                            (2)
                                                             (3)
    约束条件为:
                                                                     (4)
                                                              (5)
                              (6)
    ,这里                    (7)
     这里,       (8)
    在优化目标中,表达式(3)表示采用编码方案k编码组合s情况下,所有节点能成功解码数据包的个数;表达式(2)表示在编码方案k的所有编码组合中,所有节点能成功解码数据包的最大个数;表达式(1)表示在所有编码方案中,所有节点能成功解码数据包的最大个数。因此我们的优化目标可总结为:从所有编码方案的所有编码组合中,找出能成功解码出一个数据包的节点个数最多的方案。
    约束条件中,等式(4)是确保在编码方案k中,参与编码的消息包的个数为k;不等式(5)是确保如果一个消息包已经被所有节点成功接收,则不参与编码;不等式(6)指出节点能成功解码一个消息包的条件之一是该消息包已经被当前编码方案选中,而且是该节点目前所没有接收到的消息;等式(7)指出节点能成功解码一个消息包的另一个条件是被选中参与编码的消息包只有一个还没有被成功接受,否则根据异或编码理论节点就不能正确接受该消息;表达式(8)是确保任何节点最多能成功解码一个消息包,因为根据异或编码的原理,一个节点一次最多能成功解码一个数据包。
    可以证明上述优化问题为P问题,因此,最终获得最优解。
    (2.3), 源节点计算每个数据包的Hash值,该Hash值被嵌入到选定的数据包合适的位置;
    源节点从最后一个页面开始,通过高效的Hash函数计算页内每个数据包的Hash值并将其内嵌到前一页位置相对应的包中,不断重复此过程直到第一页,其工作过程如图3表示。对于第一页的Hash值,源节点处理方法是在这些Hash值基础上,建立一个Merkle Hash树,其建立过程如图4表示。源节点首先通过联合操作,将固定数量的Hash值联合成一个数据包,并计算该数据包的Hash值。然后,将刚计算出来的Hash值,两两联合成一个数据包,并计算Hash值。这个过程不断重复,直到最后只剩一个Hash值,将该Hash值嵌入到数字签名包。
    (2.4),源节点采用MSP弱认证机制,然后通过数字签名包来发起一次代码分发。
    为了防御基于数字签名的DoS攻击,基站拟在发送数字签名之前引入MSP(Message Special Puzzle)弱认证机制,以避免节点进行昂贵而无谓的数字签名认证操作。
    步骤(3):无线传感器网络进行代码分发;
    代码分发过程中,如果存在恶意节点,不断的重复向某个节点请求数据包,或不断的向其它节点分发伪造的数据包,则节点能量将很快耗尽,而不能工作。针对这种类型的攻击,本发明采用计数器的方法。
    首先在基础邻居表的基础上,采用了两个域SCRC分别表示向对应的邻居节点发送消息的个数和从对应邻居节点接收消息的个数,如果SCRC超过了特定预值,则将该节点标记为恶意节点,将其阻塞一段时间,在这段时间都不向该节点发送消息或接收消息。
    表3  扩展后的邻居表

    步骤(4):传感器节点进行代码分发的验证和装配,并将接收到且验证成功的数据包装配成程序映像增量;
    各传感器节点在收到数字签名后,首先通过简单的Hash操作进行数字签名认证之前的“粗略”验证,如果通过在进行进一步的数字签名认证。对于收到的数据包,则只需通过简单的Hash操作和Hash值比对进行数据包的一致性验证。
    步骤(5):传感器节点基于已经运行在其上的旧程序映像,重编译产生新的更新好的程序映像,并加载。
    本发明按照实施例进行了说明,在不脱离本原理的前提下,本方案还可以作出若干变形和改进。应当指出,凡采用等同替换或等效变换等方式所获得的技术方案,均落在本发明的保护范围内。

    关 键  词:
    基于 网络 编码 无线 传感器 网络安全 在线 编程 方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:基于网络编码的无线传感器网络安全在线重编程方法.pdf
    链接地址:https://www.zhuanlichaxun.net/p-6150728.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1