发布信息

一种基于散列消息鉴别码的网络系统及网络安全路由方法与流程

作者:admin      2022-09-02 17:32:56     665



电子通信装置的制造及其应用技术1.本发明属于网络安全技术领域,具体涉及一种基于散列消息鉴别码的网络系统及网络安全路由方法。背景技术:2.有线网络虽然可以支持较多的连接个数和较大的带宽,但是在复杂恶劣的环境下部署,维护成本较高,且覆盖范围有限。另一方面,传统的无线网络接入方式以网桥技术为主,对网络的可扩展性和节点个数存在限制,并且一个接入节点只能覆盖有限的物理范围。无线网状网(mesh)技术利用网络节点两两之间的无线连接构成网状拓扑,让同一子网下互不相连的节点能够通过路径中多跳节点的转发进行通信,具备自组织、自修复、易扩展等特点。在工业控制、城市公共网络、传感网骨干网络中,无线mesh技术已经具有广泛的应用部署。3.现有最新的无线mesh国际标准为ieee 802.11s。图1是ieee 802.11s标准规定的无线mesh网络拓扑示例图。其中,每个mesh节点(mp)通过无线连接构成网状网络,传统的wifi通讯设备(sta)通过其中部分接入节点(map)接入无线mesh网络,整个无线mesh中所有mp通过其中部分网关节点(meshportal)接入互联网。该标准默认采用混合无线网状网路由协议(hwmp),利用mesh节点的mac地址而非ip地址进行网络路由和转发。hwmp协议利用了专用按需距离矢量(aodv)算法,通过被动模式使相邻mesh节点间自动建立连接,通过主动模式利用路由数据帧进行路由发现,并将路由表分布式地保存到每个mesh节点的距离矢量信息中。4.无线mesh网络在传输介质以及分布式构建方面的特殊性,使得其相对于有线网络面临的安全威胁更加严重。虽然ieee 802.11s标准支持mesh节点间利用瞬态对等认证(sae)进行加密,但是该方法仅仅保障了相邻两个节点间的通信,不能有效防止针对hwmp的路由攻击,例如虫洞攻击、洪泛攻击、可变字段篡改等攻击。技术实现要素:5.针对现有技术中的缺陷,本发明提供了一种基于散列消息鉴别码的无线网状网安全路由系统及方法,利用源节点和目的节点之间的点对点密钥对数据帧中的不变字段进行hmac签名,防止源节点和目的节点之间的任何节点对不变字段进行篡改,实现不变字段的安全性检测;利用两跳节点之间的两跳广播密钥对数据帧中的可变字段进行hmac签名,防止任意两跳节点间的传输节点对可变字段进行篡改,实现可变字段的安全性检测。6.第一方面,本发明提供了一种基于散列消息鉴别码的网络系统,包括在同一网络中传输数据帧的若干节点,所述节点包括源节点、目的节点、以及位于源节点和目的节点之间的至少一个传输节点;7.所述源节点在原字段的基础上进行字段扩展,将扩展后的数据帧发送给下一跳的传输节点;所述数据帧为第一类数据帧或第二类数据帧;8.所述传输节点接收到数据帧后,通过对应的两跳广播密钥对数据帧中的可变字段进行hmac计算和验证,验证通过后更新路由表和数据帧,并将更新后的数据帧发送给下一跳的传输节点或目的节点;9.所述数据帧为第一类数据帧时,目的节点接收到数据帧后,通过对应的两跳广播密钥对数据帧中的可变字段进行hmac计算和验证,验证通过后更新路由表;10.所述数据帧为第二类数据帧时,目的节点接收到数据帧后,通过对应的两跳广播密钥对数据帧中的可变字段进行hmac计算和验证,通过与源节点共享的点对点密钥对数据帧中的不变字段进行hmac计算和验证,可变字段验证和不变字段验证均通过后更新路由表。11.优选地,所述数据帧包括原字段和扩展字段,所述原字段包括可变字段,所述扩展字段包括可变字段验证码和上一帧可变字段验证码。12.优选地,所述通过对应的两跳广播密钥对数据帧中的可变字段进行hmac计算和验证,具体为:13.通过对应的两跳广播密钥对数据帧中的可变字段进行hmac计算,得到计算后的可变字段验证码,将计算后的可变字段验证码与数据帧中的上一帧可变字段验证码进行匹配,匹配成功则验证通过,确定数据帧中的可变字段没有被篡改。14.优选地,所述原字段还包括不变字段,所述扩展字段还包括不变字段验证码。15.优选地,所述通过与源节点共享的点对点密钥对数据帧中的不变字段进行hmac计算和验证,具体为:16.通过与源节点共享的点对点密钥对数据帧中的不变字段进行hmac计算,得到计算后的不变字段验证码,将计算后的不变字段验证码与数据帧中的不变字段验证码进行匹配,匹配成功则验证通过,确定数据帧中的不变字段没有被篡改。17.优选地,所述扩展字段还包括顶级哈希值和当前哈希值。18.优选地,所述数据帧为第一类数据帧时,在更新路由表前,所述传输节点和目的节点还进行哈希验证;19.所述数据帧为第二类数据帧时,在更新路由表前,所述目的节点还进行哈希验证。20.优选地,所述哈希验证,具体为:21.传输节点或目的节点在接收到数据帧后,对当前哈希进行计算,将计算后的哈希与顶级哈希进行匹配,匹配成功则验证通过。22.优选地,所述第一类数据帧包括网关声明帧和根声明帧,第二类数据帧包括路径请求帧和路径回复帧。23.第二方面,本发明提供了一种基于散列消息鉴别码的网络安全路由方法,适用于第一方面所述的基于散列消息鉴别码的网络系统,包括以下步骤:24.源节点在原字段的基础上进行字段扩展,将扩展后的数据帧发送给下一跳的传输节点;所述数据帧为第一类数据帧或第二类数据帧;25.传输节点接收到数据帧后,通过对应的两跳广播密钥对数据帧中的可变字段进行hmac计算和验证,验证通过后更新数据帧和路由表,并将更新后的数据帧发送给下一跳的传输节点或目的节点;26.所述数据帧为第一类数据帧时,目的节点接收到数据帧后,通过对应的两跳广播密钥对数据帧中的可变字段进行hmac计算和验证,验证通过后更新路由表;所述数据帧为第二类数据帧时,目的节点接收到数据帧后,通过对应的两跳广播密钥对数据帧中的可变字段进行hmac计算和验证,通过与源节点共享的点对点密钥对数据帧中的不变字段进行hmac计算和验证,均验证通过后更新路由表。27.本发明的技术方案,利用源节点和目的节点之间的点对点密钥对数据帧中的不变字段进行hmac签名,防止源节点和目的节点之间的任何节点对不变字段进行篡改,实现不变字段的安全性检测;利用两跳节点之间的两跳广播密钥对数据帧中的可变字段进行hmac签名,防止任意两跳节点间的传输节点对可变字段进行篡改,实现可变字段的安全性检测。附图说明28.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。29.图1为背景技术中ieee 802.11s标准规定的无线mesh网络拓扑示例图;30.图2为实施例一中数据帧的数据流示意图一;31.图3为实施例一中数据帧的数据流示意图二;32.图4为实施例一中数据帧的帧结构示意图;33.图5为实施例二中基于散列消息鉴别码的网络安全路由方法的流程图;34.图6为实施例三中数据帧的数据流示意图;35.图7为实施例三中数据帧的帧结构示意图;36.图8为实施例四中基于散列消息鉴别码的网络安全路由方法的流程图。具体实施方式37.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。38.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。39.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。40.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。41.如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。[0042]散列消息鉴别码(hmac)是一种通过特别计算方式之后产生的消息认证码,使用散列函数(hash)对消息内容以及一个加密密钥进行散列计算。hmac既可以用来保证消息内容的完整性,又可以用来作为某个消息的身份验证,并且具备计算简单的特性,能够有效应用到无线mesh网络的路由消息验证中。[0043]本实施例的技术方案,是在兼容hwmp的情况下,基于散列消息鉴别码(hmac)的确保路由过程中数据帧不被破坏的技术方案。hwmp路由过程所需要的四种数据帧包括路径请求帧(preq)、路径回复帧(prep)、网关声明帧(gann)和根声明帧(rann)。本实施例的第一类数据帧包括网关声明帧和根声明帧,第二类数据帧包括路径请求帧和路径回复帧。[0044]本实施例在数据帧的原字段的基础上进行了字段扩展,因此扩展后的数据帧包括原字段和扩展字段,原字段包括可变字段和不变字段,数据帧在转发的过程中,对于每个节点,可变字段是不同的,是在变化的,不变字段则是至始不变的。如表一所示,对扩展字段中的每个扩展项进行了说明:[0045]表一[0046][0047]本实施例中,第一类数据帧(网关声明帧、根声明帧)和第二类数据帧(路径请求帧、路径回复帧)的主要区别在于,由于网关声明帧和根声明帧需要广播给所有节点,因此网关声明帧和根声明帧的扩展字段中没有不变字段验证码,而路径请求帧、路径回复帧的扩展字段中有不变字段验证码。后续的实施例一和实施例二是针对第二类数据帧的实施例,实施例三和实施例四是针对第一类数据帧的实施例。[0048]实施例一[0049]本实施例提供了一种基于散列消息鉴别码的网络系统,包括在mesh网络中传输数据帧的若干节点,所述节点包括源节点、目的节点、以及位于源节点和目的节点之间的至少一个传输节点;[0050]所述源节点在原字段的基础上进行字段扩展,将扩展后的数据帧发送给下一跳的传输节点;[0051]所述传输节点接收到数据帧后,通过对应的两跳广播密钥对数据帧中的可变字段进行hmac计算和验证,验证通过后更新路由表和数据帧,并将更新后的数据帧发送给下一跳的传输节点或目的节点;[0052]所述数据帧为第二类数据帧时,目的节点接收到数据帧后,通过对应的两跳广播密钥对数据帧中的可变字段进行hmac计算和验证,通过与源节点共享的点对点密钥对数据帧中的不变字段进行hmac计算和验证,可变字段验证和不变字段验证均通过后更新路由表。[0053]本实施例的数据帧为第二类数据帧,即路由数据帧和路径回复帧。路由数据帧和路径回复帧的数据帧结构以及处理流程完成相同,区别在于二者的传播方式和不变字段验证码的计算方式不同。路径请求帧为广播转发,路径回复帧为逐跳转发。这两种数据帧一同构成hwmp协议最基础的路径发现功能。[0054]图2展示了路径请求帧的数据流:s-a-b-d。当源节点s想发现到目的节点d的路由路径时,需要向其周围所有节点广播发送目的地址为节点d的mac地址的路径请求帧。每个路径请求帧包含了本次路径请求id,每个节点只会处理一次相同id的路径请求帧。传输节点a、b接收到该数据帧后,将该数据帧广播给自己相邻的所有节点,节点d收到目的地址为自己的路径请求帧后停止转发。[0055]本实施例在每个节点上设有点对点密钥和/或两跳密钥,所述点对点密钥即源节点和目的节点共享的密钥,所述两跳密钥即某节点的上一跳节点与某节点的下一跳节点之间共享的密钥(即中间间隔了一个节点的两非邻节点之间共享的密钥)。以四个节点(s、a、b、d)进行举例说明。源节点s和目的节点d具有相同的点对点密钥(后续简称sd'),节点s和节点b具有相同的两跳密钥(后续简称sb),节点a和节点d具有相同的两跳密钥(后续简称ad)。[0056]当源节点s需发送路径请求帧时,源节点s初始化数据帧并进行发送。源节点在原字段的基础上进行字段扩展,扩展后的数据帧如图4所示,该数据帧包括原字段和扩展字段,原字段包括可变字段和不变字段,扩展字段包括类型、长度、保留字段、前驱节点度量值、顶级哈希、当前哈希、不变字段验证码、上一帧可变字段验证码、上一帧发送节点mac地址和可变字段验证码。[0057]对于路由请求帧,可变字段包括前驱节点度量值、当前帧存活时间和当前跳数(最大帧存活时间=当前帧存活时间+当前跳数)。源节点s初始化数据帧时,通过两跳密钥sb对可变字段进行hmac计算,得到可变字段验证码,可变字段验证码为:ka||最大帧存活时间||顶级哈希||当前跳数||前驱节点度量值||当前哈希,此时的ka即为两跳密钥sb。[0058]对于路由请求帧,不变字段包括帧类型、帧长度、帧标志位、路径请求id、最大帧存活时间、目的节点数量、起始节点地址、起始节点序列号、目的节点地址和目的节点序列号。源节点s初始化数据帧时,通过点对点密钥sd'对不变字段进行hmac计算,得到不变字段验证码,不变字段验证码为:kax,帧类型||帧长度||帧标志位||路径请求的id||起始节点地址||起始节点序列号||最大帧存活时间||目的节点数量||目的节点地址||目的节点序列号,此时的kax即为点对点密钥sd'。因为s为源节点,所以初始化后的数据帧中,前驱节点度量值、上一帧可变字段验证码和上一帧发送节点mac地址均为0。[0059]源节点s将初始化后的数据帧发送给传输节点a,传输节点a判断本节点的mac地址是否为目的节点地址,判断为不是后,则更新路由表和数据帧(更新路由表时按住hwmp路由协议的要求进行更新),并对更新后的数据帧进行转发。因传输节点a既不是目的节点(没有点对点密钥),也不是s的两跳节点(没有对应的两跳密钥),因此该节点不进行不变字段或可变字段验证。[0060]传输节点b接收到传输节点a的数据帧后,传输节点b判断本节点的mac地址是否为目的节点地址,判断为不是后,则对数据帧进行验证、修改和转发。因节点b是节点s的两跳节点(节点b与节点s有共享的两跳密钥sb),则需进行可变字段验证。[0061]传输节点b接收到数据帧后,通过对应的两跳广播密钥sb对数据帧中的可变字段进行hmac计算,得到计算后的可变字段验证码,将计算后的可变字段验证码与数据帧中的上一帧可变字段验证码进行匹配,匹配成功则验证通过,确定数据帧中的可变字段没有被篡改(上一帧可变字段验证码是由节点s计算得到,该验证即节点s计算得到的可变字段验证码与节点b计算得到的可变字段验证码进行匹配)。[0062]传输节点b对可变字段验证通过后,更新路由表和数据帧。更新数据帧时(对于数据帧中的不变字段进行保留),对于数据帧中的可变字段,通过计算得到前驱节点度量值;将当前帧存活时间减一,作为新的当前帧存活时间;将当前跳数加一,作为新的当前跳数。将接收到的数据帧中的可变字段验证码(即节点a计算得到的可变字段验证码)作为新的上一帧可变字段验证码,将当前计算得到的可变字段验证码(即节点b计算得到的可变字段验证码)作为新的可变字段验证码。传输节点b在更新数据帧后,将更新后的数字帧进行转发。[0063]目的节点d接收到数据帧后,传输节点a判断本节点的mac地址是否为目的节点地址,判断为是后,则对数据帧进行验证,验证通过则更新路由表。因节点d为目的节点,所以不再修改转发数据帧。因节点d是节点a的两跳节点(节点d与节点a有相共享的两跳密钥),则需进行可变字段验证;因节点d是节点s的目的节点(节点d与节点s有共享的点对点密钥),则需进行不变字段验证。[0064]目的节点d验证可变字段的方式与传输节点b验证可变字段的方式类似。目的节点d接收到数据帧后,通过对应的两跳广播密钥ad对数据帧中的可变字段进行hmac计算,得到计算后的可变字段验证码,将计算后的可变字段验证码与数据帧中的上一帧可变字段验证码进行匹配,匹配成功则验证通过,确定数据帧中的可变字段没有被篡改(上一帧可变字段验证码是由节点a计算得到,该验证即节点a计算得到的可变字段验证码与节点d计算得到的可变字段验证码进行匹配)。[0065]目的节点d接收到数据帧后,通过与源节点共享的点对点密钥sd'对数据帧中的不变字段进行hmac计算,得到计算后的不变字段验证码,将计算后的不变字段验证码与数据帧中的不变字段验证码进行匹配,匹配成功则验证通过,确定数据帧中的不变字段没有被篡改(节点s和节点d具有共享的点对点密钥sd',该验证即节点s计算得到的不变字段验证码与节点d计算得到的不变字段验证码进行匹配)。[0066]本实施例中,源节点和目的节点之间的传输节点仅进行可变字段验证,目的节点不仅进行可变字段验证,还进行不变字段的验证和哈希验证。所述哈希验证即目的节点在接收到数据帧后,对当前哈希进行计算,将计算后的哈希与顶级哈希进行匹配,匹配成功则验证通过,确定数字帧中的哈希没有被篡改。[0067]对于路由请求帧,目的节点d在可变字段验证、不变字段验证和哈希验证均通过后,确定可变字段、不变字段、哈希均没有被篡改后,则更新路由表,完成了路由请求帧的传输。图3中,实线部分展示了路径请求帧的数据流,虚线部分展示了对应的路径回复帧的数据流。对于路径请求帧,s为源节点,d为目的节点,源节点s经过传输节点a、b将路径请求帧传输给目的节点d,目的节点d在接收到路径请求帧后,会反馈一个路径回复帧;对于路径回复帧,d为源节点,s为目的节点,源节点d经过传输节点b、a将路径回复帧传输给目的节点s。由于节点d至节点s路径上的节点已经转发过路径请求帧,路径上的这些节点都在路由表中更新了这两个节点的位置,因此路径上的的这些节点可以直接将路径回复帧转发到路径中的下一跳节点。[0068]对于由源节点d发送至目的节点s的路径回复帧,其传输验证方式与上述的路径请求帧类似。源节点d进行数据帧的初始化和发送,传输节点b将更新后的数据帧发送给传输节点a,传输节点a进行可变字段验证后将更新的数据帧发送给目的节点s,目的节点s进行可变字段验验证、不变字段验证和哈希验证,在确认可变字段、不变字段、哈希均没有被篡改后,则更新路由表,完成了路由回复帧的传输。本实施例在对数据帧的验证过程中,如果某次验证没通过,则丢弃数据帧。[0069]综上所述,本实施例提供了针对路由请求帧或路由回复帧中的可变字段和不变字段的两种安全性检测方式,这两种检测方式均是基于散列消息鉴别码的检测方式,可以有效防止中间的传输节点被攻击,增加了无线mesh网络的路由安全性能。[0070]本实施例在节点s、d之间部署任意多个传输节点,这些传输节点节点均有可能对其转发的数据帧不变字段进行恶意篡改。例如,对数据帧的id字段进行修改并且多次重发,从而实现重放攻击。在d节点接收到数据帧后,会利用点对点密钥对不变字段进行hmac计算。由于中间路径上的恶意节点对不变字段进行了修改,d节点会发现计算的不变字段验证码与接收到的数据帧不变字段验证码不一致,进而丢弃该数据帧。而中间的传输节点无法获取源节点和目的节点之间的点对点密钥,其无法对不变字段验证码进行修改。因此,可以验证本实施例能够有效防止任意数量传输节点对不变字段进行篡改。[0071]本实施例在节点s、d之间部署任意多个传输节点,这些传输节点节点均有可能对其转发的数据帧可变字段进行恶意篡改。例如,对数据帧的跳数和哈希值进行修改,从而进行路由误导攻击。在d节点接收到数据帧后,会利用两跳广播密钥对可变字段进行hmac计算。由于中间的传输节点对可变字段进行了修改,d节点会发现计算的可变字段验证码与接收到的数据帧中的上一帧可变字段验证码不一致,进而丢弃该数据帧。而中间的传输节点是s节点的一跳邻居,无法获得其两跳广播密钥,无法篡改可变字段验证码。因此,可以验证本实施例能够防止任意两跳节点间的传输节点对可变字段进行篡改。[0072]对于可变字段安全性检测,本实施例利用中间间隔了一个节点的两非邻节点之间的两跳广播密钥对数据帧的可变字段进行hmac签名,可以保证任意两跳节点间的数据帧中的可变字段不被中间的传输节点篡改。对于不变字段安全性检测,本实施例利用源节点和目的节点之间的点对点密钥对数据帧中的不变字段进行hmac签名,可以保证不变字段不被源节点和目的节点之间的任何节点篡改。本实施例不仅对数据帧中的可变字段和不变字段进行安全性检测,还对数据帧中的哈希进行验证,从而进一步确保数据帧中的相关信息没有被篡改,确保数据帧在网络传输过程中的安全性。[0073]实施例二[0074]本实施例提供了一种基于散列消息鉴别码的网络安全路由方法,适用于实施例一所述的基于散列消息鉴别码的网络系统,如图5所示,包括以下步骤:[0075]s1,源节点在原字段的基础上进行字段扩展,将扩展后的数据帧发送给下一跳的传输节点;[0076]s2,传输节点接收到数据帧后,通过对应的两跳广播密钥对数据帧中的可变字段进行hmac计算和验证,验证通过后更新数据帧和路由表,并将更新后的数据帧发送给下一跳的传输节点或目的节点;[0077]s3,目的节点接收到数据帧后,通过对应的两跳广播密钥对数据帧中的可变字段进行hmac计算和验证,通过与源节点共享的点对点密钥对数据帧中的不变字段进行hmac计算和验证,均验证通过后更新路由表。[0078]本实施例的数据帧为第二类数据帧,即路由数据帧和路径回复帧。路由数据帧和路径回复帧的数据帧结构以及处理流程完成相同,区别在于二者的传播方式和不变字段验证码的计算方法不同。路径请求帧为广播转发,路径回复帧为逐跳转发。这两种数据帧一同构成hwmp协议最基础的路径发现功能。[0079]本实施例的方法的内容与实施例一的内容类似,具体内容详见实施一,在此不再赘述。[0080]实施例三[0081]本实施例提供了一种基于散列消息鉴别码的网络系统,包括在mesh网络中传输数据帧的若干节点,所述节点包括源节点、目的节点、以及位于源节点和目的节点之间的至少一个传输节点;[0082]所述源节点在原字段的基础上进行字段扩展,将扩展后的数据帧发送给下一跳的传输节点;[0083]所述传输节点接收到数据帧后,通过对应的两跳广播密钥对数据帧中的可变字段进行hmac计算和验证,验证通过后更新路由表和数据帧,并将更新后的数据帧发送给下一跳的传输节点或目的节点;[0084]目的节点接收到数据帧后,通过对应的两跳广播密钥对数据帧中的可变字段进行hmac计算和验证,验证通过后更新路由表;[0085]本实施例的数据帧为第一类数据帧,即网关声明帧和根声明帧。网关声明帧和根声明帧的数据帧结构以及处理流程完成相同,区别在于网关声明帧的标志字段第一个比特为1,而根声明帧中对应位置为0,二者分别用于向网内的所有节点通知网关节点信息和根节点信息。[0086]如图6所示,展示了网关声明帧和根声明帧的数据流。当源节点s想通知所有节点自己为网关节点或根节点的信息时,需要向周围所有节点广播发送源节点为s、目的地址为广播地址(ff:ff:ff:ff:ff:ff)的网关声明帧或根声明帧。每个节点第一次接收到该数据帧后,再将数据帧广播给周围所有邻居节点,直到帧生存时间耗尽或所有节点都接收到此数据帧。[0087]本实施例中的传输节点和目的节点的主要区别在于,目的节点不再修改数据帧,不再转发数据帧,因帧存活时间耗尽,目的节点为最终节点,因此某种意义上,每个传输节点也可以说是目的节点。[0088]本实施例中的传输节点和目的节点不仅进行可变字段验证,还进行哈希验证。所述哈希验证,即传输节点或目的节点在接收到数据帧后,对当前哈希进行计算,将计算后的哈希与顶级哈希进行匹配,匹配成功则验证通过,确定数字帧中的哈希没有被篡改。本实施例的可变字段验证方式和哈希验证方式,与实施例一类似。因网关声明帧和根声明帧中没有不变字段,所以这两种数据帧进行可变字段和哈希验证,但无需进行不变字段验证。[0089]本实施例以图6中s-b-d的数据流来进行举例说明。本实施例在每个节点上设有两跳密钥,所述两跳密钥即某节点的上一跳节点与某节点的下一跳节点之间共享的密钥(即中间间隔了一个节点的两非邻节点之间共享的密钥)。源节点s和目的节点d共享的两跳密钥(后续简称sd)。[0090]当源节点s需发送网关声明帧/根声明帧时,源节点s初始化数据帧并进行发送。源节点在原字段的基础上进行字段扩展,扩展后的数据帧如图7所示,该数据帧包括原字段和扩展字段,原字段包括可变字段,扩展字段包括类型、长度、保留字段、前驱节点度量值、顶级哈希、当前哈希、上一帧可变字段验证码、上一帧发送节点mac地址和可变字段验证码。[0091]可变字段包括前驱节点度量值、当前帧存活时间和当前跳数(最大帧存活时间=当前帧存活时间+当前跳数)。源节点s初始化数据帧时,通过两跳密钥sd对可变字段进行hmac计算,得到可变字段验证码,可变字段验证码为:ka||最大帧存活时间||顶级哈希||当前跳数||前驱节点度量值||当前哈希,此时的ka即为两跳密钥sd。[0092]源节点s将初始化后的数据帧发送给传输节点b,传输节点b判断本节点是否为第一次接收到该数据帧,如果是,则更新路由表和数据帧(更新路由表时按住hwmp路由协议的要求进行更新),并对更新后的数据帧进行转发(即广播给自己的所有邻居节点),如果不是则不再接收该数据帧。因传输节点b不是s的两跳节点(没有对应的两跳密钥),因此该节点不进行可变字段验证。[0093]传输节点b更新数据帧时,对于数据帧中的可变字段,通过计算得到前驱节点度量值;将当前帧存活时间减一,作为新的当前帧存活时间;将当前跳数加一,作为新的当前跳数。将接收到的数据帧中的可变字段验证码(即节点s计算得到的可变字段验证码)作为新的上一帧可变字段验证码,将当前计算得到的可变字段验证码(即节点b计算得到的可变字段验证码)作为新的可变字段验证码。传输节点b在更新数据帧后,将更新后的数字帧进行转发。[0094]目的节点d接收到数据帧后,通过对应的两跳广播密钥sd对数据帧中的可变字段进行hmac计算,得到计算后的可变字段验证码,将计算后的可变字段验证码与数据帧中的上一帧可变字段验证码进行匹配,匹配成功则验证通过,确定数据帧中的可变字段没有被篡改(上一帧可变字段验证码是由节点s计算得到,该验证即节点s计算得到的可变字段验证码与节点d计算得到的可变字段验证码进行匹配)。目的节点d对可变字段验证通过后,则更新路由表。[0095]综上所述,本实施例中提供了针对网关声明帧或根声明帧中的可变字段的安全性检测方式,该检测方式是基于散列消息鉴别码的检测方式,可以有效防止中间的传输节点被攻击,增加了无线mesh网络的路由安全性能。[0096]本实施例在节点s、d之间部署任意多个传输节点,这些传输节点节点均有可能对其转发的数据帧可变字段进行恶意篡改。例如,对数据帧的跳数和哈希值进行修改,从而进行路由误导攻击。在d节点接收到数据帧后,会利用两跳广播密钥计算对可变字段进行hmac计算。由于中间的传输节点对可变字段进行了修改,d节点会发现计算的可变字段验证码与接收到的数据帧中的上一帧可变字段验证码不一致,进而丢弃该数据帧。而中间的传输节点是s节点的一跳邻居,无法获得其两跳广播密钥,无法篡改可变字段验证码。因此,可以验证本实施例能够防止任意两跳节点间的传输节点对可变字段进行篡改。[0097]对于可变字段安全性检测,本实施例利用中间间隔了一个节点的两非邻节点之间的两跳广播密钥对数据帧的可变字段进行hmac签名,可以保证任意两跳节点间的数据帧中的可变字段不被传输节点篡改。本实施例不仅对数据帧中的可变字段进行安全性检测,还对数据帧中的哈希进行验证,从而进一步确保数据帧中的相关信息没有被篡改,确保数据帧在网络传输过程中的安全性。[0098]实施例四[0099]本实施例提供了一种基于散列消息鉴别码的网络安全路由方法,适用于实施例一所述的基于散列消息鉴别码的网络系统,如图8所示,包括以下步骤:[0100]s1,源节点在原字段的基础上进行字段扩展,将扩展后的数据帧发送给下一跳的传输节点;[0101]s2,传输节点接收到数据帧后,通过对应的两跳广播密钥对数据帧中的可变字段进行hmac计算和验证,验证通过后更新数据帧和路由表,并将更新后的数据帧发送给下一跳的传输节点或目的节点;[0102]s3,目的节点接收到数据帧后,通过对应的两跳广播密钥对数据帧中的可变字段进行hmac计算和验证,验证通过后更新路由表。[0103]本实施例的数据帧为第一类数据帧,即网关声明帧和根声明帧。网关声明帧和根声明帧的数据帧结构以及处理流程完成相同,区别在于网关声明帧的标志字段第一个比特为1,而根声明帧中对应位置为0,二者分别用于向网内的所有节点通知网关节点信息和根节点信息。[0104]本实施例的方法的内容与实施例三的内容类似,具体内容详见实施三,在此不再赘述。[0105]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元或步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。[0106]在本技术所提供的实施例中,应该理解到,所述步骤的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个步骤可结合为一个步骤,一个步骤可拆分为多个步骤,或一些特征可以忽略等。[0107]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部