CN116056077B - 一种蓝牙通信方法、电子设备及计算机可读存储介质 - Google Patents
一种蓝牙通信方法、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116056077B CN116056077B CN202210935847.3A CN202210935847A CN116056077B CN 116056077 B CN116056077 B CN 116056077B CN 202210935847 A CN202210935847 A CN 202210935847A CN 116056077 B CN116056077 B CN 116056077B
- Authority
- CN
- China
- Prior art keywords
- electronic device
- electronic equipment
- electronic
- authentication code
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 136
- 230000006854 communication Effects 0.000 title claims abstract description 134
- 238000004891 communication Methods 0.000 title claims abstract description 132
- 238000012795 verification Methods 0.000 claims abstract description 105
- 230000006870 function Effects 0.000 claims description 126
- 230000008569 process Effects 0.000 claims description 50
- 238000004422 calculation algorithm Methods 0.000 claims description 46
- 230000015654 memory Effects 0.000 claims description 43
- 238000004590 computer program Methods 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 230000003993 interaction Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 4
- 210000000988 bone and bone Anatomy 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 210000004027 cell Anatomy 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 229920001690 polydopamine Polymers 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
- H04W12/068—Authentication using credential vaults, e.g. password manager applications or one time password [OTP] applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/50—Secure pairing of devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephone Function (AREA)
Abstract
本申请提供一种蓝牙通信方法及相关电子设备,该方法包括:在检测到未存储第一认证码以及未从网络设备获取第一认证码的情况下,生成第一校验信息;将第一校验信息发送给第二电子设备;第二电子设备为与第一电子设备待配对的设备;若第一电子设备的身份校验通过,接收第二电子设备发送的第一认证码,第一认证码为第一电子设备和第二电子设备之间的蓝牙认证凭证;第一认证码为在第一电子设备的身份校验通过后,第二电子设备发送的认证码;第一电子设备保存第一认证码;第一电子设备向网络设备发送第一信息;第一信息包括第一认证码、第二电子设备的设备信息和第一电子设备的用户账号信息;第一电子设备与第二电子设备进行蓝牙通信。
Description
技术领域
本申请涉及蓝牙通信领域,尤其涉及一种蓝牙通信方法及相关电子设备。
背景技术
随着电子设备的广泛使用,对蓝牙的使用也日渐增多,蓝牙是一种支持设备短距离通信(一般10m内)的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用蓝牙技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。另外,蓝牙作为一种小范围无线连接技术,能在设备间实现方便快捷、灵活安全、低成本、低功耗的数据通信和语音通信,因此它是实现无线个域网(Personal Area Network,PAN)通信的主流技术之一。
发明内容
本申请实施例提供了一种蓝牙通信方法及相关电子设备,解决了用户换机免认证或同账号设备免认证的问题。
第一方面,本申请实施例提供了一种蓝牙通信方法,应用于具备蓝牙功能的第一电子设备,该方法包括:在检测到未存储第一认证码以及未从网络设备获取第一认证码的情况下,第一电子设备生成第一校验信息;第一电子设备将第一校验信息发送给第二电子设备;第二电子设备为与第一电子设备待配对的设备;在第一电子设备的身份校验通过的情况下,第一电子设备接收第二电子设备发送的第一认证码,第一认证码为第一电子设备和第二电子设备之间的蓝牙认证凭证;第一认证码为在第一电子设备的身份校验通过后,第二电子设备发送的认证码;第一电子设备保存第一认证码;第一电子设备向网络设备发送第一信息;第一信息包括第一认证码、第二电子设备的设备信息和第一电子设备的用户账号信息;第一电子设备与第二电子设备进行蓝牙通信。
在上述实施例中,第一电子设备在与第二电子设备首次蓝牙通信时,在认证完成后,第二电子设备生成第一认证码作为认证凭证并发送给第一电子设备。第一电子设备将该认证凭证发送到云端服务器。这样,当存在登录第一电子设备用户账号的电子设备与第二电子设备进行蓝牙连接时,可以不用重新认证,大大提高了用户的使用体验。
结合第一方面,在一种可能实现的方式中,第一电子设备生成第一校验信息,具体包括:第一电子设备建立与第二电子设备的加密通道;第一电子设备向第二电子设备请求第一识别码;第一电子设备接收第二电子设备发送的第一提示消息,第一提示消息用于提示第一电子设备,第二电子设备已生成第一识别码;第一电子设备检测到第一操作;响应第一操作,第一电子设备接收第一识别码;第一电子设备生成第二随机数,并将第二随机数发送给第二电子设备;第一电子设备接收第二电子设备发送的第一随机数;第一电子设备基于第一识别码、第一随机数以及第二随机数,通过第一算法进行计算,得到第一函数值;第一函数值为所述第一校验信息。
结合第一方面,在一种可能实现的方式中,第一电子设备建立与第二电子设备的加密通道,具体包括:第一电子设备和第二电子设备进行密钥协商;第一电子设备根据协商的密钥信息生成第二密钥;其中,在第一电子设备和第二电子设备进行蓝牙通信的过程中,第二密钥用于第一电子设备加密发送的数据,解密接收的数据。
结合第一方面,在一种可能实现的方式中,第一电子设备与第二电子设备进行蓝牙通信之后,还包括:在检测到存储有第一认证码的情况下,第一电子设备基于第一认证码生成第三校验信息;第一电子设备将第三校验信息发送给第二电子设备;在第一电子设备的身份校验通过的情况下,第一电子设备与第二电子设备进行蓝牙通信。
结合第一方面,在一种可能实现的方式中,第一电子设备基于第一认证码生成第三校验信息,具体包括:第一电子设备建立与第二电子设备的加密通道;第一电子设备生成第四随机数;第一电子设备将第四随机数发送给第二电子设备;第一电子设备接收第二电子设备发送的第三随机数;第一电子设备基于第一认证码、第三随机数以及第四随机数,通过第一算法进行计算,得到第三函数值;第三函数值为第三校验信息。
结合第一方面,在一种可能实现的方式中,第一电子设备建立与第二电子设备的加密通道,具体包括:第一电子设备和第二电子设备进行密钥协商;第一电子设备根据协商的密钥信息生成第四密钥;其中,在第一电子设备和第二电子设备进行蓝牙通信的过程中,第四密钥用于第一电子设备加密发送的数据,解密接收的数据。
第二方面,本申请实施例提供了一种蓝牙通信方法,应用于具备蓝牙功能的第二电子设备,该方法包括:第二电子设备生成第二校验信息;第二电子设备接收第一电子设备发送的第一校验信息;第一电子设备为与第二电子设备待配对的设备;第二电子设备基于第一校验信息和第二校验信息校验第一电子设备的身份;在第一电子设备的身份校验通过的情况下,第二电子设备生成第一认证码;第二电子设备将第一认证码发送给第一电子设备,第一认证码为第一电子设备和第二电子设备之间的蓝牙认证凭证;第二电子设备与第一电子设备之间进行蓝牙通信。
在上述实施例中,第一电子设备在与第二电子设备首次蓝牙通信时,在认证完成后,第二电子设备生成第一认证码作为认证凭证并发送给第一电子设备。第一电子设备将该认证凭证发送到云端服务器。这样,当存在登录第一电子设备用户账号的电子设备与第二电子设备进行蓝牙连接时,可以不用重新认证,大大提高了用户的使用体验。
结合第二方面,在一种可能实现的方式中,第二电子设备生成第二校验信息,具体包括:第二电子设备建立与第一电子设备的加密通道;第二电子设备接收第一电子设备发送的第一识别码请求;第二电子设备生成第一识别码;第二电子设备向第一电子设备发送第一提示消息;第二电子设备生成第一随机数;第二电子设备将第一随机数发送给第一电子设备;第二电子设备接收第一电子设备发送的第二随机数;第二电子设备基于第一识别码、第一随机数以及第二随机数,通过第一算法进行计算,得到第二函数值;第二函数值为第二校验信息。
结合第二方面,在一种可能实现的方式中,第二电子设备建立与第一电子设备的加密通道,具体包括:第二电子设备与第一电子设备进行密钥协商;第二电子设备根据协商的密钥信息生成第一密钥;其中,在第一电子设备和第二电子设备进行蓝牙通信的过程中,第一密钥用于第二电子设备加密发送的数据,解密接收的数据。
结合第二方面,在一种可能实现的方式中,第二电子设备与第一电子设备之间进行蓝牙通信之后,还包括:第二电子设备接收第一电子设备发送的第三校验信息;第二电子设备生成第四校验信息;第二电子设备基于第四校验信息和第三校验信息校验第一电子设备的身份是否通过;在第一电子设备的身份校验通过的情况下,第二电子设备与第一电子设备进行蓝牙通信。
结合第二方面,在一种可能实现的方式中,第二电子设备生成第四校验信息之前,还包括:第二电子设备建立与第一电子设备的加密通道;第二电子设备生成第三随机数;第二电子设备将第三随机数发送给第一电子设备;第二电子设备接收第一电子设备发送的第四随机数;第二电子设备基于第一认证码、第三随机数以及第四随机数,通过第一算法进行计算,得到第四函数值;第四函数值为第四校验信息。
结合第二方面,在一种可能实现的方式中,第二电子设备建立与第一电子设备的加密通道,具体包括:第二电子设备与第一电子设备进行密钥协商;第二电子设备根据协商的密钥信息生成第三密钥;其中,在第一电子设备和所第二电子设备进行蓝牙通信的过程中,第三密钥用于第二电子设备加密发送的数据,解密接收的数据。
第三方面,本申请实施例提供了一种蓝牙通信方法,应用于具备蓝牙功能的第三电子设备,第三电子设备登录的用户账号为第一电子设备的用户账号,该方法包括:第三电子设备检测是否存在第一认证码;在不存在第一认证码的情况下,向网络设备发送认证码请求消息;认证码请求消息包括第一电子设备的用户账号和第二电子设备的设备信息;第三电子设备接收网络设备发送的第一认证码;第三电子设备基于第一认证码生成第五校验信息,并将第五校验信息发送给第二电子设备;第二电子设备为与第三电子设备待配对的设备;在第三电子设备的身份校验通过的情况下,第三电子设备与第二电子设备进行蓝牙通信。
在上述实施例中,第一电子设备在与第二电子设备首次蓝牙通信时,在认证完成后,第二电子设备生成第一认证码作为认证凭证并发送给第一电子设备。第一电子设备将该认证凭证发送到云端服务器。这样,当存在登录第一电子设备用户账号的第三电子设备与第二电子设备进行蓝牙连接时,可以不用重新认证,大大提高了用户的使用体验。
结合第三方面,在一种可能实现的方式中,第三电子设备基于第一认证码生成第五校验信息,具体包括:第三电子设备建立与第二电子设备的加密通道;第三电子设备生成第六随机数;第三电子设备将所述第六随机数发送给第二电子设备;第三电子设备接收第二电子设备发送的第五随机数;第三电子设备基于所述第一认证码、第五随机数以及第六随机数,通过第一算法进行计算,得到第五函数值;第五函数值为第五校验信息。
结合第三方面,在一种可能实现的方式中,第三电子设备建立与第二电子设备的加密通道,具体包括:第三电子设备和第二电子设备进行密钥协商;第三电子设备根据协商的密钥信息生成第六密钥。其中,在第三电子设备和第二电子设备进行蓝牙通信的过程中,第六密钥用于第三电子设备加密发送的数据,解密接收的数据。
第四方面,本申请实施例提供了一种蓝牙通信方法,应用于具备蓝牙功能的第二电子设备,该方法包括:接收第三电子设备发送的第五校验信息;第三电子设备为与第二电子设备待配对的电子设备;第二电子设备生成第六校验信息;基于第六校验信息和第五检验信息检验所述第三电子设备的身份;在第三电子设备的身份校验通过的情况下,第三电子设备与所述第二电子设备进行蓝牙通信。
结合第四方面,在一种可能实现的方式中,第二电子设备生成第六校验信息,具体包括:第二电子设备建立与第一电子设备的加密通道;第二电子设备生成第五随机数;第二电子设备将第五随机数发送给第三电子设备;第二电子设备接收第三电子设备发送的第六随机数;第二电子设备基于第一识别码、第五随机数以及第六随机数,通过第一算法进行计算,得到第六函数值;第六函数值为第六校验信息。
结合第四方面,在一种可能实现的方式中,第二电子设备建立与第三电子设备的加密通道,具体包括:第二电子设备与第三电子设备进行密钥协商;第二电子设备根据协商的密钥信息生成第五密钥;其中,在第一电子设备和所述第二电子设备进行蓝牙通信的过程中,第五密钥用于所述第二电子设备加密发送的数据,解密接收的数据。
在上述实施例中,第一电子设备在与第二电子设备首次蓝牙通信时,在认证完成后,第二电子设备生成第一认证码作为认证凭证并发送给第一电子设备。第一电子设备将该认证凭证发送到云端服务器。这样,当存在登录第一电子设备用户账号的电子设备与第二电子设备进行蓝牙连接时,可以不用重新认证,大大提高了用户的使用体验。
第五方面,本申请实施例提供了一种蓝牙通信方法,应用于网络设备,该方法包括:接收第一电子设备发送的第一信息;第一信息包括第一认证码、第二电子设备的设备信息和第一电子设备的用户账号信息;存储第一信息。
在上述实施例中,第一电子设备在与第二电子设备首次蓝牙通信时,在认证完成后,第二电子设备生成第一认证码作为认证凭证并发送给第一电子设备。第一电子设备将该认证凭证发送到云端服务器。这样,当存在登录第一电子设备用户账号的电子设备与第二电子设备进行蓝牙连接时,可以不用重新认证,大大提高了用户的使用体验。
第六方面,本申请实施例提供了一种蓝牙通信方法,应用于网络设备,该方法包括:接收第三电子设备发送的认证码请求消息;认证码请求消息包括第一电子设备的用户账号和第二电子设备的设备信息;将第一认证码发送给第三电子设备。
在上述实施例中,第一电子设备在与第二电子设备首次蓝牙通信时,在认证完成后,第二电子设备生成第一认证码作为认证凭证并发送给第一电子设备。第一电子设备将该认证凭证发送到云端服务器。这样,当存在登录第一电子设备用户账号的电子设备与第二电子设备进行蓝牙连接时,可以不用重新认证,大大提高了用户的使用体验。
第七方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器、发送模块、接收模块和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行:在检测到未存储第一认证码以及未从网络设备获取第一认证码的情况下,生成第一校验信息;通过发送模块将第一校验信息发送给第二电子设备;第二电子设备为与第一电子设备待配对的设备;在第一电子设备的身份校验通过的情况下,通过接收模块接收第二电子设备发送的第一认证码,第一认证码为第一电子设备和第二电子设备之间的蓝牙认证凭证;第一认证码为在第一电子设备的身份校验通过后,第二电子设备发送的认证码;保存第一认证码通过发送模块向网络设备发送第一信息;第一信息包括第一认证码、第二电子设备的设备信息和第一电子设备的用户账号信息;通过发送模块和接收模块与第二电子设备进行蓝牙通信。
结合第七方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:建立与第二电子设备的加密通道;通过发送模块向第二电子设备请求第一识别码;通过接收模块接收第二电子设备发送的第一提示消息,第一提示消息用于提示第一电子设备,第二电子设备已生成第一识别码;检测到第一操作;响应第一操作,通过接收模块接收第一识别码;生成第二随机数,并将第二随机数通过发送模块发送给第二电子设备;通过接收模块接收第二电子设备发送的第一随机数;基于第一识别码、第一随机数以及第二随机数,通过第一算法进行计算,得到第一函数值;第一函数值为所述第一校验信息。
结合第七方面,在一种可能实现的方式中,建立与第二电子设备的加密通道,具体包括:通过加密模块/接收模块和第二电子设备进行密钥协商;根据协商的密钥信息生成第二密钥;其中,在第一电子设备和第二电子设备进行蓝牙通信的过程中,第二密钥用于第一电子设备加密发送的数据,解密接收的数据。
结合第七方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:在检测到存储有第一认证码的情况下,基于第一认证码生成第三校验信息;通过发送模块将第三校验信息发送给第二电子设备;在第一电子设备的身份校验通过的情况下,通过发送模块/接收模块与第二电子设备进行蓝牙通信。
结合第七方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:建立与第二电子设备的加密通道;生成第四随机数;通过发送模块将第四随机数发送给第二电子设备;通过接收模块接收第二电子设备发送的第三随机数;基于第一认证码、第三随机数以及第四随机数,通过第一算法进行计算,得到第三函数值;第三函数值为第三校验信息。
结合第七方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:和第二电子设备进行密钥协商;根据协商的密钥信息生成第四密钥;其中,在和第二电子设备进行蓝牙通信的过程中,第四密钥用于加密发送的数据,解密接收的数据。
第八方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器、发送模块、接收模块和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行:生成第二校验信息;通过接收模块接收第一电子设备发送的第一校验信息;第一电子设备为与第二电子设备待配对的设备;基于第一校验信息和第二校验信息校验第一电子设备的身份;在第一电子设备的身份校验通过的情况下,生成第一认证码;通过接收模块将第一认证码发送给第一电子设备,第一认证码为第一电子设备和第二电子设备之间的蓝牙认证凭证;通过接收模块和发射模块与第一电子设备之间进行蓝牙通信。
结合第八方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:建立与第一电子设备的加密通道;通过接收模块接收第一电子设备发送的第一识别码请求;生成第一识别码;通过发送模块向第一电子设备发送第一提示消息;生成第一随机数;通过发送模块将第一随机数发送给第一电子设备;通过接收模块接收第一电子设备发送的第二随机数;基于第一识别码、第一随机数以及第二随机数,通过第一算法进行计算,得到第二函数值;第二函数值为第二校验信息。
结合第八方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:与第一电子设备进行密钥协商;根据协商的密钥信息生成第一密钥;其中,在和第一电子设备进行蓝牙通信的过程中,第一密钥用于加密发送的数据,解密接收的数据。
结合第八方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:通过接收模块接收第一电子设备发送的第三校验信息;生成第四校验信息;基于第四校验信息和第三校验信息校验第一电子设备的身份是否通过;在第一电子设备的身份校验通过的情况下,通过接收模块和发送模块与第一电子设备进行蓝牙通信。
结合第八方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:建立与第一电子设备的加密通道;生成第三随机数;通过发送模块将第三随机数发送给第一电子设备;通过接收模块接收第一电子设备发送的第四随机数;基于第一认证码、第三随机数以及第四随机数,通过第一算法进行计算,得到第四函数值;第四函数值为第四校验信息。
结合第八方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:与第一电子设备进行密钥协商;设备根据协商的密钥信息生成第三密钥;其中,在和第一电子设备进行蓝牙通信的过程中,第三密钥用于加密发送的数据,解密接收的数据。
第九方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器、发送模块、接收模块和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行:检测是否存在第一认证码;在不存在第一认证码的情况下,通过发送模块向网络设备发送认证码请求消息;认证码请求消息包括第一电子设备的用户账号和第二电子设备的设备信息;通过接收模块接收网络设备发送的第一认证码;基于第一认证码生成第五校验信息,并将第五校验信息发送通过发送模块给第二电子设备;第二电子设备为与第三电子设备待配对的设备;在第三电子设备的身份校验通过的情况下,通过发送模块和接收模块与第二电子设备进行蓝牙通信。
结合第九方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:建立与第二电子设备的加密通道;生成第六随机数;将所述第六随机数通过发送模块发送给第二电子设备;通过接收模块接收第二电子设备发送的第五随机数;基于所述第一认证码、第五随机数以及第六随机数,通过第一算法进行计算,得到第五函数值;第五函数值为第五校验信息。
结合第九方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:和第二电子设备进行密钥协商;根据协商的密钥信息生成第六密钥。其中,在和第二电子设备进行蓝牙通信的过程中,第六密钥用于加密发送的数据,解密接收的数据。
第十方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器、发送模块、接收模块和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行:通过接收模块接收第三电子设备发送的第五校验信息;第三电子设备为与第二电子设备待配对的电子设备;生成第六校验信息;基于第六校验信息和第五检验信息检验第三电子设备的身份;在第三电子设备的身份校验通过的情况下,通过接收模块和发送模块与所述第三电子设备进行蓝牙通信。
结合第十方面,在一种可能实现的方式中,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行:建立与第一电子设备的加密通道;生成第五随机数;通过发送模块将第五随机数发送给第三电子设备;通过接收模块接收第三电子设备发送的第六随机数;基于第一识别码、第五随机数以及第六随机数,通过第一算法进行计算,得到第六函数值;第六函数值为第六校验信息。
结合第十方面,在一种可能实现的方式中,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行:与第三电子设备进行密钥协商;根据协商的密钥信息生成第五密钥;其中,在第一电子设备和所述第二电子设备进行蓝牙通信的过程中,第五密钥用于加密发送的数据,解密接收的数据。
第十一方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器、发送模块、接收模块和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行:通过接收模块接收第一电子设备发送的第一信息;第一信息包括第一认证码、第二电子设备的设备信息和第一电子设备的用户账号信息;存储第一信息。
第十二方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器、发送模块、接收模块和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行:通过接收模块接收第三电子设备发送的认证码请求消息;认证码请求消息包括第一电子设备的用户账号和第二电子设备的设备信息;将第一认证码通过发送模块发送给第三电子设备。
第十三方面,本申请实施例提供了一种电子设备,包括:触控屏、摄像头、一个或多个处理器和一个或多个存储器;所述一个或多个处理器与所述触控屏、所述摄像头、所述一个或多个存储器耦合,所述一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,使得所述电子设备执行如第一方面或第一方面的任意一种可能实现的方式所述的方法,或第二方面或第二方面的任意一种可能实现的方式所述的方法,第三方面或第三方面的任意一种可能实现的方式所述的方法,或第四方面或第四方面的任意一种可能实现的方式所述的方法,第五方面或第五方面的任意一种可能实现的方式所述的方法,或第六方面或第六方面的任意一种可能实现的方式所述的方法。
第十四方面,本申请实施例提供了一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第一方面或第一方面的任意一种可能实现的方式所述的方法,或第二方面或第二方面的任意一种可能实现的方式所述的方法,第三方面或第三方面的任意一种可能实现的方式所述的方法,或第四方面或第四方面的任意一种可能实现的方式所述的方法,第五方面或第五方面的任意一种可能实现的方式所述的方法,或第六方面或第六方面的任意一种可能实现的方式所述的方法。
第十五方面,本申请实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种可能实现的方式所述的方法,或第二方面或第二方面的任意一种可能实现的方式所述的方法,第三方面或第三方面的任意一种可能实现的方式所述的方法,或第四方面或第四方面的任意一种可能实现的方式所述的方法,第五方面或第五方面的任意一种可能实现的方式所述的方法,或第六方面或第六方面的任意一种可能实现的方式所述的方法。
第十六方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当该指令在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种可能实现的方式所述的方法,或第二方面或第二方面的任意一种可能实现的方式所述的方法,第三方面或第三方面的任意一种可能实现的方式所述的方法,或第四方面或第四方面的任意一种可能实现的方式所述的方法,第五方面或第五方面的任意一种可能实现的方式所述的方法,或第六方面或第六方面的任意一种可能实现的方式所述的方法。
附图说明
图1是本申请实施例提供的一种BLE设备基于SMP进行蓝牙通信的流程图;
图2A是本申请实施例提供的一种用户电子设备换机免认证的示例图;
图2B是本申请实施例提供的另一种用户电子设备换机免认证的示例图;
图3A-图3E是本申请实施例提供的一种蓝牙通信方法的应用场景示例图;
图4A是本申请实施例提供的一种两个电子设备首次进行蓝牙通信的流程图;
图4B是本申请实施例提供的另一种蓝牙通信的流程图;
图4C是本申请实施例提供的另一种蓝牙通信的流程图;
图5A是本申请实施例提供的另一种两个电子设备首次进行蓝牙通信的流程图;
图5B是本申请实施例提供的另一种两个电子设备非首次进行蓝牙通信的流程图
图5C是本申请实施例提供的另一种两个电子设备首次进行蓝牙通信的流程图;
图6A为本申请实施例提供的电子设备100的蓝牙架构示意图;
图6B为本申请实施例提供的电子设备200的蓝牙架构示意图;
图6C为本申请实施例提供的电子设备300的蓝牙架构示意图;
图7是本申请实施例提供的一种电子设备100的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或者特性可以包含在本实施例申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是相同的实施例,也不是与其它实施例互斥的独立的或是备选的实施例。本领域技术人员可以显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中术语“第一”、“第二”、“第三”等是区别于不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元,或者可选地,还包括没有列出的步骤或单元,或者可选地还包括这些过程、方法、产品或设备固有的其它步骤或单元。
附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前,应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在本说明书中使用的术语“部件”、“模块”、“系统”、“单元”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件或执行中的软件。例如,单元可以是但不限于在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或分布在两个或多个计算机之间。此外,这些单元可从在上面存储有各种数据结构的各种计算机可读介质执行。单元可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一单元交互的第二单元数据。例如,通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
首先对本申请实施例涉及的名词进行示例性而非限定性的说明。
(1)低功耗蓝牙(Bluetooth Low Energy,BLE):BLE是在蓝牙技术的基础上发展起来的,既同于蓝牙,又区别于传统蓝牙。BLE是功耗极低的短距离无线通信技术,多应用于实时性要求比较高,但是数据速率比较低的产品,例如键盘,遥控鼠标等。
BLE设备角色主要分为两种角色,主设备(Master或Central)和从设备(Peripheral),当主设备和从设备建立连接之后才能相互收发数据。
其中,主设备可以发起对从设备的扫描连接,例如手机,通常作为BLE的主设备。从设备只能广播并等待主机的连接,例如,智能手环为从设备。
(2)蓝牙安全管理协议(Secure Manager Protocol,SMP):定义了一套简单可靠的认证和密钥分发流程(也称为配对Pairing),它允许两个BLE设备使用所协商生成的密钥(LTK)对链路进行加密并交换数据。如果双方把各自的密钥存储起来,当两个设备再次重连时就可以跳过配对流程而直接使用之前存储的密钥对链路进行加密,这种存储密钥的过程也称为绑定(Bonding)。
随着物联网(IoT)产业的迅猛发展且规模不断壮大,针对用户隐私、基础网络环境的安全攻击不断增多,网络安全问题已成为限制物联网服务广泛部署的主要障碍之一,安全性也是设计物联网应用时面临的最大挑战之一。
在两个BLE设备首次进行蓝牙通信之前,这两个BLE设备需要进行配对和绑定。在BLE设备进行配对、绑定以及通信过程中使用的协议是SMP,在BLE设备配对过程中,BLE设备可以基于SMP来协商生成、存储LTK。在使用蓝牙进行通信过程中,对其发送在链路上的数据进行加密,并使用密钥对其接收的数据进行解密,从而提高数据传输的安全性。
下面,结合图1对BLE设备进行蓝牙通信的流程进行示例性地说明。请参见图1,图1是本申请实施例提供的一种BLE设备基于SMP进行蓝牙通信的流程图。在图1中包括两个BLE设备,分别为电子设备100和电子设备200。其中,电子设备100为Master,电子设备200为Peripheral,电子设备100和电子设备200首次进行蓝牙通信的具体步骤如下:
101:电子设备100扫描蓝牙设备。
具体地,电子设备100在开启蓝牙功能后,会扫描蓝牙设备,即电子设备100接收其它BLE设备广播的蓝牙信息。
102:电子设备200广播蓝牙信息。
具体地,在电子设备200广播的蓝牙信息中包括电子设备200的设备信息。
103:电子设备100向电子设备200发送蓝牙连接请求。
具体地,电子设备100在接收到电子设备200广播的蓝牙信息后,电子设备100可以在蓝牙功能界面上显示电子设备200的设备信息。电子设备100在接收到用户的输入操作后,电子设备100向电子设备200发送蓝牙连接请求。该蓝牙连接请求用于指示电子设备200与电子设备100进行蓝牙连接,以便于电子设备100和电子设备200之间可以进行蓝牙通信。
104:电子设备100和电子设备200进行密钥协商。
105:电子设备100根据协商的密钥信息,生成第一密钥。
具体的,第一密钥用于电子设备100加密其传输的数据,解密其接收的数据。
106:电子设备200根据协商的密钥信息生成第二密钥。
具体的,第二密钥用于电子设备200加密其传输的数据,解密其接收的数据。
107:电子设备100和电子设备200进行蓝牙通信。
上述步骤101~步骤107介绍了两个BLE设备首次进行蓝牙配对的流程,在电子设备100和电子设备200首次配对成功后,电子设备100和电子设备200只要将其生成的密钥保存到存储器中,下一次电子设备100和电子设备200再一次进行蓝牙通信时,不需要再配对,可以直接其保存的密钥对数据进行加密或解密,从而保证蓝牙通信的数据安全性。
由上述流程可知,两个电子设备首次进行蓝牙业务之前,需要经过认证过程,即:两个电子设备都要协商生成LTK并将其生成的LTK长期保存在存储器中,作为认证凭证。在下一次进行蓝牙业务之前,只需要验证两个设备存储的LTK进行身份校验,校验通过后即可进行蓝牙业务,不用再重新认证。
但是,BLE的认证方式存在一顶限制,即:密钥的协商生成和存储都是由BLE标准SMP协议来实现的,由于SMP协议位于应用处理器层(AP层),使得生成的密钥位于AP层,对应用层的上层应用是完全透明的,即应用程序无法干预SMP的认证过程并获取认证凭证(LTK)。
而在很多实际的使用场景中,我们需要借助云服务器来保存用户的电子设备和BLE设备之间的认证凭证(密钥),同时关联用户的云账号来实现用户换机免认证功能,即:用户更换了新电子设备后不需要再和原有BLE设备重新进行认证,而是通过云服务器来获取之前保存的认证凭证)进行校验,校验通过后新的电子设备就能直接和原有的BLE设备进行蓝牙通信。这样可以避免重复繁琐的认证过程从而提升用户体验。如果仅采用BLE标准认证方式,由于应用层的应用程序无法获取SMP的认证凭证(密钥),所以就无法将其上传到云服务器来实现用户换机免认证功能。
如图2A为本申请实施例提供的一种用户电子设备换机免认证的示例图。在图2A中包括电子设备100、电子设备200、电子设备300以及云服务器。
其中,电子设备100为用户的旧手机,电子设备200为BLE设备,电子设备300为登录了电子设备100用户账号的新手机。
电子设备100和电子设备200首次进行蓝牙连接时,电子设备100和电子设备200使用BLE SMP标准进行配对和绑定,并生成认证凭证。其中,该认证凭证包括电子设备100生成的密钥(LTK1)和电子设备200生成的密钥(LTK2),且LTK1和LTK2为对称密钥。
当电子设备100和电子设备200再次进行蓝牙通信时,由于电子设备100和电子设备200保存了LTK1和LTK2,即:电子设备100和电子设备200存在认证凭证。因此,电子设备100和电子设备200可以直接进行蓝牙通信,不需要进行繁琐的认证过程,即:电子设备100和电子设备200进行配对和绑定。
由于电子设备100中的蓝牙应用程序与生成LTK1和LTK2的SMP协议位于不同的网络层,即:蓝牙应用程序位于应用层,SMP协议位于应用处理器层,且应用层的应用程序不能获取应用处理器层中的数据。因此,电子设备100中的蓝牙应用程序无法获取到位于应用处理器层的LTK1和LTK2,也就无法将LTK1和LTK2发送到云端服务器进行存储。
在用户使用能够登录电子设备100对应用户账号的新的电子设备,即电子设备300的情况下。当电子设备300与电子设备200进行首次蓝牙通信时,由于在云端服务器中未存储有LTK1和LTK2。电子设备300即使登录了电子设备100的用户账号,由于电子设备300不能从云端服务器中获取LTK1和LTK2(认证凭证)。因此,电子设备300和电子设备100首次进行蓝牙通信之前,还需要进行配对和绑定等一系列的认证过程。
在一些实施例中,可以通过其他方法实现换机免认证的功能,即:新的电子设备通过登录原来的电子设备的用户账号,可以直接与BLE设备进行蓝牙通信(该BLE设备为与原来的电子设备配对和绑定过的设备),而不需要诸如认证、绑定等一系列复杂的认证过程。
实际上,这种换机免认证功能大多是由上层应用来实现的,即:首次认证时先通过密钥协商协议(如使用PAKE/SPEKE/ECDH等协议)来生成对称密钥并建立加密通道(如使用AES/DES等对称加密算法)。然后,使用证书或预置的许可证(License)来完成用户电子设备和BLE设备间的认证流程。最终,再将认证后生成的认证凭证进行加密保存并上云端服务器。
由上述方法可知,这种方式要求应用能够自主实现密钥协商和认证功能。一方面,上层应用的实现难度比较大。另一方面,对随机存取存储器(RAM)和只读存储器(ROM)资源的要求也比较高(例如:MbedTLS 1.2中的ECDHE-ECDSA-AES128-SHA256算法需占用的RAM约为21KB,ROM约为46KB)。所以,这种方式一般都被用于Wi-Fi类资源相对丰富的电子设备。
对于低功耗蓝牙设备来说,目前市场上主流的单BLE模组的RAM规格都比较小(大多不超过64KB,有的甚至只有20KB),如果算上模组自带的BLE协议栈和应用的RAM消耗,最终留给设备厂家的可用RAM可能只有10KB不到。在如此受限的资源情况下,基本上无法在应用层来独立实现密钥协商和认证,也就无法用上述的方式来实现换机免认证功能。因此,如何在资源受限的BLE模组上实现用户换机免认证,同时所采用的方案还必须满足安全设计的要求技术人员要关注的技术问题。
为了解决上述技术问题,本申请实施例提供了一种蓝牙通信的方法,包括:用户电子设备和BLE设备建立连接之前,先利用BLESMP协议的标准JustWorks模式配对来生成一个长期密钥(LTK)并使用该密钥来建立一个加密通道。同时,禁用SMP协议的绑定(nobonding)功能,即不对该密钥进行存储(这样做的目的是为了舍弃SMP的认证功能,而仅利用SMP的密钥协商机制来实现通信链路的加密,使得应用层无需关注业务数据的加解密)。
同时,在应用层实现了一套轻量级的自定义认证机制,例如:用户电子设备先向BLE设备请求个人身份识别码PIN(对于无显示屏的BLE设备可使用默认PIN码)并由用户输入PIN码。然后,用户电子设备和BLE设备各自生成一组随机数并进行交换。然后,电子设备将PIN码和两组随机数一起进行哈希运算(如使用HMAC_SHA256算法)并将电子设备的计算结果发送给设备。此外,BLE设备同样可以将PIN码和两组随机数进行哈希运算,然后对设备的计算结果和电子设备发过来的数据进行比对校验,判断两者是否一致。
如果两者不一致,则设备视为本次认证失败并主动与电子设备断开连接。如果两者校验一致,则由BLE设备生成一个认证凭据AuthCode,并将该AuthCode发送给电子设备。电子设备收到AuthCode后,同样先将其进行持久化保存(电子设备和设备均存储了相同的认证凭据)。然后,电子设备再将AuthCode和用户账号上传到云服务器进行关联保存(实现了认证凭据上云)。这样,就完成了自定义的绑定过程,也意味着电子设备和BLE设备成功完成了认证,可以进行蓝牙通信。
当用户在新的电子设备(第三电子设备)上登录了原来的电子设备的用户账号时,在第二电子设备与该BLE设备首次进行蓝牙通信之前,第二电子设备在获取到BLE设备广播的蓝牙信息后,第二电子设备首先确定是否存储了与该BLE设备相关的AuthCode。在不存在的情况下,向云端服务器请求与该账号相关AuthCode。在获取到云端服务器发送的AuthCode后,第二电子设备与该BLE设备通过AuthCode进行身份校验,校验通过后第二电子设备可以与该BLE设备进行蓝牙通信,而无需经过系列的复杂认证过程。
如图2B为本申请实施例提供的一种用户电子设备换机免认证的示例图。在图2B中包括电子设备100、电子设备200、电子设备300以及云服务器。
其中,电子设备100为用户的旧手机,电子设备200为BLE设备,电子设备300为登录了电子设备100的用户账号的新手机。
电子设备100和电子设备200首次进行蓝牙连接时,使用BLE SMP标准配对,并禁用绑定(禁用绑定指的是电子设备100和电子设备200这两个设备不将其生成和接收的LTK存储到存储器中,LTK只在单次蓝牙连接中对其发送/接收的数据进行加密和解密,在这两个电子设备下一次进行蓝牙连接时,需要生成新的LTK来对传输和接收的数据进行加密或解密)来建立加密通道。然后,自定义生成认证凭证AuthCode并存储。电子设备100也可以将AuthCode以及用户账号信息发送到云服务器进行保存。
当电子设备100和电子设备200再次进行蓝牙连接时,可以直接使用BLE SMP标准进行配对并禁用绑定来建立加密通道。然后,直接使用首次连接时保存的AuthCode进行身份校验,不用经过一系列的认证过程。
在登录了电子设备100用户账号的电子设备300与电子设备200首次进行蓝牙连接之前,电子设备200可以确定是否存在与电子设备200相关的AuthCode。若不存在,电子设备300向云服务器请求之前电子设备100保存的AuthCode。然后,电子设备300可以直接使用该AuthCode进行身份校验,从而免认证,在校验通过后,实现电子设备300和电子设备200之间的蓝牙通信。
下面,结合图3A-图3E对本申请实施例提供的一种蓝牙通信方法的应用场景进行介绍。
如图3A所示,用户界面30为电子设备100的设置界面。在该设置界面中包括用户账号信息框301和蓝牙图标302.其中,用户账号信息框301用于显示电子设备100的用户账号信息。用户账号信息包括用户名,如图3A所示,在用户账号信息框301中显示电子设备100的用户账号为“12345678”。在电子设备100检测到针对蓝牙图标302的单击操作后,响应该操作,电子设备100显示如图3B所示的用户界面31。
如图3B所示,在用户界面31中包括蓝牙开关控件303以及蓝牙信息显示区域304。其中,蓝牙信息显示区域304用于蓝牙设备名。如图3B所示,在蓝牙信息显示区域304显示的电子设备100的蓝牙设备名为“电子设备100的蓝牙”。在电子设备100检测到针对蓝牙开关控件303单击后,电子设备100开启蓝牙功能,并显示如图3C所示的用户界面31。
在电子设备100开启蓝牙功能后,电子设备100可以接收其它蓝牙设备广播的蓝牙信息,并选择与对应的蓝牙设备进行配对,以实现设备间的蓝牙业务。如图3C所示,在电子设备100开启蓝牙功能后,在用户界面31上显示已配对的蓝牙设备的名称。例如,001设备、002设备以及003设备,这三个设备都是已完成配对的设备。在可用设备区域则是显示的当前正在广播蓝牙信息设备的设备名。例如,电子设备200的蓝牙、电子设备500的蓝牙。当电子设备100检测到针对电子设备200的控件305的单击操作,响应该操作,电子设备100在用户界面31上显示如图3D所示的用户界面。
如图3D所示,用户界面31上显示配对信息框311。该配对信息提示框中包括配对码输入的提示信息以及配对码输入框312。电子设备100检测到配对码的输入操作后,电子设备100在配对码输入框312中显示已输入的配对码。由图3D可知,用户输入的配对码为“144285”。在配对信息框311中还包括配对控件306,在输入的配对码正确的情况下,当检测到针对配对控件306的单击操作,响应该操作,电子设备100显示如图3E所示的用户界面31。
如图3E所示,电子设备200与电子设备100配对成功,在电子设备200的蓝牙名称显示区域307,显示“已保存”的文字信息。
下面,结合图4A-图4C对本申请实施例提供的一种蓝牙通信方法的流程进行介绍。
请参见图4A,图4A为本申请实施例提供的一种两个电子设备首次进行蓝牙通信的流程图。在图4A中,包括电子设备100、电子设备200以及云端服务器。电子设备100和电子设备200首次进行蓝牙通信的具体流程如下:
401A:电子设备200广播第一蓝牙信息。
具体地,第一蓝牙信息包括电子设备200的设备信息(例如,设备名称)、电子设备200的输入/输出性能(I/O性能)以及电子设备200的蓝牙配对模式。其中,电子设备200的I/O性能可以用于表征电子设备200的硬件对字节的读取速度。电子设备200的蓝牙配对模式包括禁用绑定模式(JustWork)和绑定模式。禁用绑定模式为电子设备200生成LTK后,但不存储LTK,仅在本次蓝牙通信过程中,使用自己生成的LTK对发送的数据进行加密,并对接收的数据进行解密。绑定模式为电子设备将其生成的LTK长期保存在存储器中,当电子设备在再次与相同的蓝牙设备进行通行时,可以使用其存储的LTK对数据进行加密和解密。本申请实施例以电子设备200和电子设备100都支持禁止绑定模式为例,进行举例说明。
示例性的,电子设备200的设备名称可以如上述图3C中电子设备的蓝牙名称“电子设备200的蓝牙”。
402A:电子设备100向电子设备200发送第一蓝牙连接请求。
具体地,第一蓝牙请求用于指示电子设备200与电子设备100进行蓝牙连接,以便于电子设备100和电子设备200可以进行蓝牙通信。蓝牙通信可以为电子设备100和电子设备200之间通过蓝牙进行数据传输。
可选地,电子设备100在接收到电子设备200的第一蓝牙广播信息后,可以将电子设备200的设备信息显示在显示屏上。示例性的,如图3C所示,用户界面31显示电子设备200的设备信息,可以包括设备名称等信息。例如,在用户界面31中,用户名“电子设备200的蓝牙”为电子设备200的名称。在电子设备100检测到针对用户界面上蓝牙设备控件(示例性的,蓝牙设备控件可以为上述图3C中的电子设备200的控件305)的单击操作后,响应该操作,电子设备100向电子设备200发送第一蓝牙请求。
403A:电子设备200向电子设备100发送第一请求响应。
具体地,电子设备200在接收到电子设备100的第一蓝牙连接请求后,电子设备100向电子设备200发送第一请求响应。其中,第一请求响应用于包括电子设备200接收蓝牙连接或不接受蓝牙连接的标识信息。
示例性的,第一请求响应可以包括字符0或1。当为字符0时,表示电子设备200接收电子设备100的蓝牙连接请求。当为字符1时,表示电子设备200不接收电子设备100的蓝牙连接请求。
本申请实施例以电子设备200接收电子设备100的蓝牙连接请求为例,进行说明。
404A:电子设备100向电子设备200发送第一指示消息(JustWork)。
具体地,第一指示消息用于指示电子设备200选择禁止绑定配对模式,即:电子设备200将其生成和接收的LTK仅在本次蓝牙通信过程中使用。电子设备100和电子设备200下一次进行蓝牙连接时,电子设备100和电子设备200生成新的LTK,在蓝牙通信过程中这两个电子设备使用新的LTK对数据进行加密和解密。
405A:电子设备100和电子设备200进行密钥协商。
406A:电子设备200根据协商的密钥信息生成第一密钥。
具体地,第一密钥用于电子设备100加密其发送的数据信息,解密其接收的数据信息。407A:电子设备100根据协商的密钥信息生成第二密钥。
具体地,第二密钥用于电子设备200加密其发送的数据信息,解密其接收的数据信息。应当理解的是,步骤407A可以在步骤406A之前执行,步骤407A也可以在步骤406A之后执行,步骤407A也可以和步骤406A同时执行。本申请实施例对于步骤407A和步骤406A的执行顺序不做限制。
408A:电子设备100向电子设备200请求第一识别码。
具体地,第一识别码可以为个人识别密码(Personal Identification Number,PIN)。本申请实施例以第一识别码为PIN码为例,进行说明。
可选地,在电子设备100向电子设备200请求第一识别码之前,电子设备100检测是否存在第一认证码。如不存在第一认证码,电子设备100向云端服务器发送认证码请求消息。若云端服务器在接收到电子设备100发送的认证码请求消息后,未发送第一认证码,电子设备100执行本步骤。
409A:电子设备200生成第一识别码,并向电子设备100发送第一提示消息。
具体地,电子设备200在接收到电子设备100请求第一识别码的请求消息后,电子设备200会生成第一识别码,并向电子设备100发送第一提示消息。第一提示消息用于提示电子设备100第一识别码已生成,提醒用户输入第一识别码。
在一种可能实现的方式中,电子设备200将其生成的第一识别码显示在电子设备200的显示屏上,以便用户可以通过该显示屏获取第一识别码,并在电子设备100中输入第一识别码。
在一种可能实现的方式中,在电子设备200接收到电子设备100请求第一识别码的请求消息后,电子设备100和电子设备200的用户可以商定同一个PIN码。然后,分别在电子设备100和电子设备200中输入PIN码。示例性的,PIN码的输入界面可以如图3D中用户界面31所示的配对信息框311。
410A:电子设备200生成第一随机数,并将第一随机数发送给电子设备100。
411A:电子设备100生成第二随机数,并将第二随机数发送给电子设备200。
应当理解的是,步骤411A可以在步骤410A之前执行,步骤411A也可以在步骤410A之后执行,步骤411A也可以和步骤410A同时执行。本申请实施例对于步骤411A和步骤410A的执行顺序不做限制。
412A:电子设备100将第一随机数、第二随机数以及第一识别码通过第一算法进行计算,得到第一函数值,并将第一函数值发送给电子设备200。
具体地,第一算法可以为哈希算法,也可以为其它的加密算法,本申请实施例对此不做限制。在第一算法为哈希算法的情况下,第一函数值为哈希值。本申请实施例以第一算法为哈希算法,第一函数值是第一哈希值为例,进行举例说明。
413A:电子设备200第一随机数、第二随机数以及第一识别码通过第一算法进行计算,得到第二函数值。
应当理解的是,步骤413A可以在步骤412A之前执行,步骤413A也可以在步骤412A之后执行,步骤413A也可以和步骤412A同时执行。本申请实施例对于步骤413A和步骤412A的执行顺序不做限制。
414A:电子设备200判断第一函数值和第二函数值是否一致。
具体地,电子设备200需要判断电子设备100中的PIN码是否与电子设备200中的PIN码一致。若一致,电子设备200判断电子设备100为其要连接的蓝牙设备。若不一致,电子设备200判断电子设备100不为其要连接的蓝牙设备,电子设备200便会断开蓝牙连接,本次蓝牙连接失败。
由于第一函数值和第二函数值都是通过哈希算法、第一识别码、第一随机数和第二随机数得到的。由于电子设备100和电子设备200使用的是同一哈希算法,当且仅当电子设备100和电子设备200的PIN码不一致时,才会出现第一函数值和第二函数值不一样的情况。
因此,电子设备200可以通过判断第一函数值和第二函数值是否一致,来确定电子设备100和电子设备200中PIN码是否一致。
415A:电子设备200向电子设备100发送第一校验结果。
具体地,第一校验结果用于提示电子设备100,电子设备100和电子设备200的PIN码是否一致。
示例性的,第一校验结果可以包括字符0或1。当为字符0时,表示电子设备200和电子设备100的PIN码是一致的。当为字符1时,表示电子设备200和电子设备100的PIN码是不一致的416A:在第一函数值和第二函数值一致的情况下,电子设备200生成并保存第一认证码。
具体地,第一认证码为电子设备100和电子设备200之间的蓝牙认证凭证,只要其它电子设备使用第一认证码和两个随机数通过第一算法计算得到函数值,并把该函数值发送给电子设备200。电子设备200使用第一认证码和两个随机数通过第一算法计算得到函数值,对比两个函数值是否相同。在相同的情况下,两个电子设备之间就可以进行蓝牙业务的交互了。
示例性的,第一认证码可以为授权码(AuthCode),本申请实施例以第一认证码为AuthCode为例,进行举例说明。
应当理解的是,步骤416A可以在步骤415A之前执行,步骤416A也可以在步骤415A之后执行,步骤416A也可以和步骤415A同时执行。本申请实施例对于步骤416A和步骤415A的执行顺序不做限制。
417A:电子设备200向电子设备100发送第一认证码。
418A:电子设备100保存第一认证码。
具体地,电子设备100在接收到第一认证码后,电子设备保存第一认证码。这样,在电子设备100下一次与电子设备200进行蓝牙连接之前,通过第一认证码的校验,就可以实现电子设备100和电子设备200的蓝牙业务交互了。
419A:电子设备100向云端服务器发送第一认证信息,所述第一认证信息包括第一认证码、电子设备100的用户账号信息以及电子设备200的设备信息。
具体地,电子设备100可以将第一认证码、电子设备100的用户账号信息以及电子设备200的设备信息进行关联,得到第一认证信息。这样,云端服务器可以以电子设备100的用户账号信息、电子设备200的设备信息为索引,寻找第一认证码。
示例性的,电子设备100的用户账号信息可以为用户名,如上述图3A中用户账号信息框301显示的“12345678”。
这样,在新的电子设备登录了电子设备100的用户账号的情况下,新的电子设备可以从云端服务器获取第一认证码。这样,新的电子设备与电子设备200首次进行蓝牙连接时,只要第一认证码的校验通过,就可以和电子设备200进行蓝牙业务的交互,不用重新认证和绑定,从而实现换机免认证的功能。
420A:电子设备100和电子设备200进行蓝牙通信。
具体地,电子设备100和电子设备200进行蓝牙通信的过程可以为:
当电子设备100向电子设备200通过蓝牙发送数据时,电子设备100使用第二密钥对其发送的数据进行加密。电子设备200接收到电子设备100发送的数据后,使用第一密钥对其接收的数据进行解密。
当电子设备200向电子设备100通过蓝牙发送数据时,电子设备200使用第一密钥对其发送的数据进行加密。电子设备100接收到电子设备200发送的数据后,使用第二密钥对其接收的数据进行解密。
应当理解的是,步骤420A可以在步骤416A之前执行,步骤420A也可以在步骤416A之后执行,步骤420A也可以和步骤416A同时执行。本申请实施例对于步骤420A和步骤416A的执行顺序不做限制。
本申请实施例,在电子设备100和电子设备200首次进行蓝牙连接之前,通过禁用SMP中的绑定功能,不使用LTK作为电子设备100和电子设备200的认证凭证。而是基于电子设备200自身生成的第一认证码作为两个设备之间的蓝牙认证凭证,并将第一认证码发送给电子设备100,以使得电子设备100可以将第一认证码发送到云端服务器。这样,解决了由于电子设备应用层的应用程序由于不能获取蓝牙协议层中SMP生成的LTK,进而不能将LTK传输到云端服务器,而使得电子设备不能实现蓝牙换机免认证的功能。
下面,结合图4B对电子设备100和电子设备200非首次进行蓝牙通信的流程,进行示例性的介绍。请参见图4B,图4B为本申请实施例提供的另一种蓝牙通信的流程图,具体流程如下:
401B:电子设备200广播第二蓝牙信息。
402B:电子设备100向电子设备200发送第二蓝牙连接请求。
403B:电子设备200向电子设备100发送第二请求响应。
404B:电子设备100向电子设备200发送第二指示消息。
405B:电子设备100和电子设备200进行密钥协商。
406B:电子设备200根据协商的密钥信息生成第三密钥。
407B:电子设备100根据协商的密钥信息生成第四密钥。
步骤401B~步骤407B可以参考上述步骤401A~步骤407A的相关叙述,在此不再赘述。
应当理解的是,步骤407B可以在步骤406B之前执行,步骤407B也可以在步骤406B之后执行,步骤407B也可以和步骤406B同时执行。本申请实施例对于步骤407B和步骤406B的执行顺序不做限制。
408B:电子设备200生成第三随机数,并将第三随机数发送给电子设备100。
409B:电子设备100生成第四随机数,并将第四随机数发送给电子设备200。
步骤408B~步骤409B可以参考上述步骤410A~步骤411A的相关叙述,在此不再赘述。
应当理解的是,步骤409B可以在步骤408B之前执行,步骤409B也可以在步骤408B之后执行,步骤409B也可以和步骤408B同时执行。本申请实施例对于步骤409B和步骤408B的执行顺序不做限制。
步骤410B:电子设备100判断是否存在第一认证码。
411B:在存在第一认证码的情况下,电子设备100将第三随机数、第四随机数以及第一认证码通过第一算法进行计算,得到第三函数值,并将第三函数值发送给电子设备200。
412B:电子设备200第三随机数、第四随机数以及第一认证码通过第一算法进行计算,得到第四函数值。
步骤411B~步骤412B可以参考上述步骤412A~步骤413A的相关叙述,在此不再赘述。
应当理解的是,步骤411B可以在步骤412B之前执行,步骤411B也可以在步骤412B之后执行,步骤411B也可以和步骤412B同时执行。本申请实施例对于步骤411B和步骤412B的执行顺序不做限制。
413B:电子设备200判断第三函数值和第四函数值是否一致。
由于第三函数值和第四函数值都是通过哈希算法、第一认证码、第一随机数和第二随机数得到的。由于电子设备100和电子设备200使用的是同一哈希算法,当且仅当电子设备100和电子设备200的第一认证码(AuthCode)不一致时,才会出现第三函数值和第四函数值不一样的情况。
因此,电子设备200可以通过判断第三函数值和第四函数值是否一致,来确定电子设备100和电子设备200中认证凭证(第一认证码)是否一致。
414B:电子设备200向电子设备100发送第二校验结果。
415B:在第三函数值和第四函数值一致的情况下,电子设备100和电子设备200进行蓝牙通信。
步骤414B~步骤415B可以参考上述步骤415A和步骤420A的相关叙述,在此不再赘述。
下面,结合图4C对电子设备300和电子设备200首次进行蓝牙通信的流程进行示例性的介绍。其中,电子设备300为登录了电子设备100的用户账号的电子设备。请参见图4C,图4C为本申请实施例提供的另一种蓝牙通信的流程图,具体流程如下:
401C:电子设备200广播第三蓝牙信息。
402C:电子设备300向电子设备200发送第三蓝牙连接请求。
403C:电子设备200向电子设备100发送第三请求响应。
404C:电子设备300向电子设备200发送第三指示消息。
405C:电子设备300和电子设备200进行密钥协商。
406C:电子设备200根据协商的密钥信息,生成第五密钥。
407C:电子设备300根据协商的密钥信息生成第六密钥。
步骤401C~步骤407C可以参考步骤401A~步骤407A的相关叙述,在此不再赘述。
应当理解的是,步骤407C可以在步骤406C之前执行,步骤407C也可以在步骤406C之后执行,步骤407C也可以和步骤406C同时执行。本申请实施例对于步骤407C和步骤406C的执行顺序不做限制。
408C:电子设备300检测是否存在第一认证码。
409C:在不存在第一认证码的情况下,电子设备300向云端服务器发送认证码请求消息。
具体地,认证码请求消息包括电子设备200的设备信息、电子设备100的用户账号信息。
410C:云端服务器向电子设备300发送第一认证码。
具体地,云端服务器在接收到电子设备300的认证码请求消息后,云端服务器基于电子设备200的设备信息以及电子设备100的用户账号信息寻找第一认证码,并将该第一认证码发送给电子设备100。
411C:电子设备300生成第五随机数,并将第五随机数发送给电子设备200。
412C:电子设备200生成第六随机数,并将第六随机数发送给电子设备300。
步骤411C~步骤412C可以参考上述步骤410A~步骤411A的相关叙述,在此不再赘述。
应当理解的是,步骤412C可以在步骤411C之前执行,步骤412C也可以在步骤411C之后执行,步骤412C也可以和步骤411C同时执行。本申请实施例对于步骤412C和步骤411C的执行顺序不做限制。
413C:电子设备300将第五随机数、第六随机数以及第一认证码通过第一算法进行计算,得到第五函数值,并将第五函数值发送给电子设备200。
414C:电子设备200将第五随机数、第六随机数以及第一认证码通过第一算法进行计算,得到第六函数值。
应当理解的是,步骤414C可以在步骤413C之前执行,步骤414C也可以在步骤413C之后执行,步骤414C也可以和步骤413C同时执行。本申请实施例对于步骤414C和步骤413C的执行顺序不做限制。
415C:电子设备200判断第五函数值和第六函数值是否一致。
416C:电子设备200向电子设备300发送第三校验结果。
417C:在第五函数值和第六函数值一致的情况下,电子设备300和电子设备200进行蓝牙通信。
步骤413C~步骤417C可以参考上述步骤411B~步骤415B的相关叙述,在此不再赘述。
对图4A和图4C的两个流程图比较,可以看到首次连接时需要用户在电子设备(电子设备100)上输入第一识别码(例如,PIN码)来完成认证流程,而认证后再次连接时就不需要用户参与了。即便是用户换了电子设备(电子设备300),只要之前用户用旧的电子设备(电子设备100)对BLE设备进行过认证和绑定。那么,用户再用新的电子设备(电子设备300)登录旧的电子设备的用户账号,首次连接BLE设备(电子设备200)时同样不需要重新进行认证和绑定,这样就实现了换机免认证功能。
上述图4A对电子设备100和电子设备200首次进行蓝牙通信的流程进行了介绍。在电子设备100和电子设备200中存在软件模块执行上述图4A中相应的步骤。其中,电子设备100包括第一设备发现模块、第一设备认证模块、第一设备绑定模块以及第一SMP模块。电子设备200包括第二设备发现模块、第二设备认证模块、第二设备绑定模块以及第二SMP模块。其中,第一设备发现模块、第二设备发现模块、第一设备认证模块以及第二设备认证模块、第一设备绑定模块以及第二设备绑定模块位于应用层,第一SMP模块以及第二SMP模块位于应用处理器层(AP层)。
下面,结合图5A,针对各模块对上述图4A中的步骤的交互流程进行说明。请参见图5A,图5A是本申请实施例提供的另一种两个电子设备首次进行蓝牙通信的流程图,各模块之间的交互流程如下:
501A:第二设备认证模块向第二设备发现模块发送第一蓝牙信息。
502A:第二设备发现模块广播第一蓝牙信息。
示例性的,第一蓝牙信息包括电子设备200的设备信息(例如,设备标识)、电子设备200的输入/输出性能(I/O性能)以及电子设备200的蓝牙配对模式。
503A:第一设备发现模块向第一设备认证模块发送电子设备200的安全项配置信息。
具体地,电子设备200的安全项配置信息包括电子设备200的输入/输出性能(I/O性能)以及电子设备200的蓝牙配对模式。
504A:第一设备认证模块向第二设备认证模块发送第一蓝牙连接请求。
505A:第二设备认证模块向第一设备认证模块发送第一请求响应。
506A:第一设备认证模块向第二设备认证模块发送第一指示消息。
507A:第一SMP模块和第二SMP模块进行密钥协商。
508A:第二SMP模块根据协商的密钥信息生成第一密钥。
可选地,在第二SMP模块与第一SMP模块进行密钥协商之前,第二设备认证模块可以向第二SMP模块发送第一触发指令,用于触发第二SMP模块与第一SMP模块进行密钥协商。
509A:第一SMP模块根据协商的密钥信息生成第二密钥。
可选地,在第一SMP模块与第二SMP模块进行密钥协商之前,第一设备认证模块可以向第一SMP模块发送第二触发指令,用于触发第一SMP模块与第二SMP模块进行密钥协商。
应当理解的是,步骤508A可以在步骤509A之前执行,步骤508A也可以在步骤509A之后执行,步骤508A也可以和步骤509A同时执行。本申请实施例对于步骤508A和步骤509A的执行顺序不做限制。
510A:第一设备认证模块向第二设备认证模块请求第一识别码。
511A:第二设备认证模块生成第一识别码,并向第一设备认证模块发送第一提示消息。
512A:第二设备认证模块生成第一随机数,并将第一随机数发送给第一设备认证模块。
513A:第一设备认证模块生成第二随机数,并将第二随机数发送给第二设备认证模块。
应当理解的是,步骤512A可以在步骤513A之前执行,步骤512A也可以在步骤513A之后执行,步骤512A也可以和步骤513A同时执行。本申请实施例对于步骤512A和步骤513A的执行顺序不做限制。
514A:第一设备认证模块将第一随机数、第二随机数以及第一识别码通过第一算法进行计算,得到第一函数值,并将第一函数值发送给第二设备认证模块。
515A:第二设备认证模块将第一随机数、第二随机数以及第一识别码通过第一算法进行计算,得到第二函数值。
应当理解的是,步骤514A可以在步骤515A之前执行,步骤514A也可以在步骤515A之后执行,步骤514A也可以和步骤515A同时执行。本申请实施例对于步骤514A和步骤515A的执行顺序不做限制。
516A:第二设备认证模块判断第一函数值和第二函数值是否一致。
517A:第二设备认证模块向第一设备认证模块发送第一校验结果。
518A:在第一函数值和第二函数值一致的情况下,第二设备认证模块基于第一识别码以及电子设备200的设备信息生成第一认证码(AuthCode)。
519A:第二设备认证模块将第一认证码发送给第二设备绑定模块进行保存。
520A:第二设备认证模块将第一认证码发送给第一设备认证模块。
应当理解的是,步骤519A可以在步骤520A之前执行,步骤519A也可以在步骤520A之后执行,步骤519A也可以和步骤520A同时执行。本申请实施例对于步骤519A和步骤520A的执行顺序不做限制。
521A:第一设备认证模块将第一认证码发送给第一设备绑定模块进行保存
522A:第一设备绑定模块向云端服务器发送第一认证信息,所述第一认证信息包括第一认证码、电子设备100的用户账号信息以及电子设备200的设备信息。
应当理解的是,步骤522A可以在步骤521A之前执行,步骤522A也可以在步骤521A之后执行,步骤522A也可以和步骤521A同时执行。本申请实施例对于步骤522A和步骤521A的执行顺序不做限制。
523A:电子设备100的第一应用和电子设备200的第二应用进行蓝牙通信。
第一应用为电子设备100在应用层的应用程序,第二应用为电子设备200在应用层的应用程序。
上述图4B对电子设备100和电子设备200非首次进行蓝牙通信的流程,进行示例性的介绍。在电子设备100和电子设备200中存在软件模块执行上述图4B中相应的步骤。
下面,结合图5B,针对各模块对上述图4B中的步骤的交互流程进行说明。请参见图5B,图5B是本申请实施例提供的另一种两个电子设备非首次进行蓝牙通信的流程图,各模块之间的交互流程如下:
501B:第二设备认证模块向第二设备发现模块发送第二蓝牙信息。
502B:第二设备发现模块广播第二蓝牙信息。
503B:第一设备发现模块向第一设备认证模块发送电子设备200的安全项配置信息。
504B:第一设备认证模块向第二设备认证模块发送第二蓝牙连接请求。
505B:第二设备认证模块向第一设备认证模块发送第二请求响应。
506B:第一设备认证模块向第二设备认证模块发送第二指示消息。
507B:第一SMP模块和第二SMP模块进行密钥协商。
508B:第二SMP模块根据协商的密钥信息生成第三密钥。
可选地,在第二SMP模块生成第三密钥之前,第二设备认证模块可以向第二SMP模块发送第三触发指令,用于触发第二SMP模块与第三SMP模块进行密钥协商。
509B:第一SMP模块根据协商的密钥信息生成第四密钥。
可选地,在第一SMP模块生成第四密钥之前,第一设备认证模块可以向第一SMP模块发送第四触发指令,用于触发第一SMP模块和第二SMP模块进行密钥协商。
应当理解的是,步骤508B可以在步骤509B之前执行,步骤508B也可以在步骤509B之后执行,步骤508B也可以和步骤509B同时执行。本申请实施例对于步骤508B和步骤509B的执行顺序不做限制。
510B第二设备认证模块从第二设备绑定模块出获取第一认证码。
511B:第二设备认证模块生成第三随机数,并将第三随机数发送给第一设备认证模块。
应当理解的是,步骤510B可以在步骤511B之前执行,步骤510B也可以在步骤511B之后执行,步骤510B也可以和步骤511B同时执行。本申请实施例对于步骤510B和步骤511B的执行顺序不做限制。
512B:第一设备认证模块从第一设备绑定模块处获取第一认证码。
513B:第一设备认证模块生成第四随机数,并将第四随机数发送给第二设备认证模块。
应当理解的是,步骤510B可以在步骤512B之前执行,步骤510B也可以在步骤512B之后执行,步骤510B也可以和步骤512B同时执行。本申请实施例对于步骤510B和步骤512B的执行顺序不做限制。
此外,步骤511B可以在步骤513B之前执行,步骤511B也可以在步骤513B之后执行,步骤511B也可以和步骤513B同时执行。本申请实施例对于步骤511B和步骤513B的执行顺序不做限制。
514B:第一设备认证模块将第三随机数、第四随机数以及第一认证码通过第一算法进行计算,得到第三函数值,并将第三函数值发送给第二设备认证模块。
515B:第二设备认证模块将第三随机数、第四随机数以及第一认证码通过第一算法进行计算,得到第四函数值。
应当理解的是,步骤514B可以在步骤515B之前执行,步骤514B也可以在步骤515B之后执行,步骤514B也可以和步骤515B同时执行。本申请实施例对于步骤514B和步骤515B的执行顺序不做限制。
516B:第二设备认证模块判断第三函数值和第四函数值是否一致。
517B:第二设备认证模块向第一设备认证模块发送第二校验结果。
518B:在第三函数值和第四函数值一致的情况下,电子设备100的第一应用和电子设备200的第二应用进行蓝牙通信。
上述图4C对登录电子设备100账号的电子设备300和电子设备200首次进行蓝牙通信的流程进行示例性的介绍。在电子设备300和电子设备200中存在软件模块执行上述图4C中相应的步骤。其中,电子设备300包括第三设备发现模块、第三设备认证模块、第三设备绑定模块以及第三SMP模块。第三设备发现模块、第三设备认证模块、第三设备绑定模块位于应用层,第三SMP模块位于应用处理器层(AP层)。
下面,结合图5C,针对各模块对上述图4A中的步骤的交互流程进行说明。请参见图5C,图5C是本申请实施例提供的另一种两个电子设备首次进行蓝牙通信的流程图,各模块之间的交互流程如下:
501C:第二设备认证模块向第二设备发现模块发送第三蓝牙信息。
502C:第二设备发现模块广播第三蓝牙信息。
503C:第三设备发现模块向第三设备认证模块发送电子设备200的安全项配置信息。
504C:第三设备认证模块向第二设备认证模块发送第三蓝牙连接请求。
505C:第二设备认证模块向第三设备认证模块发送第三请求响应。
506C:第三设备认证模块向第二设备认证模块发送第三指示消息。
507C:第二SMP模块与第一SMP模块进行密钥协商。
508C:第二SMP模块根据协商的密钥信息生成第五密钥。
可选地,在第二SMP模块与第一SMP模块进行密钥协商之前,第二设备认证模块可以向第二SMP模块发送第五触发指令,用于触发第二SMP模块与第三SMP模块进行密钥协商。
509C:第三SMP模块根据协商的密钥信息生成第六密钥。
可选地,在第三SMP模块与第四SMP模块进行密钥协商之前,第三设备认证模块可以向第三SMP模块发送第六触发指令,用于触发第三SMP模块与第二SMP模块进行密钥协商。
应当理解的是,步骤508C可以在步骤509C之前执行,步骤508C也可以在步骤509C之后执行,步骤508C也可以和步骤509C同时执行。本申请实施例对于步骤508C和步骤509C的执行顺序不做限制。
510C:第三设备认证模块通过第三设备绑定模块检测是否存储有第一认证码。
511C:在不存储有第一认证码的情况下,第三设备认证模块向与云端服务器发送认证码请求消息。
512C:云端服务器向第三设备认证模块发送第一认证码。
可选地,在第三设备认证模块接收到第一认证码后,可以将第一认证码发送到第一设备绑定模块进行保存。
513C:第三设备认证模块生成第五随机数,并将第五随机数发送给第二设备认证模块。
514C:第二设备认证模块生成第六随机数,并将第六随机数发送给第三设备认证模块。
应当理解的是,步骤514C可以在步骤513C之前执行,步骤514C也可以在步骤513C之后执行,步骤514C也可以和步骤513C同时执行。本申请实施例对于步骤514C和步骤513C的执行顺序不做限制。
步骤513C/步骤514C可以在步骤511C之前执行,还可以在步骤511C之后执行,还可以与步骤511C同时执行。本申请实施例对步骤511C、步骤513C、步骤514C的执行顺序不做限制。
515C:第三设备认证模块将第五随机数、第六随机数以及第一认证码通过第一算法进行计算,得到第五函数值,并将第五函数值发送给第二设备认证模块。
516C:第二设备认证模块将第五随机数、第六随机数以及第一认证码通过第一算法进行计算,得到第六函数值。
应当理解的是,步骤515C可以在步骤516C之前执行,步骤515C也可以在步骤516C之后执行,步骤515C也可以和步骤516C同时执行。本申请实施例对于步骤515C和步骤516C的执行顺序不做限制。
517C:第二设备认证模块判断第五函数值和第六函数值是否一致。
518C:第二设备认证模块向第三设备认证模块发送第三校验结果。
519C:在第五函数值和第六函数值一致的情况下,电子设备300的第三应用和电子设备200的第二应用进行蓝牙通信。
下面,结合图6A~图6C介绍本申请实施例提供的电子设备的蓝牙架构。
如图6A所示为电子设备100的蓝牙架构示意图。如图6A所示,电子设备100的蓝牙架构包括应用层、应用处理器层以及蓝牙芯片层。
其中,应用层包括蓝牙应用程序。蓝牙应用程序包括第一设备绑定模块、第一设备认证模块、第一设备发现模块。其中,第一设备绑定模块用于广播电子设备100的蓝牙信息或者接收其它电子设备广播的蓝牙信息,并将其接收到的蓝牙信息中的安全配置项信息发送给第一设备认证模块。第一设备认证模块用于向从设备请求识别码,用于接收从设备(本申请实施例中,从设备为电子设备200)发送的认证码,并将认证码发送到云端服务器中。当电子设备100为从设备时,第一认证模块用于生成认证码。第一设备绑定模块用于存储接收的认证码。
应用处理器层包括主机(host)。在本申请实施例中,host中存储有采用BLE设备进行通信所使用到的BLE协议。可理解的,host是蓝牙协议栈的核心部分,可以负责制定设备工作的角色(例如是主设备还是从设备的角色),指定安全连接,负责协议或通道的多路复用,负责上层应用数据的分割和/或重组等,以满足用户数据传输对延时的要求,以及便于后续的重传、流控等机制的实现。应用处理器层包括第一通用访问配置(Generic AccessProfile,GAP)文件模块(第一GAP模块),第一GAP模块用于广播电子设备100的蓝牙信息或接收其它电子设备广播的蓝牙信息。应用处理器层还包括第一SMP模块,包括蓝牙协议SMP,用于生成密钥,并在蓝牙通信过程中,对传输的数据使用生成的密钥进行加密和解密。应用处理器层还包括第一普通属性协议(Generic Attribute Profile
蓝牙芯片层包括控制器(controller)304,也可以理解为蓝牙芯片。蓝牙芯片中包含射频模块(Radio Frequency,RF)和链路层(Link Layer)。RF可以用于实现射频相关的模拟和数字部分,完成最基本的数据发送和接收。也就是说,RF可以用于处理与射频信号相关的任务(例如扫描广播包或向蓝牙设备发送蓝牙连接的请求)。链路层可以决策广播通道和数据传输通道等,使得电子设备在RF支持的频段上可靠接收和/或发送数据。另外链路层还可以决定蓝牙所处状态,例如scanning状态和initiating状态,在scanning状态下电子设备可以通过广播通道接收数据(例如接收广播包)。在initiating状态下,电子设备只接收和处理从设备发送的确认连接的确认数据,不接收或不处理广播包。
上述host和controller可以通过物理接口也即主机控制器接口(hostcontroller interface,HCI)进行通信。例如,controller可以通过HCI向host发送数据,host可以通过HCI向controller发送命令和数据。
可理解的,controller可以处理射频信号,host可以与controller通信,从而既可以由controller主动发起BLE扫描;也可以由host向controller发起BLE扫描的指令,指示controller发起BLE扫描。
可理解的,关于图6A所示的电子设备的蓝牙架构属于host+controller双芯片标准架构,电子设备的蓝牙架构还可以为其他架构。
例如,电子设备的蓝牙架构还可以为单芯片架构,也即host和controller集成到一个芯片上,host和controller之间的通信不需要物理接口HCI,可以直接通过逻辑接口(例如应用程序编程接口)交互。又例如,电子设备的蓝牙架构还可以为自定义双芯片架构,host和controller之间通过物理接口HCI通信,但所使用的通信协议由厂商自己定义。
可理解的,本申请实施例提供的连接方法同样适用于除host+controller双芯片标准架构之外的其他蓝牙架构(例如单芯片架构或自定义双芯片架构),本文对此不做限定。
图6B和图6C分别为电子设备200的蓝牙架构示意图、电子设备300的蓝牙架构示意图,图6B和图6C中各模块的相关叙述可以参考图6A中各模块的相关叙述,在此不再赘述。
下面,对电子设备的硬件结构进行介绍,该电子设备可以为上述电子设备100、电子设备200以及电子设备300中的任意一种电子设备。本申请实施例以电子设备100为例,进行说明。
电子设备100可以是手机、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digitalassistant,PDA)、增强现实(augmentedreality,AR)\虚拟现实(virtual reality,VR)设备等。本申请实施例对该电子设备100的具体类型不作特殊限制。
请参见图7,图7是本申请实施例提供的一种电子设备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等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。
陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
气压传感器180C用于测量气压。在一些实施例中,电子设备100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器180D包括霍尔传感器。电子设备100可以利用磁传感器180D检测翻盖皮套的开合。
加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别终端设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180F测距以实现快速对焦。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测电子设备100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。在一些实施例中,电子设备100利用温度传感器180J检测的温度,执行温度处理策略。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
总之,以上所述仅为本发明技术方案的实施例,并非用于限定本发明的保护范围。凡根据本发明的揭露,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (22)
1.一种蓝牙通信方法,其特征在于,应用于具备蓝牙功能的第一电子设备,所述方法包括:
在检测到未存储第一认证码以及未从网络设备获取所述第一认证码的情况下,所述第一电子设备生成第一校验信息;
所述第一电子设备将所述第一校验信息发送给第二电子设备;所述第二电子设备为与所述第一电子设备待配对的设备;
在所述第一电子设备的身份校验通过的情况下,所述第一电子设备接收所述第二电子设备发送的第一认证码,所述第一认证码为所述第一电子设备和所述第二电子设备之间的蓝牙认证凭证;所述第一认证码为在所述第一电子设备的身份校验通过后,所述第二电子设备发送的认证码;
所述第一电子设备保存所述第一认证码;
所述第一电子设备向网络设备发送第一信息;所述第一信息包括所述第一认证码、所述第二电子设备的设备信息和所述第一电子设备的用户账号信息;
所述第一电子设备与所述第二电子设备进行蓝牙通信;
所述第一电子设备生成第一校验信息,具体包括:
所述第一电子设备向所述第二电子设备请求第一识别码;
所述第一电子设备接收所述第二电子设备发送的第一提示消息,所述第一提示消息用于提示所述第一电子设备,所述第二电子设备已生成第一识别码;
所述第一电子设备检测到第一操作;响应所述第一操作,所述第一电子设备接收第一识别码;
所述第一电子设备生成第二随机数,并将所述第二随机数发送给所述第二电子设备;
所述第一电子设备接收所述第二电子设备发送的第一随机数;
所述第一电子设备基于所述第一识别码、所述第一随机数以及所述第二随机数,通过第一算法进行计算,得到第一函数值;所述第一函数值为所述第一校验信息。
2.如权利要求1所述的方法,其特征在于,所述第一电子设备生成第一校验信息,还包括:
所述第一电子设备建立与所述第二电子设备的加密通道。
3.如权利要求2所述的方法,其特征在于,所述第一电子设备建立与所述第二电子设备的加密通道,具体包括:
所述第一电子设备和所述第二电子设备进行密钥协商;
所述第一电子设备根据协商的密钥信息生成第二密钥;
其中,在所述第一电子设备和所述第二电子设备进行蓝牙通信的过程中,所述第二密钥用于所述第一电子设备加密发送的数据,解密接收的数据。
4.如权利要求1-3任一项所述的方法,其特征在于,所述第一电子设备与所述第二电子设备进行蓝牙通信之后,还包括:
在检测到存储有第一认证码的情况下,所述第一电子设备基于所述第一认证码生成第三校验信息;
所述第一电子设备将所述第三校验信息发送给所述第二电子设备;在所述第一电子设备的身份校验通过的情况下,所述第一电子设备与所述第二电子设备进行蓝牙通信。
5.如权利要求4所述的方法,其特征在于,所述第一电子设备基于所述第一认证码生成第三校验信息,具体包括:
所述第一电子设备建立与所述第二电子设备的加密通道;
所述第一电子设备生成第四随机数;
所述第一电子设备将所述第四随机数发送给所述第二电子设备;
所述第一电子设备接收所述第二电子设备发送的第三随机数;
所述第一电子设备基于所述第一认证码、所述第三随机数以及所述第四随机数,通过第一算法进行计算,得到第三函数值;所述第三函数值为所述第三校验信息。
6.如权利要求5所述的方法,其特征在于,所述第一电子设备建立与所述第二电子设备的加密通道,具体包括:
所述第一电子设备和所述第二电子设备进行密钥协商;
所述第一电子设备根据协商的密钥信息生成第四密钥;
其中,在所述第一电子设备和所述第二电子设备进行蓝牙通信的过程中,所述第四密钥用于所述第一电子设备加密发送的数据,解密接收的数据。
7.一种蓝牙通信的方法,其特征在于,应用于具备蓝牙功能的第二电子设备,所述方法包括:
所述第二电子设备生成第二校验信息;
所述第二电子设备接收第一电子设备发送的第一校验信息;所述第一电子设备为与所述第二电子设备待配对的设备;
所述第二电子设备基于所述第一校验信息和所述第二校验信息校验所述第一电子设备的身份;
在所述第一电子设备的身份校验通过的情况下,所述第二电子设备生成第一认证码;
所述第二电子设备将所述第一认证码发送给所述第一电子设备,所述第一认证码为所述第一电子设备和所述第二电子设备之间的蓝牙认证凭证;
所述第二电子设备与所述第一电子设备之间进行蓝牙通信;
所述第二电子设备生成第二校验信息,具体包括:
所述第二电子设备接收所述第一电子设备发送的第一识别码请求;
所述第二电子设备生成第一识别码;
所述第二电子设备向所述第一电子设备发送第一提示消息;
所述第二电子设备生成第一随机数;将所述第一随机数发送给所述第一电子设备;
所述第二电子设备接收所述第一电子设备发送的第二随机数;
所述第二电子设备基于所述第一识别码、所述第一随机数以及所述第二随机数,通过第一算法进行计算,得到第二函数值;所述第二函数值为所述第二校验信息。
8.如权利要求7所述的方法,其特征在于,所述第二电子设备生成第二校验信息,还包括:
所述第二电子设备建立与所述第一电子设备的加密通道。
9.如权利要求8所述的方法,其特征在于,所述第二电子设备建立与所述第一电子设备的加密通道,具体包括:
所述第二电子设备与所述第一电子设备进行密钥协商;
所述第二电子设备根据协商的密钥信息生成第一密钥;
其中,在所述第一电子设备和所述第二电子设备进行蓝牙通信的过程中,所述第一密钥用于所述第二电子设备加密发送的数据,解密接收的数据。
10.如权利要求7-9任一项所述的方法,其特征在于,所述第二电子设备与所述第一电子设备之间进行蓝牙通信之后,还包括:
所述第二电子设备接收所述第一电子设备发送的第三校验信息;
所述第二电子设备生成第四校验信息;
所述第二电子设备基于所述第四校验信息和所述第三校验信息校验所述第一电子设备的身份是否通过;
在所述第一电子设备的身份校验通过的情况下,所述第二电子设备与所述第一电子设备进行蓝牙通信。
11.如权利要求10所述的方法,其特征在于,所述第二电子设备生成第四校验信息之前,还包括:
所述第二电子设备建立与所述第一电子设备的加密通道;
所述第二电子设备生成第三随机数;
所述第二电子设备将所述第三随机数发送给所述第一电子设备;
所述第二电子设备接收所述第一电子设备发送的第四随机数;
所述第二电子设备基于所述第一认证码、所述第三随机数以及所述第四随机数,通过第一算法进行计算,得到第四函数值;所述第四函数值为所述第四校验信息。
12.如权利要求11所述的方法,其特征在于,所述第二电子设备建立与所述第一电子设备的加密通道,具体包括:
所述第二电子设备与所述第一电子设备进行密钥协商;
所述第二电子设备根据协商的密钥信息生成第三密钥;
其中,在所述第一电子设备和所述第二电子设备进行蓝牙通信的过程中,所述第三密钥用于所述第二电子设备加密发送的数据,解密接收的数据。
13.一种蓝牙通信方法,其特征在于,应用于具备蓝牙功能的第三电子设备,所述第三电子设备登录的用户账号为第一电子设备的用户账号,所述方法包括:
所述第三电子设备检测是否存在第一认证码;
在不存在第一认证码的情况下,向网络设备发送认证码请求消息;所述认证码请求消息包括所述第一电子设备的用户账号和第二电子设备的设备信息;
所述第三电子设备接收所述网络设备发送的第一认证码;
所述第三电子设备基于所述第一认证码生成第五校验信息,并将所述第五校验信息发送给第二电子设备;所述第二电子设备为与所述第三电子设备待配对的设备;
在所述第三电子设备的身份校验通过的情况下,所述第三电子设备与所述第二电子设备进行蓝牙通信;
所述第三电子设备基于所述第一认证码生成第五校验信息,具体包括:
所述第三电子设备生成第六随机数;将所述第六随机数发送给所述第二电子设备;
所述第三电子设备接收所述第二电子设备发送的第五随机数;
所述第三电子设备基于所述第一认证码、所述第五随机数以及所述第六随机数,通过第一算法进行计算,得到第五函数值;所述第五函数值为所述第五校验信息。
14.如权利要求13所述的方法,其特征在于,所述第三电子设备基于所述第一认证码生成第五校验信息,还包括:
所述第三电子设备建立与所述第二电子设备的加密通道。
15.如权利要求14所述的方法,其特征在于,所述第三电子设备建立与所述第二电子设备的加密通道,具体包括:
所述第三电子设备和所述第二电子设备进行密钥协商;
所述第三电子设备根据协商的密钥信息生成第六密钥;
其中,在所述第三电子设备和所述第二电子设备进行蓝牙通信的过程中,所述第六密钥用于所述第三电子设备加密发送的数据,解密接收的数据。
16.一种蓝牙通信的方法,其特征在于,应用于具备蓝牙功能的第二电子设备,所述方法包括:
接收第三电子设备发送的第五校验信息;所述第三电子设备为与所述第二电子设备待配对的电子设备;所述第三电子设备登录的用户账号为第一电子设备的用户账号;所述第五校验信息为所述第三电子设备在检测到不存在第一认证码的情况下,向网络设备发送认证码请求消息后,基于接收到的所述网络设备发送的第一认证码生成的验证信息;所述认证码请求消息包括所述第一电子设备的用户账号和第二电子设备的设备信息;
所述第二电子设备生成第六校验信息;
基于所述第六校验信息和所述第五校验信息校验所述第三电子设备的身份;
在所述第三电子设备的身份校验通过的情况下,所述第二电子设备与所述第三电子设备进行蓝牙通信;
所述第二电子设备生成第六校验信息,具体包括:
所述第二电子设备生成第五随机数;将所述第五随机数发送给所述第三电子设备;
所述第二电子设备接收所述第三电子设备发送的第六随机数;
所述第二电子设备基于所述第一认证码、所述第五随机数以及所述第六随机数,通过第一算法进行计算,得到第六函数值;所述第六函数值为所述第六校验信息。
17.如权利要求16所述的方法,其特征在于,所述第二电子设备生成第六校验信息,还包括:
所述第二电子设备建立与所述第三电子设备的加密通道。
18.如权利要求17所述的方法,其特征在于,所述第二电子设备建立与所述第三电子设备的加密通道,具体包括:
所述第二电子设备与所述第三电子设备进行密钥协商;
所述第二电子设备根据协商的密钥信息生成第五密钥;
其中,在所述第二电子设备和所述第三电子设备进行蓝牙通信的过程中,所述第五密钥用于所述第二电子设备加密发送的数据,解密接收的数据。
19.一种蓝牙通信的方法,其特征在于,应用于网络设备,所述方法包括:
接收第一电子设备发送的第一信息;所述第一信息包括第一认证码、第二电子设备的设备信息和所述第一电子设备的用户账号信息;所述第一信息为所述第一电子设备在检测到未存储第一认证码以及未从网络设备获取所述第一认证码的情况下,将第一校验信息发送给第二电子设备,并在所述第一电子设备的身份校验通过的情况下,接收并保存所述第二电子设备发送的第一认证码后,向所述网络设备发送的所述第一信息;所述第二电子设备为与所述第一电子设备待配对的设备;所述第一认证码为所述第一电子设备和所述第二电子设备之间的蓝牙认证凭证;所述第一认证码为在所述第一电子设备的身份校验通过后,所述第二电子设备发送的认证码;
存储所述第一信息。
20.一种蓝牙通信的方法,其特征在于,应用于网络设备,所述方法包括:
接收第三电子设备发送的认证码请求消息;所述认证码请求消息包括第一电子设备的用户账号和第二电子设备的设备信息;所述认证码请求消息为所述第三电子设备在检测到不存在第一认证码的情况下,向网络设备发送的所述认证码请求消息;所述第三电子设备登录的用户账号为所述第一电子设备的用户账号;
将所述第一认证码发送给所述第三电子设备;所述第一认证码用于所述第三电子设备基于所述第一认证码生成第五校验信息,并将所述第五校验信息发送给第二电子设备;所述第二电子设备为与所述第三电子设备待配对的设备;在所述第三电子设备的身份校验通过的情况下,所述第三电子设备与所述第二电子设备进行蓝牙通信。
21.一种电子设备,其特征在于,包括:存储器、处理器和触控屏;其中:
所述触控屏用于显示内容;
所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
所述处理器用于调用所述程序指令,使得所述电子设备执行如权利要求1-6或7-12或13-15或16-18或19或20任一项所述的方法。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时,实现如权利要求1-6或7-12或13-15或16-18或19或20任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210935847.3A CN116056077B (zh) | 2022-08-04 | 2022-08-04 | 一种蓝牙通信方法、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210935847.3A CN116056077B (zh) | 2022-08-04 | 2022-08-04 | 一种蓝牙通信方法、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116056077A CN116056077A (zh) | 2023-05-02 |
CN116056077B true CN116056077B (zh) | 2023-11-14 |
Family
ID=86131810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210935847.3A Active CN116056077B (zh) | 2022-08-04 | 2022-08-04 | 一种蓝牙通信方法、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116056077B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158567A (zh) * | 2014-07-25 | 2014-11-19 | 天地融科技股份有限公司 | 蓝牙设备间的配对方法和系统、数据交互方法和系统 |
CN104363250A (zh) * | 2014-12-03 | 2015-02-18 | 北京深思数盾科技有限公司 | 一种用于设备连接的方法和系统 |
CN105933039A (zh) * | 2016-06-24 | 2016-09-07 | 飞天诚信科技股份有限公司 | 一种蓝牙设备及其工作方法 |
CN108418845A (zh) * | 2018-07-13 | 2018-08-17 | 上海银基信息安全技术股份有限公司 | 蓝牙配对码配备方法、系统、终端、服务器及车载设备 |
CN113194465A (zh) * | 2021-04-20 | 2021-07-30 | 歌尔股份有限公司 | 终端间的ble连接验证方法、装置及可读存储介质 |
WO2022068517A1 (zh) * | 2020-09-30 | 2022-04-07 | 华为技术有限公司 | 蓝牙通信系统、蓝牙连接方法、电子设备及存储介质 |
-
2022
- 2022-08-04 CN CN202210935847.3A patent/CN116056077B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158567A (zh) * | 2014-07-25 | 2014-11-19 | 天地融科技股份有限公司 | 蓝牙设备间的配对方法和系统、数据交互方法和系统 |
CN104363250A (zh) * | 2014-12-03 | 2015-02-18 | 北京深思数盾科技有限公司 | 一种用于设备连接的方法和系统 |
CN105933039A (zh) * | 2016-06-24 | 2016-09-07 | 飞天诚信科技股份有限公司 | 一种蓝牙设备及其工作方法 |
CN108418845A (zh) * | 2018-07-13 | 2018-08-17 | 上海银基信息安全技术股份有限公司 | 蓝牙配对码配备方法、系统、终端、服务器及车载设备 |
WO2022068517A1 (zh) * | 2020-09-30 | 2022-04-07 | 华为技术有限公司 | 蓝牙通信系统、蓝牙连接方法、电子设备及存储介质 |
CN113194465A (zh) * | 2021-04-20 | 2021-07-30 | 歌尔股份有限公司 | 终端间的ble连接验证方法、装置及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116056077A (zh) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200082782A1 (en) | Mobile computing device technology and systems and methods utilizing the same | |
US11783630B2 (en) | Method for transmitting face image data, transferring value, apparatus, and electronic device | |
WO2019091289A1 (zh) | 生成签名的方法、电子设备及存储介质 | |
CN112003879B (zh) | 用于虚拟场景的数据传输方法、计算机设备及存储介质 | |
CN110321228B (zh) | 原生方法的调用方法、装置、设备及计算机可读存储介质 | |
WO2020253800A1 (zh) | 仿真对象的身份识别方法、相关装置及系统 | |
WO2021147660A1 (zh) | 一种数据传输方法及设备 | |
CN113676879A (zh) | 一种分享信息的方法、电子设备和系统 | |
US9392637B1 (en) | Peer-to-peer proximity pairing of electronic devices with cameras and see-through heads-up displays | |
CN113852459B (zh) | 密钥协商方法、设备及计算机可读存储介质 | |
CN104698728A (zh) | 微型投影装置及其操作方法和操作装置 | |
EP4138462A1 (en) | Information sharing method, electronic devices and system | |
CN116056077B (zh) | 一种蓝牙通信方法、电子设备及计算机可读存储介质 | |
CN115104283A (zh) | 电子设备和用于在电子设备中执行对等服务的方法 | |
CN115379043B (zh) | 一种跨设备的文本接续的方法和电子设备 | |
WO2023071733A1 (zh) | 一种设备控制方法与相关设备 | |
WO2022242343A1 (zh) | 一种跨设备的文本接续的方法和电子设备 | |
WO2024114214A1 (zh) | 一种通信方法以及电子设备 | |
US20240129302A1 (en) | System and method for using a validated card in a virtual environment | |
US20230127607A1 (en) | Methods, devices, and computer program products for authenticating peripheral device | |
WO2024037500A1 (zh) | 通信方法及相关装置 | |
KR20240058723A (ko) | 생체 정보를 이용한 장치들 간의 연결 방법 및 그 전자 장치 | |
CN118102295A (zh) | 一种通信方法以及电子设备 | |
KR20210101998A (ko) | 전자 장치 및 전자 장치에서의 p2p 서비스 수행 방법 | |
CN117492635A (zh) | 数据存储方法和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |