设备认证方法及终端设备

专利类型 发明授权 法律事件 公开; 实质审查; 授权;
专利有效性 有效专利 当前状态 授权
申请号 CN202310206775.3 申请日 2023-02-24
公开(公告)号 CN117135631B 公开(公告)日 2025-04-08
申请人 荣耀终端股份有限公司; 申请人类型 企业
发明人 夏登洲; 陈达; 王娟; 第一发明人 夏登洲
权利人 荣耀终端股份有限公司 权利人类型 企业
当前权利人 荣耀终端股份有限公司 当前权利人类型 企业
省份 当前专利权人所在省份:广东省 城市 当前专利权人所在城市:广东省深圳市
具体地址 当前专利权人所在详细地址:广东省深圳市福田区香蜜湖街道东海社区红荔西路8089号深业中城6号楼A单元3401 邮编 当前专利权人邮编:518040
主IPC国际分类 H04W12/06 所有IPC国际分类 H04W12/06H04W12/037H04W12/00H04W76/30H04L9/40H04L9/08
专利引用数量 3 专利被引用数量 0
专利权利要求数量 17 专利文献类型 B
专利代理机构 北京中博世达专利商标代理有限公司 专利代理人 申健;
摘要 本 申请 涉及通信技术领域,尤其涉及一种设备认证方法及终端设备,可以有效的保证 电子 设备与蓝牙设备之间通信的安全性,改善相关技术中密钥协商导致的复杂与繁琐的情况,节省算 力 和时间等资源。在该方法中,蓝牙设备可以通过第一认证参数去验证电子设备是否是可信的,如不可信则断开与该电子设备的蓝牙连接。可以防止电子设备随意连接该蓝牙设备,可以保证与电子设备间通信的安全性。同时,蓝牙设备在基于认证标识信息去生成第一校验信息的过程中,不需要使用十分复杂的 算法 ,可以有效的节约电子设备与蓝牙设备的算力资源、时间资源。
权利要求

1.一种设备认证方法,其特征在于,应用于蓝牙设备,所述方法包括:
在与第二电子设备认证成功之后,更新认证标识信息;
通过所述第二电子设备将更新后的认证标识信息上传到服务器
与第二电子设备断开蓝牙连接;
与第一电子设备建立蓝牙连接;
在与第一电子设备建立蓝牙连接后,生成第二随机数,并向所述第一电子设备发送所述第二随机数;其中,所述第一电子设备登录与第二电子设备相同的用户账号,所述第一电子设备通过所述用户账号从服务器获取认证标识信息;
接收所述第一电子设备发送的所述第一认证参数以及第一随机数;所述第一认证参数是所述第一电子设备根据所述第二随机数和所述认证标识信息生成的;
采用目标加密方式,基于所述第一随机数与所述第二随机数之和,以及所述蓝牙设备的认证标识信息生成第一校验信息;基于所述第一校验信息验证所述第一认证参数,在所述第一认证参数验证失败的情况下,断开与所述第一电子设备之间的蓝牙连接;
在所述第一认证参数验证成功的情况下,采用目标加密方式,基于所述第一随机数与所述第二随机数之积,以及所述认证标识信息生成第二认证参数;
向所述第一电子设备发送所述第二认证参数,所述第二认证参数用于在验证失败的情况下,触发断开所述第一电子设备与所述蓝牙设备之间的蓝牙连接。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一认证参数验证失败的情况下,向所述第一电子设备发送断连指示信息,所述断连指示信息用于指示断开蓝牙连接。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若接收到来自所述第一电子设备的断连指示信息,则断开与所述第一电子设备之间的蓝牙连接。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若接收到来自所述第一电子设备的通知信息,所述通知信息用于指示所述第二认证参数验证成功,则更新所述认证标识信息,并将所述更新后的认证标识信息,通过所述第一电子设备上传至服务器。
5.根据权利要求1所述的方法,其特征在于,所述采用目标加密方式,基于所述第一随机数与所述第二随机数之和,以及所述蓝牙设备的认证标识信息生成第一校验信息包括:
对所述认证标识信息增加盐值,所述盐值为预设的;采用目标加密方式,基于所述第一随机数与所述第二随机数之和,以及增加盐值后的所述蓝牙设备的认证标识信息生成第一校验信息。
6.根据权利要求1‑5任一项所述的方法,其特征在于,所述方法还包括:
在所述第一认证参数验证成功的情况下,使用蓝牙协议规定的加密方式与所述第一电子设备进行加密传输。
7.一种设备认证方法,其特征在于,应用于第一电子设备,所述方法包括:
第一电子设备登录与第二电子设备相同的用户账号,所述第一电子设备通过所述用户账号从服务器获取认证标识信息,所述认证标识信息是蓝牙设备与第二电子设备认证成功之后,所述蓝牙设备更新的;
在与蓝牙设备建立蓝牙连接后,从服务器获取所述蓝牙设备的认证标识信息;
生成第一随机数,并接收所述蓝牙设备发送的第二随机数;
采用目标加密方式,基于所述第一随机数与所述第二随机数之和,以及所述认证标识信息生成第一认证参数;
向所述蓝牙设备发送所述第一认证参数以及所述第一随机数,所述第一随机数用于对所述第一认证参数进行验证,所述第一认证参数用于在验证失败的情况下,触发断开所述蓝牙设备与所述第一电子设备之间的蓝牙连接;
若接收到来自所述蓝牙设备的第二认证参数,则采用目标加密方式,基于所述第一随机数与所述第二随机数之积,以及所述蓝牙设备的认证标识信息生成第二校验信息;
基于所述第二校验信息验证所述第二认证参数,在所述第二认证参数验证失败的情况下,断开与所述蓝牙设备之间的蓝牙连接。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
若接收到来自所述蓝牙设备的断连指示信息,则断开与所述蓝牙设备之间的蓝牙连接。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述第二认证参数验证失败的情况下,向所述蓝牙设备发送断连指示信息,所述断连指示信息用于指示断开蓝牙连接。
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述第二认证参数验证成功的情况下,向所述蓝牙设备发送通知信息,所述通知信息用于指示所述第二认证参数验证成功;
接收所述蓝牙设备发送的更新后的认证标识信息,并将所述更新后的认证标识信息上传至服务器。
11.根据权利要求7‑10任一项所述的方法,其特征在于,所述获取所述蓝牙设备的认证标识信息,包括:
在所述蓝牙设备为首次认证的情况下,基于所述蓝牙设备的设备信息生成所述认证标识信息;或者,
在所述蓝牙设备为非首次认证的情况下,基于所述蓝牙设备的设备信息从服务器获取所述电子设备关联的目标用户账号对应的所述蓝牙设备的认证标识信息;所述服务器中存储有所述用户账号与至少一个设备的认证标识信息的对应关系。
12.根据权利要求11所述的方法,其特征在于,所述将所述更新后的认证标识信息上传至服务器,包括:
在所述蓝牙设备为首次认证的情况下,将所述更新后的认证标识信息上传至服务器;
使得在所述服务器建立所述蓝牙设备的认证标识信息与所述目标电子设备对应的目标用户账号之间的对应关系;或者,
在所述蓝牙设备为非首次认证的情况下,将所述更新后的认证标识信息上传至服务器;使得在所述服务器更新所述蓝牙设备的认证标识信息与所述目标用户账号之间的对应关系。
13.根据权利要求11所述的方法,其特征在于,所述方法还包括:
获取所述蓝牙设备的设备信息;
基于所述设备信息,确定所述蓝牙设备的认证场景,所述认证场景包括首次认证或非首次认证。
14.根据权利要求7所述的方法,其特征在于,所述采用目标加密方式,基于所述第一随机数与所述第二随机数之和,以及所述认证标识信息生成第一认证参数,包括:
对所述认证标识信息增加盐值,所述盐值为预设的;采用目标加密方式,基于所述第一随机数与所述第二随机数之和,以及增加盐值后的所述认证标识信息生成第一认证参数。
15.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述第二认证参数验证成功的情况下,使用蓝牙协议规定的加密方式与所述蓝牙设备进行加密传输。
16.一种终端设备,其特征在于,包括:存储器、一个或多个处理器、蓝牙模;所述存储器与所述处理器耦合;其中,所述存储器中存储有计算机程序代码,所述计算机程序代码包括计算机指令;当所述计算机指令被所述处理器执行时,使得终端设备执行如权利要求1‑6任一项所述的方法;或者,
使得终端设备执行如权利要求7‑15任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在终端设备上运行时,使得所述终端设备执行如权利要求1‑6任一项所述的方法;或者,使得所述终端设备执行如权利要求7‑15任一项所述的方法。

说明书全文

设备认证方法及终端设备

技术领域

[0001] 本申请涉及通信技术领域,尤其涉及一种设备认证方法及终端设备。

背景技术

[0002] 随着技术的发展与科技的进步,用户身边的蓝牙设备也越来越多,用户会希望自己的蓝牙设备与电子设备通过蓝牙技术建立连接;在电子设备与蓝牙设备之间进行通信,使得自己的电子设备可以通过蓝牙技术控制蓝牙设备、接收蓝牙设备的数据、为蓝牙设备进行升级等等。
[0003] 相关技术中,为了保证电子设备与蓝牙设备之间通信的安全性,防止其他用户的电子设备与用户自己的蓝牙设备随意连接,以及防止电子设备与蓝牙设备之间的通信被监听。通常会在电子设备与蓝牙设备二者之间进行一个密钥协商的过程,二者通过协商产生一个密钥。电子设备与蓝牙设备均通过该密钥进行该密钥协商过程需要使用很多安全相关的库,比较繁琐;以及,在每次通信时,均需要使用密钥进行加密和解密,十分复杂。由此可见,相关技术中,为了保证电子设备与蓝牙设备之间通信的安全性,采取密钥协商的手段,会过于复杂与繁琐,算和时间等资源消耗较大。一些能力较低的轻量级蓝牙设备无法通过该种方式进行通信,蓝牙通信的安全性较差。发明内容
[0004] 有鉴于此,本申请提供了一种设备认证方法及终端设备。在该方法中,电子设备与蓝牙设备采用参数校验的方式进行安全认证,安全认证成功后才能进行蓝牙通信,可以有效的保证了电子设备与蓝牙设备之间通信的安全性,改善相关技术中密钥协商导致的复杂与繁琐的情况,节省算力和时间等资源。即便是轻量级的蓝牙设备,也能够保证蓝牙通信的安全性。
[0005] 第一方面,本申请提供了一种设备认证方法,该方法可以应用于蓝牙设备;其中蓝牙设备可以是如经典蓝牙设备、BLE蓝牙设备和双模蓝牙设备等,具有蓝牙连接能力的终端设备。在该方法中,在蓝牙设备与电子设备建立蓝牙连接后,蓝牙设备生成第二随机数,并向电子设备发送第二随机数,该第二随机数用于在电子设备上去生成第一认证参数。之后,蓝牙设备接收电子设备发送的第一认证参数以及第一随机数。接下来,蓝牙设备采用目标加密方式,基于第一随机数、第二随机数与蓝牙设备的认证标识信息生成第一校验信息;并且蓝牙设备基于第一校验信息验证第一认证参数,在第一认证参数验证失败的情况下,蓝牙设备断开与电子设备之间的蓝牙连接。
[0006] 其中,蓝牙设备可以采用预设的随机数生成方法去生成第二随机数。对于蓝牙设备来讲,该认证标识信息可以由预设的标识信息生成算法生成,也可以由蓝牙设备从自身的存储器中搜索得到。上述目标加密方式可以是,预设的与电子设备相同的加密方法或者与电子设备协商的相同的加密方法。示例性的,该认证标识信息可以为PIN码;目标加密方式可以为加密散列函数,例如MD5信息摘要算法、哈希类算法等等。
[0007] 在上述设备认证方法中,蓝牙设备可以通过第一认证参数去验证电子设备是否是可信的,如不可信则断开与该电子设备的蓝牙连接。可以防止电子设备随意连接该蓝牙设备,可以保证与电子设备间通信的安全性。同时,蓝牙设备在基于认证标识信息去生成第一校验信息的过程中,不需要使用十分复杂的算法;例如,只通过加密散列函数就可以实现。可以有效的节约电子设备与蓝牙设备的算力资源、时间资源。
[0008] 在第一方面的一种可能的设计中,本申请提供的方法还可以包括:在蓝牙设备第一认证参数验证失败的情况下,蓝牙设备可以向电子设备发送断连指示信息,该断连指示信息用于指示断开蓝牙连接。
[0009] 在第一方面的一种可能的设计中,本申请提供的方法还可以包括:在第一认证参数验证成功的情况下,蓝牙设备采用目标加密方式,基于第一随机数、第二随机数与认证标识信息生成第二认证参数。之后,蓝牙设备向电子设备发送第二认证参数,第二认证参数用于在电子设备验证该第二认证参数失败的情况下,触发断开电子设备与蓝牙设备之间的蓝牙连接。可以理解的,在这种设计中,电子设备可以通过第二认证参数去验证蓝牙设备是否是可信的,如不可信则断开与该电子设备的蓝牙连接。可以防止蓝牙设备随意连接电子设备,可以进一步的提升蓝牙设备与电子设备之间通信的安全性。
[0010] 在第一方面的一种可能的设计中,本申请提供的方法还可以包括:若蓝牙设备接收到来自电子设备的断连指示信息,则蓝牙设备断开与电子设备之间的蓝牙连接。
[0011] 在第一方面的一种可能的设计中,本申请提供的方法还可以包括:若蓝牙设备接收到来自电子设备的通知信息,该通知信息用于指示电子设备对第二认证参数验证成功,则蓝牙设备更新认证标识信息,并将更新后的认证标识信息,通过电子设备上传至服务器。上述更新后的认证标识信息可以在后续针对该蓝牙设备的认证过程中被使用。在这种设计之中,由于是由蓝牙设备对认证标识信息进行更新。在电子设备处、服务器处,都感知不到认证标识信息的更新过程;可以防止其他用户通过窃取认证标识信息更新的过程,之后得到更新后的认证标识信息去操作设备的问题,可以进一步的提高蓝牙设备与电子设备之间通信的安全性。
[0012] 在第一方面的一种可能的设计中,蓝牙设备更新认证标识信息,并将更新后的认证标识信息,通过电子设备上传至服务器,可以包括:蓝牙设备在等待预设的时间间隔后,更新认证标识信息,并将更新后的认证标识信息,通过电子设备上传至服务器;或者,蓝牙设备监控该蓝牙设备中的处理器的负荷;若该处理器的负荷小于预设的阈值,则更新认证标识信息,并通过电子设备将更新后的认证标识信息上传至服务器。在这种设计中,考虑到由于一些蓝牙设备的处理器性能不是十分强大;在第二参数认证成功后,立即更新认证标识信息,可能会造成处理器的过载。从而会造成原本可以在蓝牙设备上正常工作的进程变得卡顿,会影响用户体验。因此,本申请实施例可以在电子设备与蓝牙设备认证通过后,避开蓝牙设备执行这些进程的时间。让蓝牙设备的处理器只专注于执行上述进程,待等到蓝牙设备的处理器空闲时,再通过预设的认证标识生成算法生成新的认证标识信息。可以缓解蓝牙设备的处理器的工作负载,可以减少蓝牙设备的处理器的过载问题的发生。
[0013] 在第一方面的一种可能的设计中,上述蓝牙设备采用目标加密方式,基于第一随机数、第二随机数与认证标识信息生成第一校验信息,可以包括:蓝牙设备对认证标识信息增加盐值,该盐值可以为预设的。之后,蓝牙设备可以采用目标加密方式,基于第一随机数、第二随机数与增加盐值后的认证标识信息去生成第一校验信息。
[0014] 在第一方面的一种可能的设计中,上述蓝牙设备采用目标加密方式,基于第一随机数、第二随机数与认证标识信息生成第二认证参数,可以包括:蓝牙设备对认证标识信息增加盐值;该盐值可以为预设的与电子设备相同的或者,该盐值也可以为与电子设备协商的相同的。之后,蓝牙设备可以采用目标加密方式,基于第一随机数、第二随机数与增加盐值后的认证标识信息去生成第二认证参数。在这种设计之中,考虑到为窃取认证标识信息,可能会对认证参数发起彩虹表攻击。因此,在生成第二认证参数的时候,可以给认证标识信息增加盐值。这样即使通过彩虹表破解了第二认证参数,也不能得到本申请中的认证标识信息。只能得到一个增加了盐值后的认证标识信息,可以进一步的提高申请实施例提供的设备认证方法的安全性以及可靠性。
[0015] 在第一方面的一种可能的设计中,本申请提供的方法还可以包括:若蓝牙设备接收到来自电子设备的通知信息,则蓝牙设备使用蓝牙协议规定的加密方式与电子设备进行加密传输。
[0016] 在第一方面的一种可能的设计中,本申请提供的方法还可以包括:在蓝牙设备对第一认证参数验证成功的情况下,蓝牙设备使用蓝牙协议规定的加密方式与电子设备进行加密传输。在这种设计之中,蓝牙设备可以与电子设备二者可以通过蓝牙协议中规定的加密方式对二者间的通信进行加密,可以有效的方式二者间的通信被监听。可以有效的保证二者间通信的安全性。对于轻量级BLE设备来讲,用户通常也不会在这些轻量级BLE设备上存放数据安全性要求比较高的数据,如行账户、密码等。因此对于这些轻量级BLE设备来讲,通过蓝牙协议中的加密方式也能够有效的保证数据传输的安全性。
[0017] 第二方面,本申请提供一种设备认证方法,该方法可以应用于电子设备,该电子设备可以是,手机、平板电脑、个人电脑等等具有蓝牙连接功能的终端设备。在该方法中,在电子设备与蓝牙设备建立蓝牙连接后,电子设备获取蓝牙设备的认证标识信息,其中,对于电子设备来讲,该认证标识信息可以是由预设的标识信息生成算法生成的,也可以是从服务器中获取的。之后电子设备生成第一随机数,并接收蓝牙设备发送的第二随机数;其中,电子设备可以采用预设的随机数生成方法去生成第以随机数。再之后,电子设备采用目标加密方式,基于第一随机数、第二随机数与认证标识信息生成第一认证参数;其中,该目标加密方式可以是,预设的与蓝牙设备相同的加密方法或者与蓝牙设备协商的相同的加密方法。再之后,电子设备向蓝牙设备发送第一认证参数以及第一随机数,该第一随机数用于对第一认证参数进行验证,该第一认证参数用于在蓝牙设备对第一认证参数验证失败的情况下,触发断开蓝牙设备与电子设备之间的蓝牙连接。上述目标加密方式可以是,预设的与蓝牙设备相同的加密方法或者与蓝牙设备协商的相同的加密方法。示例性的,该认证标识信息可以为PIN码;目标加密方式可以为MD5信息摘要算法、哈希类算法等等。
[0018] 在上述设备认证方法中,蓝牙设备可以通过第一认证参数去验证电子设备是否是可信的,如不可信则断开与该电子设备的蓝牙连接。可以防止电子设备随意连接该蓝牙设备,可以保证与电子设备间通信的安全性。同时,蓝牙设备在基于认证标识信息去生成第一校验信息的过程中,不需要使用十分复杂的算法;例如,只通过加密散列函数就可以实现。可以有效的节约电子设备与蓝牙设备的算力资源、时间资源。
[0019] 在第二方面的一种可能的设计中,本申请提供的方法还包括:若电子设备接收到来自蓝牙设备的断连指示信息,则电子设备断开与蓝牙设备之间的蓝牙连接。
[0020] 在第二方面的一种可能的设计中,本申请提供的方法还包括:若电子设备接收到来自蓝牙设备的第二认证参数,则电子设备采用目标加密方式,基于第一随机数、第二随机数与蓝牙设备的认证标识信息生成第二校验信息。电子设备基于第二校验信息验证第二认证参数,并在第二认证参数验证失败的情况下,断开与蓝牙设备之间的蓝牙连接。可以理解的,在这种设计中,电子设备可以通过第二认证参数去验证蓝牙设备是否是可信的,如不可信则断开与该电子设备的蓝牙连接。可以防止蓝牙设备随意连接电子设备,可以进一步的提升蓝牙设备与电子设备之间通信的安全性。
[0021] 在第二方面的一种可能的设计中,本申请提供的方法还包括:在第二认证参数验证失败的情况下,电子设备向蓝牙设备发送断连指示信息,该断连指示信息用于指示断开蓝牙连接。
[0022] 在第二方面的一种可能的设计中,本申请提供的方法还包括:在第二认证参数验证成功的情况下,电子设备向蓝牙设备发送通知信息,该通知信息用于指示电子设备对第二认证参数验证成功。之后电子设备接收蓝牙设备发送的更新后的认证标识信息,并将更新后的认证标识信息上传至服务器。在这种设计之中,由于是由蓝牙设备对认证标识信息进行更新。在电子设备处、服务器处,都感知不到认证标识信息的更新过程;可以防止其他用户通过窃取认证标识信息更新的过程,之后得到更新后的认证标识信息去操作设备的问题,可以进一步的提高蓝牙设备与电子设备之间通信的安全性。
[0023] 在第二方面的一种可能的设计中,电子设备获取蓝牙设备的认证标识信息包括:在蓝牙设备为首次认证的情况下,电子设备基于蓝牙设备的设备信息生成认证标识信息;
其中,电子设备可以使用预设的标识信息生成算法基于蓝牙设备的设备信息去生成认证标识信息。或者,在蓝牙设备为非首次认证的情况下,电子设备基于蓝牙设备的设备信息从服务器获取电子设备关联的目标用户账号对应的蓝牙设备的认证标识信息;该服务器中存储有用户账号与至少一个设备的认证标识信息的对应关系。其中,目标用户账号可以为该电子设备上所登录的用户账号。
[0024] 在第二方面的一种可能的设计中,电子设备将更新后的认证标识信息上传至服务器,包括:在蓝牙设备为首次认证的情况下,电子设备将更新后的认证标识信息上传至服务器;使得在服务器建立蓝牙设备的认证标识信息与目标电子设备对应的目标用户账号之间的对应关系。或者,电子设备在认证场景为非首次认证的情况下,电子设备将更新后的认证标识信息上传至服务器;使得在服务器更新蓝牙设备的认证标识信息与目标用户账号之间的对应关系。
[0025] 在第二方面的一种可能的设计中,本申请提供的方法还可以包括:电子设备获取蓝牙设备的设备信息。之后,电子设备基于设备信息,确定蓝牙设备的认证场景,认证场景包括首次认证或非首次认证。其中,蓝牙设备的设备信息可以包括:蓝牙MAC地址,设备ID,设备名称,蓝牙设备类型中一种或多种。蓝牙MAC地址可以包括:公共设备地址和随机设备地址。
[0026] 在第二方面的一种可能的设计中,蓝牙设备的设备信息还可以包括:认证指示信息。认证指示信息可以为配置文件的形式、也可以为字段的形式等等。以及,电子设备基于设备信息,确定蓝牙设备的认证场景,可以包括:电子设备基于认证指示信息,确定蓝牙设备的认证场景。
[0027] 在第二方面的一种可能的设计中,上述电子设备采用目标加密方式,基于第一随机数、第二随机数与蓝牙设备的认证标识信息生成第二校验信息,可以包括:电子设备对认证标识信息增加盐值;该盐值可以为预设的与电子设备相同的或者,该盐值也可以为与电子设备协商的相同的。电子设备采用目标加密方式,基于第一随机数、第二随机数与增加盐值后的认证标识信息生成第二校验信息。
[0028] 在第二方面的一种可能的设计中,上述电子设备采用目标加密方式,基于第一随机数、第二随机数与认证标识信息生成第一认证参数,可以包括:电子设备对认证标识信息增加盐值;该盐值可以为预设的与电子设备相同的或者,该盐值也可以为与电子设备协商的相同的。电子设备采用目标加密方式,基于第一随机数、第二随机数与增加盐值后的认证标识信息生成第一认证参数。在这种设计之中,考虑到为窃取认证标识信息,可能会对认证参数发起彩虹表攻击。因此,在生成第二认证参数的时候,可以给认证标识信息增加盐值。这样即使通过彩虹表破解了第二认证参数,也不能得到本申请中的认证标识信息。只能得到一个增加了盐值后的认证标识信息,可以进一步的提高申请实施例提供的设备认证方法的安全性以及可靠性。
[0029] 在第二方面的一种可能的设计中,本申请提供的方法还包括:在第二认证参数验证成功的情况下,电子设备使用蓝牙协议包括的加密方式与蓝牙设备进行加密传输。在这种设计之中,蓝牙设备可以与电子设备二者可以通过蓝牙协议中规定的加密方式对二者间的通信进行加密,可以有效的方式二者间的通信被监听。可以有效的保证二者间通信的安全性。
[0030] 在第二方面的一种可能的设计中,本申请提供的方法还包括:若电子设备接收到来自蓝牙设备的通知信息,则电子设备使用蓝牙协议包括的加密方式与蓝牙设备进行加密传输。
[0031] 第三方面,本申请提供一种设备认证方法,该方法可以应用于电子设备,该电子设备可以是,手机、平板电脑、个人电脑等等具有蓝牙连接功能的终端设备。在该方法中,在电子设备与蓝牙设备建立蓝牙连接后,电子设备获取蓝牙设备的认证标识信息。之后,电子设备生成第一随机数,并向蓝牙设备发送第一随机数;第一随机数用于生成第二认证参数。再之后,电子设备接收蓝牙设备发送的第二随机数,以及第二认证参数。再之后,电子设备采用目标加密方式,基于第一随机数、第二随机数与认证标识信息生成第二校验信息。再之后,电子设备基于第二校验信息验证第二认证参数,在电子设备对第二认证参数验证失败的情况下,断开与蓝牙设备之间的蓝牙连接。
[0032] 第四方面,本申请提供一种终端设备,该终端设备可以是,手机、平板电脑、笔记本电脑、车载电脑、智能牙刷、体脂秤、智能杯等等具有蓝牙连接能力的设备。该终端设备包括:存储器、一个或多个处理器、蓝牙模;存储器与处理器耦合;其中,存储器中存储有计算机程序代码,计算机程序代码包括计算机指令;当计算机指令被处理器执行时,使得终端设备执行上述第一方面及第一方面任一种可能的设计所提供的方法。或者,使得终端设备执行上述第二方面及第二方面任一种可能的设计所提供的方法。再或者,使得终端设备执行上述第三方面提供的方法。
[0033] 第五方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当计算机指令在终端设备上运行时,使得终端设备执行上述第一方面及第一方面任一种可能的设计所提供的方法。或者,使得终端设备执行上述第二方面及第二方面任一种可能的设计所提供的方法。再或者,使得终端设备执行上述第三方面提供的方法。
[0034] 第六方面,本申请提供一种包含指令的计算机程序产品,当该计算机程序产品在终端设备上运行时,使得终端设备可以执行上述第一方面及第一方面任一种可能的设计所提供的方法。或者,使得终端设备执行上述第二方面及第二方面任一种可能的设计所提供的方法。再或者,使得终端设备执行上述第三方面提供的方法。
[0035] 其中,第四方面至第六方面中任一种设计方式所带来的技术效果可参见第一方面、第二方面与第三方面中不同设计方式所带来的技术效果,此处不再赘述。附图说明
[0036] 图1为本申请实施例提供的一种设备认证方法使用场景示意图;
[0037] 图2为本申请实施例提供的一种电子设备的结构示意图;
[0038] 图3为本申请实施例提供的一种电子设备的软件结构示意图;
[0039] 图4为本申请实施例提供的一种蓝牙设备的结构示意图;
[0040] 图5为本申请实施例提供的一种软件架构示意图;
[0041] 图6为本申请实施例提供的设备认证方法的一种流程示意图;
[0042] 图7为本申请实施例提供的一种搜索设备界面示意图;
[0043] 图8为本申请实施例提供的设备认证方法的又一种流程示意图;
[0044] 图9为本申请实施例提供的设备认证方法的又一种流程示意图;
[0045] 图10是本申请示例提供的一种设备认证界面的示意图;
[0046] 图11是本申请实施例提供的又一种设备认证界面的示意图;
[0047] 图12为本申请实施例提供的一种用户登录界面示意图;
[0048] 图13为本申请实施例提供的设备认证方法的又一种流程示意图;
[0049] 图14为本申请实施例提供的设备认证方法的又一种流程示意图;
[0050] 图15为本申请实施例提供的一种终端设备的结构示意图。

具体实施方式

[0051] 下面,在介绍本申请的实施例之前,首先对蓝牙技术以及蓝牙设备进行简要介绍。
[0052] 蓝牙(bluetooth)技术,蓝牙技术是一种无线数据和语音通信开放的全球规范,它是基于低成本的近距离无线连接,可以为固定和移动设备建立通信环境;是一种近距离无线通信技术。蓝牙技术可以利用特定频率的波段(2.4GHz‑2.485GHz左右),进行电磁波传输。蓝牙技术可以包括不同版本的蓝牙协议,例如,蓝牙4.0、蓝牙4.1、蓝牙4.2、蓝牙5.0等等。其中,在4.0版本(也就是蓝牙4.0)及4.0版本以上的蓝牙中,将蓝牙分为了经典蓝牙(classic Bluetooth)和低功耗蓝牙(Bluetooth low energy,简称BLE或者LE)。相比于经典蓝牙,BLE的功耗更低,更加适用于一些功耗比较低的场景。
[0053] 蓝牙设备是指具有蓝牙功能的设备,至少包括:经典蓝牙设备、低功耗蓝牙(BLE)蓝牙设备、双模蓝牙设备。其中双模蓝牙设备是指,具有经典蓝牙功能又BLE功能的蓝牙设备。
[0054] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,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可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
[0055] 随着技术的发展与科技的进步,用户身边的蓝牙设备也越来越多,用户会希望自己的蓝牙设备与电子设备通过蓝牙技术建立连接,使得电子设备可以控制蓝牙设备、接收蓝牙设备的数据、为蓝牙设备进行升级等等。
[0056] 例如,用户在使用体脂秤等蓝牙设备时,会想要记录自身的体脂变化、体重变化等信息;并根据自身的体脂变化、体重变化调整自身的作息、饮食、运动等等。由于体脂秤这种蓝牙设备的处理器比较简单,存储器空间也比较小,功能不是十分强大。体脂秤并不能胜任对体脂变化、体重变化的数据处理,数据存储工作。因此用户通常会在体脂秤与手机之间建立蓝牙连接。周期性的将体脂秤的数据传输给手机,并通过手机的健康类应用程序(application,APP)来对体脂变化、体重变化进行监控,并进行数据分析。从而实现用户对自身身体健康的监控。
[0057] 相关技术中,为了保证电子设备与蓝牙设备之间通信的安全性,通常会在电子设备与蓝牙设备二者之间进行一个密钥协商的过程,二者通过协商产生一个密钥。电子设备与蓝牙设备均通过该密钥进行加密传输。该密钥协商过程需要在电子设备与蓝牙设备之间进行多轮信息交换,过程十分繁琐。并且需要使用很多安全相关的库(例如,Mbed‑TLS库,PolarSSL库等等);并且这些库的使用十分占用存储空间。以及,在密钥协商通过后,二者之间的每次通信均需要使用一些加/解密算法,例如RSA算法、椭圆加密(Elliptic curve cryptography,ECC)算法以及椭圆曲线迪菲‑赫尔曼秘钥交换(Elliptic Curve Diffie‑Hellman key Exchange,ECDH)算法等等;其中,RSA算法是由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)三人一起提出的,并以三人姓氏的开头字母拼在一起而命名。使用这些算法进行加/解密,计算过程十分复杂,会消耗很多算力资源以及耗费很多计算时间。
[0058] 由此可见,相关技术中,为了保证电子设备与蓝牙设备之间通信的安全性,采取密钥协商的手段,会过于复杂与繁琐,对算力、存储空间和时间等资源消耗较大。对于一些轻量级蓝牙设备,这些轻量级蓝牙设备的内存空间比较小、蓝牙设备的处理器性能也不强,无法通这种方式进行通信,蓝牙通信的安全性会比较差。
[0059] 基于此,本申请提供了一种设备认证方法及终端设备。在该方法中,电子设备与蓝牙设备采用参数校验的方式进行安全认证,安全认证成功后才能进行蓝牙通信,可以有效的保证了电子设备与蓝牙设备之间通信的安全性,可以改善相关技术中密钥协商导致的复杂与繁琐的情况,可以节省算力、时间、存储空间等资源。即便是轻量级的蓝牙设备,也能够保证蓝牙通信的安全性。
[0060] 在一些方案中,为了保证电子设备与蓝牙设备之间通信的安全性,防止其他用户的电子设备与用户自己的蓝牙设备随意连接,以及防止电子设备与蓝牙设备之间的通信被监听。电子设备与蓝牙设备在建立了蓝牙连接之后,会进行一个密钥协商的过程。在二者之间协商产生一个密钥。如电子设备与蓝牙设备之间的密钥协商不通过,没有通过协商得到密钥,则可以认为电子设备或蓝牙设备之中的一方是不可靠的,不是可以信任的设备,是随意连接的设备。并且在二者密钥协商通过后,二者间的通信均会基于该密钥进行,可以用来防止电子设备与蓝牙设备之间的通信被监听。在上述密钥协商的过程中,二者会进行多轮次的信息交换,并且需要使用到很多与安全相关的库。由此可见,在这些方案中,为了保证电子设备与蓝牙设备之间通信的安全性,采用密钥协商的手段,会过于复杂与繁琐。有鉴于此,申请提供的一种设备认证方法及终端设备。在该方法中,电子设备与蓝牙设备不进行密钥协商过程,而是采用参数校验的方式去认证彼此的身份,防止设备间的随意连接;以及,电子设备与蓝牙设备不采用协商产生密钥对电子设备与蓝牙设备间的通信进行加密传输,而是通过蓝牙协议中的加密方式对通信进行加密传输,防止设备间的通信被监听。从而保证了电子设备与蓝牙设备间通信的安全性。可以改善因为采用密钥协商手段去保证电子设备与蓝牙设备之间通信的安全性,而导致的复杂与繁琐的情况。对于轻量级BLE设备来讲,用户通常也不会在这些轻量级BLE设备上存放数据安全性要求比较高的数据,如银行账户、密码等。因此对于这些轻量级BLE设备来讲,通过蓝牙协议中的加密方式也能够保证数据传输的安全性。
[0061] 本申请提供的设备认证方法,可以应用在近场通信的通信场景下,也就是说,终端设备A与终端设备B通过近场通信技术建立近场通信连接。其中,近场通信技术可以是蓝牙技术,紫峰(ZigBee)技术,433兆赫兹(MHz)通信技术,2.4吉赫兹(GHz)通信技术等等。
[0062] 下面将以近场通信技术是蓝牙技术为例,对本申请可以应用的场景进行说明。参见图1,图1为本申请实施例提供的设备认证方法使用场景示意图。在电子设备100与蓝牙设备400建立了蓝牙连接后,为保证电子设备100与蓝牙设备400之间通信的安全性,蓝牙设备400会与电子设备100之间会进行一个设备认证的过程;该过程可以由电子设备100与蓝牙设备400在借助服务器500的帮助下完成。
[0063] 示例性的,本申请实施例中的电子设备可以是便携式计算机(如手机)、平板电脑、笔记本电脑、个人计算机(personal computer,PC)、可穿戴电子设备(如智能手表)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、车载电脑等能够连接互联网以具有蓝牙连接能力的设备。
[0064] 本申请实施例中的蓝牙设备可以是,经典蓝牙(classic Bluetooth)设备,BLE设备,双模蓝牙设备等等。例如:智能家居设备、智能牙刷、体脂秤、智能水杯、智能血压计、等具有蓝牙连接能力的电子设备。以及,本申请实施例中的服务器可以是,服务器、异构服务器、虚拟服务器等等。以下实施例对该电子设备、蓝牙设备、服务器三者的具体形式均不做特殊限制。
[0065] 以上述电子设备是手机为例。参见图2,其示出了本申请实施例提供的一种电子设备100的结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器
170A,受话器170B,麦克170C,机接口170D,传感器模块180,按键190,达191,指示器
192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中,传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
[0066] 可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
[0067] 处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural‑network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
[0068] 其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
[0069] 处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
[0070] 在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter‑integrated circuit,I2C)接口,集成电路内置音频(inter‑integrated circuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general‑purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
[0071] I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
[0072] PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
[0073] UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
[0074] 电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
[0075] 天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
[0076] 移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
[0077] 无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi‑Fi)网络),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
[0078] 其中,无线通信模块160还可以包括经典蓝牙模块和/或低功耗蓝牙(BLE)模块。
[0079] 电子设备100可以通过天线1、天线2、移动通信模块150、无线通信模块160等实现通信功能和数据传输等功能。
[0080] 示例性的,在本申请实施例中,电子设备100可以通过天线1、天线2、移动通信模块150、无线通信模块160等与蓝牙设备建立蓝牙连接。接收来自蓝牙设备的设备信息,随机数、认证参数等等。
[0081] 示例性的,在本申请实施例中,电子设备100还可以通过天线1、天线2、移动通信模块150、无线通信模块160与服务器建立通信。接收来自服务器的认证标识信息和认证历史记录等。
[0082] 内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
[0083] 示例性的,在本申请实施例中,在电子设备100与蓝牙设备建立了蓝牙连接后。电子设备可以通过天线1、天线2、移动通信模块150、无线通信模块160等获取蓝牙设备的设备信息。处理器110可以通过内部存储器121所存储的计算机可执行程序代码基于蓝牙设备的设备信息生成认证标识信息。或者,通过天线1、天线2、移动通信模块150、无线通信模块160、移动通信模块150等向服务器获取认证标识信息。电子设备100的处理器100会基于该认证标识信息生成认证参数,与蓝牙设备进行设备认证。
[0084] 电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
[0085] 图3是本申请实施例提供的电子设备100的软件结构示意图。
[0086] 分层架构将软件分成若干个层,每一层都有清晰的色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为五层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,内核层以及底层协议层。
[0087] 应用程序层可以包括一系列应用程序包。如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息,具有蓝牙管理功能的APP(例如,智慧空间APP)等应用程序。应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
[0088] Android runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
[0089] 核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
[0090] 应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
[0091] 系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),二维(2D)图形引擎(例如:SGL)等。表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。2D图形引擎是2D绘图的绘图引擎。
[0092] 内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
[0093] 底层协议层用于向电子设备提供工作所需的协议,可以包括:蓝牙协议、Wi‑Fi协议、消息队列遥测传输协议(message queuing telemetry transport,MQTT)以及超文本传输安全协议(hyper text transport protocol over secure socket layer,HTTPS)等。其中,蓝牙协议可以包括经典蓝牙协议和/或BLE蓝牙协议。
[0094] 如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
[0095] 其中,应用程序框架层还可以包括设备管理层和设备连接层。设备管理层和设备连接层均用于为电子设备100提供与设备连接、管理相关的服务。例如,为蓝牙管理类APP提供数据和功能支持。例如,设备管理层可以包括:设备注册模块、设备查询模块、设备控制模块等等。设备连接层可以包括:设备发现模块、设备连接模块、设备认证模块等等。
[0096] 示例性的,参见图4,图4为本申请实施例提供的一种蓝牙设备的结构示意图。应理解,图4所示的蓝牙设备400仅为一个示例,在另一些实施例中,蓝牙设备400可以有比图4中所示的更多或更少的部件,可以组合两个或多个部件,或者可以具有不同的部件配置。图中所示的各种部件可以再包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
[0097] 如图4所示,蓝牙设备400可以包括处理器401、存储器402,蓝牙通信模块403,天线404,电源开关405,USB通信处理模块406,音频处理模块407。其中:处理器401可以用于读取和执行计算机可读指令。具体实现中,处理器401可以主要包括控制器、运算器和寄存器。其中,控制器主要负责指令译码,并为指令对应的操作发出控制信号。运算器主要负责保存指令执行过程中临时存放的寄存器操作数和中间操作结果等。具体实现中,处理器401的硬件架构可以是专用集成电路(ASIC)架构、MIPS架构、ARM架构或者NP架构等。
[0098] 在一些实施例中,处理器401可以用于解析蓝牙通信模块403接收到的信号,如电子设备发送的查询请求、寻呼请求等。处理器401可以用于根据解析结果进行相应的处理操作,如进行蓝牙扫描或进行蓝牙配对等。
[0099] 存储器402,与处理器401耦合,用于存储各种软件程序和/或多组指令。具体实现中,存储器402可包括高速随机存取的存储器,并且也可以包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器402可以存储操作系统,例如uCOS,VxWorks、RTLink等嵌入式操作系统。存储器402还可以存储通信程序,该通信程序可以用于与电子设备100进行通信。
[0100] 其中,蓝牙通信模块403可以包括经典蓝牙模块和/或低功耗蓝牙(BLE)模块。
[0101] 蓝牙设备400的无线通信功能可以通过天线404、蓝牙通信模块403、调制解调处理器等实现。
[0102] 天线404可以用于发射和接收电磁波信号。蓝牙设备400中的每个天线可以用于覆盖单个或多个通信频带。在一些实施例中,蓝牙通信模块403的天线可以有一个或多个。电源开关405可以用于控制电源向蓝牙设备400供电。USB通信处理模块406可以用于通过USB接口(图4未示出)与其他设备进行通信。在一些实施例中,蓝牙设备400还可以包括RS‑232接口等串行接口。该串行接口可以连接至其他设备,如音箱等音频外放设备,使得蓝牙设备400和音频外放设备协作播放音视频。
[0103] 示例性的,蓝牙设备400可以通过,天线404、蓝牙通信模块403、调制解调处理器等与电子设备100建立蓝牙连接。蓝牙设备400在与电子设备100建立了蓝牙连接之后,处理器401可以运行存储在存储器402上的计算机可读指令,去生成认证标识信息。以及在与电子设备100进行认证的过程中通过该认证标识信息去生成认证参数,与电子设备进行设备认证。
[0104] 应理解,图4所示的结构仅为示例,并不构成对蓝牙设备400的具体限定。在本申请以下实施例中,蓝牙设备400可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件、或硬件和软件的组合实现。
[0105] 参见图5,图5为本申请实施例提供的一种软件架构示意图。图中电子设备的设备管理层包括:设备注册模块502、设备查询模块503、设备控制模块504和信息转发模块514。设备连接层可以包括:设备发现模块505、设备连接模块506、设备认证模块507。其中,设备注册模块502主要用于在电子设备与蓝牙设备首次认证通过后,对蓝牙设备进行注册,将蓝牙设备的设备信息注册到服务器上。设备查询模块503用于从服务器500中查询蓝牙设备
400的设备信息。设备控制模块504主要负责基于各种协议的设备控制。例如通过底层协议层提供的协议向蓝牙设备发送控制指令,以及通过底层协议层提供的协议向服务发送控制指令等等。所采用的协议包括不限于蓝牙(Bluetooth)协议、Wi‑Fi协议、消息队列遥测传输(message queuing telemetry transport,MQTT)协议以及超文本传输安全(hyper text transport protocol over secure socket layer,HTTPS)协议等。以及通过上述协议实现控制蓝牙设备开关,查询蓝牙设备数据,对蓝牙设备进行空中技术(Over‑the‑Air Technology,OTA)升级,对蓝牙设备进行恢复出厂设置等操作。例如,设备控制模块504可以蓝牙协议向蓝牙设备400获取蓝牙设备的信息,并控制蓝牙设备的开关,参数调节等等。又例如,设备控制模块504还可以基于Wi‑Fi协议、MQTT、HTTPS协议之中的一种或多种从服务器中获取OTA升级包,并通过蓝牙协议使用该OTA升级包对蓝牙设备进行OTA升级。
[0106] 设备发现模块505,主要复杂扫描发现蓝牙设备400,并在发现蓝牙设备400后由设备连接模块506与蓝牙设备400建立蓝牙连接。设备认证模块507主要负责认证蓝牙设备400是否可信。
[0107] 为与电子设备100进行配合,服务器500和蓝牙设备400应包括以下架构:
[0108] 服务器500可以包括:设备注册模块508、设备信息存储模块509。蓝牙设备400可以包括:设备认证模块510、设备注册模块512和处理模块513。其中,服务器500的设备注册模块508,蓝牙设备400的设备注册模块512和电子设备100的设备注册模块502三者之间互相配合,在蓝牙设备首次认证通过后对蓝牙设备进行注册。并在注册成功后由蓝牙设备的设备认证模块生成该蓝牙设备的认证标识信息,并将生成的认证标识信息通过电子设备100的信息转发模块514转发给服务器500。并由服务器500的设备信息存储模块509进行存储。
[0109] 综上可见,在图5所示的软件架构图下,电子设备100可以通过设备发现模块505与设备连接模块506与蓝牙设备400建立蓝牙连接。在建立了蓝牙连接之后,电子设备100会得到蓝牙设备400的认证标识信息;电子设备100的设备认证模块507会基于该认证标识信息生成认证参数。同样,蓝牙设备400的设备认证模块512也会基于该认证标识信息生成认证参数。蓝牙设备400与电子设备100二者分别比较对方生成的认证参数是否与自己生成的认证参数相同,来验证对方的可靠性和安全性。
[0110] 下面,将结合附图和应用场景对本申请实施例提供的设备认证方法进行具体阐述。由于对于蓝牙设备来讲,其进行设备认证时的认证场景可以分为首次认证场景和非首次认证场景。在这两种场景下,本申请提供的设备认证方法会略有不同。其中,首次认证,可以理解为在蓝牙设备出厂后或恢复了出厂设置后没有与电子设备进行过成功的认证。也就是说,在服务器上不存在该蓝牙设备的注册信息,该蓝牙设备没有在服务器上成功的注册。
[0111] 首先,以首次认证场景为例,对本申请提供的设备认证方法进行介绍,参见图6;图6为本申请实施例提供的设备认证方法的流程示意图。该设备认证方法可以包括步骤S101‑S104。
[0112] S101.电子设备搜索蓝牙设备,并与蓝牙设备建立蓝牙连接。
[0113] 电子设备可以使用蓝牙协议中提供的方式,搜索蓝牙设备,并与蓝牙设备建立蓝牙连接。
[0114] 作为一种可能的实施方式,该过程可以如下:
[0115] 当电子设备与蓝牙设备未连接时,在电子设备打开蓝牙功能后,电子设备可以向周围发送查询请求(inquiry request)。当蓝牙设备处于查询蓝牙扫描(inquiry scan)状态时,蓝牙设备可以扫描到电子设备发送的查询请求。响应于扫描到的查询请求,蓝牙设备可以向电子设备发送查询响应(inquiry response),使得电子设备获取蓝牙设备作为可配对的蓝牙设备选项。当用户选择蓝牙设备的设备选项后,电子设备可以向蓝牙设备发送寻呼请求(page request)。蓝牙设备可以以固定的间隔在一个固定的时间窗口内以某个调频频率监听电子设备的寻呼请求,当监听到电子设备的寻呼请求后,蓝牙设备可以在下一个时间槽(时间窗口)向电子设备发送从设备寻呼响应(salve page response)。电子设备在接收到蓝牙设备的从设备寻呼响应后,可以在下一个时间槽向蓝牙设备发送主设备寻呼响应(master page response)。基于此,电子设备与蓝牙设备二者之间建立了蓝牙连接。
[0116] 示例性的,以蓝牙设备是BLE设备,蓝牙协议为BLE协议为例。结合上述图5所示的软件架构,对电子设备100与蓝牙设备400二者之间的蓝牙连接过程进行描述。
[0117] 当电子设备100与蓝牙设备400未连接时,在电子设备100打开蓝牙功能后,电子设备的设备发现模块505会进行广播(advertising),发送广播事件(advertising event)广播事件中会包含上述查询请求。使得电子设备获取蓝牙设备作为可配对的蓝牙设备选项。其中,广播事件(advertising event),为以预设的广播间隔发送一个或多个广播包(例如,ADV_IND广播包)。其中,广播包可以在一个或多个射频通道上同时发送。在一种可能的实施方式中,电子设备上设置有蓝牙管理应用,电子设备启动蓝牙管理应用后,响应于用户的操作与蓝牙设备建立蓝牙连接。示例性的,蓝牙管理应用可以为智慧空间APP;参见图7,图7为本申请实施例提供的一种搜索设备界面示意图。图7中的(a)部分是电子设备中智慧空间APP的显示界面,显示界面上有“添加设备”控件,当用户点击该控件,即为用户开启了电子设备的蓝牙功能。电子设备的设备发现模块会进行广播,发送广播事件。显示界面可以跳转至图7中的(b)部分所示的界面,即电子设备开始扫描并发现蓝牙设备。
[0118] 如此时蓝牙设备400开启了自身的蓝牙功能,蓝牙设备400会在上述一个或多个射频通道上进行扫描。当蓝牙设备400扫描到电子设备100发送的广播包后,蓝牙设备400会向电子设备100发送查询响应。响应于电子设备100的设备发现模块505接收到该查询响应,电子设备100可以获取蓝牙设备作为可配对的蓝牙设备选项。示例性的,再次参见图7,图7中的(c)部分中,电子设备显示了扫描到的蓝牙设备(图中示为电子秤),但此时电子设备与蓝牙设备是未连接状态。如图7中的(d)部分中所示,若用户选中了该蓝牙设备,则电子设备会向该蓝牙设备发送寻呼请求,请求与该蓝牙设备建立蓝牙连接。具体的,在图5所示软件架构中。响应于用户选择了蓝牙设备的设备选项,电子设备100的设备连接模块506可以向蓝牙设备400发送寻呼请求。蓝牙设备400可以以固定的间隔在一个固定的时间窗口内以某个调频频率监听电子设备100的寻呼请求,当监听到电子设备100的寻呼请求后,蓝牙设备400可以在下一个时间槽向电子设备发送从设备寻呼响应。电子设备100的设备连接模块506在接收到蓝牙设备100的从设备寻呼响应后,可以在下一个时间槽向蓝牙设备发送主设备寻呼响应。基于此,电子设备与蓝牙设备二者之间建立了蓝牙连接。
[0119] 作为一种可能的实施方式,当蓝牙设备为BLE设备时,电子设备可以与BLE设备以just work模式建立蓝牙连接。当蓝牙设备为经典蓝牙(classic Bluetooth)设备时,电子设备可以与经典蓝牙设备以just work模式建立蓝牙连接。
[0120] 作为一种可能的实施方式,在电子设备与蓝牙设备二者建立了蓝牙连接后,电子设备与蓝牙设备之间的通信,均可以受到蓝牙协议中加密方式的保护,可以有效的防止电子设备与蓝牙设备之间的通信被监听。对于轻量级BLE设备来讲,用户通常也不会在这些轻量级BLE设备上存放数据安全性要求比较高的数据,如银行账户、密码等。因此对于这些轻量级BLE设备来讲,通过蓝牙协议中的加密方式也能够保证数据传输的安全性。
[0121] S102.电子设备获取蓝牙设备的设备信息,并基于该设备信息确定为首次认证场景。
[0122] 其中,蓝牙设备的设备信息可以包括:蓝牙媒体存取控制位(Media Access Control,MAC)地址,设备ID,设备名称,蓝牙设备类型中一种或多种。其中,蓝牙设备可以包括:经典蓝牙设备或BLE设备、双模设备等。认证指示信息可以用于指示该蓝牙设备是否为首次认证。对于BLE设备来说,蓝牙MAC地址可以包括:公共设备地址(Public Device Address)和随机设备地址(Random Device Address)。其中公共设备地址是唯一且不会更改的,而由于BLE设备在进行通信时,大都是进行广播通信,在获取到蓝牙MAC地址后,理论上任何设备均可以与该蓝牙设备进行广播通信。因此为了提升BLE设备通信的安全性,BLE设备的蓝牙MAC地址可以使用公共设备地址+随机设备地址的形式,以提升BLE设备通信的安全性。
[0123] 在一些实施例中,蓝牙设备的设备信息还可以包括认证指示信息。认证指示信息可以为配置文件的形式、也可以为字段的形式等等。示例性的,认证指示信息可以为配置文件的形式,文件中记录了该蓝牙设备已经成功认证的次数。当蓝牙设备已经成功认证次数为0次时,认为该蓝牙设备为首次认证。或者,该认证指示信息也可以为字段的形式。例如,可以使用first_certification字段去记录该蓝设备是否为首次认证,当first_certification字段的值为1时,认为该蓝牙设备为首次认证,当first_certification字段的值为0时,认为该蓝牙设备不是首次认证。
[0124] 作为一种可能的实施方式,当蓝牙设备为BLE设备时,电子设备可以使用扫描蓝牙广播、BluetoothDevice.connectGatt命令、收发BLE数据的方式去获取BLE设备的蓝牙MAC地址,设备ID,设备名称,蓝牙设备类型,认证指示信息等等。当蓝牙设备为经典蓝牙设备时,电子设备可以使用扫描蓝牙广播、BluetoothDevice.createRfcommSocketToServiceRecord命令、收发蓝牙数据的方式去获取经典蓝牙设备的设备ID,设备名称,蓝牙设备类型,认证指示信息等等。
[0125] 作为一种可能的实施方式,电子设备可以基于设备信息中的认证指示信息来确定该蓝牙设备的认证场景为首次认证场景。例如,当认证指示信息为配置文件形式时,电子设备可以根据文件中记录的认证次数为0来判断蓝牙设备为首次认证场景。或者,当认证指示信息为字段的形式时,电子设备可以根据字段的值来判断蓝牙设备为首次认证场景。
[0126] 作为一种可能的实施方式,电子设备还可以基于设备信息中的蓝牙MAC地址来判断该蓝牙设备为首次认证场景。例如,电子设备会在电子设备本地记录已经和自身认证通过的蓝牙设备的MAC地址,并形成认证历史记录。在电子设备获取到了蓝牙设备的MAC地址后,电子设备可以在该认证历史记录中查询蓝牙设备的MAC地址。如发现认证历史记录中不存在蓝牙设备的MAC地址则可以认为该蓝牙设备为首次认证场景。
[0127] 考虑到在一些场景中,由于用户可能拥有多个电子设备,并会通过多个电子设备分别与该电子设备连接。例如,用户可能会在某一天的上午使用手机与体脂秤进行蓝牙连接,在下午使用平板电脑与体脂秤进行蓝牙连接。在一些实施例中,电子设备会将认证历史记录上传至服务器。服务器将该认证历史记录与电子设备上登录的用户账号进行绑定。在电子设备获取到了蓝牙设备的MAC地址后,电子设备可以通过该电子设备上登录的用户账号,从服务器中获取该用户账号下全部电子设备的认证历史记录,并通过该认证历史记录去判断该蓝牙设备是否为首次认证场景。
[0128] S103.电子设备和蓝牙设备均基于蓝牙设备的设备信息,分别生成该蓝牙设备的认证标识信息。
[0129] 其中,该认证标识信息可以为个人身份识别(Personal identification number,PIN)码。该认证标识信息可以由预设的标识信息生成算法生成。其中,预设的标识信息生成算法可以通过蓝牙设备的设备信息去生成蓝牙设备的认证标识信息。在一些实施例中,标识信息生成算法可以通过蓝牙设备的MAC地址去生成蓝牙设备的认证标识信息。在一些实施例中,标识信息生成算法也可以通过蓝牙设备的设备ID与蓝牙设备的MAC地址去生成蓝牙设备的认证标识信息。
[0130] 示例性的,以设备信息包括蓝牙MAC地址,蓝牙MAC地址包括公共设备地址和随机设备地址,认证标识信息为PIN码为例,对步骤S103进行介绍详细介绍。步骤S103可以包括步骤S103a1‑S103a4。
[0131] S103a1.电子设备提取蓝牙MAC地址中的公共设备地址。
[0132] 示例性的,由于蓝牙MAC地址的会存在一定的规则,例如对于48比特(bits)的蓝牙MAC地址来讲,前24bits为公共设备地址、后24bits为随机设备地址。因此本实施例可以提取蓝牙MAC地址中的前24bits来获取公共设备地址。
[0133] S103a2.电子设备基于该公共设备地址,采用预设的标识信息生成算法生成PIN码。
[0134] S103a3.蓝牙设备提取蓝牙MAC地址中的公共设备地址;
[0135] S103a4.蓝牙设备基于该公共设备地址,采用预设的标识信息生成算法生成PIN码,其中该预设的标识信息生成算法与电子设备中的标识信息生成算法相同。
[0136] 当蓝牙设备为BLE设备时,蓝牙MAC地址会出现公共设备地址+随机设备地址的组合形式。由于随机设备地址是BLE设备在蓝牙连接时生成的,在每次连接时都会更改。因此本申请实施例为保证在首次认证时,生成的PIN码的唯一性。本申请实施例可以采用MAC地址中唯一且不变的公共设备地址,去生成PIN码;可以保证在首次认证场景下,生成的PIN码的唯一性,从而可以提高本申请实施例提供的设备认证方法的稳定性
[0137] 在一些实施例中,预设的标识信息生成算法可以将公共设备地址进行重新组合,生成PIN码。例如,可以将公共设备地址中的前12bits和后12bits调换后作为PIN码。
[0138] 在一些实施例中,预设的标识信息生成算法也可以基于随机设备地址去生成PIN码,例如将随机设备地址进行哈希类运算,并将该哈希类运算的结果作为PIN码。
[0139] 可以理解的,在实际应用中,可以先由电子设备生成PIN码,也可以先由蓝牙设备生成PIN码,还可以由电子设备与蓝牙设备同时生成PIN码;可以根据实际的应用情况进行合理调整,本申请对此不做限定。
[0140] S104.电子设备与蓝牙设备分别基于认证标识信息生成认证参数,彼此交换认证参数,并验证对方的认证参数。
[0141] 在步骤S104中,若认证参数验证成功,则表明电子设备与蓝牙设备可以互相信任的设备,电子设备会与蓝牙设备保持蓝牙连接;并可以在后续进行数据传输、OTA升级等等操作。
[0142] 此外,在步骤S104中,若认证参数验证失败,则表明电子设备与蓝牙设备之间一者是不可信的设备,蓝牙设备与电子设备之间断开蓝牙连接。可以防止用户数据泄露,防止用户数据被窃取。
[0143] 作为一种可能的实施方式,电子设备与蓝牙设备直接也可以只进行一次参数验证的过程。例如,蓝牙设备可以生成认证参数供电子设备验证,若电子设备验证该认证参数失败,则可以认为蓝牙设备是不可信的,就会断开与蓝牙设备之间的通信连接。又例如,电子设备也可以生成认证参数供蓝牙设备验证,若蓝牙设备验证该认证参数失败,则可以认为蓝牙设备是不可信的,就会断开与蓝牙设备之间的通信连接。
[0144] 作为一种可能的实施方式,上述认证参数可以包括:第一认证参数和第二认证参数。蓝牙设备可以采用预设的随机数生成方法,生成随机数R1;同样的,电子设备也可以采用预设的随机数生成方法,生成随机数R2。电子设备与蓝牙设备二者彼此交换R1和R2。之后,电子设备可以采用预设的加密方法,基于R1、R2和认证标识信息生成第一认证参数;同样的蓝牙设备也可以采用预设的加密方法,基于R1、R2和认证标识信息生成第二认证参数。其中,第一认证参数与第二认证参数不相同。为保证第一认证参数与第二认证参数不相同,电子设备可以计算R1+R2的值,并将R1+R2的值和认证标识信息拼接,并在拼接后采用预设的加密方法生成第一认证参数;蓝牙设备也可以计算R1*R2的值,并将R1*R2的值和认证标识信息拼接,并在拼接后采用预设的加密方法生成第二认证参数。
[0145] 在电子设备生成了第一认证参数后,电子设备会将第一认证参数发送给蓝牙设备,蓝牙设备可以校验第一认证参数,来去验证电子设备是否可信。蓝牙设备验证第一认证参数的过程,可以如下:
[0146] 蓝牙设备使用预设的与电子设备相同的加密方法或者双方协商的相同的加密方法,基于R1、R2和认证标识信息去生成一个校验信息,并对比该校验信息与第一认证参数是否相同。如该校验信息与第一认证参数相同,则第一认证参数验证成功,可以认为电子设备是可以信任的。若不相同,则第一认证参数验证失败,可以认为电子设备不是可以信任的电子设备,会断开与电子设备的蓝牙连接,避免蓝牙设备上用户的数据泄露,从而造成用户的信息安全受到威胁。
[0147] 同样的,在蓝牙设备验证了电子设备是可信的后,电子设备也需要验证蓝牙设备是否可信。基于此,蓝牙设备可以再基于R1、R2和认证标识信息生成一个第二认证参数,并将该第二认证参数发送给电子设备,电子设备可以通过验证第二认证参数,来去验证蓝牙设备是否可信,该过程与上述蓝牙设备验证第一认证参数的过程类似,在此不再赘述。
[0148] 作为一种可能的实施方式,在参数验证失败的情况下,电子设备与蓝牙设备二者之间可以传递断连指示信息,该断连指示信息可以用于指示断开二者间的蓝牙连接。
[0149] 作为一种可能的实施方式,在电子设备与蓝牙设备二者均验证成功后。电子设备(蓝牙设备)可以向对方发送一个通知信息,该通知信息可以用于指示电子设备(蓝牙设备)对认证参数验证成功。
[0150] 需要说明的是,在本申请实施例中可以先由蓝牙设备验证电子设备是否可信,也可以是先由电子设备验证蓝牙设备是否可信,本申请对蓝牙设备与电子设备彼此间验证是否可信的先后顺序不做限制。
[0151] 其中,预设的随机数生成方法可以以查表的形式实现。例如,可以通过预先配置一个或多个内置若干个随机数表格。每当需要生成随机数时,可以从该随机数表格中的顺序选择或者逆序提取一个随机数。以及,预设的随机数生成方法也可以以函数的形式实现。例如,使用random函数,每当需要生成随机数时,可以通过调用random函数,得到一个随机数。
[0152] 其中,预设的加密方法可以为密码散列函数(Cryptographic hash function),也可称为加密散列函数。如MD5信息摘要算法(MD5 Message‑Digest Algorithm,MD5)、哈希类算法,例如SHA‑1、SHA‑256等等。
[0153] 由此可见,若参数验证通过,则表明电子设备与蓝牙设备之间二者是可以彼此相互信任的设备,蓝牙设备与电子设备之间可以安全的进行通信。在一些实施例中,在电子设备与蓝牙设备二者的通信过程中,二者均以蓝牙协议中规定的加密方式进行加密传输。例如,在蓝牙设备验证第一认证参数成功后,电子设备与蓝牙设备二者可以以蓝牙协议中规定的加密方式进行加密传输。又例如,在电子设备验证第二认证参数成功后,电子设备与蓝牙设备二者可以以蓝牙协议中规定的加密方式进行加密传输。
[0154] 由此可见,本申请实施例提供的方案,主要通过由认证标识信息生成的认证参数,并在电子设备与蓝牙设备二者间采用参数校验的方式去认证彼此的身份,去验证对方是否是可信的,从而防止设备间的随意连接。由于在认证通过之前,由于进行认证的双方(蓝牙设备或电子设备)之间并不信任。该认证标识信息不会在蓝牙设备与电子设备二者之间传递,仅仅会传递用于辅助生成认证参数的随机数R1和R2。这样,即使进行认证的双方之中的一者为不安全的,不安全的设备只能获取的到随机数和认证参数,并不能直接的获取到认证标识信息。并不能通过随机数和认证参数去破解电子设备与蓝牙设备之间的设备认证过程,从而防止设备间的随意连接,从而保证设备间通信的安全性。
[0155] 同时,本申请中,在基于认证标识信息去生成认证参数的过程中,不需要使用十分复杂的算法,例如,只通过加密散列函数就可以实现。可以有效的节约电子设备与蓝牙设备的算力资源、时间资源。
[0156] 下面将以预设的加密方法为哈希类算法,认证标识信息为PIN码为例,对步骤S104进行详细介绍。参见图8,图8是本申请实施例提供的设备认证方法的又一种流程示意图。步骤S104可以包括:S104a1‑S104a10。
[0157] S104a1.电子设备生成随机数R2。
[0158] 例如,电子设备可以使用random函数,生成随机数R2。
[0159] S104a2.电子设备向蓝牙设备发送随机数请求。
[0160] S104a3.蓝牙设备响应于该随机数请求,生成随机数R1。
[0161] 例如,蓝牙设备可以使用预设的随机数表格,生成随机数R1。
[0162] S104a4.蓝牙设备向电子设备发送该随机数R1。
[0163] S104a5.电子设备基于R1、R2和PIN码生成第一认证参数。
[0164] 作为一种可能的实施方式,电子设备可以先计算R1+R2的值,并将R1+R2的值和PIN码拼接,并在拼接后采用SHA256方法生成第一认证参数。其中,可以按照先R1+R2的值后PIN码的顺序将R1+R2的值和PIN码拼接。也可以将R1+R2的值插入PIN码中以实现拼接,本申请对此不做限定。
[0165] 作为一种可能的实施方式,电子设备还可以采用密钥相关的哈希运算消息认证码(Hash‑based Message Authentication Code,HMAC)函数基于R1、R2和PIN码生成第一认证参数。其中,HMAC函数是一种使用单项散列函数来构造消息认证码的方法,其以一个密钥和一个消息作为输入,生成一个消息摘要作为输出。例如,可以使用R1+R2作为消息输入,以及将PIN码作为密钥输入;得到作为消息摘要输出的第一认证参数C1,即C1=HmacSHA256(R1+R2,PIN)。其中,HmacSHA256表示,该HMAC函数使用的单项散列函数是哈希256函数。
[0166] S104a6.电子设备向蓝牙设备发送第一认证参数和R1。
[0167] S104a7.蓝牙设备响应于接收到电子设备发送的第一认证参数和R1;基于R1、R2和PIN码验证第一认证参数是否相同。
[0168] 可以理解的,在蓝牙设备接收到电子设备发送的第一认证参数后,也会采用哈希类算法通过R1、R2和第一认证表示信息去校验第一认证参数是否相同。例如可以通过:
[0169] C1`=HmacSHA256(R1+R2,PIN)去得到C1`并比较C1`和电子设备发送的C1是否一致。如一致则对于蓝牙设备来讲,电子设备是可以信任的,与该电子设备继续进行通信是安全的,不会产生信息安全问题,可以继续进行蓝牙通信。如不一致则对于蓝牙设备来讲,电子设备是不可以信任的,继续进行蓝牙通信是危险的,会产生信息安全问题,不可以继续进行蓝牙通信。因此如蓝牙设备验证C1`与C1不一致,蓝牙设备会主动断开与该电子设备的蓝牙连接。
[0170] S104a8.蓝牙设备基于R1、R2和PIN码生成第二认证参数。
[0171] 作为一种可能的实施方式,蓝牙设备可以使用HMAC函数基于R1、R2和PIN码生成第二认证参数C2,即C2=HmacSHA256(R1*R2,PIN)。
[0172] S104a9.蓝牙设备向电子设备发送该第二认证参数。
[0173] S104a10.电子设备响应于接收到蓝牙设备发送的第二认证参数;基于R1、R2和PIN码验证第二认证参数是否相同。
[0174] 同样的,电子设备还可以通过:计算C2`=HmacSHA256(R1*R2,PIN)去得到C2`并比较C2`和C2是否一致。
[0175] 基于此,本申请实施例提供的设备认证方法,电子设备与蓝牙设备之间,只需几次信息交换就可以完成参数校验,可以完成对彼此身份的认证。流程比较简洁。同时,在进行认证参数校验的过程中无需使用特别复杂的算法,仅通过加密散列函数就可以完成。并不会过多的占用蓝牙设备的内存和处理器的资源,可以减小对蓝牙设备硬件的压力。使用本申请提供的设备认证方法,可以有效的改善,采用密钥协商去保证设备间通信的安全性而导致的复杂与繁琐的情况。
[0176] 作为一种可能的实施方式,在一些场景下,考虑到为窃取认证标识信息,可能会对认证参数发起彩虹表(rainbow‑tables)攻击。如通过第一认证参数和/或第二认证参数,使用彩虹表去反推得到PIN码。因此在生成第一认证参数、第二认证参数时,可以向PIN码上增加盐值去防止彩虹表攻击。
[0177] 示例性的,在电子设备基于R1、R2和PIN码生成第一认证参数时可以给PIN码增加一个盐值FactorA。在增加了盐值FactorA后,即使获取到第一认证参数后,使用彩虹表破解该第一认证参数,也不能得到PIN码,而是得到一个加了盐值后的PIN码的破解值。由于攻击者并不能得知盐值在PIN码上的位置、以及盐值的大小。因此攻击者并不能得到PIN码,可以提高本申请实施例提供的设备认证方法的安全性以及可靠性,并为该方法提供防御彩虹表攻击的能力。
[0178] 例如,对于步骤S104a5,在增加了盐值FactorA后,可以通过下述方式去计算C1:
[0179] C1=HmacSHA256(R1+R2,PIN+FactorA)。
[0180] 相对应的,对于步骤S104a7,在增加了盐值FactorA后,可以通过下述方式去计算C1`:
[0181] C1`=HmacSHA256(R1+R2,PIN+FactorA)。
[0182] 可以理解的,该盐值FactorA可以为预设的相同的,也可以为电子设备与蓝牙设备协商相同的。
[0183] 为了进一步提升本实施例的安全性,提高防御彩虹表攻击的能力,在可以采用与盐值FactorA不相同的盐值FactorB去生成第二认证参数。同样的,FactorB可以为预设的相同的,也可以为电子设备与蓝牙设备协商相同的。
[0184] 例如,对于步骤S104a8,在增加了盐值FactorB后,可以通过下述方式去计算C2:
[0185] C2=HmacSHA256(R1+R2,PIN+FactorB)。
[0186] 相对应的,对于步骤S104a10,在增加了盐值FactorB后,可以通过下述方式去计算C2`:
[0187] C2`=HmacSHA256(R1+R2,PIN+FactorB)。
[0188] 可以理解的是,彩虹表是一种破解哈希类算法的辅助工具。彩虹表以时空折中理论为基础,但并不是简单地“以空间换时间”,而是一种“双向交易”,在二者之间达到平衡。彩虹表是一个用于加密散列函数逆运算的预先计算好的表,为破解密码的散列值(或称哈希值、微缩图、摘要、指纹、哈希密文)而准备。这样的表常常用于恢复由有限集字符组成的固定长度的纯文本密码。
[0189] 结合上述图5所示的软件架构,上述步骤S104还可以根据下述流程实现。参见图9,图9是本申请实施例提供的设备认证方法的又一种流程示意图。步骤S104可以包括步骤S104b1‑S104b10。
[0190] S104b1.电子设备100的设备注册模块502生成随机数R2。
[0191] S104b2.电子设备100的设备控制模块504向蓝牙设备400的设备注册模块512发送随机数请求。
[0192] 示例性的,设备控制模块504可以使用电子设备100的蓝牙协议中控制指令向蓝牙设备400的设备注册模块512发送随机数请求。
[0193] S104b3.蓝牙设备400的设备注册模块512响应于该随机数请求,生成随机数R1。
[0194] S104b4.蓝牙设备400向电子设备100的设备控制模块504发送该随机数R1。
[0195] S104b5.电子设备100的设备注册模块504基于R1、R2和认证标识信息生成第一认证参数。
[0196] S104b6.电子设备100的设备注册模块502向蓝牙设备400的设备注册模块512发送第一认证参数和R1。
[0197] S104b7.蓝牙设备400的设备注册模块512响应于接收到电子设备发送的第一认证参数和R1;基于R1、R2和认证标识信息验证第一认证参数是否相同。
[0198] 可选的,在步骤S104b7后,可以选择执行S104b71。
[0199] S104b71.电子设备100的智慧空间APP501响应于蓝牙设备400的设备注册模块512验证第一认证参数不相同,提示用户认证不通过。
[0200] S104b8.蓝牙设备400的设备注册模块512基于R1、R2和认证标识信息生成第二认证参数。
[0201] S104b9.蓝牙设备400的设备注册模块512向电子设备100的设备注册模块502发送该第二认证参数。
[0202] S104b10.电子设备100的设备注册模块502响应于接收到蓝牙设备400发送的第二认证参数;基于R1、R2和认证标识信息验证第二认证参数是否相同。
[0203] 可选的,在步骤S104b10后,可以选择执行S104b101。
[0204] S104b101.电子设备100的智慧空间APP501响应于电子设备100的设备注册模块502验证第二认证参数不相同,提示用户认证不通过。
[0205] 作为一种可能的实施方式,在提示用户认证不通过时,电子设备可以简要显示用户认证不通过的原因以及显示不通过代码。用户在获取了不通过代码后,可以基于该不通过代码查询认证不通过的详细原因,可以提升用户的使用体验。示例性的,参见图10,图10是本申请示例提供的一种设备认证界面的示意图。对于步骤S104b71,电子设备100的智慧空间APP501可以通过图10中(a)部分所示界面来提示用户认证不通过。对于步骤S104b101,电子设备100的智慧空间APP可以通过图10中(b)部分所示的界面来提示用户认证不通过。
[0206] 由于电子设备与蓝牙设备是基于蓝牙协议进行通信,因此在电子设备与蓝牙设备的通信过程中(例如上述步骤S104a2、S104a4、S104a6和S104a9,以及后续的其他步骤)均会采用蓝牙协议中的加密方式进行加密,可以保证电子设备与蓝牙设备二者之间通讯的安全性。同时,由于蓝牙协议中的加密方式大多是固化在蓝牙芯片内部的,使用蓝牙协议中的加密方式对电子设备和蓝牙设备二者之间的通信进行加密,可以节约蓝牙设备的处理器的资源。相比于使用额外的加密算法对电子设备和蓝牙设备二者之间的通信进行额外加密,这种方式能节约蓝牙设备处理器资源和蓝牙设备的ROM资源。
[0207] 作为一种可能的实施方式,在步骤S104b10后,电子设备还可以提示用户电子设备与蓝牙设备认证通过。例如,可以通过电子设备的扬声器,发出预设的提示音效,去提示用户;又例如,电子设备还可以通过电子设备的马达,做出预设的震动提示,去提示用户。
[0208] 作为一种可能的实施方式,在步骤S104b10后,步骤S104还可以包括:
[0209] S104b11.电子设备100的智慧空间APP501响应于电子设备100的设备注册模块502验证第二参数相同,提示用户认证通过。
[0210] 示例性的,参见图11,图11是本申请实施例提供的又一种设备认证界面的示意图。电子设备的智慧空间APP中可以显示如图11中(a)部分所示的界面来提示用户认证通过,并且会显示图11中(b)部分所示的界面,去提示用户该体脂称已连接。当用户点击该体脂秤控件时,电子设备100的智慧空间APP会显示如图11中(b)部分所示的控件列表。用户可以点击控件组中的控件,以对体脂秤进行设置。例如,再次参见图11,用户可以点击“重命名”控件,对该体脂秤进行重新命名;也可以点击“设备设置”控件,去设置体脂秤的待机时间,计量单位,例如千克,磅等等;还可以点击“设备升级”控件,对体脂秤进行OTA升级;还可以点击断开连接,去主动断开与体脂称的蓝牙连接。
[0211] 在一些实施例中,若认证参数验证成功,则蓝牙设备对认证标识信息进行更新,并通过电子设备将更新后的认证标识信息上传至服务器,将更新后的认证标识信息与用户账号相绑定,从而使得蓝牙设备通过电子设备在服务器上进行注册。也就是说,在步骤S104之后,为了便于电子设备与蓝牙设备进行下一次设备认证过程,以及便于用户使用不同的电子设备,对同一个蓝牙设备进行蓝牙连接。即,在步骤S104之后,本申请提供的设备认证方法,还可以包括对蓝牙设备进行注册以及绑定的步骤。
[0212] 由于对蓝牙设备进行注册以及绑定之前,电子设备上需要登录用户账号,与服务器建立通信连接。因此首先对电子设备登录用户账号的过程进行简要介绍。
[0213] 电子设备可以通过提示用户登录账号的方式,去验证用户的身份。其中,用户账号可以是用户手机号、用户邮箱、用户名等等具有唯一性的字符信息。
[0214] 作为一种可能的实施方式,用户可以在电子设备中输入用户的身份验证信息。该身份验证信息为用户账号以及用户账号对应的密码。电子设备可以将该身份验证信息提交给服务器对该用户进行身份验证。在服务器对该身份验证信息验证通过后,会发送给电子设备一个用户识别信息,电子设备会将该用户标识信息存放在电子设备的只读存储器(Read‑Only Memory,ROM)之中。电子设备接收到该用户标识信息,则可以认为用户已经成功登录的用户账号。在一些可能的实施方式中,电子设备接收到的用户标识信息可以是具有时效性的。即在一定周期内,该用户标识信息是有效的;若过期则需要重新在电子设备中输入身份验证信息进行账号登录。
[0215] 在一些场景中,由于用户没有进行账号登录,或者上次产生的具有时效性的用户标识信息已经过期,此时电子设备会显示用户账号登录界面,提示用户在用户账号登录界面内,输入用户账号以及用户账号对应的密码,登录用户账号。在一种可能的实施方式中,电子设备中设置有蓝牙管理应用,电子设备启动蓝牙管理应用后,登录蓝牙管理应用对应的用户账号。而后,电子设备基于该蓝牙管理应用执行后续的设备认证方法。示例性地,蓝牙管理应用可以为智慧空间APP,用户可通过智慧空间APP登录用户账号。智慧空间APP的登录界面可以如图12所示,图12为本申请实施例提供的一种用户登录界面示意图。用户可以采用用户账号(可以为用户手机号、邮箱或其他账号名)和密码的登录方式进行登录,如图12中的(a)部分所示,也可以采用用户手机号和验证码的登录方式进行登录,如图12中的(b)部分所示。即用户在注册账号后,可以用该账号下的多种信息进行登录。
[0216] 假设用户的手机号是唯一的标识,手机号是后续向云服务器进行注册的凭证。在用户通过用户手机号和验证码的登录方式进行登录时,电子设备可以直接将手机号发送至服务器进行登录或注册;在用户通过账号名和密码的登录方式进行登录时,电子设备可以通过用户账号查找到该用户账号对应的手机号,并向云服务器发送手机号进行登录或注册。
[0217] 在一些场景下,用户会对蓝牙设备进行体验,体验蓝牙设备的各种功能。例如,用户在购买体脂称之前,会体验体脂称的体重检测、体脂检测功能,并会在手机上查看基于自身的体脂体重、所提供的运动方案等等。电子设备不进行账号登录,通过无账号模式体验蓝牙设备以及体验智慧空间APP。示例性的,再次参见图12,用户也可以在智慧空间APP内选择无账号登录对应的选项,进行无账号登录模式,在无账号登录模式下,用户无需进行账号登录,就可以体验体脂称设备,以及体验智慧空间APP的相关功能。
[0218] 可以理解的是,本申请提供的设备认证方法,可以在进行设备认证之前(如,步骤S101前),去进行账号登录,也可以在蓝牙设备与电子设备认证通过后(如,步骤S104后),进行注册和绑定之前,进行账号登录,本申请实施例对登录用户账号的具体时机不予限制。
[0219] 下面,将以蓝牙设备与电子设备认证成功(即认证参数验证成功)之后,电子设备登录用户账号;再之后,蓝牙设备进行注册和绑定为例,对本申请提供的设备认证方法进行补充介绍。作为一种可能的实施方式,再次参见图6。本申请提供的设备认证方法,在步骤S104,参数认证通过后,还可以包括步骤S105‑S107。
[0220] S105.电子设备登录用户账号,与服务器建立通信连接。
[0221] 此过程可以参见上述对电子设备登录用户账号的过程的介绍,在此不再赘述。
[0222] S106.蓝牙设备通过电子设备在服务器上进行注册。
[0223] 在蓝牙设备注册之前,电子设备可以处于已经注册状态,因此在介绍蓝牙设备的注册过程之前,首先介绍电子设备的注册过程。参见图5所示的软件架构图,对于具有登录用户账号能力的电子设备100来说(也可以理解为具有与服务器500直接联网通信的能力),可凭借自身的登录能力向服务器500进行注册。该过程可以为:电子设备100上首次登录用户账号时,便可由设备注册模块401向服务器500发送该用户账号,服务器500的设备注册模块为电子设备100分配一个设备注册信息,如设备注册ID。并将该设备注册信息返回至电子设备100,电子设备100根据该设备注册信息向服务器500申请注册,注册成功后,服务器500可以使用用户账号和/或注册ID来标识该电子设备100。
[0224] 示例性的,对于蓝牙设备来讲,尤其是轻量级BLE设备;可能不具备登录用户账号能力(也可以理解为不具有与服务器直接联网通信的能力),需要在与电子设备建立蓝牙连接并互相认证通过后,借助电子设备实现注册。例如,在图5所示的软件架构下,在电子设备100与蓝牙设备400认证通过后。蓝牙设备400的设备注册模块512会通过电子设备100的信息转发模块514将蓝牙设备400的设备信息(如蓝牙MAC地址、设备名称、设备ID、蓝牙设备类型等)和电子设备100所登录的用户账号,发送给服务器500。服务器500的设备注册模块508会生成一个针对该蓝牙设备400的设备注册信息,如设备注册ID。并将该设备注册信息返回至蓝牙设备400,蓝牙设备400根据该设备注册信息在借助信息转发模块514的帮助下,向服务器500申请注册,注册成功后,服务器500可以使用用户账号和/或设备信息来标识该蓝牙设备400。以及在注册成功后,服务器500会将该蓝牙设备400与用户账号绑定。
[0225] S107.蓝牙设备对认证标识信息进行更新,并通过电子设备将更新后的认证标识信息上传至服务器。
[0226] 服务器在接收到更新后的认证标识信息,可以将该认证标识信息存储到服务器的设备信息存储模块下,并与该电子设备上登录的用户账号绑定。可以理解的是,该更新后的认证标识信息可以在针对该蓝牙设备的后续认证过程中被使用;也就是说,在针对该蓝牙设备后续的认证过程中均可以使用上一次更新的认证标识信息进行认证。基于此,该用户账号下不同的终端设备均可以从服务器上获取到这个蓝牙设备的认证标识信息,而与蓝牙设备用户账号不同的终端设备则获取不到这个蓝牙设备的认证标识信息。后续,用户在使用该用户账号下其他的终端设备连接这个蓝牙设备时,不需要感知就可以完成对这个蓝牙设备的认证过程,十分便捷。同时还可以保证与这个蓝牙设备蓝牙通信的安全性。
[0227] 蓝牙设备可以在与电子设备认证通过后,采用预设的认证标识生成算法生成新的认证标识信息。并将该认证标识信息存储在自身的存储器中,用于下一次与电子设备的认证过程。并且由于本申请中的蓝牙设备不与服务器进行之间进行直接的通信,因此蓝牙设备可以以电子设备为中介。通过电子设备的信息转发模块向服务器上传新的认证标识信息。这样,电子设备在下次认证时,就可以从服务器中获取到新的认证标识信息,并在下次认证时,电子设备就可以基于新的认证标识信息与蓝牙设备进行认证。
[0228] 可以理解的,本申请中的认证标识信息是由蓝牙设备更新的,服务器、电子设备中并不会进行认证标识信息更新的过程。因此可以有效的防止其他用户通过窃取认证标识信息更新的过程,得到更新后的认证标识信息去操作设备的问题,可以进一步的提高蓝牙设备与电子设备之间通信的安全性。
[0229] 作为一种可能的实施方式,蓝牙设备在更新了认证标识信息后,还可以修改认证指示信息,使得在下次认证时,电子设备可以基于认证指示信息知晓,认证场景为非首次认证。例如,蓝牙设备可以将配置文件形式的认证指示信息中的认证次数加一。又例如,蓝牙设备可以将字段的值由0修改为1。
[0230] 接下来,对非首次认证场景下,本申请提供的设备认证方法进行介绍,参见图13,图13是本申请实施例提供的设备认证方法的流程示意图。该设备认证方法可以包括步骤S201‑S206。其中,非首次认证,可以理解为在蓝牙设备的此次认证之前,已经进行过了设备认证。也就是说,在服务器上存在该蓝牙设备的注册信息以及该蓝牙设备在上次认证过程中更新后的认证标识信息。例如,电子设备A与蓝牙设备在进行了首次认证后,因为一些原因(如电子设备A与蓝牙设备的距离超出了蓝牙通信的有效距离,或用户主动断开蓝牙连接等等),电子设备A与蓝牙设备的蓝牙连接断开。之后,电子设备A再次与蓝牙设备进行设备认证时,就会使用更新后的认证标识信息,执行步骤S201‑S206与蓝牙设备进行认证。并在本次认证成功后,由蓝牙设备再次更新一个新的认证标识信息,用于下一次的设备认证。又例如,用户使用电子设备A与蓝牙设备进行认证,在认证通过后,用户想要使用电子设备B与蓝牙设备进行连接。此时由于电子设备A与电子设备B均属于同一个用户,用户会在电子设备A与电子设备B上登录同一个账号,也就是电子设备A与电子设备B的用户账号相同。因此电子设备B可以从服务器中获取到蓝牙设备的认证标识信息,并基于这个标识信息与蓝牙设备进行认证。
[0231] S201.电子设备登录用户账号,与服务器建立通信连接。此过程与上述电子设备登录用户账号的过程类似,在此不再赘述。
[0232] S202.电子设备搜索蓝牙设备,并与蓝牙设备建立蓝牙连接。
[0233] S203.电子设备获取蓝牙设备的设备信息,并基于该设备信息确定非首次认证场景。
[0234] 对于步骤S202‑S203,此过程与上述步骤S101‑S102类似,可参考上述实施例的具体描述,对此不再赘述。
[0235] S204.电子设备基于用户账号从服务器获取该蓝牙设备的认证标识信息。
[0236] 可以理解的是,该认证标识信息可以由电子设备基于蓝牙设备的设备信息与电子设备上登录的用户账号向服务器查询得到。若未获取到认证标识信息则表明,该蓝牙设备并不属于该用户,此时电子设备会与蓝牙设备断开蓝牙连接;再之后,电子设备还可以提示用户与该蓝牙设备认证失败。
[0237] 在另外一些实施例中,电子设备也可以在步骤202之后、步骤S203之后或其他时机登录用户账号,从而基于用户账号从服务器获取蓝牙设备的认证标识信息,本申请实施例对登录用户账号的具体时机不予限制。
[0238] 在一些实施例中,电子设备可以通过蓝牙设备的注册ID与电子设备上登录的用户账号,从服务器获取该蓝牙设备的认证标识信息。在一些实施例中,电子设备还可以通过蓝牙设备的MAC地址与用户账号向服务器查询得到。示例性的,以设备信息为设备ID,认证标识信息为PIN码为例,对步骤S204进行详细介绍。参见图14,在该场景下步骤S204可以包括:S204a1‑S204a7。
[0239] S204a1.电子设备基于蓝牙设备的设备ID和用户账号生成查询请求。其中,该用户账号为电子设备上所登录的用户账号。
[0240] 可以理解的,查询请求可以是报文的形式,主要用于请求服务器查询该用户账号下绑定的蓝牙设备的设备信息对应的认证标识信息,如蓝牙设备的设备ID对应的PIN码。该PIN码由蓝牙设备与电子设备在上一次认证通过后生成,并借助电子设备上传至服务器。
[0241] S204a2.电子设备向服务器发送该查询请求。
[0242] S204a3.服务器接响应于该查询请求,查询该用户标识信息下该设备ID的PIN码。
[0243] S204a4.响应于服务器查询到该蓝牙设备的PIN码,服务器向电子设备发送PIN码。
[0244] S204a5.电子设备接收PIN码。
[0245] S204a6.响应于服务器没有查询到该蓝牙设备的PIN码,服务器向电子设备发送查询指示消息。
[0246] S204a7.电子设备响应于查询指示消息,电子设备提示用户认证不通过。
[0247] S205.电子设备与蓝牙设备分别基于认证标识信息生成认证参数,彼此交换认证参数,并分别验证对方的认证参数。
[0248] 其中,电子设备可以从服务器中获取该认证标识信息。蓝牙设备可以在自身的存储器中搜索得到该认证标识信息。
[0249] 对于步骤S205,此过程与上述步骤S104类似,可参考上述实施例的具体描述,在此不再赘述。
[0250] S206.蓝牙设备对认证标识信息进行更新,并通过电子设备将更新后的认证标识信息上传至服务器。
[0251] 对于步骤S206,此过程与上述步骤S107类似,可参考上述实施例的具体描述,在此不再赘述。
[0252] 可以理解的是,在一些场景下,电子设备与蓝牙设备认证通过后。蓝牙设备会执行一些进程,(例如向蓝牙设备传输数据,进行OTA升级等等)。在蓝牙设备认证通过后(例如,上述步骤S106之后,上述步骤S205之后),由于一些蓝牙设备的处理器性能不是十分强大,立即更新认证标识信息,可能会造成处理器的过载。从而会造成原本可以在蓝牙设备上正常工作的进程变得卡顿。因此,本申请实施例可以在电子设备与蓝牙设备认证通过后,避开蓝牙设备执行这些进程的时间。让蓝牙设备的处理器只专注于执行上述进程,待等到蓝牙设备的处理器空闲时,再通过预设的认证标识生成算法生成新的认证标识信息。可以缓解蓝牙设备的处理器的工作负载,可以减少蓝牙设备的处理器的过载问题的发生。
[0253] 作为一种可能的实施方式,在于电子设备认证通过之后(例如,步骤S106后,步骤S205后),蓝牙设备不会立即采用对认证标识信息进行更新。例如,蓝牙设备可以在间隔预设的时间间隔(例如,60s)后,再更新认证标识信息。又例如,蓝牙设备也可以监控自身的处理器负荷,当处理器负荷小于预设的阈值后(例如,70%),再更新认证标识信息。
[0254] 可以理解的是,为了实现上述功能,电子设备包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0255] 本实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0256] 本申请实施例还提供一种终端设备,该终端设备可以是上述电子设备或蓝牙设备,如图15所示,该终端设备可以包括一个或者多个处理器1001、存储器1002和通信接口1003。
[0257] 其中,存储器1002、通信接口1003与处理器1001耦合。例如,存储器1002、通信接口1003与处理器1001可以通过总线1004耦合在一起。
[0258] 其中,通信接口1003用于与其他设备进行数据传输。存储器1002中存储有计算机程序代码。计算机程序代码包括计算机指令,当计算机指令被处理器1001执行时,使得电子设备执行本申请实施例中的设备认证。
[0259] 其中,处理器1001可以是处理器或控制器,例如可以是中央处理器(Central Processing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application‑Specific Integrated Circuit,ASIC),现场可编程阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
[0260] 其中,总线1004可以是外设部件互连标准(Peripheral  Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry  Standard 
Architecture,EISA)总线等。上述总线1004可以分为地址总线、数据总线、控制总线等。为便于表示,图15中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0261] 本申请实施例还提供一种计算机可读存储介质,该计算机存储介质中存储有计算机程序代码,当上述处理器执行该计算机程序代码时,电子设备执行上述方法实施例中的相关方法步骤。
[0262] 本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例中的相关方法步骤。
[0263] 其中,本申请提供的电子设备、计算机可读存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
[0264] 通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0265] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0266] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0267] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0268] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0269] 以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
QQ群二维码
意见反馈