一种智能设备安全接入的方法及系统与流程

文档序号:12622187阅读:277来源:国知局
一种智能设备安全接入的方法及系统与流程

本发明涉及智能设备技术领域,特别涉及一种智能设备安全接入的方法及系统。



背景技术:

随着物联网技术的兴起,智能家居系统已经成为研究和发展的热点。智能家居系统中的智能设备可以通过用户终端,例如手机、平板电脑等进行远程控制。在智能家居系统中,智能设备通过智能家居控制器接入云端服务器,用户通过远程控制终端上安装的远程控制软件实现对智能设备的控制。但是,控制命令在通过云端服务器进行传递时并不安全,用户家中的智能设备一旦接入互联网,就存在被黑客控制的风险,尤其是用户家中的视频监控器或电子门锁,一旦被黑客控制,个人隐私及家居安全问题都将面临严峻的挑战。智能家居系统的安全问题将成为智能设备远程控制的关键问题,也将制约智能家居产业的发展。

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



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的不足,提供一种智能设备安全接入的方法及系统,用以解决现有技术中存在远程控制终端通过互联网与智能家居系统中的智能设备进行交互时,容易受到黑客控制,安全性较低的问题。

为了解决上述技术问题,本发明所采用的技术方案如下:

一种智能设备安全接入的方法,其包括:

当云端服务器收到智能设备发送的接入请求时,云端服务器向智能设备发送携带随机因子的挑战报文;

智能设备接收并解析所述挑战报文,并向所述云端服务器发送采用第一加密密钥加密的响应报文,其中,所述响应报文携带利用第二加密密钥对解析得到的随机因子加密而生成第一密文;

云端服务器接收并解析所述响应报文以获取响应报文携带的第一密文,并利用所述第二加密密钥加密随机因子生成第二密文;将第一密文和第二密文进行比较,将所述比较结果采用第一加密密钥加密后发送给智能设备。

所述智能设备安全接入的方法,其中,所述利用第二加密密钥对解析得到的随机因子加密而生成第一密文具体包括:

根据随机因子,采用预设密钥获取方法获取第一加密密钥;

将第一加密密钥倒序排列获取第二加密密钥,利用所述第二加密密钥对随机因子进行加密得到第一密文。

所述智能设备安全接入的方法,其中,所述根据随机因子,采用预设密钥获取方法获取第一加密密钥具体为:

获取随机因子首字符的ASCII值,并判断所述ASCII值得奇/偶性;

如果ASCII值为奇数,则取随机因子的奇数位字符组成第一加密密钥;

如果ASCII值为偶数,则取随机因子的偶数位字符组成第一加密密钥。

所述智能设备接入安全的方法,其中,所述利用第二加密密钥对解析得到的随机因子加密而生成第一密文具体包括:

将解析得到的随机因子与预设字符串组合得到第一随机因子;

利用第二加密密钥加密第一随机因子得到第一密文。

所述智能设备安全接入的方法,其中,所述利用所述第二加密密钥加密随机因子而生成第二密文具体包括:

利用所述第二加密密钥加密第一随机因子得到第二密文。

所述智能设备安全接入的方法,其中,当智能终端接收到比较结果为相同之后,其还包括:

智能设备向云端服务器发送携带至少智能设备验证码的注册报文,其中,所述智能设备验证码终端设备内Wi-Fi板携带的验证码;

云端服务器接收并解析所述注册报文,并在预存的智能设备验证码中查找该验证码;如果查找到,则执行注册并反馈用户账号及密文密码,如果未查找到,则反馈注册失败。

所述智能设备安全接入的方法,其中,当执行注册并反馈用户账号及密文密码之后,其还包括:

智能设备发送携带用户账号及密文密码的登陆报文;

云端服务器接收并解析所述登陆报文,验证解析得到的用户账号及密文密码是否正确;如果正确,则登陆成功,如果不正确,则登陆失败。

所述智能设备安全接入的方法,其中,所述智能设备接收并解析所述挑战报文后,所述智能设备与云端服务器进行通信时,对每条通信协议利用所述第一加密密钥对协议包进行加密。

所述智能设备安全接入的方法,其中,所述对每条通信协议利用所述加密密钥对协议包进行加密具体包括:

将每条通信协议包含的字符串按加密密钥长度划分为若干子字符串,利用所述第一加密密钥分别对子字符串进行位异或运算,得到加密通信协议。

一种智能设备安全接入的系统,其包括:智能设备和云端服务器;

所述智能设备包括:

Wi-Fi模块,用于接收并解析所述挑战报文,并向所述云端服务器发送采用第一加密密钥加密的响应报文,其中,所述响应报文携带利用第二加密密钥对解析得到的随机因子加密而生成第一密文;

所述云端服务器包括:

挑战模块,用于当云端服务器接收到智能设备发送接入请求时,所述云端服务器向智能设备发送携带随机因子的挑战报文,其中,随机因子为云端服务器随机生成的字符串;

执行模块,用于接收并解析所述响应报文以获取响应报文携带的第一密文,并利用所述第二加密密钥加密随机因子生成第二密文;将第一密文和第二密文进行比较,将所述比较结果采用第一加密密钥加密后发送给智能设备。

有益效果:与现有技术相比,本发明提供了本发明公开了一种智能设备安全接入的方法及系统,当云端服务器收到智能设备发送接入请求时,云端服务器向智能设备发送携带随机因子的挑战报文,智能设备接收并解析所述挑战报文,并向所述云端服务器发送采用第一加密密钥加密的响应报文;云端服务器接收并解析所述响应报文以获取响应报文携带的第一密文,并利用第二加密密钥加密随机因子生成第二密文;将第一密文和第二密文进行比较,将所述比较结果采用第一加密密钥加密后发送给智能设备。本发明通过采用Challenge-Response机制,现有技术中存在远程控制终端通过互联网与智能家居系统中的智能设备进行交互时,容易受到黑客控制,安全性较低的问题。

附图说明

图1为本发明提供的一种智能设备安全接入的方法较佳实施例的流程图。

图2为本发明提供的一种智能设备安全接入的方法较佳实施例的时序图。

图3为本发明提供的一种智能设备安全接入的一个实施例的流程图。

图4为本发明提供的一种智能设备安全接入的另一个方法较佳实施例的流程图。

图5为本发明提供的一种智能设备安全接入的再一个方法较佳实施例的流程图。

图6为本发明提供的智能设备安全接入的系统的结构原理图。

具体实施方式

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

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

请参见图1和图2,图1为本发明提供的智能设备安全接入的方法较佳实施例的流程图,图2为本发明提供的智能设备安全接入的方法较佳实施例的时序图。所述方法包括:

S100、当云端服务器收到智能设备发送的接入请求时,云端服务器向智能设备发送携带随机因子的挑战报文。

具体的,云端服务器通过通信网络收到智能设备发送的接入请求,该接入请求中携带本次请求接入云端服务器的智能设备的设备标识。根据远程控制终端可以支持的通信技术,通信网络可以是2G网络、3G网络、4G网络、Wi-Fi、或者有线网线等。其中,智能设备的标识可以是在设备出厂前由厂家为其唯一设定的设备序列码(类似以太网的MAC地址)等。

云端服务器接收到该接入请求后,云端服务器向该智能设备发送携随机因子A的挑战(Challenge)报文,该随机因子是云端服务器随机生成的字符串。在实际应用中,云端服务器发送的挑战报文中携带信息为随机因子A经过base64编码后的信息。也就是说,云端服务器发送的挑战报文携带的信息为:xxx=encodeBase64(随机因子A),其中encodeBase64是对随机因子A进行base64编码。云端服务器在将携带随机因子A的挑战报文发送给智能设备的同时,将该随机因子A存储于该智能设备对应的会话中。其中,所述会话是云端服务器根据智能设备接入请求中携带的智能设备的唯一标识而建立,用于与该智能设备进行临时通信,以对该智能设备进行验证。

由于智能设备发送的接入请求中携带该智能设备的唯一标识,从而云端服务器内可以预先存储用于现在该智能设备的数据信息。这样可以在智能设备发送接入请求时,根据该智能设备的唯一标识,查找云端服务器存储的智能设备的数据信息中是否存在该智能设备,如果存在,则建立临时会话,并发送携带随机因子的挑战报文,如果不存在,则反馈拒绝接入的信息。这样可以增强智能设备接入的安全。

值得说明的,所述云端服务器Web管理后台预先存储了智能设备的数据信息,该数据信息可以包括:生产线设备信息(IotDeviceInfo),设备的条形码(device_code)和设备验证码(device_identifyingcode)。并且所述生产线设备信息、设备的条形码和设备验证码在设备出厂时存储于设备的中。例如,存储与设备的Wi-Fi模块内。也就是说,云端服务器预先存储了允许接入该云端服务器的智能设备的设备信息。只有云端服务器允许接入的智能设备,云端服务器创建会话,对其进行挑战。并且智能设备通过云端服务器接收远程设备或者远程控制系统的控制指令,以及与远程控制设备或者远程控制系统进行通信。这样可以提供智能设备远程控制的安全性。

S200、智能设备接收并解析所述挑战报文,并向所述云端服务器发送采用第一加密密钥加密的响应报文,其中,所述响应报文携带利用第二加密密钥对解析得到的随机因子加密而生成第一密文。

具体地,智能设备接收到云端服务器发送的挑战报文,并解析所述挑战报文,获取挑战报文携带的信息xxx=encodeBase64(随机因子A),并对xxx进行Base64解码,得到随机因子A,再利用第二加密密钥对随机A加密得到第一密文,并想云端服务器发送携带第一密文的响应报文。所述响应报文为采用第一加密密钥进行加密的响应报文。所述第一加密密钥为根据采用预存的加密密钥的获取方法解析得到的随机因子获取的。所述第二加密密钥为第一加密密钥倒序排列得到的。所述第二加密密钥的获取方法其具体可以包括:

S201、计算随机因子首字符的ASCII值,并判断所述ASCII值得奇/偶性;如果ASCII值为奇数,则取随机因子的奇数位字符组成第一加密密钥;如果ASCII值为偶数,则取随机因子的偶数位字符组成第一加密密钥。

具体地,由于随机因子是一个字符串,从而可以计算随机因子A的首字符的ASCII值。如,随机因子A=“axbycz1k2h”为10个字符的字符串,那么A的首字符为a,其ASCII码值97为奇数,采集奇数位字符,得密钥为“abc12”。

S204、对第一加密密钥进行倒序排列得到第二加密密钥。

具体地,对第一加密密钥进行倒序排列,如第一加密密钥为“abc12”,那么对其进行倒序排列得到第二加密密钥为“21cba”。

S205、利用第二加密密钥对随机因子进行加密得到第一密文。

具体地,利用第二加密密钥对随机因子进行加密所采用的加密方法为智能设备预先存储现有加密方法,这里就不一一陈述,仅给出例子加以说明。如,利用第二加密密钥进行异或运算进行加密。

进一步,在获取第一密文之后,通过采用Base64编码对第一密文进行编号后,作为响应报文的信息发送至云端服务器。所述响应报文携带信息可以为:yyy=encodeBase64(reverseKeyDe(A)),其中,reverseKeyDe是采用加密密钥对随机因子进行加密,encodeBase64是base64编码。并将携带yyy=encodeBase64(reverseKeyDe(A))信息的响应报文发送至云端服务器。

S300、云端服务器接收并解析所述响应报文以获取响应报文携带的第一密文,并利用所述第二加密密钥加密随机因子生成第二密文;将第一密文和第二密文进行比较,将所述比较结果采用第一加密密钥加密后发送给智能设备。

具体地,云端服务器收到智能设备发送的响应报文,并解析该响应报文获取器携带的响应报文信息,对该响应报文信息进行Base64位解码得到第一密文。然后,利用第二加密密钥对会话中存储的随机因子A进行加密得到第二密文。也就是说,首先对响应报文携带的yyy进行decodeBase64(yyy)取出第一密文aa。在根据智能设备会话中存储随机因子A,利用第二加密密钥计算得到第二密文bb=reverseKeyDe(A),然后将bb与aa进行比较,若相同则闯关通过(success),接收智能设备接入请求,否则闯关失败(failure),拒绝智能设备接入请求,并将闯关结果通过预设第一加密密钥加密后发送给智能设备。值得说明的,云端服务器中也预先存储获取加密密钥的方法,其也是计算随机因子首字符的ASCII值,并判断所述ASCII值得奇/偶性;如果ASCII值为奇数,则取随机因子的奇数位字符组成第一加密密钥;如果ASCII值为偶数,则取随机因子的偶数位字符组成第一加密密钥;将第一加密密钥进行倒序排列得到的。也就是说,云端服务器也预先存储了加密密钥的获取方法,并且两者加密密钥的获取方法相同。这样,当其他非法设备接入云端服务器时,其没有预先存储加密密钥的获取方法,从而无法通过云端服务器网关的挑战,提高了终端设备接入云端服务器的安全性。

其中,当云端服务器确定智能设备接入的结果后,将该接入结果采用加密密钥(如“abc12”)进行加密后,发送给智能设备端,并且云端服务器要为每个连接自己的终端设备记录其对应的加密密钥。

进一步,当智能设备响应云端服务器发送的挑战报文后,智能终端与云端服务器的所有通信都采用第一加密秘钥进行加密。也就是说,当云端服务器接收智能终端的挑战开始,云端服务器与智能终端的所有通信的报文都采用第一加密秘钥进行加密,采用加密后的密文进行通信,进一步调高了智能终端与云端服务器通信的安全性。

本发明公开了一种智能设备安全接入的方法及系统,当云端服务器收到智能设备发送接入请求时,云端服务器向智能设备发送携带随机因子的挑战报文,智能设备接收并解析所述挑战报文,并向所述云端服务器发送采用第一加密密钥加密的响应报文;云端服务器接收并解析所述响应报文以获取响应报文携带的第一密文,并利用第二加密密钥加密随机因子生成第二密文;将第一密文和第二密文进行比较,将所述比较结果采用第一加密密钥加密后发送给智能设备。本发明通过采用Challenge-Response机制,现有技术中存在远程控制终端通过互联网与智能家居系统中的智能设备进行交互时,容易受到黑客控制,安全性较低的问题。

如图3所示,在本发明一个实施例中,所述云端服务器接受智能设备接入云端服务器网关的请求并将反馈发送至智能设备后,还包括如下步骤:

S400、智能设备向云端服务器发送携带至少智能设备验证码的注册报文,其中,所述智能设备验证码终端设备内Wi-Fi板携带的验证码。

具体地,智能设备通过网络向云端服务器发送携带至少智能设备验证码的注册报文,所述验证码预先存储于智能设备的Wi-Fi模块内,用于标识该智能设备的唯一标识。当然,注册报文中还可以包括:智能设备MAC地址、设备具体型号(devicetype)、生成厂家(company)和产品类型(category)等。所述产品类型可以是aircondition空调、washer洗衣机、fridge冰箱、airpurifiers空气净化器、waterpurifier净水器等。

S500、云端服务器接收并解析所述注册报文,并在预存的智能设备验证码中查找该验证码;如果查找到,则执行注册并反馈用户账号及密文密码,如果未查找到,则反馈注册失败。

具体地,当云端服务器接收注册报文后,云端服务器将接收到注册报文中携带的验证码与预先存储的数据库中的验证码记录进行对比,如果预存数据库中不存在该验证码,则返回验证码错误,如果预存数据库中存在该验证码,则返回注册成功的用户账号和密文密码。当然,智能设备存储云端服务器反馈的用户账号和密码,当下次登录时直接用此用户账号(userid)和密文密码(encrypt_password)登录。其中密文密码是一个十六进制字符串,为明文密码的SHA-1摘要。

如图4所示,在本发明另一个实施例中,所述云端服务器将用户账号和密码密文反馈给智能设备之后还包括:

S600、智能设备发送携带用户账号及密文密码的登陆报文。

具体地,智能设备接收到云端服务器发送的用户账号和密码密文之后,向云端服务器发送写到该用户账号及密文密码的登陆报文。所述登陆报文具体包含:

用户账号(username);

资源名(resource),如,空调aircon-linux-1,洗衣机washer-linux-1,冰箱fridge-linux-1等;

密码密文(password),其可以采用如下格式:

pwd#version#company#category#barcode#mac#routermac#ssid#childcategory#netev;

其中,各字段含义如下:

pwd:密文密码;

version:版本号;

company:厂家;

category:大品类;

barcode:主机条形码;

mac:Wi-Fi模块的MAC地址;

routermac:路由器MAC地址;

ssid:连接Wi-Fi的SSID;

childcategory:小品类或具体型号,如titanium钛金空调;

netev:网络环境,如2g: 2g信号、3g: 3g信号、4g:4g信号、Wi-Fi: Wi-Fi环境、wired:有线网线连接。

S700、云端服务器接收并解析所述登陆报文,验证解析得到的用户账号及密文密码是否正确;如果正确,则登陆成功,如果不正确,则登陆失败。

具体地,云端服务器返回认证结果,如,成功或失败。并且当认证失败时可以区分不同的错误码(code)发送至智能设备。例如,

401:not-authorized,即认证不通过,则终端不再尝试连接;

403:由于家电型号不运营而禁止登录,则终端不再尝试连接;

404:账号被禁用,则终端重新注册并连接登录。

如图5所示,在本发明再一个实施例中,在智能设备登陆云端服务器之后还包括:

S800、所述智能设备与云端服务器进行通信时,对每条通信协议利用第一加密密钥对协议包进行加密。

具体地,所述智能设备与云端服务器进行通信时,将每条通信协议包含的字符串按加密密钥长度划分为若干子字符串,利用所述加密密钥分别对子字符串进行位异或运算,得到加密通信协议。采用加密通信协议进行通信。也就是说,对一个协议包字符串按密钥长度取子字符串进行循环,和该密钥进行位异或(^,相同输出0不同输出1),记录最后一个协议包字符对应的密钥字符位置。下一个协议包过来,继续按密钥长度取子字符串进行循环,用上次记录的密钥字符位置加1作为这次密钥字符起始位进行位异或。

例如,密钥:abc12,长度为5;

协议包:<iq id="udeTf-21096" type="get"></iq>

以密钥长度对协议包进行分隔:

子串:<iq i

加密:

<iq i^abc12

60^97 105^98 113^99 32^49 105^50 --> 93 11 18 17 91

解密:

93^97 11^98 18^99 17^49 91^50 --> 60 105 113 32 105

解密后:<iq i

子串:d="ud

加密:

d="ud^abc12

100^97 61^98 34^99 117^49 100^50 --> 5 95 65 68 86

解密:

5^97 95^98 65^99 68^49 86^50 --> 100 61 34 117 100

解密后:d="ud

子串:eTf-2

加密:

eTf-2^abc12

101^97 84^98 102^99 45^49 50^50 --> 4 54 5 28 0

解密:

4^97 54^98 5^99 28^49 0^50 --> 101 84 102 45 50

解密后:eTf-2

子串:1096"

加密:

1096"^abc12

49^97 48^98 57^99 54^49 34^50 --> 80 82 90 7 16

解密:

80^97 82^98 90^99 7^49 16^50 --> 49 48 57 54 34

解密后:1096"

子串:type

加密:

type^abc12

32^97 116^98 121^99 112^49 101^50 --> 65 22 26 65 87

解密:

65^97 22^98 26^99 65^49 87^50 --> 32 116 121 112 101

解密后:type

子串:="get

加密:

="get^abc12

61^97 34^98 103^99 101^49 116^50 --> 92 64 4 84 70

解密:

92^97 64^98 4^99 84^49 70^50 --> 61 34 103 101 116

解密后:="get

子串:"></i

加密:

"></i^abc12

34^97 62^98 60^99 47^49 105^50 --> 67 92 95 30 91

解密:

67^97 92^98 95^99 30^49 91^50 --> 34 62 60 47 105

解密后:"></i

子串:q>

加密:

q>^ab

113^97 62^98 --> 16 92

解密:

16^97 92^98 --> 113 62

解密后:q>。

在本发明又一个实施中,为了提高第一密文的安全性,在对随机因子进行加密时候,可以在随机因子前增设一固定的字符串word生成第一随机因子,该固定的字符串word为智能设备预先设置,利用第二加密密钥对第一随机因子进行加密得到第一密文。也就是说,智能设备发送给云端服务器的响应报文中包含的信息为:yyy=encodeBase64(reverseKeyDe(word#A)),其中word是一个固定的字符串,reverseKeyDe是采用第二加密密钥进行加密,encodeBase64是进行base64编码。同样,云端服务器中也存储了该智能设备的固定的字符串word,在对随机因子A利用第二加密密钥对word#A得到第二密文bb=reverseKeyDe(word#A)。这样可以提高第一密文的安全性,进一步提高智能设备接入的安全性。

本发明还提供了一种智能设备安全接入的系统,如图6所示,应用于具有Wi-Fi板的智能设备,其包括:智能设备100和云端服务器200;

所述智能设备100包括:

Wi-Fi模块101,用于用于接收并解析所述挑战报文,并向所述云端服务器发送采用第一加密密钥加密的响应报文,其中,所述响应报文携带利用第二加密密钥对解析得到的随机因子加密而生成第一密文;

所述云端服务器200包括:

挑战模块201,用于当云端服务器接收到智能设备发送接入请求时,所述云端服务器向智能设备发送携带随机因子的挑战报文,其中,随机因子为云端服务器随机生成的字符串;

执行模块202,用于接收并解析所述响应报文以获取响应报文携带的第一密文,并利用所述第二加密密钥加密随机因子生成第二密文;将第一密文和第二密文进行比较,将所述比较结果采用第一加密密钥加密后发送给智能设备。

上述智能设备安全接入的系统的各个模块在上述方法中已经详细说明,在这里就不再一一陈述。

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

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

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

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

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

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