一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

秘钥更新方法、网络设备、系统与存储介质与流程

2021-11-20 04:45:00 来源:中国专利 TAG:


1.本技术涉及通信技术领域,特别涉及一种秘钥更新方法、网络设备、系统与存储介质。


背景技术:

2.蓝牙作为面向低功率、低功耗设备的无线多跳互联技术,与wi

fi技术、zigbee技术等一起作为物联网(internet of things,iot)的组网方式,进入了智能家居的应用环境。蓝牙mesh组网方式也逐渐应用到iot领域。
3.在使用蓝牙mesh组网技术构建的无线网络(以下简称蓝牙mesh网络)中,每个mesh节点都存储有网络秘钥(netkey),当mesh节点之间进行通信时,通过netkey对信息进行加密后,再进行信息交互。为了防止垃圾桶攻击(trash

can)攻击,每当蓝牙mesh网络中删除了一个mesh节点,都需要在蓝牙mesh网络中全网更新netkey。
4.但是,若mesh节点因故错过秘钥更新过程,那么,该mesh节点就无法获取到最新的netkey,导致该mesh节点无法与该蓝牙mesh网络中的其他mesh节点通信。


技术实现要素:

5.本技术提供了一种秘钥更新方法、网络设备、系统与存储介质,用于为错过秘钥更新过程的网络节点提供最新的秘钥。
6.第一方面,本技术提供了一种秘钥更新方法,应用于蓝牙mesh网络,所述蓝牙mesh网络包括至少两个网络节点,配置节点为所述蓝牙mesh网络中的一个网络节点,所述配置节点用于配置所述蓝牙mesh网络的网络秘钥,该方法包括:所述配置节点从所述蓝牙mesh网络的网络节点中确定第一网络节点,所述第一网络节点本地维护的网络秘钥与当前蓝牙mesh网络的第一网络秘钥不一致,从而,所述配置节点利用所述第一网络节点的设备秘钥加密所述第一网络秘钥,得到第一密文,进而,所述配置节点发送第一消息(也即后续具体实施方式中的消息1),以使得所述第一网络节点获取所述第一网络秘钥,所述第一消息携带所述第一密文。
7.换言之,当第一网络节点错过秘钥更新过程时,第一网络节点本地维护的网络秘钥与第一网络秘钥不一致,此时,配置节点向其发送第一消息以使其获取到第一网络秘钥,第一消息中携带有配置节点利用第一网络节点的设备秘钥对第一网络秘钥进行加密得到的第一密文,使得整个蓝牙mesh网络中只有配置节点与第一网络节点可以解密该第一消息,保证了通信安全。
8.通过本实施例提供的方案,为错过秘钥更新过程的第一网络节点提供了恢复网络秘钥的方法,不需要用户重新手动将该第一网络节点加入mesh网络,提高了网络秘钥恢复的效率。
9.本技术实施例中,蓝牙mesh网络中可以包括长供电节点和低功耗节点(low power node,lpn)节点。其中,长供电节点一般无休眠状态;而lpn节点则存在休眠状态与唤醒状
态,以降低lpn节点的功耗。或者,长供电节点也可以理解为蓝牙mesh网络中除lpn节点之外的其他网络节点。
10.一方面,lpn节点可以在由休眠状态切换为唤醒状态后,基于自身情况(后续第二方面所示方法详述,这里不展开说明),向配置节点发送第二消息,以主动请求网络秘钥的更新和同步。
11.在一种可能的实施例中,所述配置节点从所述蓝牙mesh网络的网络节点中确定第一网络节点,包括:所述配置节点接收第二消息(也即后续具体实施方式中的消息2),所述第二消息用于请求同步网络秘钥;当所述第二消息携带的请求方标识所指示的网络节点不是已删除节点时,所述配置节点将所述第二消息携带的请求方标识所指示的网络节点确定为所述第一网络节点。换言之,蓝牙mesh网络中的任意一个网络节点都可以主动向配置节点请求同步网络秘钥,相应地,配置节点将其作为第一网络节点,向其发送第一消息,以使其获取到当前蓝牙mesh网络的第一网络秘钥,实现网络秘钥的同步。
12.另一方面,长供电节点不存在休眠状态,那么,对于配置节点记录的秘钥更新失败的长供电节点,则可以由配置节点在秘钥更新过程结束后,主动对其进行秘钥恢复。
13.在一种可能的实施例中,所述配置节点从所述蓝牙mesh网络的网络节点中确定第一网络节点,包括:所述配置节点将更新失败列表中的每个长供电节点,分别确定为所述第一网络节点;其中,所述更新失败列表用于记录所述蓝牙mesh网络中秘钥更新失败且不是已删除节点的所有网络节点;所述长供电节点为所述蓝牙mesh网络中除低功耗节点之外的其他网络节点。换言之,配置节点可以主动对更新失败列表中所有长供电节点作秘钥恢复处理,也即,配置节点向更新失败列表中的所有长供电节点(此时作为第一网络节点),分别发送第一消息。
14.此外,配置节点可以向多个第一网络节点分别发送第一消息,配置节点向不同第一网络节点发送的第一消息不同。这是由于任意一个第一网络节点具备唯一的设备秘钥,也即,多个第一网络节点的设备秘钥不同。那么,利用不同的设备秘钥加密第一网络秘钥得到的第一密文也不同,换言之,不同第一网络节点的第一消息中携带的第一密文不同,则配置节点向不同第一网络节点发送的第一消息不同。
15.在一种可能的设计中,本技术实施例所提供的秘钥方法可以应用于该秘钥更新过程之后,与该秘钥更新过程配合执行。例如,当蓝牙mesh网络中有新的网络节点加入或有网络节点退出时,可以启动该秘钥更新过程;而针对错过该秘钥更新过程的网络节点,则可以将其作为第一网络节点,由配置节点执行前述秘钥更新方法,以使得第一网络节点获取到第一网络秘钥。如此,能够为错过秘钥更新的网络节点提供恢复秘钥的方法,不需要用户重新手动将该第一网络节点加入mesh网络,提高了网络秘钥恢复的效率。
16.进一步的,配置节点还可以在秘钥更新过程结束后,维护更新失败列表。具体而言,该方法还包括;确定没有接收到第一通知对应的网络节点为更新失败节点,得到更新失败列表,所述第一通知用于通知配置节点,该网络节点已成功接收到第一网络秘钥。
17.本技术实施例中,所述配置节点为蓝牙mesh网络中的mesh网关;或者,所述配置节点为其他长供电节点。
18.本技术实施例中,所述第一消息为广播帧,所述第一消息中携带所述第一网络节点的标识。具体而言,第一消息可以为配置广播帧,也即配置beacon。示例性的,第一网络节
点的标识可以为第一网络节点的媒体接入控制(media access control,mac)地址。
19.本技术的一个实施例中,前述第二消息,也即后续具体实施方式中的消息2,也可以为配置广播帧(配置beacon),且其中携带配置节点的标识。示例性的,配置节点的标识可以为配置节点的mac地址。
20.第二方面,本技术提供一种秘钥更新方法,应用于蓝牙mesh网络,所述蓝牙mesh网络包括至少两个网络节点,配置节点为所述蓝牙mesh网络中的一个网络节点,所述配置节点用于配置所述蓝牙mesh网络的网络秘钥,第一网络节点为除所述配置节点之外的任意一个网络节点,所述方法包括:所述第一网络节点向所述配置节点发送第二消息,所述第二消息用于请求同步网络秘钥;所述配置节点接收到所述第二消息后,向所述第一网络节点发送第一消息,所述第一网络节点接收来自于所述配置节点的所述第一消息,所述第一消息携带第一密文,所述第一密文为利用所述第一网络节点的设备秘钥加密所述蓝牙mesh网络的第一网络秘钥得到的。所述第一网络节点本地维护的网络秘钥与所述第一网络秘钥不一致;所述第一网络节点利用所述第一网络节点的设备秘钥解密所述第一密文,得到所述第一网络秘钥;所述第一网络节点将本地维护的网络秘钥更新为所述第一网络秘钥。
21.通过本实施例提供的方案,第一网络节点可以主动向配置节点请求同步网络秘钥,并利用第一网络节点的设备秘钥,对来自于配置节点的第一消息中携带的第一密文进行解密,即可得到当前蓝牙mesh网络的第一网络秘钥,实现秘钥同步。在该过程中,第一网络节点的设备秘钥只有配置节点与第一网络节点可知,有利于第一消息在消息传递过程中的安全性,且通过该方法,为错过秘钥更新过程的第一网络节点提供了恢复网络秘钥的方法,不需要用户重新手动将该第一网络节点加入mesh网络,提高了网络秘钥恢复的效率。
22.在一种可能的实施例中,所述第一网络节点在完成前述秘钥更新过程后,还可以向配置节点发送第三消息,所述第三消息用于指示所述第一网络节点已成功同步所述第一网络秘钥。
23.在一种可能的实施例中,所述第一网络节点在完成前述秘钥更新过程后,所述第一网络节点还可以利用所述第一网络秘钥,更新全网加密索引(iv index)、更新应用秘钥(app key)或者重置本地序列号(segnum)。
24.在一种可能的实施例中,所述第一网络节点可以在唤醒后多次建立友元失败时,向所述配置节点发送第二消息。
25.具体而言,当所述第一网络节点由休眠状态切换为唤醒状态,所述第一网络节点向第二网络节点发送第四消息;其中,所述第二网络节点与所述第一网络节点已建立友元关系(在该实施例中,第二网络节点为第一网络节点的友元节点),所述第二网络节点用于在所述第一网络节点处于休眠状态期间,为所述第一网络节点暂存消息;所述第四消息用于请求获取所述第二网络节点为所述第一网络节点暂存的消息。示例性的,第四消息可以为friend poll消息。
26.若在预设的第一时长内一直未收到来自于第二网络节点的反馈消息,则第一网络节点可以间隔性(例如,周期性)向第二网络节点发送第四消息,直至接收到来自于第二网络节点的反馈,或者,第四消息的发送次数达到预设的第一阈值。
27.那么,当所述第四消息的发送次数达到预设的第一阈值,且一直未接收到来自于所述第二网络节点的反馈消息时,所述第一网络节点广播第五消息,所述第五消息用于请
求建立友元关系。示例性的,第五消息可以为friend request消息。
28.当所述第五消息的发送次数达到预设的第二阈值,且一直未接收到来自于其他网络节点的反馈消息时,所述第一网络节点向所述配置节点发送所述第二消息(也即消息2)。
29.第三方面,本技术提供一种网络设备,包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述计算机执行指令,使得所述网络设备执行如第一方面或第二方面中任一种实施例所述的方法。
30.第四方面,本技术提供一种网络系统,包括:至少两个网络节点,其中,配置节点为所述蓝牙mesh网络中的一个网络节点,所述配置节点用于配置所述蓝牙mesh网络的网络秘钥,以及,用于执行如第一方面任意一种实施例所述的方法;除所述配置节点之外的其他任意一个所述网络节点,则用于执行如第二方面任意一种实施例所述的方法。
31.第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如第一方面或第二方面所述的方法。
32.第五方面,本技术提供一种计算机程序,当所述计算机程序被计算机执行时,用于执行第一方面或第二方面所述的方法。
33.在一种可能的设计中,第五方面中的程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。
34.综上,本技术实施例所提供的秘钥更新方法、网络设备、系统与存储介质,在蓝牙mesh网络的各个节点中,利用第一网络节点的设备秘钥加密当前蓝牙mesh网络的第一网络秘钥,其中,第一网络节点本地维护的网络秘钥与当前蓝牙mesh网络的第一网络秘钥不一致,从而,配置节点向其发送加密第一网络秘钥得到的第一密文,使得第一网络节点可以同步第一网络秘钥,能够为错过秘钥更新过程的第一网络节点提供同步最新网络秘钥的方法,并且,整个蓝牙mesh网络中只有配置节点与第一网络节点可以解密该第一消息,保证秘钥更新过程的通信安全。
附图说明
35.图1为本技术提供的一种蓝牙mesh网络的架构示意图;
36.图2为本技术实施例提供的一种蓝牙mesh网络应用于智能家居应用场景的示意图;
37.图3为现有技术中一种秘钥更新方法的消息交互示意图;
38.图4为本技术提供的一种秘钥更新方法的消息交互示意图;
39.图5为本技术提供的一种秘钥恢复方法的消息交互示意图;
40.图6为本技术提供的另一种秘钥恢复方法的消息交互示意图;
41.图7为本技术提供的另一种秘钥恢复方法的消息交互示意图;
42.图8为本技术提供的另一种秘钥恢复方法的消息交互示意图;
43.图9为本技术提供的另一种秘钥恢复方法的消息交互示意图。
具体实施方式
44.以下,结合附图对本实施例的实施方式进行详细描述。
45.本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a

b,a

c,b

c,或a

b

c,其中a,b,c可以是单个,也可以是多个。
46.本技术实施例可应用于任意的蓝牙mesh网络。
47.其中,蓝牙mesh网络是一种多对多网络(many to many)。在蓝牙mesh网络中,可以包括多个网络节点,网络节点也即蓝牙mesh网络的节点,网络节点又可以简称为:节点、mesh节点、设备节点、mesh设备等,本技术实施例对其命名无特别限制。在蓝牙mesh网络中,每个网络节点都可以和其他网络节点自由通讯,中继(relay)节点可以对接收到的消息(message)进行中继转发,如此,在蓝牙mesh网络中,消息可以经一个或多个mesh节点的中继转发到达接收端,这也大大扩展了消息的传输范围和mesh网络的覆盖范围。
48.示例性的,图1示出了本技术实施例提供的一种蓝牙mesh网络的示意图。图1所示的蓝牙mesh网络100中,包括多个网络节点,其中包括网关节点(或可称为mesh网关、mesh网关节点等),mesh网关用于实现蓝牙mesh网络与其他网络的通信,例如,通过mesh网关可以实现蓝牙mesh网络与无线保真(wireless

fidelity,wifi)网络、zigbee(紫峰协议)网络等网络的通信,后续结合图1具体说明。
49.在一个蓝牙mesh网络100中可以包括一个mesh网关,除此之外,蓝牙mesh网络中还可以包括其他的mesh节点。如图1所示,蓝牙mesh网络100中包括:mesh网关110与多个mesh节点:mesh节点111~mesh节点117。
50.在蓝牙mesh网络中,其他mesh节点可以直接与mesh网关110相连接,也可以通过其他的一个或多个mesh节点间接与mesh网关110连接。如图1所示,mesh节点111直接连接于mesh网关110,mesh节点112和mesh节点113通过mesh节点114连接于mesh网关110,mesh节点115和mesh节点116通过mesh节点117连接于mesh网关110。
51.应当理解,图1所示的蓝牙mesh网络中所包含的mesh节点的数量和连接关系仅仅是一种举例,本技术实施例并不限制于此。例如,蓝牙mesh网络还以包括更多或更少的mesh节点,又例如,mesh节点111~mesh节点117中的一个或多个之后还可以连接更多的mesh节点。
52.按照mesh节点是否存在休眠状态,可以对mesh节点进行划分。具体而言,可以将蓝牙mesh网络100中的mesh节点,划分为长供电节点与低功耗节点(low power node,lpn)。其中,长供电节点一般无休眠状态;而lpn节点则存在休眠状态与唤醒状态,以降低lpn节点的功耗。
53.示例性的一种实施例中,直接连接于电源的mesh节点可以为长供电节点,而通过电池或其他移动电源(或设备)供电的mesh节点可以为lpn节点。例如,长供电节点可以为连接于电源的电视、电脑等电子设备,这些长供电节点可以通过蓝牙模块与其他mesh节点通信;而lpn节点则可以为具备蓝牙功能的手机、蓝牙耳机、蓝牙音箱等电子设备,这些lpn节点一般不会长时间持续与电源连接,可以通过电池等供电,并与其他mesh节点通信。
54.在蓝牙mesh网络中,mesh网关为长供电节点。除mesh网关之外的其他mesh节点中,
包括长供电节点和lpn节点,lpn节点可以直接连接于mesh网关,或者通过一个或多个其他mesh节点(长供电节点)间接与mesh网关连接。
55.示例性的,在图1所示的蓝牙mesh网络100中,mesh网关110为一种长供电节点。除此之外,mesh节点114和mesh节点117可以为长供电节点,其他节点,如mesh节点111~mesh节点113、mesh节点115~mesh节点116可以为lpn节点。其中,lpn节点(例如mesh节点111)可以直接连接至mesh网关110;或者,lpn节点(例如mesh节点112~mesh节点113、mesh节点115~mesh节点116)则可以通过长供电节点连接至mesh网关110,此时该长供电节点作为中继节点或者友元节点(friend node)。
56.按照功能角色对mesh节点进行划分时,蓝牙mesh网络可以包括如下几种:mesh网关节点(或称为:蓝牙mesh网关)、蓝牙中继节点(mesh relay node)、代理节点(proxy node)、友元节点(friend node)和蓝牙lpn节点。
57.其中,mesh网关用于连接蓝牙mesh网络与其他网络,例如后续图1所示场景中,通过mesh网关可以连接蓝牙mesh网络与wifi路由器,进而连接到其他网络,后续详述。
58.除此之外,mesh网关还可以作为入网管理器(provisioner)和/或配置客户端(configuration client)。其中,入网管理器负责全蓝牙mesh网络中mesh节点的接入,配置客户端负责全网配置,具体可以包括但不限于对netkey的配置。
59.需要说明的是,实际场景中,mesh网关一般作为入网管理器与配置客户端,但在实际场景中,本技术实施例对于配置客户端、入网管理器是否为mesh网关无特别限定。
60.具体而言,配置客户端与入网管理器可以通过一个或多个长供电节点实现。为便于说明,后续将承担配置客户端所述的负责全网配置功能的mesh节点称作:配置节点。例如,在图1所示的蓝牙mesh网络100中,mesh网关110(一个长供电节点)可以作为配置客户端和入网管理器,承担全网(蓝牙mesh网络)netkey的配置功能以及全网的入网接入管理功能,或者,将mesh节点114(一个长供电节点)作为配置客户端,承担全网netkey的配置功能,mesh节点117(另一个长供电节点)可以作为入网管理器,承担全网的入网接入管理功能。
61.蓝牙中继节点(mesh relay node)一般为长供电节点,负责网络消息的转发。例如,在图1所示的蓝牙mesh网络100中,mesh节点114可作为蓝牙中继节点,可用于转发mesh网关110与mesh节点112之间的网络消息,以及,还可以用于转发mesh网关110与mesh节点112之间的网络消息。
62.代理节点(proxy node)一般为长供电节点,负责为非蓝牙mesh网络的ble设备接入该蓝牙mesh网络做代理。例如,在图1所示的蓝牙mesh网络100中,mesh节点114与mesh节点117可以作为代理节点,为非当前蓝牙mesh网络系统的ble设备进行接入网络的代理处理。此处对代理过程不作详细展开。
63.友元节点为长供电节点,可用于为已建立友元关系(friend关系)的休眠节点(也就是,处于休眠状态的lpn节点)暂存消息,如此,当休眠的lpn节点醒来时,可以通过与友元节点的交互来获取自身休眠期间的消息。以图1所示的蓝牙mesh网络100中,mesh节点117可作为mesh节点115和mesh节点116的友元节点,mesh节点117可以在mesh节点115或mesh节点116休眠期间为其暂存消息;mesh节点114可作为mesh节点112和mesh节点113的友元节点,mesh节点114可以在mesh节点112或mesh节点113休眠期间为其暂存消息。
64.示例性的一种实施例中,当mesh节点112休眠后醒来,即可向自己的友元节点,也
就是,mesh节点114,发送friend poll消息,该friend poll消息用于向友元节点请求自身休眠期间的网络消息。由此,当mesh节点114接收到该friend poll消息,且自身存储有mesh节点112休眠期间的暂存消息时,mesh节点114即可向mesh节点112反馈该friend poll消息的响应消息。该响应消息中即携带mesh节点112休眠期间,由mesh节点114为其暂存的消息。
65.在一种可能的实施例中,为了最大限度拓展mesh网络的覆盖面积,将长供电节点同时作为中继节点、代理节点和友元节点,此时,长供电节点可称为mesh relay,proxy&friend node。例如,图1所示系统中,mesh节点114可以为mesh relay,proxy&friend node。
66.如前所述,本技术实施例可以应用于任意蓝牙mesh网络,蓝牙mesh网络还可以与其他网络进行通信。
67.示例性的,蓝牙mesh网络可以进一步应用于智能家居场景。此时,可以参考图2,图2示出了本技术实施例提供的一种蓝牙mesh网络应用于智能家居应用场景的示意图。如图2所示,该通信系统中,包括蓝牙mesh网络100,示例性的,图2所示的蓝牙mesh网络包括mesh网关110与mesh节点111,可以理解,该蓝牙mesh网络100还可以包括更多的mesh节点,例如图1所示,此处不展开说明。
68.如图2所示,mesh网关110可以与wifi路由器310连接,并通过wifi路由器310实现与wifi网络(或设备)、其他网络(或网络设备)的通信。
69.示例性的一种实施例中,图2示出了zigbee(紫峰协议)网络200,该zigbee网络200包括:zigbee网关210和zigbee设备220。在这种场景中,mesh节点111通过mesh网关110连接至wifi路由器310、zigbee设备220通过zigbee网关210连接至wifi路由器310,由此,mesh节点111与zigbee设备220可以通过wifi路由器310实现通信。
70.示例性的另一种实施例中,图2还进一步示出了wifi设备320。在该场景中,mesh节点111通过mesh网关110连接至wifi路由器310、wifi设备320也与wifi路由器310连接,由此,mesh节点111与wifi设备320可以通过wifi路由器310实现通信。
71.示例性的另一种实施例中,图2还进一步示出了终端。示例性的,图1中具体示出了终端的两种表现形式:平板电脑410和手机420。本技术实施例中,终端还可以有其他表现形式,例如终端还可以包括:笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,mid)、智能音箱、智能电视等具有wifi接入功能的终端。在该场景中,终端可以与wifi路由器310通信,由此,mesh节点111通过mesh网关110、wifi路由器310,可以实现与手机420、平板电脑410进行通信。
72.示例性的另一种实施例中,图2还进一步示出了智能家居云500,如图2所示,智能家居云500可以与终端、wifi路由器310通信。由此,mesh节点111可以通过mesh网关110、wifi路由器310,实现与智能家居云500的通信。
73.在一个可能的智能家居云的场景中,mesh网络100、zigbee网络200、终端(410、420等)、智能家居云500、wifi设备320,可以通过wifi路由器310实现全局通信。此外,在图2所示的智能家居场景中,本技术实施例中,终端可以通过wifi路由器310或者移动数据,来实现与智能家居云500的通信。
74.应当理解,图2所示的通信系统中所包含的各电子设备的数量和类型仅仅是一种举例,本技术实施例并不限制于此。例如,还可以包括更多的与终端进行通信的mesh节点110,为简明描述,不在附图中一一描述;又例如,还可以包括核心网节点或用于承载虚拟化
网络功能的设备等,这些对于本领域技术人员而言是显而易见的,在此不一一赘述。
75.在前述蓝牙mesh网络100中,各mesh节点之间通过网络秘钥(netkey)对信息进行加密后通信。具体而言,各mesh节点可以各自分别存储netkey。如前所述,配置客户端负责全网配置,具体可以包括但不限于对netkey的配置,而netkey一般由配置客户端(或配置节点)配置,并在全网进行同步。对于各mesh节点(包括mesh网关)而言,mesh节点的netkey需要与全局的netkey保持一致,才能够与其他mesh节点进行正常通信。
76.根据蓝牙mesh1.0的规范当netkey或/和应用秘钥(appkey)有泄露风险的时候,例如,当有mesh节点从蓝牙mesh网络中被删除时,可以通过秘钥更新过程(key refresh procedure)来更新全网的netkey和appkey。在进行秘钥更新过程之前,配置客户端(configuration client)可以将有泄露风险的mesh节点加入黑名单(或称为:更新秘钥黑名单),其中,黑名单内的mesh节点无法获知新秘钥(包括:netkey,除此之外,还可能包括其他秘钥,例如appkey)。
77.示意性的,可以参考图3所示的现有技术中的秘钥更新过程的消息交互示意图,该秘钥更新过程主要涉及配置客户端与黑名单之外的各mesh节点之间的消息交互。其中,图3中,配置客户端具体为mesh网关,图3示意性的示出了mesh网关与1个mesh节点之间进行netkey更新时的消息交互过程。
78.如图3所示,在更新全网的netkey时,该秘钥更新过程包括如下步骤:
79.s302,mesh网关向mesh节点发送秘钥更新消息,其中,秘钥更新消息携带有加密后的新网络秘钥。
80.秘钥更新消息中携带第二密文,该第二密文是采用双重加密机制,利用原网络秘钥(原netkey,还可以记作第二网络秘钥)与mesh节点的设备秘钥(devkey),对第一网络秘钥(即新的网络秘钥)进行双重加密后得到的。具体而言,秘钥更新消息中,在网络层利用原netkey进行加密,在model层则利用mesh节点的devkey进行加密。
81.在图3所示的秘钥更新过程中,mesh网关可以向非黑名单内的各mesh节点,分别发送利用mesh节点的devkey与原netkey加密后的秘钥更新消息。
82.在蓝牙mesh网络中,秘钥更新消息可以在一跳或多跳内到达mesh节点。例如,在图1所示的蓝牙mesh网络中,mesh网关110可以将新netkey直接发送给mesh节点114(一跳到达);而mesh网关110将新netkey发送给mesh节点112时,则可以通过mesh节点114的转发(两跳到达)。
83.具体而言,秘钥更新消息可以具体通过配置模型(config model)来发送。可以理解,秘钥更新消息用于更新蓝牙mesh网络的netkey,本技术实施例对其命名方式无特别限定。示例性的,秘钥更新消息可以为config network key update消息。
84.除此之外,mesh网关还向mesh节点发送transaction值为2的config model的config key refresh phase set消息。其中,当config key refresh phase set消息的transaction值为2时,该消息用于指示mesh节点可以使用新netkey加密消息并发送,以及,mesh节点可以使用新netkey或原netkey解密消息。
85.需要注意的是,config key refresh phase set消息中携带的transaction值不同,config key refresh phase set消息的含义不同。后续还涉及transaction值为3的config key refresh phase set消息,后续具体说明。
key refresh phase states消息时,mesh网关110向mesh节点111~mesh节点117发送transaction值为3的config key refresh phase set消息(第二通知),以废除原netkey。如此,即实现了netkey的全网更新。
98.需要注意的是,在图3所示的秘钥更新过程中,s308步骤执行前,mesh网关需要在确定非黑名单内的所有mesh节点均已成功接收到新netkey时,也就是,接收到来自于未在黑名单内的所有mesh节点的第一通知后,才会在全网发送第二通知。
99.基于此,当有不在黑名单内的mesh节点因故未能成功向mesh网关发送第一通知时,这就导致mesh网关无法接收到来自于该mesh节点的第一通知。
100.为便于说明,后续说明中,将这种不在秘钥更新黑名单,且在秘钥更新过程中未成功发送第一通知的mesh节点(或mesh节点)称为第一网络节点(或第一网络节点)。其中,第一网络节点可能会由于自身处于休眠状态、电池问题、自身故障、通讯干扰或者被移出了蓝牙mesh网络的覆盖区域中的一种或多种原因,导致未能成功向mesh网关发送第一通知。而第一网络节点未能成功发送第一通知的情况,可以包括:第一网络节点未成功接收到秘钥更新消息,和/或,第一网络节点无法对外发送第一通知。
101.这种情况下,mesh网关可以持续等待,直至接收到来自于所有非黑名单内的mesh节点的第一通知,mesh网关才执行s308,完成秘钥更新过程。
102.以图1所示的蓝牙mesh网络100举例,若mesh节点113由于通信干扰问题,在接收到秘钥更新消息后,无法向发出第一通知(config nekey states)时,mesh网关110就无法接收到来自于mesh节点113的第一通知,则mesh网关110会持续等待,直至mesh节点113通讯恢复,mesh节点113向mesh网关110发送第一通知,如此,mesh网关110可以接收到分别来自于mesh节点111~mesh节点117的第一通知,mesh网关110才会全网发布第二通知,实现秘钥更新。
103.但是,在蓝牙mesh网络中,秘钥更新过程一般是基于秘钥存在被泄露的风险而启动的,例如,有mesh节点移出网络时启动秘钥更新过程,又例如,当有新的mesh节点加入网络时,也可以启动如图3所示的秘钥更细过程。那么,mesh网关在秘钥更新过程中等待的时间越长,蓝牙mesh网络受到trash

can攻击的几率越大,安全风险越高。
104.甚至,在一些可能的情况下,第一网络节点可能一直无法解决故障问题,如此,第一网络节点一直无法向mesh网关成功发送第一通知,那么,若mesh网关一直等待,则有可能导致秘钥更新过程一直无法完成,这极大地影响了蓝牙mesh网络的安全性。
105.除前述秘钥更新方法之外,目前还可以通过维护人员来对第一网络节点进行配置(provisioning),以使得第一网络节点重新入网,从而,在其重新入网后能够获取到当前最新的网络秘钥。但是,这种秘钥更新方式需要维护人员手动参与实现,且重新配置入网的过程操作繁琐复杂,存在及时性较差的问题,由此也存在一定的安全隐患。
106.下面以具体地实施例对本技术实施例的技术方案进行详细说明,通过这些技术方案,可以为错过秘钥更新的mesh节点获得更新后的网络秘钥,有利于提高蓝牙mesh网络的安全性。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
107.本技术实施例提供一种秘钥更新方法,该方法可以应用于蓝牙mesh网络,用于实现蓝牙mesh网络的秘钥更新。
108.本技术实施例中,配置客户端可以由蓝牙mesh网络中的一个长供电节点承担,为便于说明,将承担全网配置功能的mesh节点简称为:配置节点。如前所述,配置节点可以具体为蓝牙mesh网络中的mesh网关,或者,配置节点可以具体为除mesh网关之外的其他长供电节点。例如,图1所示场景中,配置节点可以为mesh网关110,或者,配置节点也可以为mesh节点117或mesh节点114。
109.后续为便于说明,以一个配置节点与一个除配置节点之外的其他mesh节点为例,说明本方案。
110.本发明实施例中,蓝牙mesh网络的秘钥更新过程,可以参考图4,具体可以包括如下步骤:
111.s402,配置节点向mesh节点发送秘钥更新消息,其中,秘钥更新消息携带有加密后的新网络秘钥。
112.具体而言,秘钥更新消息是利用原netkey与mesh节点的devkey,对新netkey加密后得到的。其中,秘钥更新消息的网络层,是利用原netkey加密的,而在其model层,则是利用mesh节点的devkey加密的。
113.可以理解,实际场景中,配置节点可以分别向各个除配置节点之外的mesh节点发送秘钥更新消息。
114.s404,mesh节点接收到秘钥更新消息后,解密秘钥更新消息。
115.也就是,mesh节点利用原netkey与mesh节点自身的devkey解密秘钥更新消息。
116.s406,当解密成功时,mesh节点向配置节点发送第一通知,该第一通知用以通知配置节点自身已经成功接收到新网络秘钥。
117.图4中s402~s406的实现方式,可以参考图3中的s302~s306的相关表述,此处不再赘述。
118.s408,当计时时长达到预设时长,或者,当前时刻达到预设时刻时,配置节点在全网发送第二通知,该第二通知用以在全网通知废除原网络秘钥。
119.其中,计时时长的起点为s402中配置节点发出秘钥更新消息的时刻。
120.换言之,在图4所示的实施例中,配置节点发送秘钥更新消息后,即可开始计时,当计时时长达到预设时长(或称为:等待时长、超时时长),或,当前时刻达到预设时刻时,配置节点对外发送第二通知,以在全网通知废除原网络秘钥。如此,通过配置节点侧的计时处理,无论是否全部mesh节点都收到新netkey,都能够在预设时长内(或预设时刻)完成秘钥更新过程,降低配置节点持续等待mesh节点的反馈而导致的安全性风险。
121.但是,在图4所示的秘钥更新过程中,可能存在因故未能成功向配置节点发送第一通知的mesh节点,也即第一网络节点。因此,本技术实施例在图4所示的秘钥更新过程的基础上,还进一步提供了针对第一网络节点的秘钥恢复过程。
122.其中,本技术实施例所涉及到的第一网络节点,是指蓝牙mesh网络中,在秘钥更新过程之后本地维护的网络秘钥与当前蓝牙mesh网络的第一网络秘钥不一致的部分mesh节点。
123.应当理解,“秘钥恢复过程”实际是针对第一网络节点的秘钥更新过程,该命名仅用于区分针对蓝牙mesh网络中全部mesh节点的秘钥更新过程。实际实现场景中,针对第一网络节点的秘钥恢复过程,可视作秘钥更新过程的一部分。后续为便于区分说明,将图4所
示的针对所有mesh节点(不在黑名单内,且除配置节点之外的所有mesh节点)的秘钥更新过程,简称为:秘钥更新过程;将针对第一网络节点进行的秘钥更新过程,简称为:秘钥恢复过程。
124.具体而言,针对第一网络节点进行秘钥恢复时,可以通过第一网络节点与配置节点之间的消息交互,使得第一网络节点获取到新网络秘钥。
125.其中,在第一网络节点与配置节点进行消息交互时,可以利用第一网络节点的设备秘钥(devkey)来对config model消息进行加密。其中,每个mesh节点具备一个唯一的devkey,mesh节点的devkey仅mesh节点自身、配置节点能够获取得到。因此,利用第一网络节点的devkey对config model消息进行加密,只有第一网络节点自身与配置节点能够成功解密该消息,有利于提高秘钥恢复过程中消息交互的安全性。
126.具体而言,秘钥恢复过程,可以由配置节点基于更新失败列表而触发;或者,也可以由第一网络节点向配置节点发出密钥恢复请求,从而,配置节点响应于接收到的秘钥恢复请求而实现。
127.以下,对这两种秘钥恢复过程的实现方式进行说明。
128.第一种秘钥恢复方式,配置节点基于更新失败列表,主动触发前述秘钥恢复过程。
129.其中,更新失败列表用于对秘钥更新过程中更新失败的mesh节点进行记录。具体而言,更新失败列表可以记录更新失败的mesh节点的节点标识。其中,节点标识可以包括但不限于:mac地址、mesh地址、自定义编号等,其中,自定义编号可以为文字、字符、数字的一种或多种方式的组合,不作赘述。
130.由此,这种秘钥更新方式,可以在图4所示的秘钥更新过程之后实现。
131.更新失败列表可以由配置节点记录维护。在蓝牙mesh网络中,配置节点负责全网配置,因此,配置节点可以获知当前的蓝牙mesh网络中共包含哪些mesh节点,在此基础上,配置节点可以基于秘钥更新过程中接收到的第一通知,确定哪些mesh节点未及时反馈第一通知。
132.基于此,在一可能的实施例中,配置节点除执行图4所示的秘钥更新过程之外,还可以获取未及时反馈第一通知的mesh节点的标识,并将这些mesh节点的标识记录在更新失败列表中。在该实施例中,更新失败列表记录了整个蓝牙mesh网络中,所有更新失败的mesh节点(包括长供电节点与lpn节点)。
133.由于更新失败列表针对所有mesh节点(包括长供电节点与lpn节点),配置节点获取更新失败列表中的所有长供电节点,并将更新失败列表中的所有长供电节点都作为第一网络节点。从而,对每个第一网络节点分别进行秘钥恢复。
134.本技术实施例中,针对长供电节点,由配置节点主动对其进行秘钥恢复,而针对错过秘钥更新的lpn节点,则可以配置节点响应于来自于lpn节点的秘钥恢复请求的方式实现,后续详述。如此,对错过秘钥更新过程的长供电节点与lpn节点进行区分处理,避免lpn节点处于休眠状态导致错过配置节点发起的秘钥恢复过程的可能性,有利于缩短秘钥恢复过程的时长,提高秘钥恢复效率,也有利于节省系统资源。
135.在该场景中,配置节点可以基于更新失败列表确定第一网络节点(或称为目标节点、目标mesh节点),从而,可以利用第一网络节点的devkey加密第一网络秘钥,得到第一密文,其中,第一网络秘钥为蓝牙mesh网络当前网络秘钥。然后,配置节点向第一网络节点发
送消息1以使得第一网络节点能够解密消息1中携带的第一密文,从而,第一网络节点能够得到第一网络秘钥。在蓝牙mesh网络中,消息1可以一跳达到或经其他mesh节点多跳中继转发到达第一网络节点,消息1可以携带在beacon帧中。
136.示例性的,可以参考图5,该秘钥恢复过程可以包括但不限于如下步骤:
137.s502,配置节点利用第一网络节点的设备秘钥加密当前网络秘钥,得到秘钥恢复消息。
138.如图5所示的秘钥恢复过程,在图4所示的秘钥更新过程之后执行,用于对秘钥更新过程中更新netkey失败的部分mesh节点进行密钥恢复,此时,将这部分更新netkey失败的部分mesh节点中的所有长供电节点都作为第一网络节点,执行图5所示的秘钥恢复过程。此时,该步骤中提及的当前网络秘钥,可以具体为图4中的新网络秘钥。
139.此时,蓝牙mesh网络的当前网络秘钥为第一网络秘钥,秘钥恢复消息中携带第一密文,第一密文是利用第一网络节点的devkey加密第一网络秘钥得到的。
140.s504,配置节点向第一网络节点发送秘钥恢复消息。
141.具体实现时,秘钥恢复消息即为前文所述的消息1。本技术实施例中,配置节点可以通过广播形式对外发送秘钥恢复消息。此时,秘钥恢复消息(也即消息1)中携带第一网络节点标识,如此,在蓝牙mesh网络中,秘钥恢复消息可以在一跳内到达第一网络节点,或者,也可以通过经其他mesh节点多跳中继转发到达第一网络节点。
142.s506,第一网络节点接收秘钥恢复消息(也即消息1)。
143.s508,第一网络节点利用第一网络节点的设备秘钥解密秘钥恢复消息,得到当前网络秘钥。
144.其中,当前网络秘钥也即第一网络秘钥。该步骤具体实现时,即第一网络节点利用自己的devkey解密消息1中携带的第一密文,得到当前蓝牙mesh网络的第一网络秘钥。
145.s510,第一网络节点基于当前网络秘钥,更新本地维护的网络秘钥。
146.由于第一网络节点错过秘钥更新过程,因此,第一网络节点本地维护的网络秘钥与蓝牙mesh网络的当前网络秘钥不一致。如此,在执行该步骤时,第一网络节点将本地维护的网络秘钥更新为蓝牙mesh网络的当前网络秘钥即可。
147.例如,第一网络节点本地维护的网络秘钥为秘钥1,并且第一网络节点电力耗尽,无法与蓝牙mesh网络进行通信,也就错过了蓝牙mesh网络的秘钥更新过程。在此期间,蓝牙mesh网络的网络秘钥经历了三次更新,依次为:秘钥1

秘钥2

秘钥3

秘钥4。当第一网络节点重新更换电池后,蓝牙mesh网络中的蓝牙mesh网络的当前网络秘钥为秘钥4,则在图5前述过程实现时,第一网络节点可以基于自身的devkey对秘钥恢复消息进行解密,得到秘钥4,并将本地维护的秘钥1替换为秘钥4,实现秘钥更新。
148.图5仅示意性的示出了一个第一网络节点与配置节点之间的交互过程的示意图。实际场景中,可能涉及蓝牙mesh网络中存在多个第一网络节点的情况,此时,可以针对每个第一网络节点分别执行如图5所示的秘钥恢复过程,分别实现对每个第一网络节点的秘钥恢复。换言之,如图5所示的秘钥恢复过程,是针对单个第一网络节点实现的,当有多个第一网络节点时,只需要多次执行该秘钥恢复过程即可。
149.可以理解,当存在多个第一网络节点时,各第一网络节点的devkey不同,该步骤得到的第一密文不同,也即,秘钥恢复消息携带的信息(第一密文)不同。
150.需要说明的是,图5所示交互示意图仅为示意性的,该秘钥恢复方法实际应用于蓝牙mesh网络时,可能需要多跳转发才能实现二者之间的交互。
151.示例性的,图6示出了针对长供电节点的一种秘钥恢复方法。具体而言,图6为图5所示秘钥恢复方法,应用于图1所示蓝牙mesh网络时的一种实施方式示意图。其中,图6示意性的示出了mesh节点112(第一网络节点)、mesh节点114与mesh网关110(配置节点),此时,mesh网关110向mesh节点112发送的秘钥恢复消息,需要经过mesh节点114的转发后,才能到达mesh节点112。
152.示例性的另一种实施例中,图1所示的蓝牙mesh网络中,配置节点可以为mesh节点117,也即,由mesh节点117承担全网配置功能。
153.那么,若第一网络节点为mesh网关110,则mesh节点117可以对外发送消息1(秘钥恢复消息),该秘钥恢复消息中携带mesh网关110的标识。此时,秘钥恢复消息一跳到达第一网络节点。
154.或者,若第一网络节点为mesh节点114,则mesh节点117对外发送消息1(秘钥恢复消息),其中携带mesh节点114的标识。则该秘钥恢复消息可以经过mesh网关110的中继转发,达到mesh节点114。不作穷举。
155.在前述秘钥恢复方法中,各广播消息,例如秘钥恢复消息(也即消息1)、后文涉及到的消息2,还携带接收端标识。其中,接收端标识用于唯一指示广播消息的接收端。具体而言,接收端标识可以包括但不限于接收端的物理(media access control,mac)地址。
156.如此,在蓝牙mesh网络中,对任意一个mesh节点而言,该mesh节点接收到秘钥恢复消息后,可基于其中携带的接收端标识(mac地址),确定自身是否为该秘钥恢复消息的接收端。其中,当秘钥恢复消息携带的mac地址与自身的mac地址一致,则自身为该秘钥恢复消息的接收端;反之,若二者不一致,则自身不是秘钥恢复消息的接收端。
157.从而,当mesh节点自身不是秘钥恢复消息的接收端时,如果mesh节点是中继节点,则转发秘钥恢复消息,如果mesh节点不是中继节点,则丢弃该秘钥恢复消息;当自身为秘钥恢复消息的接收端时,利用自身的devkey解密秘钥恢复消息。例如,图6所示秘钥恢复过程中,mesh节点114接收到秘钥恢复消息后,确定自身不是秘钥恢复消息的接收端,且自身为中继节点时将该秘钥恢复消息向mesh节点112转发;而mesh节点112接收到秘钥恢复消息后,确定自身为该秘钥恢复消息的接收端,则解密该秘钥恢复消息,得到当前蓝牙mesh网络秘钥,进而更新本地维护的网络秘钥,完成秘钥恢复。
158.本技术实施例中,秘钥恢复消息(消息1)可以具体为配置广播帧(beacon)。此时,该配置广播帧中携带有利用第一网络节点的devkey对当前netkey加密后的第一密文。
159.此外,需要说明的是,在配置节点主动为第一网络节点进行秘钥恢复的场景中,配置节点可以多次向第一网络节点发送秘钥恢复消息。
160.示例性的一种实施例中,配置节点可以间断性的,如周期性的,向第一网络节点发送秘钥恢复消息,直至接收到来自于第一网络节点的心跳。其中,第一网络节点的“心跳”是指第一网络节点对外发出的消息,以通知其他节点自身处于活跃状态。“心跳”的消息类型可以是广播消息,或者,也可以是单播消息;“心跳”可以不携带数据,例如消息中携带的内容为空,或者,也可以通过现有的其他消息作为“心跳”,例如第一网络节点向配置节点发送的第一通知或其他信息请求消息等。
161.示例性的另一种实施例中,配置节点还可以周期性的向第一网络节点发送秘钥恢复消息,直至发送次数达到预设的数目阈值或者接收到心跳。其中,数目阈值可以根据需要进行预设,对此无特别限制。
162.第二种秘钥恢复方式,由第一网络节点向配置节点发出密钥恢复请求,相应地,配置节点响应于接收到的秘钥恢复请求而实现。
163.在这种实施方式中,配置节点无需主动为第一网络节点进行秘钥恢复,而是由第一网络节点来主动请求。这种实施方式适用于lpn节点的秘钥恢复过程。也即,第一网络节点为lpn节点的情况。这是考虑到lpn节点可能存在休眠状态,采用lpn节点主动请求恢复秘钥的实施方式更有利于节省系统资源。以下详述。
164.现结合图7所示的处理流程,对lpn节点(即:第一网络节点)进行秘钥恢复的过程进行说明。
165.如前所述,lpn节点会在休眠状态与唤醒状态之间切换。其中,lpn节点可以定时醒来(进入唤醒状态)或入睡(进入休眠状态)。例如,图7中,lpn节点可以由休眠状态定时进入唤醒状态。
166.每个lpn节点具备一个友元节点,也即,二者已建立友元关系的节点,友元节点为蓝牙mesh网络中的长供电节点,用于在lpn节点处于休眠状态期间,为lpn节点暂存消息。为便于说明,将当前已经与lpn节点(可记为第一网络节点)建立友元关系的节点记为友元节点。
167.那么,如图7所示,当lpn节点从休眠状态切换为唤醒状态,也就是,lpn节点醒来后,可以向友元节点发送消息获取请求(也即第四消息),该消息获取请求用于请求获取自身休眠期间,友元节点为其暂存的消息。示例性的,消息获取请求可以具体为friend poll消息。
168.需要注意的是,lpn节点发送消息获取请求时,需要利用本地维护的网络秘钥对该消息获取请求进行加密。而友元节点在接收到该消息获取请求时,可以利用本地维护的网络秘钥对其进行解密。
169.若解密成功,则友元节点向该lpn节点发送自身为其暂存的消息。则该lpn节点能够成功接收到来自于友元节点的消息。此时,lpn节点本地维护的网络秘钥与友元节点的网络秘钥相同,无需启动秘钥恢复过程。那么,在接收到友元节点为其暂存的消息之后,lpn节点可以处理该消息,或执行其他数据处理过程即可,本技术实施例对此无特别限制,图7以“工作”进行表示。此外,lpn节点还可以在预定时刻或按照预设周期,由唤醒状态切换为休眠状态(定时入睡)。
170.但是,若lpn节点与友元节点各自维护的网络秘钥不一致,则会解密失败,友元节点则不会响应该消息获取请求,也就是,友元节点不会向lpn节点反馈为其暂存的消息。此时,lpn节点无法收到针对消息获取请求的反馈。
171.这种情况下,若lpn节点在预设的第一时长内一直未接收到来自于友元节点的反馈消息时,lpn节点可以多次尝试向友元节点发送消息获取请求。例如,当第四消息发出后的一段预设的第一时长内一直未收到来自于友元节点的反馈消息时,lpn节点周期性的向友元节点发送消息获取请求,直至接收到友元节点的反馈消息,或者,发送次数达到预设的第一阈值。
172.若经过多次尝试,lpn节点一直没有接收到来自友元节点的消息,则此时可能存在两种情况:lpn节点本地维护的网络秘钥过期;或者,友元节点发生故障。例如,友元节点可能被移出蓝牙mesh网络的覆盖范围,或者,友元节点错过了秘钥更新过程,或者,友元节点通讯故障,等,不作穷举。
173.这种情况下,lpn节点可以尝试与其他的长供电节点建立友元关系。也就是,lpn节点选择其他长供电节点作为自己的友元节点。
174.那么,当第四消息的发送次数达到预设的第一阈值,且一直未收到来自于友元节点的反馈消息时,lpn节点广播友元建立请求(第五消息)。友元建立请求用于请求与网络节点建立友元关系。示例性的,友元建立请求可以具体为friend request消息,需要说明的是friend request消息不能被中继节点转发,只有处在该lpn节点的无线覆盖范围内的网络节点才能处理该friend request消息。
175.类似的,lpn节点发送友元建立请求时,需要利用本地维护的网络秘钥对该友元建立请求进行加密。lpn节点周围的长供电节点在接收到该友元建立请求时,可以利用本地维护的网络秘钥对其进行解密。
176.若解密成功,则长供电节点可以与lpn节点建立友元关系,其中,友元关系的建立为现有技术,这里不再赘述。那么,建立友元关系后,该长供电节点则成为该lpn节点的友元节点。之后,lpn节点可以进行唤醒后的工作,直至达到预定时刻或按照预设周期,由唤醒状态切换为休眠状态(定时入睡)。
177.若lpn节点与该长供电节点各自维护的网络秘钥不一致,则会解密失败,则lpn节点无法与该长供电节点建立友元关系。
178.这种情况下,若lpn节点在预设的第二时长内一直未接收到来其他网络节点的反馈消息时,lpn节点可以多次尝试与其他网络节点建立友元关系,直至建立友元关系成功,或,发送第五消息的次数达到预设的第二阈值。
179.若经过多次尝试,lpn节点都未接收到来自其他长供电节点的消息,也就是,当所述第五消息的发送次数达到预设的第二阈值,且一直未接收到来自于其他网络节点的反馈消息时,说明lpn节点本地维护的网络秘钥可能已经过期。这种情况下,可以由lpn节点主动启动秘钥恢复过程。也就是,lpn节点向配置节点发送消息2,以请求恢复网络秘钥(或称为:请求同步当前的网络秘钥)。后续结合图8具体说明。
180.lpn节点向配置节点恢复网络秘钥后,即可与其他mesh节点正常通信,进行工作或等待,图7未具体示出lpn节点在唤醒状态下的具体处理内容。之后,lpn节点就可以在预定时刻或按照预设周期,由唤醒状态切换为休眠状态(定时入睡)。
181.如此,lpn节点按照图7所示方式,能够在自身处于唤醒状态时,实现网络秘钥的主动恢复。
182.图8示出了lpn节点的秘钥恢复过程的消息交互示意图。其中,图8所示实施例中,除包含图5所示实施例中的s502~s510步骤之外,如图8所示,在s502之前,该方法还包括如下步骤:
183.s5012,当建立友元关系失败的次数达到预设的第二阈值时,第一网络节点向配置节点发送秘钥恢复请求。
184.在秘钥恢复过程中,第一网络节点可以通过广播方式发送秘钥恢复请求,此时,秘
钥恢复请求也可简称为:消息2。其中,消息2(也即秘钥恢复请求)用于向配置节点请求恢复网络秘钥,或可称为:消息2用于请求同步蓝牙mesh网络当前的网络秘钥(也即,第一网络秘钥)。
185.此外,如前所述,建立友元关系失败的次数达到预设的第二阈值的情况,即为:第五消息的发送次数达到预设的第二阈值,且一直未接收到来自于其他网络节点的反馈消息的情况。此时,第一网络节点向配置节点发送消息2,消息2中携带配置节点的标识。示例性的,消息2中携带配置节点的mac地址。
186.考虑到通信过程的安全性,该秘钥恢复请求是利用第一网络节点的设备秘钥加密后发送的。示例性的,其加密算法可以包括但不限于:aes

ccm算法。
187.示例性的一种实施例中,秘钥恢复请求(消息2)与秘钥恢复消息(消息1)都可以为beacon消息。进一步的,消息1与消息2可以具体为配置广播帧(配置beacon)。
188.s5014,配置节点接收秘钥恢复请求,并基于发送端的标识信息获取第一网络节点的设备秘钥。
189.s5016,配置节点利用第一网络节点的设备秘钥解密该秘钥恢复请求。
190.如前所述,mesh节点的设备秘钥仅有mesh节点自身与配置节点可知。由此,若解密成功,则配置节点可以确定第一网络节点的身份合法,则配置节点可以执行s502~s510,实现对第一网络节点的秘钥恢复。
191.反之,若解密失败,配置节点无法确认该秘钥恢复请求的发送端节点的身份,配置节点可以不向该发送端节点反馈当前蓝牙mesh网络秘钥。
192.此外,与图5中提及的秘钥恢复消息类似,秘钥恢复请求可以是一跳实现交互,例如图1中mesh节点111与mesh网关110之间的消息交互;或者,秘钥恢复请求也可以是经过多个mesh节点多跳转发后,到达配置节点的。
193.示例性的,图9具体示出了图8中s5012和s504中消息经多跳转发到达接收端的情况示意图,图9中省略了图8中其他步骤的处理。图9具体示出了第一网络节点(lpn节点)、n个长供电节点以及网关节点(配置节点),其中,n为0(一跳直接交互)或正整数(多跳转发)。在图9所示出的实施例中,在s5012步骤中,第一网络节点对外发出秘钥恢复请求后,经长供电节点1~长供电节点n的n次转发,将该秘钥恢复请求经n跳转发至网关节点。以及,在s504步骤中,当网关节点向第一网络节点发送秘钥恢复消息时,也经过长供电节点n~长供电节点1的n次转发,将该秘钥恢复消息经n跳转发至网关节点。
194.需要说明的是,在第一网络节点主动请求恢复网络秘钥的过程中,第一网络节点也可以多次重复执行如图8或图9所示的流程,直至该第一网络节点能够成功与其他mesh节点通信。
195.示例性的一种实施例中,第一网络节点可以周期性的向配置节点发送秘钥恢复请求,直至发送消息获取请求后能够成功接收到来自友元节点的反馈消息。换言之,当第一网络节点执行s510后,成功更新了本地维护的网络秘钥后,可以向友元节点发送friend poll,若该第一网络节点接收到来自友元节点的反馈消息,则不再向配置节点请求更新网络秘钥。
196.示例性的另一种实施例中,第一网络节点可以周期性的向配置节点发送秘钥恢复请求,直至建立新的友元关系。换言之,当第一网络节点执行s510后,成功更新了本地维护
的网络秘钥后,可以向其他长供电节点发送friend request消息,若建立友元成功,则不再向配置节点请求更新网络秘钥。
197.在前述任意一种实施例中,例如,图5、图8、图9所示的任意一种实施例中,当第一网络节点基于接收到的消息1实现本地网络秘钥的更新同步后,还可以向配置节点侧发送第三消息,第三消息用于指示所述网络设备已成功同步所述第一网络秘钥,第三消息例如为心跳消息。
198.此外,需要说明的是,本技术实施例中,对图8所示秘钥恢复过程在图4所示秘钥更新过程之后执行,二者顺序有限定。
199.基于前述处理,可以实现对蓝牙mesh网络中任意mesh节点的秘钥更新。在此基础上,mesh节点(示例性的,如第一网络节点)在成功更新netkey或成功恢复netkey的基础上,还可以利用所述第一网络秘钥,更新全网加密索引、更新应用秘钥或者重置本地序列号中的一种或多种。
200.示例性的,任意mesh节点可以通过安全广播帧(secure beacon),实现对全网加密索引(iv index)的更新。
201.具体而言,mesh节点可以通过iv index update过程,或者iv index recovery过程来更新iv index。iv index update过程与iv index recovery过程都可以实现对iv index的更新,区别在于二者的触发条件不同。示例性的,当mesh节点接收到的secure beacon中iv index比该mesh节点自身维护的iv index大1,且iv update flag为1,则启动iv index update过程,实现对iv index的更新。除这种情况以及mesh节点接收到的secure beacon中iv index小于或等于该mesh节点自身维护的iv index的情况之外,则通过iv index recovery过程来更新iv index。不展开说明。
202.本技术中,当利用secure beacon更新iv index时,可以利用当前mesh节点维护的netkey(例如,更新后的新netkey,也即第一网络秘钥)对secure beacon进行加密后,再进行消息交互。
203.本技术实施例对于更新iv index这一过程的触发条件及实现方式均无特殊限制,可采用现有技术中相关标准或其他公开文本,这里不再展开论述。
204.除更新iv index之外,mesh节点还可以基于更新后的netkey,重置自身维护的本地序列号(seqnum)。seqnum由mesh节点各自在本地维护,各mesh节点的seqnum值可能相同或不同。
205.本技术实施例对于重置seqnum这一过程的触发条件及实现方式均无特殊限制,可采用现有技术中相关标准或其他公开文本,这里不再展开论述。
206.除此之外,本技术实施例中,mesh节点还可以基于更新后的第一网络秘钥(netkey),实现对应用秘钥(appkey)的更新。
207.具体而言,可以通过配置模型(config model)来更新appkey。换言之,各mesh节点之间可以通过config model来进行信息交互,以更新appkey。其中,利用config model进行信息交互时,发送端利用更新后的netkey以及接收端的devkey来加密信息。
208.类似地,本技术实施例对于更新appkey这一过程的触发条件及实现方式均无特殊限制,可采用现有技术中相关标准或其他公开文本,这里不再展开论述。
209.可以理解的是,上述实施例中的部分或全部步骤或操作仅是示例,本技术实施例
还可以执行其它操作或者各种操作的变形。此外,各个步骤可以按照上述实施例呈现的不同的顺序来执行,并且有可能并非要执行上述实施例中的全部操作。
210.本技术实施例还提供了一种网络设备。
211.示例性的,本技术提供一种网络设备,该网络设备包括:处理模块与收发模块;其中,处理模块,用于:从所述蓝牙mesh网络的网络节点中确定第一网络节点,所述第一网络节点本地维护的网络秘钥与当前蓝牙mesh网络的第一网络秘钥不一致;以及,用于利用所述第一网络节点的设备秘钥加密所述第一网络秘钥,得到第一密文;收发模块,用于发送第一消息以使得所述第一网络节点获取所述第一网络秘钥,所述第一消息携带所述第一密文。
212.一种可能的实施例中,收发模块还用于:接收第二消息,所述第二消息用于请求同步网络秘钥;此时,处理模块,具体用于:当所述第二消息携带的请求方标识所指示的网络节点不是已删除节点时,将所述第二消息携带的请求方标识所指示的网络节点确定为所述第一网络节点。
213.另一种可能的实施例中,处理模块,具体用于:将更新失败列表中的每个长供电节点,分别确定为所述第一网络节点;其中,所述更新失败列表用于记录所述蓝牙mesh网络中秘钥更新失败且不是已删除节点的所有网络节点;所述长供电节点为所述蓝牙mesh网络中除低功耗节点之外的其他网络节点。
214.另一种可能的实施例中,所述网络设备为配置节点,配置节点为mesh网关或者其他长供电节点。
215.另一种可能的实施例中,所述第一消息为广播帧,所述第一消息中携带所述第一网络节点的标识。
216.该实施例所提供的网络设备可用于执行前述任意一种实施例中配置节点侧的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
217.示例性的,本技术实施例还提供了另一种网络设备。该网络设备包括:处理模块与收发模块;其中,收发模块,用于向所述配置节点发送第二消息,所述第二消息用于请求同步网络秘钥;以及,用于接收来自于所述配置节点的第一消息,所述第一消息携带第一密文,所述第一密文为利用所述网络设备的设备秘钥加密所述蓝牙mesh网络的第一网络秘钥得到的,所述网络设备本地维护的网络秘钥与所述第一网络秘钥不一致;处理模块,用于利用所述网络设备的设备秘钥解密所述第一密文,得到所述第一网络秘钥;以及,用于将本地维护的网络秘钥更新为所述第一网络秘钥。
218.一种可能的实施例中,收发模块,还用于:向配置节点发送第三消息,所述第三消息用于指示所述网络设备已成功同步所述第一网络秘钥。
219.一种可能的实施例中,处理模块,还用于:利用所述第一网络秘钥,更新全网加密索引、更新应用秘钥或者重置本地序列号中的一种或多种。
220.一种可能的实施例中,收发模块,具体用于:当所述网络设备由休眠状态切换为唤醒状态,向第二网络节点发送第四消息;其中,所述第二网络节点与所述网络设备已建立友元关系,所述第二网络节点用于在所述网络设备处于休眠状态期间,为所述网络设备暂存消息;所述第四消息用于请求获取所述第二网络节点为所述网络设备暂存的消息;以及,用于:当所述第四消息的发送次数达到预设的第一阈值,且一直未接收到来自于所述第二网
络节点的反馈消息时,广播发送第五消息,所述第五消息用于请求建立友元关系;以及,用于:当所述第五消息的发送次数达到预设的第二阈值,且一直未接收到来自于其他网络节点的反馈消息时,向所述配置节点发送所述第二消息。
221.该实施例所提供的网络设备可用于执行任意一种实施例中mesh节点(包括但不限于第一网络节点)侧的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
222.应理解以上各网络设备的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块以软件通过处理元件调用的形式实现,部分模块通过硬件的形式实现。例如,处理模块可以为单独设立的处理元件,也可以集成在通信设备中,例如mesh设备的某一个芯片中实现,此外,也可以以程序的形式存储于通信设备的存储器中,由通信设备的某一个处理元件调用并执行以上各个模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
223.例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,asic),或,一个或多个微处理器(digital singnal processor,dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,fpga)等。再如,当以上某个模块通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,cpu)或其它可以调用程序的处理器。再如,这些模块可以集成在一起,以片上系统(system

on

a

chip,soc)的形式实现。
224.本技术实施例还提供了一种网络设备,该网络设备包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述计算机执行指令,使得所述网络设备执行前述任意一种实施例中配置节点侧或mesh节点(包括但不限于第一网络节点)侧所执行的方法。
225.其中,所述网络设备可以包括一个或多个处理器,所述处理器也可以称为处理单元,可以实现一定的控制功能。所述处理器可以是通用处理器或者专用处理器等。
226.在一种可选地设计中,处理器也可以存有指令,所述指令可以被所述处理器运行,使得所述网络设备执行上述方法实施例中描述的对应于配置节点或者mesh节点(包括但不限于第一网络节点)的方法。
227.在又一种可能的设计中,网络设备可以包括电路,所述电路可以实现前述方法实施例中发送或接收或者通信的功能。
228.可选地,所述网络设备中可以包括一个或多个存储器,其上存有指令或者中间数据,所述指令可在所述处理器上被运行,使得所述网络设备执行上述方法实施例中描述的方法。可选地,所述存储器中还可以存储有其他相关数据。可选地处理器中也可以存储指令和/或数据。所述处理器和存储器可以单独设置,也可以集成在一起。
229.可选地,所述网络设备还可以包括收发器。所述收发器可以称为收发单元、收发
机、收发电路、或者收发器等,用于实现通信设备的收发功能。
230.若该网络设备(作为配置节点)用于实现对应于图5所示实施例中配置节点向第一网络节点发送秘钥恢复消息的操作时,例如,可以是收发器向第一网络节点发送秘钥恢复消息。收发器还可以进一步完成其他相应的通信功能。而处理器用于完成相应的确定或者控制操作,可选的,还可以在存储器中存储相应的指令。各个部件的具体的处理方式可以参考前述实施例的相关描述。
231.若该网络设备(作为第一网络节点)用于实现对应于图8中的第一网络节点向配置节点发送秘钥恢复请求的操作时,例如,可以由收发器向配置节点发送秘钥恢复请求。收发器还可以进一步完成其他相应的通信功能。而处理器用于完成相应的确定或者控制操作,可选的,还可以在存储器中存储相应的指令。各个部件的具体的处理方式可以参考前述实施例的相关描述。
232.本技术中描述的处理器和收发器可实现在集成电路(integrated circuit,ic)、模拟ic、射频集成电路rfic、混合信号ic、专用集成电路(application specific integrated circuit,asic)、印刷电路板(printed circuit board,pcb)、电子设备等上。该处理器和收发器也可以用各种1c工艺技术来制造,例如互补金属氧化物半导体(complementary metal oxide semiconductor,cmos)、n型金属氧化物半导体(nmetal

oxide

semiconductor,nmos)、p型金属氧化物半导体(positive channel metal oxide semiconductor,pmos)、双极结型晶体管(bipolar junction transistor,bjt)、双极cmos(bicmos)、硅锗(sige)、砷化镓(gaas)等。
233.可选的,通信设备可以是独立的设备或者可以是较大设备的一部分。例如所述设备可以是:
234.(1)独立的集成电路ic,或芯片,或,芯片系统或子系统;
235.(2)具有一个或多个ic的集合,可选地,该ic集合也可以包括用于存储数据和/或指令的存储部件;
236.(3)asic,例如调制解调器(msm);
237.(4)可嵌入在其他设备内的模块;
238.(5)接收机、终端、蜂窝电话、无线设备、手持机、移动单元,网络设备等等;
239.(6)其他等等。
240.本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述实施例所述的通信方法。
241.此外,本技术实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行上述实施例所述的通信方法。
242.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户
线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk)等。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献