通信方法、设备、接入点、服务器、系统及存储介质转让专利

申请号 : CN201910807099.9

文献号 : CN112448808A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李诚王清元张锴

申请人 : 斑马智行网络(香港)有限公司

摘要 :

公开了一种通信方法、设备、接入点、服务器、系统及存储介质。例如第二设备可以接收第一设备发送的设备标识信息,设备标识信息用于表征第一设备的身份,向服务器发送设备标识信息,并接收服务器发送的与设备标识信息对应的第一数据,基于第一数据和第二数据,计算密钥,并可以将第二数据发送给第一设备,以便第一设备计算密钥。本公开通过引入服务器协助生成密钥,并完成设备间密钥交换,从而提升密钥交换及利用密钥实现通信加密的安全性。

权利要求 :

1.一种通信方法,适于第二设备执行,其特征在于,包括:接收第一设备发送的设备标识信息,所述设备标识信息用于表征所述第一设备的身份;

向服务器发送所述设备标识信息;

接收所述服务器发送的与所述设备标识信息对应的第一数据;

基于所述第一数据和第二数据,计算密钥;

将所述第二数据发送给所述第一设备。

2.根据权利要求1所述的通信方法,其特征在于,所述第二数据是由所述第二设备生成的数据,或者该方法还包括:接收所述服务器发送的第二数据。

3.根据权利要求1所述的通信方法,其特征在于,还包括:将利用所述密钥加密后的第一消息发送给所述第一设备;以及/或者利用所述密钥对接收到的所述第一设备发送的第二消息进行解密。

4.一种通信方法,适于第二设备执行,其特征在于,包括:接收第一设备发送的设备标识信息,所述设备标识信息用于表征所述第一设备的身份;

向服务器发送所述设备标识信息;

接收所述服务器发送的密钥,所述密钥为所述服务器基于第二数据和与所述设备标识信息对应的第一数据得到的;

将所述第二数据发送给所述第一设备。

5.根据权利要求4所述的通信方法,其特征在于,还包括:向所述服务器发送所述第二数据;或者

接收所述服务器发送的所述第二数据。

6.根据权利要求4所述的通信方法,其特征在于,还包括:将利用所述密钥加密后的第一消息发送给所述第一设备;以及/或者利用所述密钥对接收到的所述第一设备发送的第二消息进行解密。

7.一种通信方法,适于第二设备执行,其特征在于,包括:接收第一设备发送的设备标识信息和第二数据,所述设备标识信息用于表征所述第一设备的身份;

向服务器发送所述设备标识信息;

接收所述服务器发送的与所述设备标识信息对应的第一数据;

基于所述第一数据和所述第二数据,计算密钥。

8.根据权利要求7所述的通信方法,其特征在于,还包括:将利用所述密钥加密后的第一消息发送给所述第一设备;以及/或者利用所述密钥对接收到的所述第一设备发送的第二消息进行解密。

9.一种通信方法,适于第二设备执行,其特征在于,包括:接收第一设备发送的设备标识信息和第二数据,所述设备标识信息用于表征所述第一设备的身份;

向服务器发送所述设备标识信息和所述第二数据;

接收所述服务器发送的密钥,所述密钥为所述服务器基于所述第二数据和与所述设备标识信息对应的第一数据得到的。

10.根据权利要求9所述的通信方法,其特征在于,还包括:将利用所述密钥加密后的第一消息发送给所述第一设备;以及/或者利用所述密钥对接收到的所述第一设备发送的第二消息进行解密。

11.一种通信方法,适于第一设备执行,其特征在于,包括:向第二设备发送设备标识信息,所述设备标识信息用于表征所述第一设备的身份;

接收所述第二设备发送的第二数据;

基于所述第二数据和与所述设备标识信息对应的第一数据,计算密钥。

12.根据权利要求11所述的通信方法,其特征在于,还包括:将利用所述密钥加密后的第二消息发送给所述第二设备;以及/或者利用所述密钥对接收到的所述第二设备发送的第一消息进行解密。

13.根据权利要求11所述的通信方法,其特征在于,所述第一设备存储有所述第一数据,或者该方法还包括:向所述服务器发送所述设备标识信息,并接收所述服务器发送的与所述设备标识信息对应的第一数据。

14.一种通信方法,适于第一设备执行,其特征在于,包括:向第二设备发送设备标识信息和第二数据,所述设备标识信息用于表征所述第一设备的身份;

基于所述第二数据和与所述设备标识信息对应的第一数据,计算密钥。

15.根据权利要求14所述的通信方法,其特征在于,还包括:将利用所述密钥加密后的第二消息发送给所述第二设备;以及/或者利用所述密钥对接收到的所述第二设备发送的第一消息进行解密。

16.根据权利要求14所述的通信方法,其特征在于,所述第一设备存储有所述第一数据,或者该方法还包括:向所述服务器发送所述设备标识信息,并接收所述服务器发送的与所述设备标识信息对应的第一数据。

17.一种通信方法,适于服务器执行,其特征在于,包括:关联地保存针对第一设备的设备标识信息和第一数据,其中,所述设备标识信息用于标识所述第一设备的身份;

接收第二设备发送的设备标识信息和第二数据;

查找与所述设备标识信息对应的第一数据;

基于所述第二数据和所述第一数据,计算密钥;

将所述密钥下发给所述第二设备。

18.根据权利要求17所述的通信方法,其特征在于,所述将所述密钥下发给所述第二设备的步骤包括:利用超文本传输安全协议将所述密钥下发给所述第二设备。

19.根据权利要求17所述的通信方法,其特征在于,还包括:对所述第二设备的身份进行验证;

在所述第二设备的身份合法的情况下,执行所述查找与所述设备标识信息对应的第一数据的步骤。

20.根据权利要求17所述的通信方法,其特征在于,还包括:接收所述第一设备发送的设备标识信息;

将与所述设备标识信息对应的第一数据下发给所述第一设备。

21.一种通信方法,适于服务器执行,其特征在于,包括:关联地保存针对第一设备的设备标识信息和第一数据,其中,所述设备标识信息用于标识所述第一设备的身份;

接收第二设备发送的设备标识信息;

查找与所述设备标识信息对应的第一数据;

生成用于参与生成密钥的第二数据;

基于所述第二数据和所述第一数据,计算密钥;

将所述密钥和所述第二数据下发给所述第二设备。

22.一种通信方法,适于服务器执行,其特征在于,包括:关联地保存针对第一设备的设备标识信息和第一数据,其中,所述设备标识信息用于标识所述第一设备的身份,所述第一数据为参与生成密钥的部分数据;

接收第二设备发送的设备标识信息;

查找与所述设备标识信息对应的第一数据;

将查找到的所述第一数据下发给所述第二设备。

23.根据权利要求22所述的通信方法,其特征在于,还包括:生成用于参与生成密钥的第二数据;

将所述第二数据下发给所述第二设备。

24.一种第二设备,其特征在于,包括:接收模块、发送模块以及计算模块,所述接收模块用于接收第一设备发送的设备标识信息,所述设备标识信息用于表征所述第一设备的身份,所述发送模块用于向服务器发送所述设备标识信息,所述接收模块还用于接收所述服务器发送的与所述设备标识信息对应的第一数据,所述计算模块用于基于所述第一数据和第二数据,计算密钥,所述发送模块还用于将所述第二数据发送给所述第一设备。

25.根据权利要求24所述的第二设备,其特征在于,还包括:加密模块和/或解密模块,所述加密模块用于利用所述密钥对第一消息进行加密,所述发送模块还用于将加密后的第一消息发送给所述第一设备,所述接收模块还用于接收所述第一设备发送的第二消息,所述解密模块用于利用所述密钥对所述第二消息进行解密。

26.根据权利要求24所述的第二设备,其特征在于,所述第二数据是由所述第二设备生成的数据,或者所述接收模块还用于接收所述服务器发送的第二数据。

27.一种第二设备,其特征在于,包括:接收模块,用于接收第一设备发送的设备标识信息,所述设备标识信息用于表征所述第一设备的身份;

发送模块,用于向服务器发送所述设备标识信息,所述接收模块还用于接收所述服务器发送的密钥,所述密钥为所述服务器基于第二数据和与所述设备标识信息对应的第一数据得到的,所述发送模块还用于将所述第二数据发送给所述第一设备。

28.一种第二设备,其特征在于,包括:接收模块、发送模块以及计算模块,所述接收模块用于接收第一设备发送的设备标识信息和第二数据,所述设备标识信息用于表征所述第一设备的身份,所述发送模块用于向服务器发送所述设备标识信息,所述接收模块还用于接收所述服务器发送的与所述设备标识信息对应的第一数据,所述计算模块用于基于所述第一数据和所述第二数据,计算密钥。

29.一种第二设备,其特征在于,包括:接收模块,用于接收第一设备发送的设备标识信息和第二数据,所述设备标识信息用于表征所述第一设备的身份;

发送模块,用于向服务器发送所述设备标识信息和所述第二数据,所述接收模块还用于接收所述服务器发送的密钥,所述密钥为所述服务器基于所述第二数据和与所述设备标识信息对应的第一数据得到的。

30.一种第一设备,其特征在于,包括:发送模块,用于向第二设备发送设备标识信息,所述设备标识信息用于表征所述第一设备的身份;

接收模块,用于接收所述第二设备发送的第二数据;

计算模块,用于基于所述第二数据和与所述设备标识信息对应的第一数据,计算密钥。

31.根据权利要求30所述的第一设备,其特征在于,还包括:加密模块和/或解密模块,所述加密模块用于利用所述密钥对第二消息进行加密,所述发送模块还用于将加密后的第二消息发送给所述第二设备,所述接收模块还用于接收所述第二设备发送的第一消息,所述解密模块用于利用所述密钥对所述第一消息进行解密。

32.根据权利要求30所述的第一设备,其特征在于,所述第一设备还包括存储模块,用于存储所述第一数据,或者所述发送模块还用于向所述服务器发送所述设备标识信息,所述接收模块还用于接收所述服务器发送的与所述设备标识信息对应的第一数据。

33.一种第一设备,其特征在于,包括:发送模块,用于向第二设备发送设备标识信息和第二数据,所述设备标识信息用于表征所述第一设备的身份;

计算模块,用于基于所述第二数据和与所述设备标识信息对应的第一数据,计算密钥。

34.一种服务器,其特征在于,包括:存储模块,用于关联地保存针对第一设备的设备标识信息和第一数据,其中,所述设备标识信息用于标识所述第一设备的身份,所述第一数据为参与生成密钥的部分数据;

接收模块,用于接收第二设备发送的设备标识信息和第二数据;

查找模块,用于查找与所述设备标识信息对应的第一数据;

计算模块,用于基于所述第二数据和所述第一数据,计算密钥;

发送模块,用于将所述密钥下发给所述第二设备。

35.一种服务器,其特征在于,包括:存储模块,用于关联地保存针对第一设备的设备标识信息和第一数据,其中,所述设备标识信息用于标识所述第一设备的身份,所述第一数据为参与生成密钥的部分数据;

接收模块,用于接收第二设备发送的设备标识信息;

查找模块,用于查找与所述设备标识信息对应的第一数据;

生成模块,用于生成用于参与生成密钥的第二数据;

计算模块,用于基于所述第二数据和所述第一数据,计算密钥;

发送模块,用于将所述密钥和所述第二数据下发给所述第二设备。

36.一种服务器,其特征在于,包括:存储模块,用于关联地保存针对第一设备的设备标识信息和第一数据,其中,所述设备标识信息用于标识所述第一设备的身份,所述第一数据为参与生成密钥的部分数据;

接收模块,用于接收第二设备发送的设备标识信息;

查找模块,用于查找与所述设备标识信息对应的第一数据;

发送模块,用于将查找到的所述第一数据下发给所述第二设备。

37.一种通信系统,其特征在于,包括:如权利要求24至29中任一项所述的第二设备;

如权利要求30至33中任一项所述的第一设备;以及如权利要求34至36中任一项所述的服务器。

38.一种智能设备,其特征在于,包括:存储模块,用于存储设备标识信息和第一数据,所述设备标识信息用于标识所述智能设备的身份,所述第一数据为参与生成密钥的第一部分数据;

收发模块,用于响应于接收到访问接入点发送的信标帧,向所述访问接入点发送探测请求帧,所述探测请求帧包括所述设备标识信息,所述收发模块还用于接收所述访问接入点针对所述探测请求帧发送的探测回复帧,所述探测回复帧包括第二数据和利用密钥对网络密码进行加密后的加密数据,所述第二数据为参与生成密钥的第二部分数据;

计算模块,用于基于所述第一数据和所述第二数据,计算密钥;

解密模块,用于基于计算得到的密钥对所述加密数据进行解密,以得到网络密码;以及联网模块,用于基于所述网络密码,接入与所述访问接入点对应的网络。

39.根据权利要求38所述的智能设备,其特征在于,所述信标帧包括第一标识信息和/或用于标识所述访问接入点的第二标识信息,所述探测请求帧还包括所述第一标识信息和/或所述第二标识信息。

40.一种访问接入点,其特征在于,包括:收发模块,用于以广播的形式发送信标帧,所述收发模块还用于接收智能设备发送的探测请求帧,所述探测请求帧包括所述智能设备的设备标识信息,所述收发模块还向服务器发送所述设备标识信息,并接收所述服务器发送的与所述设备标识信息对应的第一数据,其中,所述第一数据为参与生成密钥的第一部分数据;

生成模块,用于生成第二数据,所述第二数据为参与生成密钥的第二部分数据;

计算模块,用于基于所述第一数据和所述第二数据,计算密钥,所述收发模块还用于向所述智能设备发送针对所述探测请求帧的探测回复帧,所述探测回复帧包括所述第二数据和利用密钥对网络密码进行加密后的加密数据。

41.根据权利要求40所述的访问接入点,其特征在于,还包括:第一交互模块,响应于用户针对所述第一交互模块执行的操作,所述收发模块以广播的形式发送信标帧。

42.根据权利要求40所述的访问接入点,其特征在于,还包括:提示模块,用于向用户输出期望接入所述访问接入点对应的网络的智能设备的设备信息;

第二交互模块,响应于用户通过所述第二交互模块执行的允许所述智能设备接入所述网络的操作,所述收发模块向服务器发送所述设备标识信息。

43.根据权利要求40所述的访问接入点,其特征在于,所述访问接入点为车机或网关设备。

44.一种计算设备,包括:

处理器;以及

存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至23中任何一项所述的方法。

45.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至23中任一项所述的方法。

说明书 :

通信方法、设备、接入点、服务器、系统及存储介质

技术领域

[0001] 本公开涉及通信领域,特别是涉及一种通信方法、设备、接入点、服务器、系统及存储介质。

背景技术

[0002] 随着物联网的普及,越来越多的设备通过局部网络或互联网等通信协议连接到一起,实现信息化、远程管理控制和智能化的网络。与此同时,物联网的数据安全问题也日益突出,由于接入物联网的多是资源受限设备,使得对运算能力要求较低的对称加密算法应用比较广泛。对称加密算法在加密、解密时使用相同的对称密钥,若设备端的对称密钥一旦泄露,将对物联网安全造成极大的危害。
[0003] 以智能家居设备、智能车载设备等智能设备为例,智能设备形态各异,对于没有人机交互界面的智能设备,如何既方便快捷又安全可靠地让这些设备接入到家庭网关或车机等网络中,是智能设备厂商亟需解决的问题。目前一般需要借助手机APP居中协调来获得无线网关的密码,这既不方便也不安全。也有些厂商采用通过USB线、网线等将智能设备与家庭网关或车机连接,这不但提升了成本,也很不方便。

发明内容

[0004] 本公开所要解决的一个技术问题是,提供一种能够提升安全性的通信方案。
[0005] 根据本公开的第一个方面,提出了一种通信方法,适于第二设备执行,包括:接收第一设备发送的设备标识信息,设备标识信息用于表征第一设备的身份;向服务器发送设备标识信息;接收服务器发送的与设备标识信息对应的第一数据;基于第一数据和第二数据,计算密钥;将第二数据发送给第一设备。
[0006] 可选地,第二数据是由第二设备生成的数据,或者该方法还包括:接收服务器发送的第二数据。
[0007] 可选地,该方法还包括:将利用密钥加密后的第一消息发送给第一设备;以及/或者利用密钥对接收到的第一设备发送的第二消息进行解密。
[0008] 根据本公开的第二个方面,还提出了一种通信方法,适于第二设备执行,包括:接收第一设备发送的设备标识信息,设备标识信息用于表征第一设备的身份;向服务器发送设备标识信息;接收服务器发送的密钥,密钥为服务器基于第二数据和与设备标识信息对应的第一数据得到的;将第二数据发送给第一设备。
[0009] 可选地,该方法还包括:向服务器发送第二数据;或者接收服务器发送的第二数据。
[0010] 可选地,该方法还包括:将利用密钥加密后的第一消息发送给第一设备;以及/或者利用密钥对接收到的第一设备发送的第二消息进行解密。
[0011] 根据本公开的第三个方面,还提出了一种通信方法,适于第二设备执行,包括:接收第一设备发送的设备标识信息和第二数据,设备标识信息用于表征第一设备的身份;向服务器发送设备标识信息;接收服务器发送的与设备标识信息对应的第一数据;基于第一数据和第二数据,计算密钥。
[0012] 可选地,该方法还包括:将利用密钥加密后的第一消息发送给第一设备;以及/或者利用密钥对接收到的第一设备发送的第二消息进行解密。
[0013] 根据本公开的第四个方面,还提出了一种通信方法,适于第二设备执行,包括:接收第一设备发送的设备标识信息和第二数据,设备标识信息用于表征第一设备的身份;向服务器发送设备标识信息和第二数据;接收服务器发送的密钥,密钥为服务器基于第二数据和与设备标识信息对应的第一数据得到的。
[0014] 可选地,该方法还包括:将利用密钥加密后的第一消息发送给第一设备;以及/或者利用密钥对接收到的第一设备发送的第二消息进行解密。
[0015] 根据本公开的第五个方面,还提出了一种通信方法,适于第一设备执行,包括:向第二设备发送设备标识信息,设备标识信息用于表征第一设备的身份;接收第二设备发送的第二数据;基于第二数据和与设备标识信息对应的第一数据,计算密钥。
[0016] 可选地,该方法还包括:将利用密钥加密后的第二消息发送给第二设备;以及/或者利用密钥对接收到的第二设备发送的第一消息进行解密。
[0017] 可选地,第一设备存储有第一数据,或者该方法还包括:向服务器发送设备标识信息,并接收服务器发送的与设备标识信息对应的第一数据。
[0018] 根据本公开的第六个方面,还提出了一种通信方法,适于第一设备执行,包括:向第二设备发送设备标识信息和第二数据,设备标识信息用于表征第一设备的身份;基于第二数据和与设备标识信息对应的第一数据,计算密钥。
[0019] 可选地,该方法还包括:将利用密钥加密后的第二消息发送给第二设备;以及/或者利用密钥对接收到的第二设备发送的第一消息进行解密。
[0020] 可选地,第一设备存储有第一数据,或者该方法还包括:向服务器发送设备标识信息,并接收服务器发送的与设备标识信息对应的第一数据。
[0021] 根据本公开的第七个方面,还提出了一种通信方法,适于服务器执行,包括:关联地保存针对第一设备的设备标识信息和第一数据,其中,设备标识信息用于标识第一设备的身份;接收第二设备发送的设备标识信息和第二数据;查找与设备标识信息对应的第一数据;基于第二数据和第一数据,计算密钥;将密钥下发给第二设备。
[0022] 可选地,将密钥下发给第二设备的步骤包括:利用超文本传输安全协议将密钥下发给第二设备。
[0023] 可选地,该方法还包括:对第二设备的身份进行验证;在第二设备的身份合法的情况下,执行查找与设备标识信息对应的第一数据的步骤。
[0024] 可选地,该方法还包括:接收第一设备发送的设备标识信息;将与设备标识信息对应的第一数据下发给第一设备。
[0025] 根据本公开的第八个方面,还提出了一种通信方法,适于服务器执行,包括:关联地保存针对第一设备的设备标识信息和第一数据,其中,设备标识信息用于标识第一设备的身份;接收第二设备发送的设备标识信息;查找与设备标识信息对应的第一数据;生成用于参与生成密钥的第二数据;基于第二数据和第一数据,计算密钥;将密钥和第二数据下发给第二设备。
[0026] 根据本公开的第九个方面,还提出了一种通信方法,适于服务器执行,包括:关联地保存针对第一设备的设备标识信息和第一数据,其中,设备标识信息用于标识第一设备的身份,第一数据为参与生成密钥的部分数据;接收第二设备发送的设备标识信息;查找与设备标识信息对应的第一数据;将查找到的第一数据下发给第二设备。
[0027] 可选地,该方法还包括:生成用于参与生成密钥的第二数据;将第二数据下发给第二设备。
[0028] 根据本公开的第十个方面,还提出了一种第二设备,包括:接收模块、发送模块以及计算模块,接收模块用于接收第一设备发送的设备标识信息,设备标识信息用于表征第一设备的身份,发送模块用于向服务器发送设备标识信息,接收模块还用于接收服务器发送的与设备标识信息对应的第一数据,计算模块用于基于第一数据和第二数据,计算密钥,发送模块还用于将第二数据发送给第一设备。
[0029] 可选地,该设备还包括:加密模块和/或解密模块,加密模块用于利用密钥对第一消息进行加密,发送模块还用于将加密后的第一消息发送给第一设备,接收模块还用于接收第一设备发送的第二消息,解密模块用于利用密钥对第二消息进行解密。
[0030] 可选地,第二数据是由第二设备生成的数据,或者接收模块还用于接收服务器发送的第二数据。
[0031] 根据本公开的第十一个方面,还提出了一种第二设备,包括:接收模块,用于接收第一设备发送的设备标识信息,设备标识信息用于表征第一设备的身份;发送模块,用于向服务器发送设备标识信息,接收模块还用于接收服务器发送的密钥,密钥为服务器基于第二数据和与设备标识信息对应的第一数据得到的,发送模块还用于将第二数据发送给第一设备。
[0032] 根据本公开的第十二个方面,还提出了一种第二设备,包括:接收模块、发送模块以及计算模块,接收模块用于接收第一设备发送的设备标识信息和第二数据,设备标识信息用于表征第一设备的身份,发送模块用于向服务器发送设备标识信息,接收模块还用于接收服务器发送的与设备标识信息对应的第一数据,计算模块用于基于第一数据和第二数据,计算密钥。
[0033] 根据本公开的第十三个方面,还提出了一种第二设备,包括:接收模块,用于接收第一设备发送的设备标识信息和第二数据,设备标识信息用于表征第一设备的身份;发送模块,用于向服务器发送设备标识信息和第二数据,接收模块还用于接收服务器发送的密钥,密钥为服务器基于第二数据和与设备标识信息对应的第一数据得到的。
[0034] 根据本公开的第十四个方面,还提出了一种第一设备,包括:发送模块,用于向第二设备发送设备标识信息,设备标识信息用于表征第一设备的身份;接收模块,用于接收第二设备发送的第二数据;计算模块,用于基于第二数据和与设备标识信息对应的第一数据,计算密钥。
[0035] 可选地,该设备还包括:加密模块和/或解密模块,加密模块用于利用密钥对第二消息进行加密,发送模块还用于将加密后的第二消息发送给第二设备,接收模块还用于接收第二设备发送的第一消息,解密模块用于利用密钥对第一消息进行解密。
[0036] 可选地,第一设备还包括存储模块,用于存储第一数据,或者发送模块还用于向服务器发送设备标识信息,接收模块还用于接收服务器发送的与设备标识信息对应的第一数据。
[0037] 根据本公开的第十五个方面,还提出了一种第一设备,包括:发送模块,用于向第二设备发送设备标识信息和第二数据,设备标识信息用于表征第一设备的身份;计算模块,用于基于第二数据和与设备标识信息对应的第一数据,计算密钥。
[0038] 根据本公开的第十六个方面,还提出了一种服务器,包括:存储模块,用于关联地保存针对第一设备的设备标识信息和第一数据,其中,设备标识信息用于标识第一设备的身份,第一数据为参与生成密钥的部分数据;接收模块,用于接收第二设备发送的设备标识信息和第二数据;查找模块,用于查找与设备标识信息对应的第一数据;计算模块,用于基于第二数据和第一数据,计算密钥;发送模块,用于将密钥下发给第二设备。
[0039] 根据本公开的第十七个方面,还提出了一种服务器,包括:存储模块,用于关联地保存针对第一设备的设备标识信息和第一数据,其中,设备标识信息用于标识第一设备的身份,第一数据为参与生成密钥的部分数据;接收模块,用于接收第二设备发送的设备标识信息;查找模块,用于查找与设备标识信息对应的第一数据;生成模块,用于生成用于参与生成密钥的第二数据;计算模块,用于基于第二数据和第一数据,计算密钥;发送模块,用于将密钥和第二数据下发给第二设备。
[0040] 根据本公开的第十八个方面,还提出了一种服务器,包括:存储模块,用于关联地保存针对第一设备的设备标识信息和第一数据,其中,设备标识信息用于标识第一设备的身份,第一数据为参与生成密钥的部分数据;接收模块,用于接收第二设备发送的设备标识信息;查找模块,用于查找与设备标识信息对应的第一数据;发送模块,用于将查找到的第一数据下发给第二设备。
[0041] 根据本公开的第十九个方面,还提出了一种通信系统,包括:如本公开第十个方面至本公开第十三个方面中任一方面述及的第二设备;如本公开第十四个方面或第十五个方面述及的第一设备;以及如本公开第十六个方面至本公开第十八个方面中任一方面述及的服务器。
[0042] 根据本公开的第二十个方面,还提出了一种智能设备,包括:存储模块,用于存储设备标识信息和第一数据,设备标识信息用于标识智能设备的身份,第一数据为参与生成密钥的第一部分数据;收发模块,用于响应于接收到访问接入点发送的信标帧,向访问接入点发送探测请求帧,探测请求帧包括设备标识信息,收发模块还用于接收访问接入点针对探测请求帧发送的探测回复帧,探测回复帧包括第二数据和利用密钥对网络密码进行加密后的加密数据,第二数据为参与生成密钥的第二部分数据;计算模块,用于基于第一数据和第二数据,计算密钥;解密模块,用于基于计算得到的密钥对加密数据进行解密,以得到网络密码;以及联网模块,用于基于网络密码,接入与访问接入点对应的网络。
[0043] 可选地,信标帧包括第一标识信息和/或用于标识访问接入点的第二标识信息,探测请求帧还包括第一标识信息和/或第二标识信息。
[0044] 根据本公开的第二十一个方面,还提出了一种访问接入点,包括:收发模块,用于以广播的形式发送信标帧,收发模块还用于接收智能设备发送的探测请求帧,探测请求帧包括智能设备的设备标识信息,收发模块还向服务器发送设备标识信息,并接收服务器发送的与设备标识信息对应的第一数据,其中,第一数据为参与生成密钥的第一部分数据;生成模块,用于生成第二数据,第二数据为参与生成密钥的第二部分数据;计算模块,用于基于第一数据和第二数据,计算密钥,收发模块还用于向智能设备发送针对探测请求帧的探测回复帧,探测回复帧包括第二数据和利用密钥对网络密码进行加密后的加密数据。
[0045] 可选地,访问接入点还包括:第一交互模块,响应于用户针对第一交互模块执行的操作,收发模块以广播的形式发送信标帧。
[0046] 可选地,访问接入点还包括:提示模块,用于向用户输出期望接入访问接入点对应的网络的智能设备的设备信息;第二交互模块,响应于用户通过第二交互模块执行的允许智能设备接入网络的操作,收发模块向服务器发送设备标识信息。
[0047] 可选地,访问接入点为车机或网关设备。
[0048] 根据本公开的第二十二个方面,还提出了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如本公开第一个方面至第九个方面中任一个方面述及的方法。
[0049] 根据本公开的第二十三个方面,还提出了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如本公开第一个方面至第九个方面中任一个方面述及的方法。
[0050] 本公开通过引入服务器协助生成密钥,并完成设备间密钥交换,从而提升密钥交换及利用密钥实现通信加密的安全性。

附图说明

[0051] 通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
[0052] 图1示出了根据本公开一个实施例的通信系统的结构示意图。
[0053] 图2示出了根据本公开一个实施例的通信方法的示意性流程图。
[0054] 图3示出了根据本公开另一个实施例的通信方法的示意性流程图。
[0055] 图4示出了根据本公开另一个实施例的通信方法的示意性流程图。
[0056] 图5示出了根据本公开另一个实施例的通信方法的示意性流程图。
[0057] 图6示出了第一设备和第二设备基于密钥进行加密通信的示意性流程图。
[0058] 图7示出了根据本公开另一个实施例的通信方法的示意性流程图。
[0059] 图8示出了智能设备和车机间的密钥交换方法的示意性流程图。
[0060] 图9示出了根据本公开的第一设备的结构的示意性方框图。
[0061] 图10示出了根据本公开的第二设备的结构的示意性方框图。
[0062] 图11示出了根据本公开的服务器的结构的示意性方框图。
[0063] 图12示出了根据本公开一个实施例的智能设备的结构的示意性方框图。
[0064] 图13示出了根据本公开一个实施例的访问接入点的结构的示意性方框图。
[0065] 图14示出了根据本发明一实施例可用于实现上述通信方法的计算设备的结构示意图。

具体实施方式

[0066] 下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0067] 密钥(secret key)是一种参数,是在将明文转换为密文或将密文转换为明文的算法中使用的参数。密钥分为对称密钥与非对称密钥,由于接入物联网的多是资源受限设备,使得对运算能力要求较低的对称加密算法应用比较广泛。在对称加密算法中,发送和接收数据的双方使用相同的密钥对明文或密文进行加密或解密运算,使得通信双方间存在交换密钥的需求。而如果通信双方直接交换密钥,存在密钥易被监听的风险。
[0068] 针对对称加密中的密钥交换存在的安全性问题,本公开提出了一种通信方案,通过引入服务器协助生成密钥,并完成设备间密钥交换,从而提升密钥交换及利用密钥实现通信加密的安全性。
[0069] 本公开述及的密钥优选地是指对称密钥,即发送和接收数据的双方使用相同的密钥对明文或密文进行加密或解密运算。为了便于区分,通信双方可以称为第一设备和第二设备。
[0070] 在本公开中,密钥是基于两部分数据生成的。为了便于区分,参与生成密钥的这两部分数据可以分别称为第一数据和第二数据。通信双方可以基于相同的密钥生成算法,对第一数据和第二数据进行计算,以得到密钥。其中,第一数据、第二数据可以是但不限于预定长度的字符、数字、字符与数字的组合等等,关于第一数据、第二数据的具体内容,以及密钥生成算法的具体实现方式本公开不做限定。
[0071] 图1示出了根据本公开一个实施例的通信系统的结构示意图。
[0072] 如图1所示,通信系统包括第一设备110、第二设备120和服务器130。第一设备110、第二设备120可以是各种适于通信的设备,如可以是但不限于物联网设备。服务器130可以视为云端服务端,服务器130可以用于协助实现第一设备110和第二设备120之间的密钥交换。
[0073] 第一设备110中可以存有设备标识信息和第一数据。例如厂商可以将设备标识信息和第一数据预置在第一设备110中。其中,设备标识信息是指用于标识第一设备110的身份的信息,如可以是但不限于设备识别码、MAC地址等等。可选地,第一设备110中也可以不预先存储有第一数据,而是在需要时从服务器130获取第一数据。
[0074] 服务器130可以关联地保存针对第一设备110的设备标识信息和第一数据。作为示例,可以在第一设备110出厂前,由厂商将第一设备100注册到服务器130,以在服务器130上关联地保存针对第一设备110的设备标识信息和第一数据。
[0075] 例如,厂商可以将第一设备100的设备标识信息上传到服务器130,由服务器130针对该设备标识信息生成第一数据,关联地保存该设备标识信息和第一数据,并且服务器130还可以将生成的第一数据下发给厂商,以便厂商将第一数据预置到第一设备100中。
[0076] 再例如,也可以由厂商生成第一数据,将第一数据预置到第一设备110中,并且可以将第一设备110的设备标识信息和第一数据上传到服务器130,由服务器130关联地保存该设备标识信息和第一数据。
[0077] 服务器130可以针对多个设备,保存与各个设备对应的设备标识信息和第一数据。例如,服务器130可以维护一份包含设备标识信息与第一数据对应关系的数据库。可选地,不同设备的第一数据可以不同。
[0078] 第一设备110与第二设备120首先进行密钥交换,以确定通信过程中所使用的密钥,然后第一设备110和第二设备120就可以利用所确定的密钥实现通信加密。
[0079] 本公开是借助服务器130来实现密钥交换的。并且在密钥交换过程中,第一设备110和第二设备120之间不传输密钥,而是传输设备标识信息和第二数据。而密钥的生成依赖于第一数据和第二数据。因此,即使第一设备110和第二设备120之间的传输内容被恶意监听,也无法从传输内容中得到密钥。
[0080] 下面结合具体实施例就密钥交换的实现过程进行示例性说明。
[0081] 实施例1
[0082] 图2示出了根据本公开一个实施例的通信方法的示意性流程图。
[0083] 参见图2,在步骤S2110,第一设备可以向第二设备发送用于表征第一设备的身份的设备标识信息。其中,第一设备可以以明文的形式向第二设备发送设备标识信息。
[0084] 第二设备可以接收第一设备发送的设备标识信息,第二设备在接收到设备标识信息后,可以执行步骤S2210,向服务器发送设备标识信息。
[0085] 如上文所述,服务器端可以关联地存储设备标识信息和第一数据。因此服务器在接收到第二设备发送的设备标识信息后,可以执行步骤S2310,查找与设备标识信息对应的第一数据。
[0086] 可选地,服务器在接收到第二设备发送的设备标识信息后,还可以对第二设备的身份进行验证,在第二设备的身份合法的情况下,才执行步骤S2310。例如第二设备在向服务器发送设备标识信息时,可以携带AppKey(公匙,相当于账号)和AppSecret(私钥,相当于密码),服务器可以根据AppKey和AppSecret,对第二设备的身份进行验证。其中,AppKey和AppSecret可以是第二设备通过注册得到的。在第二设备的身份不合法的情况下,服务器可以拒绝向第二设备提供查询服务。
[0087] 服务器在查找到与设备标识信息对应的第一数据后,可以执行步骤S2320,将第一数据下发给第二设备。
[0088] 在本实施例中,可以由第二设备执行步骤S2220,生成第二数据。也可以由服务器执行步骤S2330,生成第二数据。其中,第二数据可以是基于多种方式生成的数据,如可以是基于随机数生成算法生成的数据,也即随机数据。在由服务器生成第二数据的情况下,服务器还可以将第二数据下发给第二设备,例如服务器可以将生成的第二数据和查找到的第一数据一起发送给第二设备。
[0089] 第二设备可以执行步骤S2230,基于第一数据和第二数据,计算密钥。关于密钥的具体计算方式,本公开不做限定,例如可以采用hash算法来计算密钥。
[0090] 第二设备还可以执行步骤S2240,将第二数据发送给第一设备。其中,第二数据可以以明文的形式发送给第一设备。步骤S2240和步骤S2230之之间的先后执行顺序,本公开不做限定。
[0091] 在接收到第二设备发送的第二数据后,第一设备可以执行步骤S2120,基于第一数据和第二数据,计算密钥。其中,第一设备和第二设备的密钥计算方式相同,该计算方式可以是双方预先商定的。
[0092] 如上文所述,第一设备中可以预置有第一数据,也可以不预置有第一数据。在第一设备中预置有第一数据的情况下,第一设备可以在接收到第二设备发送的第二数据后,基于第一设备中预先存储的第一数据和接收到的第二数据,计算密钥。在第一设备中没有预置有第一数据的情况下,第一设备可以向服务器发送设备标识信息,接收服务器下发的与设备标识信息对应的第一数据,并基于该第一数据和从第二设备接收到的第二数据,计算密钥。
[0093] 由此,可以实现第一设备和第二设备之间的密钥交换。并且在整个密钥交换过程中,第一设备和第二设备之间传输的是设备标识信息和第二数据。因此,即使传输过程被监听,也无法从中得到密钥。
[0094] 事实上,如果想恶意获取密钥,必须同时具备以下条件:1、破解第一设备或服务器,以获取第一数据;2、监听第一设备与第二设备之间的通信过程,获取当前所用的第二数据;3、逆向破解第一设备端的代码或第二设备端的代码,以得知密钥的生成算法。
[0095] 可见,本公开通过将用于参与生成密钥的一部分数据(即第一数据)存储到服务器,借助服务器实现密钥交换,可以很大程度上提高攻击者破解密钥的门槛,从而可以增强后续利用密钥实现的加密通信的安全性,且部署灵活,识别风险后可快速解决,提高风险管控能力。
[0096] 实施例2
[0097] 图3示出了根据本公开另一个实施例的通信方法的示意性流程图。
[0098] 与实施例1述及的方案不同之处在于,在本实施例中,可以由服务器计算密钥,并将计算得到的密钥下发给第二设备。下面着重就本实施例与实施例1的不同之处进行说明,相同之处可以参见实施例1中相应描述,于本实施例中不再赘述。
[0099] 在本实施例中,第一设备可以执行的步骤(步骤S3110、步骤S3120)与实施例1中第一设备可以执行的步骤(步骤S2110、步骤S2120)相同,关于步骤S3110、步骤S3120的实现细节,可以参见实施例1中针对步骤S2110、步骤S2120的相应描述,此处不再赘述。
[0100] 第二设备在接收到第一设备发送的设备标识信息后,可以执行步骤S3210,将设备标识信息上传到服务器。
[0101] 服务器在接收到第二设备发送的设备标识信息后,可以执行步骤S3310,查找与设备标识信息对应的第一数据。
[0102] 在本实施例中,可以由第二设备执行步骤S3220,生成第二数据。也可以由服务器执行步骤S3320,生成第二数据。其中,第二数据可以是基于多种方式生成的数据,如可以是基于随机数生成算法生成的数据,也即随机数据。在由第二设备生成第二数据的情况下,第二设备还可以将第二数据发送给服务器,可选地,第二设备可以将生成的第二数据和设备标识信息一起发送给服务器。
[0103] 服务器可以执行步骤S3330,基于第一数据和第二数据,计算密钥。关于密钥的具体计算方式,本公开不做限定。其中,第一设备和服务器的密钥生成算法相同,该算法可以是双方预先商定的。
[0104] 服务器在计算得到密钥后,可以执行步骤S3340,将密钥下发给第二设备。为了保证传输的密钥不被窃取,服务器可以利用超文本传输安全协议(即https连接)等安全通道将密钥下发给第二设备。
[0105] 与实施例1相比,第二设备可以不计算密钥,而是从服务器获取密钥,从而可以降低对第二设备的要求。
[0106] 实施例3
[0107] 图4示出了根据本公开另一个实施例的通信方法的示意性流程图。
[0108] 与实施例1述及的方案不同之处在于,在本实施例中,第二数据可以是由第一设备生成的。下面着重就本实施例与实施例1的不同之处进行说明,相同之处可以参见实施例1中相应描述,于本实施例中不再赘述。
[0109] 参见图4,在步骤S4110,第一设备可以向第二设备发送设备标识信息和第二数据。其中,第二数据可以是由第一设备生成的数据,如可以是第一设备基于多种方式生成的数据,如可以是基于随机数生成算法生成的数据,也即随机数据。设备标识信息和第二数据可以一起发送给第二设备,也可以分批发送给第二设备。
[0110] 第二设备在接收到第一设备发送的设备标识信息后,可以执行步骤S4210,向服务器发送该设备标识信息。
[0111] 服务器在接收到第二设备上传的设备标识信息后,可以执行步骤S4310,查找与设备标识信息对应的第一数据。
[0112] 服务器在查找到与设备标识信息对应的第一数据后,可以执行步骤S4320,将查找的第一数据下发给第二设备。
[0113] 第二设备在接收到服务器下发的第一数据后,可以执行步骤S4220,基于第一数据和第二数据,计算密钥。关于密钥的具体计算方式,本公开不做限定。
[0114] 第一设备可以执行步骤S2120,基于第一数据和第二数据,计算密钥。其中,第一设备和第二设备的密钥计算方式相同,该计算方式可以是双方预先商定的。
[0115] 如上文所述,第一设备中可以预置有第一数据,也可以不预置有第一数据。在第一设备中预置有第一数据的情况下,第一设备可以在生成第二数据后,基于第一设备中预先存储的第一数据和生成的第二数据,计算密钥。在第一设备中没有预置有第一数据的情况下,第一设备可以向服务器发送设备标识信息,接收服务器下发的与设备标识信息对应的第一数据,并基于该第一数据和生成的第二数据,计算密钥。
[0116] 实施例4
[0117] 图5示出了根据本公开另一个实施例的通信方法的示意性流程图。
[0118] 与实施例3述及的方案不同之处在于,在本实施例中,可以由服务器计算密钥,并将计算得到的密钥下发给第二设备。下面着重就本实施例与实施例3的不同之处进行说明,相同之处可以参见实施例3中相应描述,于本实施例中不再赘述。
[0119] 在本实施例中,第一设备可以执行的步骤(步骤S5110、步骤S5120)与实施例3中第一设备可以执行的步骤(步骤S4110、步骤S4120)相同,关于步骤S5110、步骤S5120的实现细节,可以参见实施例3中针对步骤S4110、步骤S4120的相应描述,此处不再赘述。
[0120] 第二设备在接收到第一设备发送的设备标识信息和第二数据后,可以执行步骤S5210,向服务器发送设备标识信息和第二数据。其中,第二设备可以将设备标识信息和第二数据一起发送到服务器,也可以分批发送到服务器。
[0121] 服务器在接收到第二设备发送的设备标识信息后,可以执行步骤S5310,查找与设备标识信息对应的第一数据。
[0122] 在查找到与设备标识信息对应的第一数据后,服务器可以执行步骤S5320,基于第一数据和第二数据,计算密钥。关于密钥的具体计算方式,本公开不做限定。其中,第一设备和服务器的密钥生成算法相同,该算法可以是双方预先商定的。
[0123] 服务器在计算得到密钥后,可以执行步骤S5330,将密钥下发给第二设备。为了保证传输的密钥不被窃取,服务器可以利用超文本传输安全协议(即https连接)等安全通道将密钥下发给第二设备。
[0124] 与实施例3相比,第二设备可以不计算密钥,而是从服务器获取密钥,从而可以降低对第二设备的要求。
[0125] 至此结合图2至图5就第一设备和第二设备之间的密钥交换的实现过程做了示例性说明。
[0126] 加密通信
[0127] 第一设备和第二设备在实现密钥交换后,就可以基于所得到的密钥进行加密通信。
[0128] 图6示出了第一设备和第二设备基于密钥进行加密通信的示意性流程图。
[0129] 参见图6,第二设备可以执行步骤S6210,将利用密钥加密后的第一消息发送给第一设备。其中,第一消息是指利用密钥加密后的数据(也即密文),关于第二设备使用的加密算法,本公开不做限定。
[0130] 第一设备在接收到第一消息后,可以执行步骤S6110,利用密钥对接收到的第二设备发送的第一消息进行解密。这里述及的解密算法是指加密算法的逆算法。加密算法、解密算法可以是由通信双方预先商定的。
[0131] 第一设备也可以执行步骤S6120,将利用密钥加密后的第二消息发送给第二设备。其中,第二消息是指利用密钥加密后的加密数据(也即密文),关于第一设备使用的加密算法,本公开不做限定。
[0132] 第二设备在接收到第二消息后,可以执行步骤S6220,利用密钥对接收到的第一设备发送的第二消息进行解密。
[0133] 在本公开中,设备只存储参与生成密钥的部分数据,而不是存储的密钥,因此无法从设备中直接获取到密钥,从而可以降低安全风险;并且由于明文传输的只有设备识别码和随机数,从而防止中间人攻击;同样由于只传输设备识别码和随机数,也避免了恶意监听者从传输内容中反编码得到对称密钥。
[0134] 应用例
[0135] 本公开的通信方案可以用于智能设备的安全配网(即联网),特别是对于不具备人机交互界面的智能设备(如智能插座、智能开关等),可以基于本公开的通信方案,自动实现配网,且可以提升配网过程中的安全性。
[0136] 图7示出了根据本公开另一个实施例的通信方法的示意性流程图。
[0137] 本实施例中的智能设备710可以是各种适于接入网络的设备,如可以是但不限于智能插座、智能开关、智能音箱等设备。
[0138] 智能设备710在出厂时,可以由厂商将设备标识信息和第一数据预置到智能设备中。作为示例,设备标识信息可以包括但不限于厂商信息、智能设备710的信息(如MAC地址)等等。第一数据是指用于参与生成密钥的部分数据,也即在配网过程中传递网络密码(如wifi密码)所用的密钥的重要因子。
[0139] 服务器730可以管理多个智能设备710的相关信息,例如智能设备在出厂前可以由厂商将智能设备的设备标识信息和第一数据上传到服务器730,由服务器73维护一份包括设备标识信息和第一数据对应关系的数据库。可选地,第一数据可以是在将智能设备的设备标识信息注册到服务器上时由服务器生成的。
[0140] 作为示例,服务器730可以提供设置接口和查询接口,厂商可以通过设置接口设置智能设备的具体信息(例如设备标识信息和第一数据),访问接入点720可以通过查询接口查询设备的具体信息(例如查询第一数据)。
[0141] 访问接入点720(Access Point,简称AP)可以视为传统有线网络中的HUB(转发器),也是目前组建小型无线局域网时最常用的设备。AP相当于一个连接有线网和无线网的桥梁,其主要作用是将各个无线网络客户端连接到一起,然后将无线网络接入以太网。在本公开中,访问接入点可以是指无线访问接入点,如可以是无线路由器(含无线网关、无线网桥)等类设备的统称。可选地,访问接入点可以是但不限于车机、网关设备(如家庭网关)。
[0142] 在本实施例中,智能设备710可以视为上文述及的第一设备,访问接入点720可以视为上文述及的第二设备。服务器730可以关联地存储智能设备710的设备标识信息和第一数据。
[0143] 配网流程如下。
[0144] 在配网过程中,访问接入点720可以执行步骤S7210,以广播的形式向外发射信标帧(即beacon帧),例如访问接入点720可以周期性地向外发射信标帧。信标帧中除了包括符合现有机制的帧格式的信息外,还可以包括第一标识信息和/第二标识信息。第一标识信息可以视为一个特殊的标记位,第一标识信息可以用于表征发出该信标帧的访问接入点720当前处于配网模式。第二标识信息用于标识访问接入点720,例如第二标识信息可以是访问接入点720的MAC地址等能够表征访问接入点720的身份的信息。
[0145] 可选地,访问接入点720可以包括一个交互模块(为了便于区分,可以称为第一交互模块),第一交互模块可以以UI(User Interface,用户界面)控件、实体按钮等形式提供给用户。当用户通过第一交互模块执行特定操作(如点击)后,可以触发配网模式,由访问接入点720执行S7210,以广播的形式向外发射信标帧。
[0146] 智能设备710可以执行步骤S7110,接收信标帧。
[0147] 如上文所述,信标帧中可以包括第一标识信息。因此,智能设备710可以通过判断接收到的信号中是否存在第一标识信息,对接收到的信号进行过滤,如此可以过滤出存在第一标识信息的信标帧。
[0148] 当接收到存在第一标识信息的信标帧后,智能设备710可以执行步骤S7120,向访问接入点720发送探测请求帧(即ProbeRequest帧)。
[0149] 探测请求帧中包括用于表征智能设备710的身份的设备标识信息。可选地,探测请求帧中还包括第二标识信息,探测请求帧中的设备标识信息(例如智能设备的MAC地址)和第二标识信息(例如访问接入点720的MAC地址)可以用于表明智能设备710期望与访问接入点720完成配网。可选地,探测请求帧中还可以包括第一标识信息。
[0150] 在接收到探测请求帧后,访问接入点720可以执行步骤S7220,将探测请求帧中的设备标识信息发送给服务器730。
[0151] 可选地,访问接入点720还可以包括一个第二交互模块。访问接入点720可以向用户输出期望接入访问接入点所对应的网络的智能设备710的设备信息,用户可以通过第二交互模块确定是否允许智能设备710接入网络。响应于用户通过第二交互模块执行的允许智能设备710接入所述网络的操作,访问接入点720可以执行步骤S7220。
[0152] 在接收到探测请求帧后,访问接入点720还可以执行步骤S7230,生成第二数据。这里,访问接入点720可以利用多种方式生成数据,例如可以基于随机数据生成算法生成数据,也即生成随机数据。步骤S7220和步骤S7230的先后执行顺序,本公开不做限定。
[0153] 作为示例,访问接入点720在接收到探测请求帧后,可以首先根据第一标识信息和/或第二标识信息进行过滤,对于存在第一标识信息和/或第二标识信息的探测请求帧,访问接入点720可以执行步骤S7220和/或步骤S7230。
[0154] 服务器730在接收到设备标识信息后,可以查询与该设备标识信息对应的第一数据。在查找到第一数据后,服务器730可以执行步骤S7310,将第一数据下发给访问接入点720。
[0155] 访问接入点720可以根据从服务器730获取的第一数据和本地生成的第二数据,执行步骤S7240,基于第一数据和第二数据,计算密钥。
[0156] 在计算得到密钥后,访问接入点720可以利用密钥对网络密码(也即网络接入密码,如可以是wifi密码)进行加密,加密后的数据可以附加到探测回复帧(即ProbeResponse帧)中。
[0157] 在步骤S7250,访问接入点720可以将探测回复帧发送给智能设备710。探测回复帧可以视为访问接入点720针对接收到的探测请求帧做出的回复。探测回复帧中除了加密后的网络密码外,还包括第二数据。其中,第二数据可以以明文的形式附加到探测回复帧中。
[0158] 智能设备710在接收到探测回复帧后,可以执行步骤S7130,基于探测回复帧中的第二数据和智能设备710中存储的第一数据,计算密钥,并利用密钥对加密数据进行解密,以得到网络密码。
[0159] 在得到网络密码后,智能设备710就可以执行步骤S7140,基于解密得到的网络密码,完成后续的联网过程,接入与访问接入点720对应的网络。
[0160] 需要说明的是,本实施例通过对信标帧、探测请求帧、探测回复帧的帧格式进行适当改造,使得智能设备可以自动获取访问接入点(例如车机)的网络密码(如wifi密码),从而连接到访问接入点,完成自动配网过程。本实施例中信标帧、探测请求帧、探测回复帧中的特定帧格式是在配网过程中出现的。在非配网的情况下,相关帧中可以不存在这些定制内容。
[0161] 下面以智能设备和车机间的密钥交互为例,就智能设备自动连接到车机提供的wifi的实现过程进行示例性说明。
[0162] 图8示出了智能设备和车机间的密钥交换方法的示意性流程图。
[0163] 如图8所示,设备A为提供了wifi接入功能的wifi智能设备,可以是但不限于图中示出的智能插座。设备B为能够提供wifi的车机。
[0164] 设备A的厂商可以在设备出厂时将厂商信息、设备信息(包括MAC地址等)注册到云端,并将云端生成的SecurityNum(即上文述及的第一数据)预埋在设备A上。
[0165] 在配网过程中,设备A可以向设备B发送设备识别码。设备B在接收到设备A的设备识别码后,可以生成一随机数,并将设备识别码和该随机数上传到云端。
[0166] 云端可以根据设备识别码查询对应的SecurityNum,然后可以基于SecurityNum和随机数在云端计算出密钥key返回给设备B。
[0167] 设备B可以使用密钥key对wifi密码进行加密,并将随机数和加密后的数据发送给设备A。
[0168] 设备A可以根据预留的SecurityNum和接收到的随机数,计算出密钥key,并可以使用该密钥key对加密数据进行解密,以得到wifi密码。如此设备A就可以基于该wifi密码自动连接设备B的wifi。
[0169] 图9示出了根据本公开的第一设备的结构的示意性方框图。其中,第一设备的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图9所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
[0170] 下面就第一设备可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文相关描述,这里不再赘述。
[0171] 在本公开的一个实施例中,第一设备800可以包括发送模块820和计算模块840。
[0172] 发送模块820用于向第二设备发送设备标识信息和第二数据,设备标识信息用于表征所述第一设备的身份,第二数据为参与生成密钥的部分数据。其中第二数据可以是由第一设备800生成的随机数据。可选地,第一设备800还可以包括生成模块,用于生成第二数据。
[0173] 计算模块840用于基于第二数据和与设备标识信息对应的第一数据,计算密钥。其中第一数据可以预先存储在第一设备800中,也可以由第一设备800从服务器获取。例如,第一设备800可以通过发送模块820向服务器发送设备标识信息,以从服务器获取与设备标识信息对应的第一数据。
[0174] 可选地,第一设备800还可以包括存储模块810,存储模块810用于存储设备标识信息和第一数据。
[0175] 可选地,第一设备800还可以包括接收模块830、加密模块和/或解密模块。加密模块可以用于利用密钥对第二消息进行加密,发送模820可以将加密后的第二消息发送给第二设备。接收模块830可以接收第二设备发送的第一消息,解密模块可以用于利用密钥对第一消息进行解密。
[0176] 在本公开的另一个实施例中,第一设备800可以包括发送模块820、接收模块830以及计算模块840。
[0177] 发送模块820用于向第二设备发送设备标识信息,设备标识信息用于表征第一设备的身份。
[0178] 接收模块830用于接收第二设备发送的第二数据。
[0179] 计算模块840用于基于第二数据和与设备标识信息对应的第一数据,计算密钥。第一数据可以预先存储在第一设备800中,也可以由第一设备800从服务器获取。例如,第一设备800可以包括存储模块810,存储模块810可以存储设备标识信息和第一数据,此时计算模块840可以基于接收到的第二数据和存储模块810存储的第一数据,计算密钥。再例如,第一设备800也可以通过发送模块820向服务器发送设备标识信息,以从服务器获取与设备标识信息对应的第一数据,此时计算模块840可以基于接收到的第二数据和从服务器获取的第一数据,计算密钥。
[0180] 可选地,第一设备800还可以包括加密模块和/或解密模块。加密模块可以用于利用密钥对第二消息进行加密,发送模820可以将加密后的第二消息发送给第二设备。接收模块830可以接收第二设备发送的第一消息,解密模块可以用于利用密钥对第一消息进行解密。
[0181] 图10示出了根据本公开的第二设备的结构的示意性方框图。其中,第二设备的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图10所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
[0182] 下面就第二设备可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文相关描述,这里不再赘述。
[0183] 在本公开的一个实施例中,第二设备900可以包括接收模块910和发送模块920。
[0184] 作为本公开的一个示例,接收模块910可以接收第一设备发送的设备标识信息,设备标识信息用于表征第一设备的身份。发送模块920可以向服务器发送设备标识信息。接收模块910还接收服务器发送的密钥,密钥为服务器基于第二数据和与设备标识信息对应的第一数据得到的,发送模块920还用于将第二数据发送给第一设备。其中第二数据可以是由第二设备900生成的,也可以是由服务器生成的。例如,第二设备900可以包括生成模块,可以由生成模块生成第二数据,此时发送模块920除了向服务器发送设备标识信息外,还向服务器发送第二数据。再例如,在由服务器生成第二数据的情况下,接收模块910除了接收服务器生成的密钥外,还接收第二数据。
[0185] 作为本公开的另一个示例,接收模块910可以接收第一设备发送的设备标识信息和第二数据。发送模块920用于向服务器发送设备标识信息和第二数据。接收模块还用于接收服务器发送的密钥,该密钥为服务器基于第二数据和与设备标识信息对应的第一数据得到的。
[0186] 可选地,第二设备900还可以包括加密模块和/或解密模块。加密模块用于利用密钥对第一消息进行加密,发送模块还用于将加密后的第一消息发送给第一设备,接收模块还用于接收第一设备发送的第二消息,解密模块用于利用密钥对第二消息进行解密。
[0187] 在本公开的另一个实施例中,第二设备900可以包括接收模块910、发送模块920以及计算模块930。
[0188] 作为本公开的一个示例,接收模块910用于接收第一设备发送的设备标识信息,设备标识信息用于表征第一设备的身份。发送模块920用于向服务器发送设备标识信息,接收模块910还用于接收服务器发送的与设备标识信息对应的第一数据。计算模块930用于基于第一数据和第二数据,计算密钥。发送模块920还用于将第二数据发送给第一设备。其中第二数据可以是第二设备生成的数据,也可以是由服务器生成的数据。例如,第二设备900还可以包括生成模块,用于生成第二数据。再例如,接收模块还可以接收服务器发送的第二数据。
[0189] 可选地,接收模块910还可以接收第一设备发送的利用密钥加密后的第二消息,发送模块920还可以将利用密钥加密后的第一消息发送给第一设备。第二设备还可以包括加密模块和/或解密模块。加密模块可以用于利用密钥对第一消息进行加密。解密模块可以用于对接收到的第二消息进行解密。
[0190] 作为本公开的另一个示例,接收模块910用于接收第一设备发送的设备标识信息和第二数据,设备标识信息用于表征第一设备的身份,第二数据为参与生成密钥的部分数据。
[0191] 发送模块920用于向服务器发送设备标识信息,接收模块910还用于接收服务器发送的与设备标识信息对应的第一数据。计算模块930用于基于第一数据和第二数据,计算密钥。
[0192] 可选地,接收模块910还可以接收第一设备发送的利用密钥加密后的第二消息,发送模块920还可以将利用密钥加密后的第一消息发送给第一设备。第二设备还可以包括加密模块和/或解密模块。加密模块可以用于利用密钥对第一消息进行加密。解密模块可以用于对接收到的第二消息进行解密。
[0193] 图11示出了根据本公开的服务器的结构的示意性方框图。其中,服务器的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图11所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
[0194] 下面就服务器可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文相关描述,这里不再赘述。
[0195] 在本公开的一个实施例中,服务器1000包括存储模块1010、接收模块1020、查找模块1030以及发送模块1060。
[0196] 存储模块1010用于关联地保存针对第一设备的设备标识信息和第一数据,其中,设备标识信息用于标识第一设备的身份,第一数据为参与生成密钥的部分数据。接收模块1020用于接收第二设备发送的设备标识信息。查找模块1030用于查找与设备标识信息对应的第一数据。发送模块1060用于将查找到的第一数据下发给第二设备。
[0197] 在本公开的另一个实施例中,服务器1000包括存储模块1010、接收模块1020、查找模块1030、计算模块1050以及发送模块1060。
[0198] 存储模块1010用于关联地保存针对第一设备的设备标识信息和第一数据,其中,设备标识信息用于标识第一设备的身份,第一数据为参与生成密钥的部分数据。接收模块1020用于接收第二设备发送的设备标识信息和第二数据。查找模块1030用于查找与设备标识信息对应的第一数据。计算模块1050用于基于第二数据和第一数据,计算密钥。发送模块
1060用于将密钥下发给第二设备。
[0199] 在本公开的再一个实施例中,服务器1000包括存储模块1010、接收模块1020、查找模块1030、生成模块1040、计算模块1050以及发送模块1060。
[0200] 存储模块1010用于关联地保存针对第一设备的设备标识信息和第一数据,其中,设备标识信息用于标识第一设备的身份,第一数据为参与生成密钥的部分数据。接收模块1020用于接收第二设备发送的设备标识信息。查找模块1030用于查找与设备标识信息对应的第一数据。生成模块1040用于生成用于参与生成密钥的第二数据。计算模块1050用于基于第二数据和第一数据,计算密钥。发送模块1060用于将密钥和第二数据下发给第二设备。
[0201] 图12示出了根据本公开一个实施例的智能设备的结构的示意性方框图。其中,智能设备的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图12所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
[0202] 下面就智能设备可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文相关描述,这里不再赘述。
[0203] 参见图12,智能设备1100包括存储模块1110、收发模块1120、计算模块1130、解密模块1140以及联网模块1150。
[0204] 存储模块1100用于存储设备标识信息和第一数据,设备标识信息用于标识智能设备的身份,第一数据为参与生成密钥的第一部分数据。
[0205] 收发模块1120用于响应于接收到访问接入点发送的信标帧,向访问接入点发送探测请求帧,探测请求帧包括设备标识信息,收发模块还用于接收访问接入点针对探测请求帧发送的探测回复帧,探测回复帧包括第二数据和利用密钥对网络密码进行加密后的加密数据,第二数据为参与生成密钥的第二部分数据。
[0206] 计算模块1130用于基于第一数据和第二数据,计算密钥。
[0207] 解密模块1140用于基于计算得到的密钥对加密数据进行解密,以得到网络密码。
[0208] 联网模块1150用于基于网络密码,接入与访问接入点对应的网络。
[0209] 图13示出了根据本公开一个实施例的访问接入点的结构的示意性方框图。其中,访问接入点的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图13所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
[0210] 下面就访问接入点可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文相关描述,这里不再赘述。
[0211] 参见图13,访问接入点1200包括收发模块1210、生成模块1220以及计算模块1230。
[0212] 收发模块1210用于以广播的形式发送信标帧,收发模块还用于接收智能设备发送的探测请求帧,探测请求帧包括智能设备的设备标识信息,收发模块还向服务器发送设备标识信息,并接收服务器发送的与设备标识信息对应的第一数据,其中,第一数据为参与生成密钥的第一部分数据。
[0213] 生成模块1220用于生成第二数据,第二数据为参与生成密钥的第二部分数据。
[0214] 计算模块1230用于基于第一数据和第二数据,计算密钥。其中收发模块1210还用于向智能设备发送针对探测请求帧的探测回复帧,探测回复帧包括第二数据和利用密钥对网络密码进行加密后的加密数据。
[0215] 访问接入点1200还可以包括第一交互模块,响应于用户针对第一交互模块执行的操作,收发模块以广播的形式发送信标帧。
[0216] 访问接入点1200还可以包括提示模块和第二交互模块。提示模块用于向用户输出期望接入访问接入点对应的网络的智能设备的设备信息。响应于用户通过第二交互模块执行的允许智能设备接入网络的操作,收发模块向服务器发送设备标识信息。
[0217] 图14示出了根据本发明一实施例可用于实现上述通信方法的计算设备的结构示意图。
[0218] 参见图14,计算设备1300包括存储器1310和处理器1320。
[0219] 处理器1320可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器1320可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器1320可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。
[0220] 存储器1310可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器1320或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1310可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1310可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
[0221] 存储器1310上存储有可执行代码,当可执行代码被处理器1320处理时,可以使处理器1320执行上文述及的通信方法。
[0222] 上文中已经参考附图详细描述了根据本发明的通信方法、设备、接入点、服务器、系统。
[0223] 此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
[0224] 或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
[0225] 本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
[0226] 附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0227] 以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。