一种网关通讯方法及系统与流程

文档序号:12492001阅读:346来源:国知局
一种网关通讯方法及系统与流程

本发明涉及智能终端技术领域,特别涉及一种网关通讯方法及系统。



背景技术:

随着物联网技术的兴起,智能家居系统已经成为研究和发展的热点。智能家居系统中的智能家居通过网关设备接入云端设备,网关设备可以通过局域网与智能家居设备通讯,通过有可以通过广域网将接收到的通讯信息发送至云端设备,从而实现智能家居设备与云端设备的通讯。也就是说,所述网关设备是一种充当转换重任的计算机系统或设备,实现智能家居和云端设备的通讯。但是,在所述网关设备充当翻译器的同时,所述网关设备的安全性也成为人们关注的焦点。但是,智能家居的通讯信息在通过网关设备发送这云端服务器时并不安全,用户家中的智能设备一旦接入互联网,就存在被黑客控制的风险,尤其是用户家中的视频监控器或电子门锁,一旦被黑客控制,个人隐私及家居安全问题都将面临严峻的挑战。

因而现有技术还有待改进和提高。



技术实现要素:

本发明的目的是要提供一种网关通讯方法及系统。

为了实现上述目的,本发明所采用的技术方案如下:

一种网关通讯方法,其包括:

当云端设备接收到网关设备的注册请求时,所述云端设备为所述网关设备分配第一密钥对,其中,所述第一密钥对包括广域网通讯密钥和局域网通讯密钥;

所述网关设备采用所述广域网通讯密钥加密注册得到的账号及密码得到加密密文,并将所述加密密文发送至云端设备;

所述云端设备采用所述网关设备对应的广域网通讯密钥解密所述密文,并对解密得到的账号及密码进行认证;以及

在认证成功时为所述网关设备配置会话密钥,并在所述网关设备与云端设备通讯时,对每条通信协议利用所述会话密钥对协议包进行加密。

所述网关通讯方法,其中,所述当云端设备接收到网关设备的注册请求时,所述云端设备为所述网关设备分配第一密钥对之前包括:

APP端连接所述网关设备的AP热点,并通过UDP广播获取所述网关设备的设备信息;以及

根据所述网关设备的设备信息与所述网关设备建立TCP连接;

所述网关设备将其可连接的路由器的SSID列表发送至APP端;

所述APP端将所述SSID列表展示给用户,并将用户选取的路由器的SSID及密码通过采用协商密钥加密的通讯协议发送至所述网关设备,以使得所述网关设备连接所述路由器。

所述网关通讯方法,其中,所述APP端连接所述网关设备的AP热点,并通过UDP广播获取所述网关设备的设备信息具体包括:

所述APP端与所述网关设备的AP热点,并向所述网关设备发送获取其设备信息的UDP广播,其中,所述UDP广播携带所述APP端自身携带的第一公钥;

所述网关设备接收所述UDP广播,并将自身携带的第二私钥与所述APP端的第一公钥进行ECDH协商得到协商密钥,其中,所述协商密钥与所述APP端采用自身携带的第一私钥与所述网关设备的第二公钥通过ECDH协商得到的协商密钥相同;以及

采用协商密钥对其自身的设备信息进行加密,并将加密后的设备信息反馈至所述APP端,其中,所述反馈携带所述网关设备自身携带的第二公钥。

所述网关通讯方法,其中,所述第一公钥和第一私钥为所述APP端预先存储的第二密钥对,所述第二公钥和第二私钥为所述网关设备预先存储的第三密钥对。

所述网关通讯方法,其中,所述当云端设备接收到网关设备的注册请求时,所述云端设备为所述网关设备分配第一密钥对具体包括:

所述APP端向所述云端设备发送注册请求,其中,所述注册请求携带所述网关设备的设备信息;

所述云端设备根据所述注册请求为所述网关设备分配注册信息并将其反馈至所述APP端,其中,所述注册信息包括注册账号、密码以及第一密钥对;

所述APP端采用所述协商密钥对所述注册信息进行加密得到第二密文,并将所述第二密文发送至网关设备;

所述网关设备解密所述第二密文得到所述注册信息。

所述网关通讯方法,其中,所述云端设备采用所述网关设备对应的广域网通讯密钥解密所述密文,并对解密得到的账号和密码进行认证具体包括:

当云端设备接收到所述密文时,查找所述网关设备对应的广域网通讯密钥;

当查找到所述广域网通讯密钥时,采用所述广域网通讯密钥解密所述密文,并对解密得到的账号和密码进行认证。

所述网关通讯方法,其中,所述当认证成功时,为所述网关设备配置会话密钥,并在所述网关设备与云端设备通讯时,对每条通信协议利用所述会话密钥对协议包进行加密之后还包括:

所述网关设备下属的子设备通过APP端向云端注册以得到子设备的所述第一密钥对,并在所述网关设备与所述子设备进行本地通讯时,对每条通信协议利用所述局域网通讯密钥对协议包进行加密。

所述网关通讯方法,其中,所述在认证成功时为所述网关设备配置会话密钥,并在所述网关设备与云端设备通讯时,对每条通信协议利用所述会话密钥对协议包进行加密具体包括:

在认证成功时,随机生成一会话密钥并将所述会话密钥分配给所述网关设备;

所述网关设备与所述云端设备通讯时,对每条通信协议利用所述会话密钥对协议包进行加密;

当网关设备注销与云端设备认证时,所述云端设备失效所述会话密钥。

一种网关通讯系统,其包括:网关设备以及云端设备;

所述云端设备包括:分配模块,认证模块以及配置模块;

所述分配模块,用于当云端设备接收到网关设备的注册请求时,所述云端设备为所述网关设备分配第一密钥对,其中,所述第一密钥对包括广域网通讯密钥和局域网通讯密钥;

所述网关设备用于采用所述广域网通讯密钥加密注册得到的账号及密码得到加密密文,并将所述加密密文发送至云端设备;

所述认证模块,用于采用所述网关设备对应的广域网通讯密钥解密所述密文,并对解密得到的账号和密码进行认证;以及

所述配置模块,用于在认证成功时为所述网关设备配置会话密钥,其中,所述会话密钥用于对所述网关设备与云端设备的每条通信协议的协议包加密。

所述网关通讯系统,其还包括APP端;

所述APP端包括:获取模块、建立模块以及发送模块;

所述获取模块,用于连接所述网关设备的AP热点,并通过UDP广播获取所述网关设备的设备信息;

所述建立模块,用于根据所述网关设备的设备信息与所述网关设备建立TCP连接,并通过所述TCP连接获取所述网关设备可连接的路由器的SSID列表;

所述发送模块,用于将所述SSID列表展示给用户,并将用户选取的路由器的SSID和密码通过采用协商密钥加密的通讯协议发送至所述网关设备,以使得所述网关设备连接所述路由器。

有益效果:与现有技术相比,本发明提供了一种网关通讯方法及系统,所述方法包括:当云端设备接收到网关设备的注册请求时,所述云端设备为所述网关设备分配第一密钥对,所述网关设备采用所述广域网通讯密钥加密注册得到的账号及密码得到加密密文,并将所述加密密文发送至云端设备;所述云端设备采用所述网关设备对应的广域网通讯密钥解密所述密文,并对解密得到的账号和密码进行认证;以及在认证成功时为所述网关设备配置会话密钥,并在所述网关设备与云端设备通讯时,对每条通信协议利用所述会话密钥对协议包进行加密。本发明通过在认证成功后为网关设备与云端设备此次会话动态配置会话密钥,以提高网关设备与云端设备之间通讯的安全性。

附图说明

图1为本发明提供的网关通讯方法较佳实施的流程图。

图2为本发明提供的网关通讯方法的实施例一的流程图。

图3为本发明提供的网关通讯方法的实施例一的时序图。

图4为本发明提供的网关通讯系统的结构原理图。

图5为本发明提供的网关通讯系统的一个实施例的结构原理图。

具体实施方式

本发明提供一种网关通讯方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。

终端设备可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。

下面结合附图,通过对实施例的描述,对发明内容作进一步说明。

请参照图1,图1为本发明提供的网关通讯系统方法的较佳实施例的流程图。所述方法包括:

S100、当云端设备接收到网关设备的注册请求时,所述云端设备为所述网关设备分配第一密钥对,其中,所述第一密钥对包括广域网通讯密钥和局域网通讯密钥。

具体地,所述云端设备通过通信网络收到网关设备发送的注册请求,该注册请求中携带本次请求接入云端设备的网关设备的设备信息。所述通信网络可以是2G网络、3G网络、4G网络、Wi-Fi、或者有线网线等。其中,网关设备的标识可以是在设备出厂前由厂家为其唯一设定的设备序列码(类似以太网的MAC地址)等。

所述第一密钥对包括广域网通讯密钥和局域网通讯密钥,所述广域网通讯密钥用户网关设备得到云端设备认证之前与云端设备通信使用,所述局域网通讯密钥用户网关设备和与其处于同一局域网内的子设备通信使用。这样将广域网和局域网的密钥分开,可以提高通信的安全行。

在本实施例中,所述网关设备的accesskey和localkey的第一密钥对够可以在后台配置效期,如,一年。在第一密钥对过期后由APP端替网关设备重新注册以更换第一密钥对。在实际应用中,当所述第一密钥对密钥快过期前预设时间(如15天)提示。也就是说,云端设备会提前15天让所述网关设备的相关联的APP端提示用户是否更改密钥。当用户选择是时,发起重新注册。在第一密钥对过期后,云端设备让APP端提示用户所述第一密钥对到期需重新注册而云端设备在处理重新注册时,要生成新的第一密钥对(accesskey、localkey)。当然,也可以预设设置网关设备的服务有效期(如,两年),并采用与有效期相同的办法进行提示,这里就不再赘述。

进一步,为了网关设备与云端设备通信的安全行,可以通过已知所述网关设备的其他设备(记为APP端)代为网关设备想云端设备注册,并将注册得到的认证信息发送至网关设备,网关设备在根据所述认证信息进行后续的认证步骤。相应的,在所述当云端设备接收到网关设备的注册请求时,所述云端设备为所述网关设备分配第一密钥对,其中,所述第一密钥对包括广域网通讯密钥和局域网通讯密钥之前还可以APP端获取网关设备的设备信息的过程,所述过程具体可以包括:

S1、APP端连接所述网关设备的AP热点,并通过UDP广播获取所述网关设备的设备信息;

S2、根据所述网关设备的设备信息与所述网关设备建立TCP连接;

S3、所述网关设备将其可连接的路由器的SSID列表发送至APP端;

S4、所述APP端将所述SSID列表展示给用户,并将用户选取的路由路由器的SSID及密码通过采用协商密钥加密的通讯协议发送至所述网关设备,以使得所述网关设备连接所述路由器。

具体的来说,在所述步骤S1中,所述网关设备启动并作为一个AP热点,所述APP端连接所述网关设备的AP热点。所述网关设备的AP热点可以采用二维码形式,并且所述二维码包含所述网关设备的MAC地址。所述APP端通过扫描所述二维码与所述网关设备建立连接。

示例性的,所述APP端连接所述网关设备的AP热点,并通过采用协商密钥进行加密的UDP广播获取所述网关设备的设备信息具体包括:

S11、所述APP端与所述网关设备的AP热点,并向所述网关设备发送获取其设备信息的UDP广播,其中,所述UDP广播携带所述APP端自身携带的第一公钥。

具体地,所述APP预先存储的一密钥对,记为第二密钥对内,所述第二密钥对包含第一私钥和第一公钥。同样的,所述网关设备也预先存储一个密钥对,记为第三密钥对,所述第三密钥对包含第二私钥和第二公钥。在实际应用中,所述第二密钥对可以是APP端启动时自动生成,并且APP端每次启动时生成的第二密钥对可以是不同。相应的,所述第三密钥对也可以是所述网关设备启动时自动生成的,并且每次启动时生成的第三密钥对也可以是不同的。值得说明的,所述第二密钥对和第三密钥对保护的私钥只有其对应的设备自身知道,而另外设备仅能获知第二密钥对和第三密钥对的公钥,这样在保证两个设备正常通讯的前提下,也提高了通讯的安全性。

所述APP端通过所述UDP广播通道向所网关设备发送一个获取网关设备的设备信息的UDP广播。所述UDP广播的通讯协议可以包括分负载区和数据区,所述负载区为APP端的第一公钥public key,所述数据区为获取所述网关设备的设备信息的搜索命令,如searchDevice。所述设备信息可以网关设备的IP地址、端口port3、是否入网、产品参数(如MAC地址、SN码)等。

S12、所述网关设备接收所述UDP广播,并将自身携带的第二私钥与所述APP端的第一公钥进行ECDH协商得到协商密钥,其中,所述协商密钥与所述APP端采用自身携带的第一私钥与所述网关设备的第二公钥通过ECDH协商得到的协商密钥相同。

具体地,所述ECDH是基于ECC(Elliptic Curve Cryptosystems,椭圆曲线密码体制)的DH(Diffie-Hellman)密钥交换算法,通过所述ECDH算法可以在两个设备不共享各种私钥的情况下协商出一协商密钥agreekey,并可以通过所述协商密钥进行加密和解密。从而,在本实施例中,所述APP端与网关设备之间采用ECDH算法根据第一私钥和第二公钥协商出协商密钥。

所述数据区采用所述协商密钥agreekey进行加密。所述加密方式可以AES128(算法/模式/填充:AES/CBC/PKCS5Padding)加密,例如,

KEY_ALGORITHM = "AES";CIPHER_ALGORITHM_CBC = "AES/CBC/PKCS5Padding";加密和解密方法分别为:

String encrypt(String content, String key) //加密方法

String decrypt(String data, String key) //解密方法

其中,content表示内容,key表示密钥。

例如,key = "kvCMU5EerVjVIFk66dUZdSnttLyWCSbv"

假设数据加密前为:

<msg cmd="getwayrole" type="common" seq="xx"> <getwayrole> <gatewaytid>1042029</gatewaytid><usertid/></getwayrole></msg>;

加密后为:

QFoulV0EugD2rKN10aLgCqqrVtrJ6pfzAWFTrGfOXRUWmNuC1LMu9Srml3iR01aCEZqfm+TarW9OtJLSfGRzsTY7ivAHgTHRG6M6cNINYLLFcdUtbIk0dipqoxjExUnHRJjTzYZ+xbOBnVG2TJvBai92NCHnmkGmnirugVqio1TP+KK6W9n4C4R9JTk141wA;

解密后为:

<msg cmd="getwayrole" type="common" seq="xx"> <getwayrole> <gatewaytid>1042029</gatewaytid><usertid/></getwayrole></msg>。

S13、采用协商密钥对其自身的设备信息进行加密,并将加密后的设备信息反馈至所述APP端,其中,所述反馈携带所述网关设备自身携带的第二公钥。

具体地,所述网关设备接收所述请求信息,获取所述请求信息携带的APP端的第一公钥,采用ECDH算法根据所述第一公钥和其自身携带的第二私钥协商得到所述协商密钥agreekey。当然,采用ECDH算法根据第一私钥和第二公钥也可以得到所述协商密钥agreekey。在实际应用中,所述网关设备监听约定端口port1的UDP包,当收到该UDP广播后,获取所述UDP广播负载区携带的第一公钥,根据所述第一公钥和其自身的第二私钥进行ECDH协商得到所述协商密钥,以用于对反馈信息进行加密。

进一步,所述网关设备根据所述获取的请求信息获取其自身的设备信息,并在获取到其自身的设备信息后,采用所述协商密钥对所述设备信息进行AES128加密。再将加密后的设备信息反馈至所述APP端,所述反馈信息中携带所述网关设备的第二公钥。在实际应用中,网关设备在获取到设备信息(deviceInfo信息)后,采用协商密钥agreekey对设备信息进行AES128加密,再将所述加密后设备信息放入数据区,网关设备的第二公钥public key放入负载区形成UDP广播,并向该网段(如255.255.255.0)和另一个端口port2(如10072)发出所述UDP广播。

在所述步骤S2中,所述APP端获取所述网关设备的设备信息后,向网关设备的IP和port3发起TCP连接(即创建TCP socket)。在创建好TCP socket后,网关设备将它搜索到的所有路由器WiFi热点列表(SSID)放入数据区,并通过所述TCP socket发给APP端。

在所述步骤S3中,在建立TCP连接后,所述网关设备搜索其可以连接的路由器,并将所有可连接的路由器的SSID形成SSID列表,并将所述SSID列表发送至APP端,以供用户为所述网关设备选取可以连接的路由器。

在所述步骤S4中,所述APP端接收所述SSID列表,并接收用户为网关设备选择的需连接的路由器(SSID)以及输入该路由器(router)的密码PWD。再将所述SSID+PWD用agreekey进行AES128加密放入TCP socket数据区,通过所述TCP socket发给网关设备。这样为网关端可以根据SSID+PWD接入所述路由器而配置入网。

在实施例中,所述步骤S100、当云端设备接收到网关设备的注册请求时,所述云端设备为所述网关设备分配第一密钥对,其中,所述第一密钥对包括广域网通讯密钥和局域网通讯密钥具体可以包括:

S101、所述APP端向所述云端设备发送注册请求,其中,所述注册请求携带所述网关设备的设备信息。

具体地,所述APP端在网关设备配置入网后,所述APP端重新连接路由器,并启用startTLS以替所述网关设备在云端设备上注册用户。相应的,所述APP端向所述云端设备为所述网关设备发送注册请求,并且所述注册请求中携带所述网关设备的设备信息。所述设备信息可以包括网关设备的IP地址、端口port3、是否入网、产品参数(如MAC地址、SN码)等。

S102、所述云端设备根据所述注册请求为所述设备信息分配注册信息并将其至所述APP端,其中,所述注册信息包括注册账号以及第一密钥对。

具体地,云端设备根据所述请求信息为所述网关设备注册账号tid,并为所述网关设备分配第一密钥对,所述第一密钥对包含即广域网通讯密钥accesskey和局域网通讯密钥localkey,将由tid,accesskey,localkey构成的注册信息反馈给APP端。

S103、所述APP端采用所述协商密钥对所述注册信息进行加密得到第二密文,并将所述第二密文发送至网关设备。

具体地,所述APP端将所述注册信息(tid,accesskey,localkey)用agreekey进行AES128加密,并将加密后的注册信息放入TCP协议包的数据区发送至网关设备。

S104、所述网关设备解密所述第二密文得到所述注册信息。

具体,所述网关设备用agreekey进行对数据区进行AES128解密,得到所述注册信息,并将所述注册信息(tid、accesskey、localkey)在本地。

S200、所述网关设备采用所述广域网通讯密钥加密注册得到的账号及密码得到加密密文,并将所述加密密文发送至云端设备。

具体地,所述网关设备获取到所述注册信息后,获取所述注册信息的账号以及接收到用户输入的所述账号对应的密码,并用accesskey对所述账号及密码(tid,password)进行AES128加密的加密密文发送至云端设备。

S300、所述云端设备采用所述网关设备对应的广域网通讯密钥解密所述密文,并对解密得到的账号及密码进行认证。

具体地,所述云端设备接收到加密密文后,查找所述网关设备对应的accesskey,并采用查找到accesskey对所述密文进行AES128解密得到账号信息,并对所账号信息进行认证。

示例性的,所述云端设备采用所述网关设备对应的广域网通讯密钥解密所述密文,并对解密得到的账号和密码进行认证具体包括:

S301、当云端设备接收到所述密文时,查找所述网关设备对应的广域网通讯密钥;

S302、当查找到所述广域网通讯密钥时,采用所述广域网通讯密钥解密所述密文,并对解密得到的账号和密码进行认证。

S400、在认证成功时为所述网关设备配置会话密钥,并在所述网关设备与云端设备通讯时,对每条通信协议利用所述会话密钥对协议包进行加密。

具体地,在认证成功时为所述网关设备的当前会话分配一会话密钥sessionkey。所述sessionkey是动态生成的,并网关设备每次认证登录时都不一样。所述在所述网关设备与云端设备通讯时,对每条通信协议利用所述会话密钥对协议包进行加密指的是网关设备端发往云端的所有协议包,均用sessionkey进行AES加密;云端查找该设备的sessionkey,解密密文形成明文协议,对该协议进行处理,若该协议有回包,云端也用sessionkey对回包进行AES加密;网关设备端利用存储的sessionkey进行解密。

示例性的,所述在认证成功时为所述网关设备配置会话密钥,并在所述网关设备与云端设备通讯时,对每条通信协议利用所述会话密钥对协议包进行加密具体包括:

S401、在认证成功时,随机生成一会话密钥并将所述会话密钥分配给所述网关设备;

S402、所述网关设备与所述云端设备通讯时,对每条通信协议利用所述会话密钥对协议包进行加密;

S403、当网关设备注销与云端设备认证时,所述云端设备失效所述会话密钥。

在本发明的另一个实施例中,所述网关通讯方法还包括:

S500、所述网关设备的子设备向云端注册以得到所述第一密钥对,并在所述网关设备与所述子设备进行通讯时,对每条通信协议利用所述局域网通讯密钥对协议包进行加密。

具体地,所述通过网关设备连接云端的子设备也获取所述第一密钥对,并在子设备与网关设备通讯时采用局域网通讯密钥进行加密,这样子设备与网关设备通讯和网关设备与云端设备通讯采用不同的密钥进行加密,这样可以进一步保证子设备与云端设备通讯的安全行。当然,所述子设备也可以通过APP端代为注册的方式获取所述第一密钥对。对于APP端代为注册的过程网关设备获取第一密钥对时已经详细说明,在这里就不再一一陈述。

为了进一步理解本发明提供的网关通讯方法,下面结合具体实施例加以说明。

实施例一

本实施例提供一种网关通讯方法,如图2所示,其具体包括:

H10、APP端预先配置第二密钥对,所述网关设备预先配置第三密钥对,其中,所述第二密钥对和第三密钥对均包括公钥public key和私钥private key;

H20、所述APP端扫描所述网关设备预先设置的二维码形式的AP热点,其中,所述二维码包括所述网关设备的MAC地址;

H30、所述APP端连接所述网关设备的AP热点,并向所述网关设备发送UDP广播,其中,所述UDP广播的通讯协议分负载区和数据区,所述负载区为APP端的public key,所述数据区为采用由第一私钥和第二公钥通过ECDH携带得到的agreekey进行加密的搜索命令;

H4、所述网关设备监听到该UDP广播时,采用由第二私钥和第一公钥通过ECDH携带得到的agreekey进行解密以得到搜索指令,并根据所述搜索指令将所述APP端发送反馈UDP广播,其中,所述反馈UDP广播的数据区为采用agreekey加密的设备信息,负载区为网关设备的public key;

H50、APP端接收所述反馈UDP广播,并用agreekey进行解密得到网关设备的设备信息,并根据所述设备信息与所述网关设建立TCP连接;

H60、网关设备将其搜索到的所有路由器WiFi热点的SSID列表通过TCP socket发给APP端;

H70、APP端将所述SSID列表显示给用户,并根据用户的选择确定网关设备需连接的路由器,并将所述路由器的SSID及密钥采用agreekey后通过TCP socket发给网关设备,以使得网关设备连接所述路由器;

H80、APP端重新连接路由器,并启用startTLS;

H90、APP端向云端设备发送注册请求,所述注册请求携带所述网关设备的设备标识;

H100、所述云端设备为所述设备标识分别注册信息,所述注册信息包括注册账号以及广域网通讯密钥accesskey和局域网通讯密钥localkey构成的第一密钥对;

H110、所述APP端采用所述agreekey对所述注册信息进行加密得到第二密文,并所述第二密文发送至网关设备;

H120、所述网关设备解密所述第二密文得到所述注册信息,并将所述注册信息保存至本地;

H130、网关设备向所述云端设备发送登录认证请求,其中,所述登录认证请求保护用accesskey加密注册账号密码;

H140、云端设备查找所述网关设备的accesskey,并采用accesskey解密登录认证请求,并所述登录认证请求进行用户认证;

H150、若认证通过,则为所述网关设备的当前会话分配会话密钥sessionkey,其中,所述sessionkey是动态生成其每次登录不同;

H160、网关设备与云端进行通讯,并对每条通信协议利用所述会话密钥对协议包进行加密。

实施例二

本实施例提供了一种网关通讯方法,如图3所示,其包括:

APP端预先存储由第一公钥public key和第一私钥private key构成的第二密钥对;

网关设备预先存储由第二公钥public key和第二私钥private key构成的第三密钥对;

所述APP端向云端设备发送登录请求,其中,所述登录请求携带所述APP端的设备标识;

所述云端设备认证登录,并为所述APP端分配一随机数,以及将所述随机数保存到当前会话内;

当认证登录成功时,所述云端设备将所述认证结果以及所述随机数反馈至所述APP端;

网关设备监听到用户手工复位时,检测是否与云端设备正常通信;

当通讯正常时,网关设备向云端设备发送复位解绑协议请求;

所述云端设备根据所述请求解除所述网关设备的所有绑定关系;

所述云端设备将复位解绑结果反馈至网关设备;

所述网关设备进入softap模式;

所述APP端连接所述网关设备的AP热点,其中,所述AP热点包含SSID(品牌+‘_’+ 品类+‘_’)+MAC地址后3bytes;

所述APP端向所述网关设备发送UDP广播,所述UDP广播的数据区配置searchDevice命令(带该设备MAC、随机数A),负载区配置第第一公钥public key;

网关设备向APP端发送反馈UDP广播,其中,所述反馈UDP广播的数据区配置用第一公钥和第二私钥通过ECDH协商的得到的会话密钥加密的设备信息deviceInfo(含mac、uuid、复位标识resetFlag、hash值),负载区为第二公钥;

所述APP端采用自身携带的第一私钥和接收到的第二公钥进行ECDH协商得到所述协商密钥,并采用所述协商密钥解析所述设备信息;以及

根据所述设备信息与所述网关设备建立TCP连接;

所述网关设备通过所述TCP连接将其搜索到的SSID列表发送至所述APP端;

所述APP端将接收的SSID列表展示给用户,并将用户选取的SSID以及输入的密码采用所述协商密钥加密后发送至所述网关设备;

所述网关设备采用所述SSID及密码连接路由器;

所述APP端替网关设备向云端设备注册用户(带mac、uuid及sn);

所述云端设备根据所述APP端的请求为所述网关设备注册用户,同时为所述网关设备分配第一密钥对,其中,所述第一密钥对包括广域网通讯密钥accesskey和局域网通讯密钥localkey;以及

在注册成功时,将所述网关设备对应的账号tid、密码password、accesskey及localkey反馈至APP端;

所述APP端采用ECDH协商出的协商密钥进行AES加密tid、password、 accesskey及localkey生成加密密文,并将所述加密密文发送至网关设备;

所述网关设备解密所述密文,并存储解密得到的tid、password、accesskey和localkey;

所述网关设备向云端设备发送登录认证请求,其中,所述登录认证请求携带采用accesskey加密tid和password;

所述云端设备查找所述网关设备的accesskey并登录认证请求,以及对所述网关设备进行用户认证,若认证通过为所述网关设备的当前会话分配会话密钥sessionkey;

所述云端设备向网关设备发送认证成功反馈,所述反馈携带所述会话密钥sessionkey;

所述网关设备接收所述反馈并存储sessionkey,并才用sessionkey加密任一发包(例如,远程控制命令);

所述云端设备查找所述网关设备的sessionkey,并解密所述发包;

解密成功时,所述云端设备用sessionkey加密任何回包发送至网关设备;

所述网关设备利用存储的sessionkey解密所述回包;

所述APP端向云端设备发起网关设备绑定(带tid、hash值)验证;

所述云端设备检测所述tid是否存在以及所述hash值是否合法,其中,所述Hash为设备验证码+随机数;

当tid存在和hash值合法时,检测所述合并是否被人绑定;如果否,则执行绑定成为主人;如果是,则返回已被别人绑定;

所述APP端根据所述反馈结果显示不同界面,如,连接成功、连接失败、设备已被绑定。

本发明还提供了一种网关通讯系统,如图4所示,其包括:网关设备100以及云端设备200;

所述云端设备200包括:分配模块201,认证模块202以及配置模块203;

所述分配模块201,用于当云端设备接收到网关设备的注册请求时,所述云端设备为所述网关设备分配第一密钥对,其中,所述第一密钥对包括广域网密钥和局域网密钥;

所述网关设备100用于采用所述广域网密钥加密注册得到的账号和密码得到加密密文,并将所述加密密文发送至云端设备;

所述认证模块202,用于采用所述网关设备对应的广域网密钥解密所述密文,并对解密得到的账号和密码进行认证;以及

所述通讯模块203,用于在认证成功时为所述网关设备配置会话密钥,其中,所述会话密钥用于在所述网关设备与云端设备时对每条通信协议的协议包加密。

所述网关通讯系统,如图5所示,其还包括APP端300;

所述APP端300包括:获取模块301、建立模块302以及发送模块303;

所述获取模块301,用于用于连接所述网关设备的AP热点,并通过UDP广播获取所述网关设备的设备信息;

所述建立模块302,用于根据所述网关设备的设备信息与所述网关设备建立TCP连接,并通过所述TCP连接获取所述网关设备可连接的路由器的SSID列表;

所述发送模块303,用于将所述SSID列表展示给用户,并将用户选取的路由路由器的SSID即密码通过采用协商密钥加密的通讯协议发送至所述网关设备,以使得所述网关设备连接所述路由器。

上述网关通讯系统的各个模块在上述方法中已经详细说明,在这里就不再一一陈述。

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

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

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

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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