一种配网方法、装置、计算机设备和存储介质与流程

文档序号:24633794发布日期:2021-04-09 20:44阅读:115来源:国知局
一种配网方法、装置、计算机设备和存储介质与流程

【技术领域】

本发明涉及通信技术领域,尤其涉及一种配网方法、装置、计算机设备和存储介质。



背景技术:

目前,在蓝牙低能耗网络(blemesh)标准中,配网包括多个交互步骤,节点和集中器双方共计要来回传输大量消息,在配网过程中,任何一个交互步骤的失败均会导致配网失败,极大浪费了用户时间;为解决此问题,现有技术通过通用属性规范(genericattributeprofile,简称:gatt)向节点发送配网参数,但现有技术中gatt无法批量快速对节点进行配网操作,配网效率较低,而且有被窃听的风险,存在安全隐患。



技术实现要素:

有鉴于此,本发明实施例提供了一种配网方法、装置、计算机设备和存储介质,可以提高配网效率和配网过程中的安全性。

一方面,本发明实施例提供了一种配网方法,应用于集中器,所述方法包括:

接收云端发送的节点的参数集;

响应于接收到参数集,向节点发送链路入口消息,链路入口消息包括生成的节点号,以供节点对节点号进行验证,若验证成功,发送链路确认消息;

若在指定时长内接收到节点发送的链路确认消息,向节点发送生成的加密配网数据,以供节点根据加密配网数据进行验证;

若节点对加密配网数据验证成功,接收节点发送的配网成功消息。

可选地,在接收云端发送的节点的参数集之前,还包括:

接收节点发送的配网信标,配网信标包括节点的节点号;

将节点号发送至云端,以供云端根据节点号判断是否存储有对应的参数集,若云端判断出存储有对应的参数集,继续执行接收云端发送的节点的参数集的步骤。

可选地,配网信标包括加密配网信标;

在将节点号发送至云端之前,还包括:

对加密配网信标进行解密,生成节点号。

可选地,还包括:

若在指定时长内未接收到节点发送的链路确认消息,继续执行接收节点发送的配网信标的步骤。

可选地,还包括:

若云端判断出未存储有对应的参数集,接收云端发送的错误信息。

可选地,参数集包括会话密钥和会话随机码;

在向节点发送生成的加密配网数据之前,还包括:

通过会话密钥和会话随机码对预先分配的配网数据进行加密,生成加密配网数据。

可选地,还包括:

若节点对加密配网数据验证失败,接收节点发送的配网失败消息。

另一方面,本发明实施例提供了一种配网装置,包括:

接收单元,用于接收云端发送的节点的参数集;若节点对加密配网数据验证成功,接收节点发送的配网成功消息;

发送单元,用于响应于接收到参数集,向节点发送链路入口消息,链路入口消息包括生成的节点号,以供节点对节点号进行验证,若验证成功,发送链路确认消息;若在指定时长内接收到节点发送的链路确认消息,向节点发送生成的加密配网数据,以供节点根据加密配网数据进行验证。

另一方面,本发明实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述配网方法。

另一方面,本发明实施例提供了一种计算机设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,其特征在于,所述程序指令被处理器加载并执行时实现上述配网方法。

本发明实施例的方案中,接收云端发送的节点的参数集;响应于接收到参数集,向节点发送链路入口消息,链路入口消息包括生成的节点号,以供节点对节点号进行验证,若验证成功,发送链路确认消息;若在指定时长内接收到节点发送的链路确认消息,向节点发送生成的加密配网数据,以供节点根据加密配网数据进行验证;若节点对加密配网数据验证成功,接收节点发送的配网成功消息,可以提高配网效率和配网过程中的安全性。

【附图说明】

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的一种配网方法的流程图;

图2为本发明实施例提供的又一种配网方法的流程图;

图3为本发明实施例提供的一种配网装置的结构示意图;

图4为本发明实施例提供的一种计算机设备的示意图。

【具体实施方式】

为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

应当理解,尽管在本发明实施例中可能采用术语第一、第二等来描述设定阈值,但这些设定阈值不应限于这些术语。这些术语仅用来将设定阈值彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一设定阈值也可以被称为第二设定阈值,类似地,第二设定阈值也可以被称为第一设定阈值。

首先对蓝牙低能耗网络(blemesh)标准进行介绍,在blemesh标准中,包括两种角色,一种是节点(node),另一种是集中器(provisioner),集中器负责控制节点入网和节点行为。集中器包括智能手机、智能音箱或个人计算机(personalcomputer,简称:pc)。节点为被控制的对象,包括灯泡、电视等终端设备。

由于blemesh网络是完全加密的,所以在组建blemesh网络时,需要控制节点入网,入网的过程称为配网(provisioning),在目前的blemesh标准里面,配网的步骤繁多,标准的配网流程如下:节点向集中器广播配网信标(unprovisionbeacon),同时集中器开始扫描,当集中器扫描到节点发送的unprovisionbeacon后,通过广播包向节点发送链路入口消息(linkopen);节点响应于linkopen,判断其中携带的节点的通用唯一识别码(universallyuniqueidentifier,简称:uuid)是否与自身uuid一致,若否,配网失败;若是,向集中器发送链路确认消息(linkack);集中器向节点发送邀请协议数据单元(invitepdu);节点响应于invitepdu,向集中器发送确认消息(ack),并向集中器发送功能协议数据单元(capabilitiesprotocoldataunit,简称:capabilitiespdu);集中器响应于capabilitiespdu,向节点发送ack,并向节点发送开始功能协议数据单元(startpdu);节点响应于startpdu,向集中器发送ack;集中器向节点发送公共密钥(publickey);节点响应于publickey,向集中器发送ack,并向集中器发送publickey;集中器响应于publickey,向节点发送ack,并向节点发送确认协议数据单元(confirmationpdu);节点响应于confirmationpdu,向集中器发送ack,并向集中器发送confirmationpdu;集中器响应于confirmationpdu,向节点发送ack,并向节点发送随机协议数据单元(randompdu);节点给响应于randompdu,向集中器发送ack,并向集中器发送randompdu;集中器响应于randompdu,向节点发送ack,并向节点发送配网数据协议数据单元(provisiondatapdu);节点响应于provisiondatapdu,向集中器发送ack,并向集中器发送完成协议数据单元(completepdu);集中器响应于completepdu,向节点发送ack,并向节点发送链路关闭消息(linkclose),至此配网完成,该节点已进入blemesh网络。

通过上述内容可见,现有技术中的配网流程中包括大量参数的运算,如:invitepdu、capabilitiespdu、startpdu、publickey,节点与集中器之间的交互步骤较多,任何一个步骤出现失败均会导致配网失败,配网效率较低,而且有被窃听的风险,存在安全隐患。因此,为解决现有技术中存在的技术问题,可以将上述参数在产线上预先存储至节点储器内,无需通过配网来交互,即可减少节点与集中器之间的交互步骤,提高配网效率。

图1为本发明实施例提供的一种配网方法的流程图,如图1所示,该方法包括:

步骤101、接收云端发送的节点的参数集。

本发明实施例中,各步骤由集中器执行。

步骤102、响应于接收到参数集,向节点发送链路入口消息,链路入口消息包括生成的节点号,以供节点对节点号进行验证,若验证成功,发送链路确认消息。

步骤103、若在指定时长内接收到节点发送的链路确认消息,向节点发送生成的加密配网数据,以供节点根据加密配网数据进行验证。

步骤104、若节点对加密配网数据验证成功,接收节点发送的配网成功消息。

本发明实施例提供的技术方案中,接收云端发送的节点的参数集;响应于接收到参数集,向节点发送链路入口消息,链路入口消息包括生成的节点号,以供节点对节点号进行验证,若验证成功,发送链路确认消息;若在指定时长内接收到节点发送的链路确认消息,向节点发送生成的加密配网数据,以供节点根据加密配网数据进行验证;若节点对加密配网数据验证成功,接收节点发送的配网成功消息,可以提高配网效率和配网过程中的安全性。

图2为本发明实施例提供的又一种配网方法的流程图,如图2所示,该方法包括:

步骤201、集中器接收节点发送的配网信标,配网信标包括节点的节点号。

本发明实施例中,集中器需要先检查自身网络状态,判断自身是否与云端建立网络连接,若是,扫描节点广播的配网信标;若否,等待与云端建立网络连接。

本发明实施例中,集中器可以通过指定无线通信网络与云端连接,指定无线通信网络包括无线局域网(wirelesslocalareanetworks,简称:wlan)(如无线保真(wirelessfidelity,简称:wi-fi)网络),蓝牙(bluetooth,简称:bt),全球导航卫星系统(globalnavigationsatellitesystem,简称:gnss),调频(frequencymodulation,简称:fm),近距离无线通信技术(nearfieldcommunication,简称:nfc),红外技术(infrared,简称:ir)。

可选地,配网信标包括加密配网信标,具体地,节点将自身的节点号通过指定加密算法进行加密,生成加密配网信标;节点广播加密配网信标,使得集中器可以接收到加密配网信标;集中器通过指定解密算法进行解密,生成节点的及节点号。其中,加密算法和解密算法可以选用目前公开的任意一种算法,本发明实施例对此不作限定,作为一种可选方案,可以选用密钥交换(ecdh)算法。对配网信标进行加密,可以提高在集中器与节点交互过程中配网信标的安全性。

步骤202、集中器将节点号发送至云端。

本发明实施例中,云端为服务器,用于生产并保存批量生产的节点的节点信息。节点信息包括节点号、节点随机值、权限(auth)认证值、invite参数、capability参数、start参数、产线工具私钥(privatekey)、节点privatekey、产线工具publickey、节点publickey和产线工具随机值。其中,节点号用于唯一标识一个节点,大小为16字节;节点随机值是随机产生的值,大小为16字节;auth认证值可以随机产生,也可以预先设定,大小为16字节;invite参数是根据协议信息和产品应用场景构造生成的值,大小为1字节;capability参数是根据协议信息和产品应用场景构造生成的值,大小为11字节;start参数是根据协议信息和产品应用场景构造生成的值,大小为5字节;产线工具privatekey是随机产生的,大小为32字节;节点privatekey是随机产生的,大小为32字节;产线工具publickey是由产线工具privatekey生成的,大小为64字节;节点publickey是由节点privatekey生成的,大小为64字节;产线工具随机值是随机生成的,大小为16字节。

本发明实施例中,产线工具可以由厂商开发,且需要与云端建立网络连接,用于接收从云端发送的节点信息。

步骤203、云端根据节点号判断是否存储有对应的参数集,若是,执行步骤205;若否,执行步骤204。

本发明实施例中,云端具备数据库,该数据库存储有所有节点的节点信息,云端接收到节点号之后,查询数据库中是否存储有与该节点号匹配的节点信息,若查询出数据库中存储有与该节点号匹配的节点信息,表明该节点存在,继续执行步骤205;若查询出数据库中未存储有与该节点号匹配的节点信息,表明该节点不存在,继续执行步骤204。

步骤204、云端向集中器发送错误消息,继续执行步骤201。

本发明实施例中,云端通过指定无线通信网络向集中器发送错误信息,以使得集中器查找错误信息,集中器不能为不存在的节点发起配网,继续执行步骤201。

本发明实施例中,指定无线通信网络包括无线局域网(wirelesslocalareanetworks,简称:wlan)(如无线保真(wirelessfidelity,简称:wi-fi)网络),蓝牙(bluetooth,简称:bt),全球导航卫星系统(globalnavigationsatellitesystem,简称:gnss),调频(frequencymodulation,简称:fm),近距离无线通信技术(nearfieldcommunication,简称:nfc),红外技术(infrared,简称:ir)。

步骤205、云端向集中器发送节点的参数集,参数集包括会话密钥(sessionkey)和会话随机码(sessionnonce)。

具体地,云端通过指定无线通信网络向集中器发送节点的参数集。

本发明实施例中,参数集包括sessionkey、sessionnonce、设备密钥(devicekey)、网络密钥(networkkey)和应用密钥(applicationkey)。

本发明实施例中,云端对云端存储的节点信息进行计算,生成参数集中的参数。下面对生成参数的具体过程进行介绍:

a、通过p256算法,对产线工具publickey和节点privatekey进行计算,生成中间参数(ecdhsecret),即:ecdhsecret=p-256(privatekey,peerpublickey),privatekey为产线工具privatekey,peerpublickey为节点publickey。

b、通过对称分组密码(aes-cmac)算法,根据invite参数、capability参数、start参数、产线工具publickey、节点publickey、产线工具随机值、节点随机值和ecdhsecret,生成sessionkey和sessionnonce,具体地,aes-cmac算法包括s1函数和k1函数,通过s1函数,根据invite参数、capability参数、start参数、产线工具随机值、节点随机值、产线工具publickey和节点publickey,生成配置参数(provisioningsalt);通过k1函数,根据provisioningsalt、ecdhsecret和设置的第一字符串(prsk),生成sessionkey;通过k1函数,根据provisioningsalt、ecdhsecret和设置的第二字符串(prsn),生成sessionnonce。

c、通过k1函数,根据provisioningsalt、ecdhsecret和设置的第三字符串(prdk),生成devicekey。

d、随机生成networkkey和applicationkey,networkkey和applicationkey的大小均为16字节。

进一步地,云端生成参数集之后,将参数集存储至自身数据库。

进一步地,云端生成参数集之后,将参数集发送至产线工具,产线工具对参数集进行存储,并在产线上将参数集烧录至节点的指定位置,该指定位置包括指定闪存(flash)地址。

步骤206、集中器向节点发送链路入口消息(linkopen),linkopen包括生成的节点号。

步骤207、节点对节点号进行验证,若验证成功,执行步骤208;若验证失败,执行步骤201。

本发明实施例中,节点判断是否在预设时长内收到linkopen,若是,对节点号进行验证;若否,向集中器广播自身配网信标。其中,预设时长可以根据实际情况进行设置。可选地,节点若判断出在预设时长内未收到linkopen,进入休眠状态等待用户下一步指令。

本发明实施例中,节点对节点号进行验证具体包括:判断自身存储的节点号与集中器发送的节点号是否相同,若自身存储的节点号与集中器发送的节点号相同,表明验证成功,继续执行步骤208;若自身存储的节点号与集中器发送的节点号不同,表明验证失败,继续执行步骤201。

步骤208、节点向集中器发送链路确认消息(linkack)。

本发明实施例中,节点若对节点号验证成功,向集中器发送linkack。

步骤209、集中器判断是否在指定时长内接收到节点发送的linkack,若是,执行步骤210;若否,执行步骤201。

本发明实施例中,指定时长可以根据实际情况进行设置;集中器若在指定时长内接收到节点发送的linkack,表明可以进行下一步配网操作,继续执行步骤210;若在指定时长内未接收到节点发送的linkack,表明节点未对链路进行确认,继续执行步骤201。可选地,集中器若在指定时长内未接收到节点发送的linkack,进入休眠状态等待用户下一步指令。

步骤210、集中器通过sessionkey和sessionnonce对预先分配的配网数据进行加密,生成加密配网数据(provisioningdata)。

本发明实施例中,配网数据包括networkkey、单播地址(unicastaddress)、主键索引(keyindex)、标志(flags)和初始化向量索引(initializationvectorindex,简称:ivindex)。

本发明实施例中,集中器可以通过指定加密算法、sessionkey和sessionnonce对配网数据进行加密。其中,加密算法可以选用目前公开的任意一种算法,本发明实施例对此不作限定,作为一种可选方案,可以选用密钥交换(ecdh)算法。

步骤211、集中器向节点发送生成的加密provisioningdata。

步骤212、节点对加密provisioningdata进行验证,若验证成功,执行步骤213;若验证失败,执行步骤214。

本发明实施例中,节点判断是否在有效时长内接收到集中器发送的加密provisioningdata,若是;对加密provisioningdata进行验证;若否,进入睡眠状态等待用户下一步指令。其中,有效时长可以根据是情况进行设置。

本发明实施例中,节点对加密provisioningdata进行验证具体包括:对加密provisioningdata进行解密,生成networkkey、unicastaddress、keyindex、flags和ivindex;从指定flash地址中读取预先存储的networkkey并判断接收到的networkkey与存储的networkkey是否一致,若是,表明验证成功,继续执行步骤213;若否,表明验证失败,继续执行步骤214。

步骤213、节点向集中器发送配网成功(complete)消息,流程结束。

本发明实施例中,集中器收到节点发送的complete消息,表明配网成功。

进一步地,节点若对加密provisioningdata验证成功,可以将applicationkey绑定至已知模型(model)。

进一步地,节点若对加密provisioningdata验证成功,节点可以通过指定方式发送配网成功信息。例如:指定方式为亮灯或发声。

步骤214、节点向集中器发送配网失败消息,流程结束。

本发明实施例中,集中器收到节点发送的配网失败消息,表明配网失败。

本发明实施例提供的配网方法的技术方案中,接收云端发送的节点的参数集;响应于接收到参数集,向节点发送链路入口消息,链路入口消息包括生成的节点号,以供节点对节点号进行验证,若验证成功,发送链路确认消息;若在指定时长内接收到节点发送的链路确认消息,向节点发送生成的加密配网数据,以供节点根据加密配网数据进行验证;若节点对加密配网数据验证成功,接收节点发送的配网成功消息,可以提高配网效率和配网过程中的安全性。

图3为本发明实施例提供的一种配网装置的结构示意图,该装置用于执行上述配网方法,如图3所示,该装置包括:接收单元11和发送单元12。

接收单元11用于接收云端发送的节点的参数集;若节点对加密配网数据验证成功,接收节点发送的配网成功消息。

发送单元12用于响应于接收到参数集,向节点发送链路入口消息,链路入口消息包括生成的节点号,以供节点对节点号进行验证,若验证成功,发送链路确认消息;若在指定时长内接收到节点发送的链路确认消息,向节点发送生成的加密配网数据,以供节点根据加密配网数据进行验证;若在指定时长内未接收到节点发送的链路确认消息,触发接收单元11继续执行接收节点发送的配网信标的步骤。

本发明实施例中,接收单元11还用于接收节点发送的配网信标,配网信标包括节点的节点号。

发送单元12还用于将节点号发送至云端,以供云端根据节点号判断是否存储有对应的参数集;若云端判断出存储有对应的参数集,触发接收单元11继续执行接收云端发送的节点的参数集的步骤。

本发明实施例中,该装置还包括第一生成单元13。

第一生成单元13用于对加密配网信标进行解密,生成节点号。

本发明实施例中,接收单元12还用于若云端判断出未存储有对应的参数集,接收云端发送的错误信息。

本发明实施例中,该装置还包括第二生成单元14。

第二生成单元14用于通过会话密钥和会话随机码对预先分配的配网数据进行加密,生成加密配网数据。

本发明实施例中,接收单元12还用于若节点对加密配网数据验证失败,接收节点发送的配网失败消息。

本发明实施例的方案中,接收云端发送的节点的参数集;响应于接收到参数集,向节点发送链路入口消息,链路入口消息包括生成的节点号,以供节点对节点号进行验证,若验证成功,发送链路确认消息;若在指定时长内接收到节点发送的链路确认消息,向节点发送生成的加密配网数据,以供节点根据加密配网数据进行验证;若节点对加密配网数据验证成功,接收节点发送的配网成功消息,可以提高配网效率和配网过程中的安全性。

本发明实施例提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述配网方法的实施例的各步骤,具体描述可参见上述配网方法的实施例。

本发明实施例提供了一种计算机设备,包括存储器和处理器,存储器用于存储包括程序指令的信息,处理器用于控制程序指令的执行,程序指令被处理器加载并执行时实现上述配网方法的实施例的各步骤,具体描述可参见上述配网方法的实施例。

图4为本发明实施例提供的一种计算机设备的示意图。如图4所示,该实施例的计算机设备30包括:处理器31、存储器32以及存储在存储32中并可在处理器31上运行的计算机程序33,该计算机程序33被处理器31执行时实现实施例中的应用于配网方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器31执行时实现实施例中应用于配网装置中各模型/单元的功能,为避免重复,此处不一一赘述。

计算机设备30包括,但不仅限于,处理器31、存储器32。本领域技术人员可以理解,图4仅仅是计算机设备30的示例,并不构成对计算机设备30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器31可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器32可以是计算机设备30的内部存储单元,例如计算机设备30的硬盘或内存。存储器32也可以是计算机设备30的外部存储设备,例如计算机设备30上配备的插接式硬盘,智能存储(smartmedia,sm)卡,安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器32还可以既包括计算机设备30的内部存储单元也包括外部存储设备。存储器32用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器32还可以用于暂时地存储已经输出或者将要输出的数据。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1