终端间的BLE连接验证方法、装置及可读存储介质与流程

文档序号:26096929发布日期:2021-07-30 18:06阅读:87来源:国知局
终端间的BLE连接验证方法、装置及可读存储介质与流程

本发明涉及电子设备技术领域,尤其涉及一种终端间的ble连接验证方法、装置及计算机可读存储介质。



背景技术:

tws(truewirelessstereo,真无线耳机)产品越来越流行,而tws产品既支持传统蓝牙连接,也支持ble(bluetoothlowenergy,蓝牙低功耗)连接,该ble连接相比传统蓝牙,能在保持同等通信范围的同时显著降低功耗和成本。在连接机制方面,传统蓝牙采用先配对再连接机制,所以这种连接机制是相对安全的。而ble连接可以不经过配对直接与对端设备进行连接,这种连接方式使得tws产品容易被恶意设备连接,存在安全风险。



技术实现要素:

本发明的主要目的在于提供一种终端间的ble连接验证方法、装置及计算机可读存储介质,旨在解决现有的方案容易被恶意设备连接,存在安全风险的问题。

为实现上述目的,本发明提供一种终端间的ble连接验证方法,应用于tws耳机,方法包括:

在与请求端蓝牙低能耗ble连接后,将请求端对应的验证状态设为未知,并侦测是否接收到请求端发送的身份验证请求;

当侦测到请求端发送的身份验证请求时,生成并返回第一随机数和密钥使用标识至请求端,以在接收到请求端生成的第二随机数和第一认证码时,根据第一随机数、第二随机数以及密钥使用标识对应的第一预设密钥生成第二认证码;其中,第一认证码是请求端根据第一随机数、第二随机数以及请求端中密钥使用标识对应的第二预设密钥生成的;

当第一认证码和第二认证码的比较结果为一致时,请求端的ble连接验证成功,向请求端发起ble连接认证请求;

在接收到请求端根据连接认证请求反馈的连接验证成功信息以及累计验证时间时,获取本地记录的未知状态累计保持时间;

在未知状态累计保持时间与累计验证时间匹配时,终端间的ble连接验证成功。

为实现上述目的,本发明还提供一种终端间的ble连接验证方法,应用于验证端,终端间的ble连接验证方法包括以下步骤:

在与请求端蓝牙低能耗ble连接后,侦测是否接收到请求端发送的身份验证请求;

当侦测到请求端发送的身份验证请求时,生成并返回第一随机数至请求端,以在接收到请求端生成的第二随机数和第一认证码时,根据第一随机数、第二随机数以及第一预设密钥生成第二认证码;其中,第一认证码是请求端根据第一随机数、第二随机数以及请求端中第二预设密钥生成的;

对第一认证码和第二认证码进行比较;

当比较结果为一致时,请求端的ble连接验证成功。

可选地,根据第一随机数、第二随机数以及第一预设密钥生成第二认证码的步骤,包括:

将第一预设密钥与第一预设字段进行拼接,得到第一拼接字符串,并对第一随机数和第二随机数进行拼接,得到第二拼接字符串和第三拼接字符串;

将第一拼接字符串、第二拼接字符串以及第三拼接字符串对应作为算法密钥、第一输入参数和第二输入参数,输入至预设哈希消息认证码hmac运算器中进行运算,以输出第二认证码。

可选地,请求端根据第一随机数、第二随机数以及请求端中第二预设密钥生成第一认证码的过程包括:

请求端将第二预设密钥与第一预设字段进行拼接,得到第四拼接字符串,并对第一随机数和第二随机数进行拼接,得到第五拼接字符串和第六拼接字符串;

请求端将第四拼接字符串、第五拼接字符串以及第六拼接字符串对应作为算法密钥、第一输入参数和第二输入参数,输入至预设hmac运算器中进行运算,以输出第一认证码。

可选地,方法还包括:

根据第一随机数、第二随机数以及第一预设密钥生成第一请求认证码;

将第一请求认证码发送给请求端,以供请求端在确定第一请求认证码和第二请求认证码一致时,验证端的ble连接验证成功;其中,第二请求认证码是请求端根据第一随机数、第二随机数以及请求端中第二预设密钥生成的。

可选地,根据第一随机数、第二随机数以及第一预设密钥生成第一请求认证码的步骤,包括:

将第一预设密钥与第二预设字段进行拼接,得到第七拼接字符串,并根据第一随机数和第二随机数进行字符串拼接,得到第二拼接字符串和第三拼接字符串;

将第七拼接字符串、第二拼接字符串以及第三拼接字符串对应作为算法密钥、第一输入参数和第二输入参数,输入至预设hmac运算器中进行运算,以输出第一请求认证码。

可选地,请求端根据第一随机数、第二随机数以及请求端中第二预设密钥生成第二请求认证码的过程包括:

请求端将第一预设密钥与第二预设字段进行拼接,得到第八拼接字符串,并根据第一随机数和第二随机数进行字符串拼接,得到第五拼接字符串和第六拼接字符串;

请求端将第八拼接字符串、第五拼接字符串以及第六拼接字符串对应作为算法密钥、第一输入参数和第二输入参数,输入至预设hmac运算器中进行运算,以输出第二请求认证码。

可选地,算法密钥、第一输入参数和第二输入参数,输入至预设hmac运算器中进行运算的步骤,包括:

将算法密钥作为一次运算密钥,对第一输入参数进行一次hmac运算;

将一次hmac运算的运算结果作为二次运算密钥,对第二输入参数进行二次hmac运算,二次hmac运算的输出结果为hmac运算器的运算结果。

此外,为实现上述目的,本发明还提供一种终端间的ble连接验证装置,终端间的ble连接验证装置包括:存储器、处理器及存储在存储器上并可在处理器上运行的终端间的ble连接验证程序,终端间的ble连接验证程序被处理器执行时实现如上的终端间的ble连接验证方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有终端间的ble连接验证程序,终端间的ble连接验证程序被处理器执行时实现如上的终端间的ble连接验证方法的步骤。

本发明提供一种终端间的ble连接验证方法、装置及计算机可读存储介质,通过在与请求端蓝牙低能耗ble连接后,侦测是否接收到请求端发送的身份验证请求;当侦测到请求端发送的身份验证请求时,生成并返回第一随机数至请求端,以在接收到请求端生成的第二随机数和第一认证码时,根据第一随机数、第二随机数以及第一预设密钥生成第二认证码;其中,第一认证码是请求端根据第一随机数、第二随机数以及请求端中第二预设密钥生成的;对第一认证码和第二认证码进行比较;当比较结果为一致时,请求端的ble连接验证成功。即,本发明设计了一套蓝牙低功耗连接的自主验证机制,能够基于例如tws耳机的验证端对对端连接设备进行安全验证,从而解决了现有方案容易被恶意设备连接,存在安全风险的问题。进一步地,验证端和请求端各自预设有密钥,通过两方对应生成的随机码与密钥结合生成认证码进行比较验证,由于密钥预先为ble连接的终端间预先共享的,无法在传输过程中被第三方获取,因此连接验证不容易被第三方破解,提高了连接验证的安全性。

附图说明

图1为本发明实施例方案涉及的硬件运行环境的终端结构示意图;

图2为本发明终端间的ble连接验证方法第一实施例的流程示意图;

图3为本发明终端间的ble连接验证方法第二实施例中步骤s20中根据第一随机数、第二随机数以及第一预设密钥生成第二认证码的细化流程示意图;

图4为本发明终端间的ble连接验证方法第三实施例的流程示意图;

图5为本发明终端间的ble连接验证方法第三实施例中步骤s50的细化流程示意图;

图6为本发明终端间的ble连接验证方法第四实施例中算法密钥、第一输入参数和第二输入参数输入至预设hmac运算器中进行运算的细化流程示意图;

图7为本发明终端间的ble连接验证方法应用于tws耳机的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的终端结构示意图。

本发明实施例终端可以是终端间的ble连接验证装置,该终端间的ble连接验证装置是指参与ble连接的其中一方终端,可以是耳机设备,例如tws耳机,或者tws耳机充电盒,还可以是手机。当然,本发明实施例终端也可以为终端间的ble连接验证装置的控制芯片,用于对终端ble连接进行验证以及进一步处理。

如图1所示,该终端可以包括:处理器1001,例如cpu(centralprocessingunit,中央处理器),通信总线1002,网络接口1003,存储器1004。其中,通信总线1002用于实现这些组件之间的连接通信。网络接口1003可选的可以包括标准的有线接口(如usb接口、type-c接口)。存储器1004可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1004可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1004中可以包括操作系统、网络通信模块以及终端间的ble连接验证程序。

在图1所示的终端中,网络接口1003主要用于连接后台服务器,与后台服务器进行数据通信;而处理器1001可以用于调用存储器1004中存储的终端间的ble连接验证程序,并执行以下操作:

在与请求端蓝牙低能耗ble连接后,侦测是否接收到请求端发送的身份验证请求;

当侦测到请求端发送的身份验证请求时,生成并返回第一随机数至请求端,以在接收到请求端生成的第二随机数和第一认证码时,根据第一随机数、第二随机数以及第一预设密钥生成第二认证码;其中,第一认证码是请求端根据第一随机数、第二随机数以及请求端中第二预设密钥生成的;

对第一认证码和第二认证码进行比较;

当比较结果为一致时,请求端的ble连接验证成功。

进一步地,处理器1001可以调用存储器1004中存储的终端间的ble连接验证程序,还执行以下操作:

将第一预设密钥与第一预设字段进行拼接,得到第一拼接字符串,并对第一随机数和第二随机数进行拼接,得到第二拼接字符串和第三拼接字符串;

将第一拼接字符串、第二拼接字符串以及第三拼接字符串对应作为算法密钥、第一输入参数和第二输入参数,输入至预设哈希消息认证码hmac运算器中进行运算,以输出第二认证码。

进一步地,处理器1001可以调用存储器1004中存储的终端间的ble连接验证程序,在程序中请求端根据第一随机数、第二随机数以及请求端中第二预设密钥生成第一认证码的过程包括:

请求端将第二预设密钥与第一预设字段进行拼接,得到第四拼接字符串,并对第一随机数和第二随机数进行拼接,得到第五拼接字符串和第六拼接字符串;

请求端将第四拼接字符串、第五拼接字符串以及第六拼接字符串对应作为算法密钥、第一输入参数和第二输入参数,输入至预设hmac运算器中进行运算,以输出第一认证码。

进一步地,处理器1001可以调用存储器1004中存储的终端间的ble连接验证程序,还执行以下操作:

根据第一随机数、第二随机数以及第一预设密钥生成第一请求认证码;

将第一请求认证码发送给请求端,以供请求端在确定第一请求认证码和第二请求认证码一致时,验证端的ble连接验证成功;其中,第二请求认证码是请求端根据第一随机数、第二随机数以及请求端中第二预设密钥生成的。

进一步地,处理器1001可以调用存储器1004中存储的终端间的ble连接验证程序,还执行以下操作:

将第一预设密钥与第二预设字段进行拼接,得到第七拼接字符串,并根据第一随机数和第二随机数进行字符串拼接,得到第二拼接字符串和第三拼接字符串;

将第七拼接字符串、第二拼接字符串以及第三拼接字符串对应作为算法密钥、第一输入参数和第二输入参数,输入至预设hmac运算器中进行运算,以输出第一请求认证码。

进一步地,处理器1001可以调用存储器1004中存储的终端间的ble连接验证程序,在程序中请求端根据第一随机数、第二随机数以及请求端中第二预设密钥生成第二请求认证码的过程包括:

请求端将第一预设密钥与第二预设字段进行拼接,得到第八拼接字符串,并根据第一随机数和第二随机数进行字符串拼接,得到第五拼接字符串和第六拼接字符串;

请求端将第八拼接字符串、第五拼接字符串以及第六拼接字符串对应作为算法密钥、第一输入参数和第二输入参数,输入至预设hmac运算器中进行运算,以输出第二请求认证码。

进一步地,处理器1001可以调用存储器1004中存储的终端间的ble连接验证程序,还执行以下操作:

将算法密钥作为一次运算密钥,对第一输入参数进行一次hmac运算;

将一次hmac运算的运算结果作为二次运算密钥,对第二输入参数进行二次hmac运算,二次hmac运算的输出结果为hmac运算器的运算结果。

进一步地,处理器1001可以调用存储器1004中存储的终端间的ble连接验证程序,还执行以下操作:

当计时时间达到预设值时,若请求端的ble连接验证仍未成功,则断开与请求端的ble连接。

当图1所示的终端为tws耳机时,其中网络接口1003主要用于连接后台服务器,与后台服务器进行数据通信;而处理器1001可以用于调用存储器1004中存储的终端间的ble连接验证程序,并执行以下操作:

在与请求端蓝牙低能耗ble连接后,将请求端对应的验证状态设为未知,并侦测是否接收到请求端发送的身份验证请求;

当侦测到请求端发送的身份验证请求时,生成并返回第一随机数和密钥使用标识至请求端,以在接收到请求端生成的第二随机数和第一认证码时,根据第一随机数、第二随机数以及密钥使用标识对应的第一预设密钥生成第二认证码;其中,第一认证码是请求端根据第一随机数、第二随机数以及请求端中密钥使用标识对应的第二预设密钥生成的;

当第一认证码和第二认证码的比较结果为一致时,请求端的ble连接验证成功,向请求端发起ble连接认证请求;

在接收到请求端根据连接认证请求反馈的连接验证成功信息以及累计验证时间时,获取本地记录的未知状态累计保持时间;

在未知状态累计保持时间与累计验证时间匹配时,终端间的ble连接验证成功。

基于上述硬件结构,提出本发明的终端间的ble连接验证方法各个实施例。

参照图2,图2为本发明终端间的ble连接验证方法第一实施例的流程示意图。

在本实施例中,该终端间的ble连接验证方法应用于验证端,该方法包括:

步骤s10,在与请求端蓝牙低能耗ble连接后,侦测是否接收到请求端发送的身份验证请求;

本发明实施例中的请求端和验证端是相对的,在ble连接之后,可以根据终端中最先发出身份验证请求的确定,也可以预先指定。即当验证端是耳机、智能可穿戴设备时,请求端是手机类具有蓝牙的移动终端;当验证端是移动终端时,请求端可以是耳机、智能可穿戴设备。本发明实施例以验证端为耳机,请求端为手机为例进行举例说明,其他类型终端参与进行ble连接验证可以参照执行,在此不过多赘述。

验证端与请求端通过ble连接后,请求端获取到ble连接的这一状态,会发出身份验证请求,用于向验证端请求启动ble连接验证。验证端通过实时或定时监测到该身份验证请求即表示可以开始终端之间的ble连接验证。

可以理解的是,由于ble连接不需要先匹配再验证,可以直接与对端设备连接,因此实际上在终端间ble连接验证的整个过程,请求端与验证端实际处于连接状态。如果持续进行身份验证请求的侦测,但又一直未侦测到请求,或者ble连接验证一直未通过,此时请求端是否为合法安全设备是未知的,这种情况容易使得验证端受到越来越大的风险,因此进一步可以在连接之后开始侦测时即启动计时,并对应设置一个预设值,该预设值可以是10秒,与累计计时产生的计时时间进行比较,当计时时间达到预设值时,可以获取验证端本地记录的请求端的ble连接验证状态标识来确定请求端的ble连接验证是否成功,如果计时时间达到预设值,请求端的ble连接验证标识仍未标识为成功,此时验证端断开与请求端的ble连接。通过计时时间的设置,对ble连接验证增加了时限限制,减少因长时间等待验证,验证端持续保持ble连接状态所带来的安全风险。

步骤s20,当侦测到请求端发送的身份验证请求时,生成并返回第一随机数至请求端,以在接收到请求端生成的第二随机数和第一认证码时,根据第一随机数、第二随机数以及第一预设密钥生成第二认证码;其中,第一认证码是请求端根据第一随机数、第二随机数以及请求端中第二预设密钥生成的;

验证端在收到身份验证请求后,可以通过随机数生成器生成第一随机数(以下简称“randb”)并返回给请求端。请求端在收到randb后,自己也可以通过随机数生成器生成第二随机数(以下简称“randa”),并根据验证端反馈的randb、自己生成的randa以及验证端预设的第二密钥结合预设算法进行第一认证码(code1)的生成,第一认证码可以采用哈希算法进行生成。由请求端将生成的randa和code1发送给验证端,验证端也可以利用预设算法,自身预设的第一密钥以及randa、randb自行生成第二认证码(code2),进而比较code1和code2。需要说明的是,如果双方终端是合法设备,在ble连接之前可以双方提前约定,共享密钥,即如果是合法设备,第一预设密钥和第二预设密钥是提前共享的,密钥字段顺序均一致。

此外,在返回第一随机数至请求端时,还可以返回加密版本号至请求端,使请求端根据加密版本号可以确定第二预设密钥的版本和/或加密过程中生成第一认证码的hmac运算器的版本是否需要更新,或者请求端根据加密版本号查找对应使用的密钥以及hamc运算器,后续在对验证端的ble连接验证时,也可以使用该加密版本号,从而使请求端和验证端双方的加密版本号保持一致,保证合法终端间的ble连接验证的顺利进行。

步骤s30,对第一认证码和第二认证码进行比较;

步骤s40,当比较结果为一致时,请求端的ble连接验证成功。

如果code1和code2一致,则说明请求端是合法设备,如果不一致,则请求端为非法设备,会对验证端的信息安全产生威胁,请求端将执行断开ble连接操作。

可以理解的是,在整个对请求端的ble连接验证过程中,请求端和验证端的传输过程只有随机数和请求端发送的认证码,非正常第三方设备能非法截获到的也只有随机数和请求端发送的验证码,无法获取到ble连接双方的密钥,只有请求端和验证端提前约定好第一预设密钥和第二预设密钥才能实现ble连接验证,第三方设备无法获取,因此也就不能实现ble连接验证,由此能够识别出非法设备。

本实施例通过在与请求端蓝牙低能耗ble连接后,侦测是否接收到请求端发送的身份验证请求;当侦测到请求端发送的身份验证请求时,生成并返回第一随机数至请求端,以在接收到请求端生成的第二随机数和第一认证码时,根据第一随机数、第二随机数以及第一预设密钥生成第二认证码;其中,第一认证码是请求端根据第一随机数、第二随机数以及请求端中第二预设密钥生成的;对第一认证码和第二认证码进行比较;当比较结果为一致时,请求端的ble连接验证成功。即,设计了一套蓝牙低功耗连接的自主验证机制,能够基于例如tws耳机的验证端对对端连接设备进行安全验证,从而解决了现有方案容易被恶意设备连接,存在安全风险的问题。进一步地,验证端和请求端各自预设有密钥,例如,可以在验证端和请求端出厂前,由厂商协商形成统一的ble连接验证机制,并依据该验证机制对设备密钥和需要使用的预设字段进行提前设置,或者,可以在耳机端出厂前预置密钥和预设字段,当操作终端,如手机,安装有耳机控制所需的应用程序时,通过耳机或应用程序版本号匹配获取密钥和预设字段,通过两方对应生成的随机码与密钥结合生成认证码进行比较验证,由于密钥预先为ble连接的终端间预先共享的,无法在传输过程中被第三方获取,因此连接验证不容易被第三方破解,提高了连接验证的安全性。

进一步地,参见图3,基于上述第一实施例,提出本发明终端间的ble连接验证方法的第二实施例,在本实施例中,步骤s20中根据第一随机数、第二随机数以及第一预设密钥生成第二认证码包括:

步骤s21,将第一预设密钥与第一预设字段进行拼接,得到第一拼接字符串,并对第一随机数和第二随机数进行拼接,得到第二拼接字符串和第三拼接字符串;

步骤s22,将第一拼接字符串、第二拼接字符串以及第三拼接字符串对应作为算法密钥、第一输入参数和第二输入参数,输入至预设哈希消息认证码hmac运算器中进行运算,以输出第二认证码。

上述第一预设字段可以根据实际需要进行设置,可以是大于0的任意整数,例如可以是0x0110、0x0100,在与第一预设密钥进行拼接时,可以将第一预设密钥和第一预设字段的字符串按照预设顺序进行排列组合,组合后的字符串即第一拼接字符串。以第一预设字段为0x0100为例,若第一预设密钥占16字节,可以在16字节的数据字符串后添加0100,形成18个字节长度的字符串数据,即第一拼接字符串。同理,可以使用randa和randb生成第二拼接字符串以及第三拼接字符,但还需要提及的是,第二拼接字符串和第三拼接字符串一般情况下不一致,但其拼接所使用的参数一致,因此两者在拼接生成过程中实际拼接的顺序不相同。可以是第二拼接字符串由randb和randa顺序拼接而成,第三拼接字符串由randa和randb顺序拼接而成,当然还可以按照randa的字符顺序填充奇数位序号对应的字符串位置,randb的字符顺序填充偶数位序号对应的字符串位置,以此形成第二拼接字符串,第三字符串的生成过程则与第二字符串生成顺序相反。在得到第一、第二和第三拼接字符串后,可以对应将其作为算法密钥、第一输入参数和第二输入参数,输入至预设哈希消息认证码hmac运算器中进行运算,以输出第二认证码。

需要说明的是,上述预设hmac运算器是通过基于哈希的消息校验码算法定义的运算工具,已经设置好了运算过程,对应在本方案的请求端也有对应设置。此外,验证端和请求端中hmac运算器的数量均可以设置为2个,一个用于对请求端进行ble连接验证时的运算,一个用于对验证端进行ble连接验证时的运算。但两个hmac运算器采用的是不同的预设字段,用于区分,防止输出两个运算器的运算结果相同,但两个预设字段的长度是一致的。而请求端和验证端在交互对同一终端进行ble连接验证时采用的预设字段和密钥均是一致的,由此保证终端双方连接验证的一致性。

本方案给出了第二认证码的运算过程,借助字符串的拼接和基于哈希的消息校验码算法,提高了认证码的加密性,即便第三方设备窃取了认证码和随机数,但不具备密钥,也不清楚运算逻辑,因此提高了连接验证的安全性。

在其他实施例中,具体请求端根据第一随机数、第二随机数和请求端中预设的第二密钥生成第一认证码的过程是请求端将第二预设密钥与第一预设字段进行拼接,得到第四拼接字符串,并对第一随机数和第二随机数进行拼接,得到第五拼接字符串和第六拼接字符串;请求端将第四拼接字符串、第五拼接字符串以及第六拼接字符串对应作为算法密钥、第一输入参数和第二输入参数,输入至预设hmac运算器中进行运算,以输出第一认证码。该请求端输出第一认证码的过程与验证端输出第二认证码的过程一致,不过多赘述。通过第一认证码的生成,对请求端的ble连接验证提供了依据。

进一步地,基于上述第一或第二实施例,提出本发明终端间的ble连接验证方法第三实施例,参见图4,在本实施例中,方法还包括:

步骤s50,根据第一随机数、第二随机数以及第一预设密钥生成第一请求认证码;

步骤s60,将第一请求认证码发送给请求端,以供请求端在确定第一请求认证码和第二请求认证码一致时,验证端的ble连接验证成功;其中,第二请求认证码是请求端根据第一随机数、第二随机数以及请求端中第二预设密钥生成的。

上述生成第一请求认证码和向请求端发起对验证端的ble连接验证过程是在对请求端的ble连接验证成功后,由验证端在将第一认证码和第二认证码一致的比较结果反馈给请求端时,一起返回第一请求认证码至请求端,第一请求认证码的返回相当于身份验证请求,可以触发请求端开始对验证端的ble连接进行验证,通过在对请求端完成验证后再发起对验证端的ble连接验证,减少验证过程报错率。当然,也可以在对请求端的ble连接验证未结束前执行,只要请求端获取到了生成第一请求认证码所需的第一随机数和第二随机数即可。

可以理解的是,当验证端对请求端的ble连接验证成功,实际仅验证端单方面认可请求端为合法设备,在传输上可能因为请求端的限制,导致验证端无法接收/发送信息至请求端。即任何连接都是双向的,请求端也可以作为验证端,需要验证例如tws耳机是否合法设备,只有当ble连接的两端设备均认可对端设备为合法设备,ble连接后的信息传递才会通畅。

还需要说明的是,虽然第一请求认证码和第二认证码均是根据第一随机数、第二随机数和第一预设密钥生成,但实际两者数值不同,能够帮助区分是对哪一端终端的ble连接验证,其中第二认证码用于验证端对请求端发起的身份验证请求进行ble连接验证,第一请求认证码用于验证端向请求端发起身份验证请求,使请求端对验证端的ble连接进行验证。这两个码的生成方式可以一致,也可以不一致,只要请求端和验证端在对应生成第一请求认证码和第二请求认证码,以及第二认证码和第一认证码时所使用的方法对应一致。请求端可以参考前述验证端对第一请求认证码和第二认证码对应对第二请求认证码和第一认证码进行设置,在此不过多赘述。

参见图5,其中验证端生成第一请求认证码的过程,即步骤s50可以包括:

步骤s51,将第一预设密钥与第二预设字段进行拼接,得到第七拼接字符串,并根据第一随机数和第二随机数进行字符串拼接,得到第二拼接字符串和第三拼接字符串;

步骤s52,将第七拼接字符串、第二拼接字符串以及第三拼接字符串对应作为算法密钥、第一输入参数和第二输入参数,输入至预设hmac运算器中进行运算,以输出第一请求认证码。

上述第二预设字段与第一预设字段的字节长度一致,但实际字段内容不一致,用于区分对不同终端的ble连接验证,第二预设字段可以根据实际需要进行设置,可以是大于0的任意整数,例如可以是0x0110,在与第一预设密钥进行拼接时,可以将第一预设密钥和第二预设字段的字符串按照预设顺序进行排列组合,组合后的字符串即第七拼接字符串。以第一预设字段为0x0110为例,若第一预设密钥占16字节,可以在16字节的数据字符串后添加0110,形成18个字节长度的字符串数据,即第七拼接字符串。

在生成第一请求认证码时,还使用到了第二拼接字符串、第三拼接字符串,其拼接方式可以同第二实施例。或者,实际在生成第一请求认证码时,还可以生成第三随机数,通过第一随机数、第二随机数和第三随机数重新进行拼接,得到用于生成第一请求认证码的第二拼接字符串和第三拼接字符串,然后将第三随机数和生成的第一认证码一同反馈给请求端,用于求取第二请求认证码。

本方案给出了对验证端的ble连接验证过程,帮助实现ble连接双方终端设备的全连接验证,保证双方终端间的信号传输稳定。

在其他实施例中,具体请求端根据第一随机数、第二随机数以及请求端中第二预设密钥生成第二请求认证码的过程是请求端将第一预设密钥与第二预设字段进行拼接,得到第八拼接字符串;请求端将第八拼接字符串、第五拼接字符串以及第六拼接字符串对应作为算法密钥、第一输入参数和第二输入参数,输入至预设hmac运算器中进行运算,以输出第二请求认证码。其中,第五拼接字符串和第六拼接字符串的生成方法可以参考生成第一请求认证码时使用的第二拼接字符串和第三字符串进行设置。该请求端输出第二请求认证码的过程也与验证端输出第一请求认证码的过程一致,不过多赘述。通过第二请求认证码的生成,对验证端的ble连接验证提供了依据。

进一步地,基于上述第二实施例或第三实施例,提出本发明终端间的ble连接验证方法第四实施例,参见图6,在本实施例中,算法密钥、第一输入参数和第二输入参数输入至预设hmac运算器中进行运算的步骤,包括:

步骤s70,将算法密钥作为一次运算密钥,对第一输入参数进行一次hmac运算;

步骤s80,将一次hmac运算的运算结果作为二次运算密钥,对第二输入参数进行二次hmac运算,二次hmac运算的输出结果为hmac运算器的运算结果。

以公式表示上述运算过程即是:

mk=hmac(m,k1)

code=hmac(mk,k2)

其中mk为一次hmac运算得到的输出结果,也是二次运算密钥;m为一次运算密钥,或者算法密钥;k1为第一输入参数,k2为第二输入参数,code为二次hmac运算得到的输出结果。通过执行两次hmac运算,将一次hmac运算的结果作为二次hmac运算的输入运算密钥,相比单次hmac运算提高了加密性。

参照图7,图7为本发明终端间的ble连接验证方法应用于tws耳机的流程示意图。在应用于tws耳机时,该方法包括以下步骤:

步骤s101,在与请求端蓝牙低能耗ble连接后,将请求端对应的验证状态设为未知,并侦测是否接收到请求端发送的身份验证请求;

步骤s102,当侦测到请求端发送的身份验证请求时,生成并返回第一随机数和密钥使用标识至请求端,以在接收到请求端生成的第二随机数和第一认证码时,根据第一随机数、第二随机数以及密钥使用标识对应的第一预设密钥生成第二认证码;其中,第一认证码是请求端根据第一随机数、第二随机数以及请求端中密钥使用标识对应的第二预设密钥生成的;

步骤s103,当第一认证码和第二认证码的比较结果为一致时,请求端的ble连接验证成功,向请求端发起ble连接认证请求;

步骤s104,在接收到请求端根据连接认证请求反馈的连接验证成功信息以及累计验证时间时,获取本地记录的未知状态累计保持时间;

步骤s105,在未知状态累计保持时间与累计验证时间匹配时,终端间的ble连接验证成功。

需要说明的是,本实施例除了实现上述第一实施例至第四实施例的全部方案以外,还对于tws耳机的ble连接验证进行了进一步限定,当然本实施例所提出的进一步限定方案也能够被实现于验证端。

tws耳机在与其他终端ble连接时,可以同时与一个或多个终端连接,在确定与任一终端ble连接时,可以将该终端的验证状态设置为未知,此时可以拒绝与该终端进行数据传输,待终端和tws耳机双方的连接验证成功,再将其修改为表示已验证成功的验证状态,此时再将数据传输权限设置为允许,由此提升了未ble连接验证前tws耳机的安全性。

在此基础上,还可以将请求端的验证状态设为未知时的时刻作为起始点,持续对未知状态累计保持时间进行计数。具体应用时,当第一认证码和第二认证码的比较结果一致,可以由tws耳机向该终端发起连接认证请求,用于请求终端允许从tws耳机向终端传输数据,例如反馈收集的用户语音,在终端根据连接认证请求成功完成对tws耳机的验证时,会反馈连接验证成功信息至tws耳机,同时还可以反馈累计验证时间,该累计验证时间的计算从作为请求端的终端发起身份验证请求或从与tws耳机ble连接开始。在本方案中,实际累计验证时间的累计与未知状态累计保持时间一致或相差很小,例如两者差值小于预设值,在这种情况下两者匹配,可以认为终端间的ble连接验证成功,本方案在包括密钥、随机数进行算法验证的基础上,加入了时间同步决策,利于ble连接验证的安全性。

在与多个终端ble连接时,可以利用tws耳机中设置的多组第一预设密钥进行验证,其中每组第一预设密钥不同,每组第一预设密钥同一时间用于对唯一一个终端进行连接验证。例如tws耳机与两个终端ble连接,初始情况下,有五组第一预设密钥;在与终端1连接时,可以发送密钥使用标识“1”给作为请求端的终端1,使终端1和tws耳机均启用标识“1”对应的预设密钥;在与终端2连接时,由于标识“1”被占用,可以选择标识为“2”至“5”的任一密钥使用标识;在确定了选择的密钥使用标识后可以发给终端2,此时选择的密钥使用标识也被占用了,只有当被占用的密钥使用标识的发送对象与tws耳机两者完成双向验证(可以是双向验证失败、双向验证成功或单向验证成功),该密钥使用标识和对应的第一预设密钥才空闲,可以用于新的终端的ble连接。

还需要说明的是,每个密钥使用标识对应唯一的第一预设密钥和第二预设密钥,在出厂前或安装升级连接固件时可以设置在tws耳机和终端,由于使用了多组密钥,在传播途中也仅是使用密钥使用标识进行对应配置,第三方非法设备不知道标识对应的含义和实际顺序,较难获得密钥和连接验证规则,提高了tws耳机的使用安全性。再者,即便非法设备知道了其中一组预设密钥,多组密钥的设置也降低了非法设备的ble匹配连接的成功率。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有终端间的ble连接验证程序,终端间的ble连接验证程序被处理器执行时实现如以上任一项实施例的终端间的ble连接验证方法的步骤。

本发明计算机可读存储介质的具体实施例与上述终端间的ble连接验证方法各实施例基本相同,在此不作赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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