一种蓝牙设备及其工作方法转让专利

申请号 : CN201910994617.2

文献号 : CN110730441B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陆舟于华章

申请人 : 飞天诚信科技股份有限公司

摘要 :

本发明提供了一种蓝牙设备及其工作方法,通过设置设备MAC地址、广播设备类型实现不同的设备类型,当设备作为蓝牙键盘设备时,能够实现动态口令输入的功能,设备根据蓝牙键盘协议将获取的动态口令值转换成蓝牙键盘类虚拟按键信息,将所述虚拟按键信息依次自动地发送到上位机,设备会自动恢复设备类型,从而解决了键盘设备与上位机产生键盘冲突的问题,还降低了用户在上位机上输入动态口令的出错率,提高了身份认证的安全性。

权利要求 :

1.一种蓝牙设备的工作方法,其特征在于,所述方法包括:步骤S1、设备开启第一蓝牙服务并广播声明自身为蓝牙非键盘设备;

步骤S2、当设备检测到按键被按下时,关闭所述第一蓝牙服务,执行步骤S3;

步骤S3、设备将当前的MAC地址保存为第一MAC地址,获取第二MAC地址,将当前的MAC地址设置为所述第二MAC地址;

步骤S4、设备开启第二蓝牙服务并广播声明自身为蓝牙键盘设备,等待接收上位机发送建立连接指令,当接收到建立连接指令时进行连接,若连接成功,则获取动态口令应用的应用标识,根据应用标识选择动态口令应用;

步骤S5、设备通过动态口令应用获取动态口令值,根据蓝牙键盘协议将获取的动态口令值发送到上位机;

步骤S6、设备关闭第二蓝牙服务,获取保存的第一MAC地址,将设备的MAC地址设置为所述第一MAC地址,开启第一蓝牙服务并广播声明自身为蓝牙非键盘设备;

所述根据蓝牙键盘协议将获取的动态口令值发送到上位机,具体为:所述设备根据蓝牙键盘协议将获取的动态口令值转换成蓝牙键盘类虚拟按键信息,将所述虚拟按键信息依次自动地发送到上位机。

2.根据权利要求1所述的方法,其特征在于,所述蓝牙非键盘设备具体为认证设备;

所述步骤S2之前还包括:所述设备等待接收上位机发送建立连接指令,当接收到建立连接指令时进行连接,若连接成功则根据应用标识选择认证应用。

3.根据权利要求2所述的方法,其特征在于,所述根据应用标识选择认证应用具体为:所述设备获取默认设置中的应用标识,将应用标识发送给设备中的安全芯片,安全芯片根据应用标识选择认证应用;

或,所述设备接收上位机下发的选择应用指令,将选择应用指令发送给设备中的安全芯片,安全芯片根据选择应用指令获取应用标识,并根据应用标识选择认证应用。

4.根据权利要求2所述的方法,其特征在于,所述步骤S2还包括:所述设备接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理,并将处理结果返回给上位机。

5.根据权利要求4所述的方法,其特征在于,所述设备接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理具体为:设备判断接收到的上位机发送的数据类型;

当接收到的数据为注册请求数据则执行步骤101,当接收到的数据为认证请求数据则执行步骤103,当接收到的数据为其他数据则执行步骤106;

步骤101:设备解析注册请求数据获取第一数据和第二数据,生成第二密钥对;根据第二密钥对的私钥和第一数据组成待加密数据,使用保存的对称密钥对待加密数据进行加密得到密钥句柄;使用预置密钥对的私钥对保存的证书模板内容进行签名得到签名值,根据签名值和证书模板内容组成认证证书;根据第一数据、第二数据、密钥句柄和第二密钥对的公钥组成第一待签名数据,使用保存的第一密钥对的私钥对第一待签名数据进行签名得到第一签名结果;

步骤102:设备根据第二密钥对、密钥句柄、认证证书和第一签名结果组成注册请求数据的响应数据,返回上位机;

步骤103:设备解析认证请求数据获取第一参数、第二参数和密钥句柄,使用保存的对称密钥对密钥句柄进行解密得到第一解密数据和第二解密数据;

步骤104:设备获取当前的认证次数,根据第一参数、所述第二参数和所述认证次数组成第二待签名数据,使用所述第二解密数据对所述第二待签名数据进行签名得到第二签名结果;

步骤105:设备根据所述认证次数和所述第二签名结果组成认证请求数据的响应数据,返回上位机;

步骤106:设备执行其他相应操作,并向上位机返回其他相应响应数据。

6.根据权利要求5所述的方法,其特征在于,步骤104之前还包括:根据第一参数和第一解密数据判断当前用户是否合法,是则执行步骤104,否则根据预设错误字节码组成认证请求数据的响应数据,并返回上位机。

7.根据权利要求4或5所述的方法,其特征在于,所述通过安全芯片对接收到的数据进行处理之前还包括:所述设备判断接收到的数据是否为认证数据或者注册数据,若是认证数据或者注册数据,则设备将处理结果返回上位机后关机,否则返回步骤S2。

8.根据权利要求1所述的方法,其特征在于,所述获取动态口令应用的应用标识,根据应用标识选择动态口令应用具体为:所述设备接收上位机下发的选择应用指令,将选择应用指令发送给设备中的安全芯片,安全芯片根据选择应用指令获取应用标识,并根据应用标识选择动态口令应用。

9.根据权利要求1所述的方法,其特征在于,所述设备检测是否有按键被按下具体为:设备通过检测芯片IO端口是否有触发按键信号来判断设备是否有按键被按下。

10.根据权利要求1所述的方法,其特征在于,所述获取第二MAC地址具体为:所述设备获取当前的MAC地址,将当前MAC地址的最后一个字节加1,得到第二MAC地址。

11.一种蓝牙设备,其特征在于,所述设备包括:开启模块、声明模块、检测模块、关闭模块、设置模块、等待并接收模块、连接模块、获取模块、选择应用模块、发送模块;

所述开启模块,用于开启第一蓝牙服务并广播;

所述开启模块,还用于开启第二蓝牙服务并广播;

所述声明模块,用于声明所述蓝牙设备为蓝牙非键盘设备;

所述声明模块,还用于声明所述蓝牙设备为蓝牙键盘设备;

所述检测模块,用于检测设备按键是否被按下;

所述关闭模块,用于当所述检测模块检测到按键被按下时,关闭所述第一蓝牙服务;

所述关闭模块,还用于关闭第二蓝牙服务;

所述获取模块,用于获取第二MAC地址;

所述设置模块,用于将当前的MAC地址保存为第一MAC地址,将当前的MAC地址设置为所述第二MAC地址;

所述获取模块,还用于获取保存的第一MAC地址;

所述设置模块,还用于将设备的MAC地址设置为所述第一MAC地址,开启第一蓝牙服务并广播声明自身为蓝牙非键盘设备;所述等待并接收模块,用于等待并接收上位机发送建立连接指令;

所述连接模块,用于当所述等待并接收模块接收到建立连接指令时进行连接;

所述选择应用模块,用于当所述连接模块连接成功后,获取动态口令应用的应用标识,根据应用标识选择动态口令应用;

所述获取模块,还用于通过动态口令应用获取动态口令值;

所述发送模块,用于根据蓝牙键盘协议将所述获取模块获取的动态口令值发送到上位机;

所述发送模块包括转换单元和发送单元;

所述转换单元,用于根据蓝牙键盘协议将所述获取模块获取的动态口令值转换成蓝牙键盘类虚拟按键信息;

所述发送单元,用于将所述转换单元转换得到的虚拟按键信息依次自动地发送到上位机。

12.根据权利要求11所述的设备,其特征在于,所述蓝牙非键盘设备具体为认证设备;

所述声明模块声明所述蓝牙设备为蓝牙非键盘设之后还包括:所述等待并接收模块,具体用于等待并接收上位机发送建立连接指令;

所述连接模块,具体用于当所述等待并接收模块接收到建立连接指令时进行连接;

所述选择应用模块,还用于根据应用标识选择认证应用。

13.根据权利要求12所述的设备,其特征在于,所述选择应用模块,具体包括:第一获取单元、第一选择单元;第二获取单元、第二选择单元;

所述第一获取单元,用于获取默认设置中的应用标识,将应用标识发送给设备中的安全芯片;

所述第一选择单元,用于根据所述第一获取单元获取的应用标识选择认证应用;

所述第二获取单元,用于接收上位机下发的选择应用指令,将选择应用指令发送给设备中的安全芯片,安全芯片根据选择应用指令获取应用标识;

所述第二选择单元,用于根据所述第二获取单元获取的应用标识选择认证应用。

14.根据权利要求12所述的设备,其特征在于,所述等待并接收模块,还用于接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理,并将处理结果返回给上位机。

15.根据权利要求14所述的设备,其特征在于,所述等待并接收模块包括第一判断单元;

所述第一判断单元,用于判断接收到的上位机发送的数据类型;

当所述第一判断单元判断接收到的数据为注册请求数据时,所述等待并接收模块还包括:第一解析单元、加密单元、第一签名单元和第一组成单元;

所述第一解析单元,用于解析注册请求数据获取第一数据和第二数据,生成第二密钥对;

所述第一组成单元,用于根据第二密钥对的私钥和第一数据组成待加密数据;

所述加密单元,用于使用保存的对称密钥对所述第一组成单元组成的待加密数据进行加密得到密钥句柄;

所述第一签名单元,用于使用预置密钥对的私钥对保存的证书模板内容进行签名得到签名值;

所述第一组成单元,还用于根据签名值和证书模板内容组成认证证书;

所述第一组成单元,还用于根据第一数据、第二数据、密钥句柄和第二密钥对的公钥组成第一待签名数据;

所述第一签名单元,还用于使用保存的第一密钥对的私钥对第一待签名数据进行签名得到第一签名结果;

所述第一组成单元,还用于根据第二密钥对、密钥句柄、认证证书和第一签名结果组成注册请求数据的响应数据,返回上位机;

当所述第一判断单元判断接收到的数据为认证请求数据时,所述等待并接收模块还包括:第二解析单元、解密单元、第二签名单元和第二组成单元;

所述第二解析单元,用于解析认证请求数据获取第一参数、第二参数和密钥句柄;

所述解密单元,用于使用保存的对称密钥对密钥句柄进行解密得到第一解密数据和第二解密数据;

所述第二组成单元,用于获取当前的认证次数,根据第一参数、所述第二参数和所述认证次数组成第二待签名数据;

所述第二签名单元,用于使用所述第二解密数据对所述第二待签名数据进行签名得到第二签名结果;

所述第二组成单元,用于根据所述认证次数和所述第二签名结果组成认证请求数据的响应数据,返回上位机;

当所述第一判断单元判断接收到的数据为其他数据时,所述等待并接收模块还包括:执行单元;

所述执行单元,用于执行其他相应操作,并向上位机返回其他相应响应数据。

16.根据权利要求15所述的设备,其特征在于,当所述第一判断单元判断接收到的数据为认证请求数据时,所述等待并接收模块还包括:判断子单元;

所述判断子单元,用于根据第一参数和第一解密数据判断当前用户是否合法;

所述第二组成单元,还用于当所述判断子单元判断当前用户不合法时,根据预设错误字节码组成认证请求数据的响应数据,并返回上位机。

17.根据权利要求14或15所述的设备,其特征在于,所述等待并接收模块具体用于接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理之前,所述等待并接收模块还包括第二判断单元;

所述第二判断单元,用于判断接收到的数据是否为认证数据或者注册数据;

当所述第二判断单元判断接收到的数据为认证数据或者注册数据时,所述等待并接收模块还包括关闭单元;

所述关闭单元,用于将处理结果返回上位机后将设备关机。

18.根据权利要求11所述的设备,其特征在于,所述选择应用模块包括:第三获取单元和第三选择单元;

所述第三获取单元,用于接收上位机下发的选择应用指令,将选择应用指令发送给设备中的安全芯片,安全芯片根据选择应用指令获取应用标识;

所述第三选择单元,用于根据所述第三获取单元获取的应用标识选择动态口令应用。

19.根据权利要求11所述的设备,其特征在于,所述检测模块,具体用于通过检测芯片IO端口是否有触发按键信号来判断设备是否有按键被按下。

20.根据权利要求11所述的设备,其特征在于,当所述获取模块用于获取第二MAC地址时,所述获取模块具体用于:获取当前的MAC地址,将当前MAC地址的最后一个字节加1,得到第二MAC地址。

说明书 :

一种蓝牙设备及其工作方法

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种蓝牙设备及其工作方法。

背景技术

[0002] 随着互联网科技的发展,信息安全的重要性也与日俱增,因此,身份认证作为信息安全防护的第一关,承担着至关重要的作用。基于现有的身份认证技术,用于身份认证的设
备除了智能密钥设备等还包括动态口令设备,为了确保只有合法用户才能够访问应用系统
并使用服务。动态口令认证俨然成为身份认证技术中的主流方式,被广泛应用于企业、网
游、金融等领域,现有的智能密钥设备和动态口令设备是两个独立的设备,设备的集成性
差,降低了资源的利用率和用户的使用体验。现有技术中,当设备作为动态口令设备与上位
机建立连接时,上位机检测到设备为蓝牙键盘设备时,则会隐藏自身系统的虚拟键盘,因此
设备与上位机键盘产生冲突,导致用户无法将设备生成的动态口令输入到上位机上,另外,
现有的动态口令通过动态口令设备生成后,均需要用户将生成的动态口令手动输入到主机
或终端设备中进行认证操作,然而,手动输入的这种方式会存在一些问题,例如,手动误输
入、手动输入速度慢等导致动态口令认证不成功。

发明内容

[0003] 本发明实施例提供了一种蓝牙设备及其工作方法。该方法包括:
[0004] 步骤S1、设备开启第一蓝牙服务并广播声明自身为蓝牙非键盘设备;
[0005] 步骤S2、当设备检测到按键被按下时,关闭第一蓝牙服务,执行步骤S3;
[0006] 步骤S3、设备将当前的MAC地址保存为第一MAC地址,获取第二MAC地址,将当前的MAC地址设置为第二MAC地址;
[0007] 步骤S4、设备开启第二蓝牙服务并广播声明自身为蓝牙键盘设备,等待接收上位机发送建立连接指令,当接收到建立连接指令时进行连接,若连接成功,则获取动态口令应
用的应用标识,根据应用标识选择动态口令应用;
[0008] 步骤S5、设备通过动态口令应用获取动态口令值,根据蓝牙键盘协议将获取的动态口令值发送到上位机;
[0009] 步骤S6、设备关闭第二蓝牙服务,获取保存的第一MAC地址,将设备的MAC地址设置为所述第一MAC地址,开启第一蓝牙服务并广播声明自身为蓝牙非键盘设备。
[0010] 其中,蓝牙非键盘设备具体为认证设备;步骤S2之前还包括:设备等待接收上位机发送建立连接指令,当接收到建立连接指令时进行连接,若连接成功则根据应用标识选择
认证应用。
[0011] 其中,设备根据认证应用标识选择认证应用具体为:设备获取默认设置中的应用标识,将应用标识发送给设备中的安全芯片,安全芯片根据应用标识选择认证应用;
[0012] 或,设备接收上位机下发的选择应用指令,将选择应用指令发送给设备中的安全芯片,安全芯片根据选择应用指令获取认证应用标识,并根据认证应用标识选择认证应用。
[0013] 一方面,步骤S2还包括:设备接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理,并将处理结果返回给上位机。
[0014] 其中,设备接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理具体为:设备判断接收到的上位机发送的数据类型;
[0015] 当接收到的数据为注册请求数据则执行步骤101,当接收到的数据为认证请求数据则执行步骤103,当接收到的数据为其他数据则执行步骤106;
[0016] 步骤101:设备解析注册请求数据获取第一数据和第二数据,生成第二密钥对;根据第二密钥对的私钥和第一数据组成待加密数据,使用保存的对称密钥对待加密数据进行
加密得到密钥句柄;使用预置密钥对的私钥对保存的证书模板内容进行签名得到签名值,
根据签名值和证书模板内容组成认证证书;根据第一数据、第二数据、密钥句柄和第二密钥
对的公钥组成第一待签名数据,使用保存的第一密钥对的私钥对第一待签名数据进行签名
得到第一签名结果;
[0017] 步骤102:设备根据第二密钥对、密钥句柄、认证证书和第一签名结果组成注册请求数据的响应数据,返回上位机;
[0018] 步骤103:设备解析认证请求数据获取第一参数、第二参数和密钥句柄,使用保存的对称密钥对密钥句柄进行解密得到第一解密数据和第二解密数据;
[0019] 步骤104:设备获取当前的认证次数,根据第一参数、第二参数和认证次数组成第二待签名数据,使用第二解密数据对第二待签名数据进行签名得到第二签名结果;
[0020] 步骤105:设备根据认证次数和第二签名结果组成认证请求数据的响应数据,返回上位机;
[0021] 步骤106:设备执行其他相应操作,并向上位机返回其他相应响应数据。
[0022] 可选地,步骤104之前还包括:根据第一参数和第一解密数据判断当前用户是否合法,是则执行步骤104,否则根据预设错误字节码组成认证请求数据的响应数据,并返回上
位机。
[0023] 可选地,设备通过安全芯片对接收到的数据进行处理之前还包括:设备判断接收到的数据是否为认证数据或者注册数据,若是认证数据或者注册数据,则设备将处理结果
返回上位机后关机,否则返回步骤S2。
[0024] 可选地,设备根据蓝牙键盘协议将获取的动态口令值发送到上位机,具体为:设备根据蓝牙键盘协议将获取的动态口令值转换成蓝牙键盘类虚拟按键信息,将虚拟按键信息
依次自动地发送到上位机。
[0025] 可选地,设备获取动态口令应用的应用标识,根据应用标识选择动态口令应用具体为:设备接收上位机下发的选择应用指令,将选择应用指令发送给设备中的安全芯片,安
全芯片根据选择应用指令获取应用标识,并根据应用标识选择动态口令应用。
[0026] 可选地,设备检测是否有按键被按下具体为:设备通过检测芯片IO端口是否有触发按键信号来判断设备是否有按键被按下。
[0027] 可选地,设备获取第二MAC地址具体为:设备获取当前的MAC地址,将当前MAC地址的最后一个字节加1,得到第二MAC地址。
[0028] 本发明实施例提供了一种蓝牙设备,该设备包括:开启模块、声明模块、检测模块、关闭模块、设置模块、等待并接收模块、连接模块、获取模块、选择应用模块、发送模块;
[0029] 其中,开启模块,用于开启第一蓝牙服务并广播;
[0030] 开启模块,还用于开启第二蓝牙服务并广播;
[0031] 声明模块,用于声明所述蓝牙设备为蓝牙非键盘设备;
[0032] 声明模块,还用于声明所述蓝牙设备为蓝牙键盘设备;
[0033] 检测模块,用于检测设备按键是否被按下;
[0034] 关闭模块,用于当所述检测模块检测到按键被按下时,关闭第一蓝牙服务;
[0035] 关闭模块,还用于关闭第二蓝牙服务;
[0036] 获取模块,用于获取第二MAC地址;
[0037] 设置模块,用于将当前的MAC地址保存为第一MAC地址,将当前的MAC地址设置为所述第二MAC地址;
[0038] 获取模块,还用于获取保存的第一MAC地址;
[0039] 设置模块,还用于将设备的MAC地址设置为第一MAC地址,开启第一蓝牙服务并广播声明自身为蓝牙非键盘设备。
[0040] 等待并接收模块,用于等待并接收上位机发送建立连接指令;
[0041] 连接模块,用于当等待并接收模块接收到建立连接指令时进行连接;
[0042] 选择应用模块,用于当连接模块连接成功后,获取动态口令应用的应用标识,根据应用标识选择动态口令应用;
[0043] 获取模块,还用于通过动态口令应用获取动态口令值;
[0044] 发送模块,用于根据蓝牙键盘协议将获取模块获取的动态口令值发送到上位机。
[0045] 其中,蓝牙非键盘设备具体为认证设备;
[0046] 声明模块声明蓝牙设备为蓝牙非键盘设之后还包括:
[0047] 等待并接收模块,具体用于等待并接收上位机发送建立连接指令;
[0048] 连接模块,具体用于当等待并接收模块接收到建立连接指令时进行连接;
[0049] 选择应用模块,还用于根据应用标识选择认证应用。
[0050] 可选地,选择应用模块,具体包括:第一获取单元、第一选择单元;第二获取单元、第二选择单元;
[0051] 其中,第一获取单元,用于获取默认设置中的应用标识,将应用标识发送给设备中的安全芯片;
[0052] 第一选择单元,用于根据第一获取单元获取的应用标识选择认证应用;
[0053] 第二获取单元,用于接收上位机下发的选择应用指令,将选择应用指令发送给设备中的安全芯片,安全芯片根据选择应用指令获取认证应用标识;
[0054] 第二选择单元,用于根据第二获取单元获取的认证应用标识选择认证应用。
[0055] 可选地,等待并接收模块,还用于接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理,并将处理结果返回给上位机。
[0056] 可选地,等待并接收模块包括第一判断单元;
[0057] 第一判断单元,用于判断接收到的上位机发送的数据类型;
[0058] 当第一判断单元判断接收到的数据为注册请求数据时,等待并接收模块还包括:第一解析单元、加密单元、第一签名单元和第一组成单元;
[0059] 其中,第一解析单元,用于解析注册请求数据获取第一数据和第二数据,生成第二密钥对;
[0060] 第一组成单元,用于根据第二密钥对的私钥和第一数据组成待加密数据;
[0061] 加密单元,用于使用保存的对称密钥对第一组成单元组成的待加密数据进行加密得到密钥句柄;
[0062] 第一签名单元,用于使用预置密钥对的私钥对保存的证书模板内容进行签名得到签名值;
[0063] 第一组成单元,还用于根据签名值和证书模板内容组成认证证书;
[0064] 第一组成单元,还用于根据第一数据、第二数据、密钥句柄和第二密钥对的公钥组成第一待签名数据;
[0065] 第一签名单元,还用于使用保存的第一密钥对的私钥对第一待签名数据进行签名得到第一签名结果;
[0066] 第一组成单元,还用于根据第二密钥对、密钥句柄、认证证书和第一签名结果组成注册请求数据的响应数据,返回上位机;
[0067] 当第一判断单元判断接收到的数据为认证请求数据时,等待并接收模块还包括:第二解析单元、解密单元、第二签名单元和第二组成单元;
[0068] 第二解析单元,用于解析认证请求数据获取第一参数、第二参数和密钥句柄;
[0069] 解密单元,用于使用保存的对称密钥对密钥句柄进行解密得到第一解密数据和第二解密数据;
[0070] 第二组成单元,用于获取当前的认证次数,根据第一参数、第二参数和认证次数组成第二待签名数据;
[0071] 第二签名单元,用于使用第二解密数据对第二待签名数据进行签名得到第二签名结果;
[0072] 第二组成单元,用于根据认证次数和第二签名结果组成认证请求数据的响应数据,返回上位机;
[0073] 当第一判断单元判断接收到的数据为其他数据时,等待并接收模块还包括:执行单元;
[0074] 执行单元,用于执行其他相应操作,并向上位机返回其他相应响应数据。
[0075] 可选地,当第一判断单元判断接收到的数据为认证请求数据时,等待并接收模块还包括:判断子单元;
[0076] 判断子单元,用于根据第一参数和第一解密数据判断当前用户是否合法;
[0077] 第二组成单元,还用于当判断子单元判断当前用户不合法时,根据预设错误字节码组成认证请求数据的响应数据,并返回上位机。
[0078] 可选地,等待并接收模块具体用于接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理之前,等待并接收模块还包括第二判断单元;
[0079] 第二判断单元,用于判断接收到的数据是否为认证数据或者注册数据;
[0080] 当第二判断单元判断接收到的数据为认证数据或者注册数据时,等待并接收模块还包括关闭单元;
[0081] 关闭单元,用于将处理结果返回上位机后将设备关机。
[0082] 可选地,发送模块包括转换单元和发送单元;
[0083] 转换单元,用于根据蓝牙键盘协议将获取模块获取的动态口令值转换成蓝牙键盘类虚拟按键信息;
[0084] 发送单元,用于将转换单元转换得到的虚拟按键信息依次自动地发送到上位机。
[0085] 可选地,选择应用模块包括:第三获取单元和第三选择单元;
[0086] 第三获取单元,用于接收上位机下发的选择应用指令,将选择应用指令发送给设备中的安全芯片,安全芯片根据选择应用指令获取应用标识;
[0087] 第三选择单元,用于根据第三获取单元获取的应用标识选择动态口令应用。
[0088] 可选地,检测模块,具体用于通过检测芯片IO端口是否有触发按键信号来判断设备是否有按键被按下。
[0089] 可选地,当获取模块用于获取第二MAC地址时,获取模块具体用于:获取当前的MAC地址,将当前MAC地址的最后一个字节加1,得到第二MAC地址。
[0090] 本发明提供的一种蓝牙设备,可通过设置设备MAC地址、广播设备类型实现不同的设备类型,当设备作为蓝牙键盘设备时,能够实现动态口令输入的功能,设备根据蓝牙键盘
协议将获取的动态口令值转换成蓝牙键盘类虚拟按键信息,将所述虚拟按键信息依次自动
地发送到上位机,设备会自动恢复设备类型,从而解决了键盘设备与上位机产生键盘冲突
的问题,还降低了用户在上位机上输入动态口令的出错率,提高了身份认证的安全性。

附图说明

[0091] 图1是本发明实施例1提供的一种蓝牙设备的工作方法流程图;
[0092] 图2是本发明实施例2提供的一种蓝牙设备的工作方法流程图;
[0093] 图3是本发明实施例2提供的一种蓝牙设备对接收到的数据进行处理的方法流程图;
[0094] 图4是本发明实施例3提供的一种蓝牙设备的示意图。

具体实施方式

[0095] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本
发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有
做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0096] 实施例1
[0097] 本实施例中提及的蓝牙设备至少能够实现两种应用功能,每一种应用具有匹配的蓝牙服务,多种应用可以共用一个蓝牙服务,也可以是一种应用对应一个蓝牙服务。本实施
例中所提出的应用包括第一应用和动态口令应用,第一应用所对应的蓝牙服务为第一蓝牙
服务,动态口令应用所对应的蓝牙服务为第二蓝牙服务。
[0098] 本发明实施例一提供了一种蓝牙设备的工作方法,如图1所示,本实施例的方法包括:
[0099] 步骤A1、设备上电,进行初始化;
[0100] 在本实施例中,设备上电后,还可以对设备外设、时钟服务进行初始化。
[0101] 步骤A2、设备开启第一蓝牙服务并广播声明自身为蓝牙非键盘设备;
[0102] 步骤A3、当设备检测到按键被按下时,关闭第一蓝牙服务,执行步骤A4;
[0103] 本实施例中,设备通过检测芯片IO端口是否有触发按键信号来判断设备是否有按键被按下。
[0104] 步骤A4、设备将当前的MAC地址保存为第一MAC地址,获取第二MAC地址,将当前的MAC地址设置为第二MAC地址;
[0105] 具体地,设备读取寄存器中存储的MAC地址作为第一MAC地址;
[0106] 可选地,设备获取第二MAC地址具体为:设备将第一MAC地址修改为第二MAC地址;
[0107] 优选的,设备将第一MAC地址修改为第二MAC地址,具体为:设备将读取到的当前MAC地址的最后一个字节加1,加1得到的MAC地址作为第二MAC地址;
[0108] 例如,第一MAC地址为:ef:07:52:6a:5f:2c;
[0109] 第二MAC地址为:ef:07:52:6a:5f:2d。
[0110] 步骤A5、设备开启第二蓝牙服务并广播声明自身为蓝牙键盘设备,等待接收上位机发送建立连接指令,当接收到建立连接指令时进行连接,若连接成功,则获取动态口令应
用的应用标识,根据应用标识选择动态口令应用;
[0111] 在本实施例中,设备具体通过寄存器读取存储的动态口令应用的应用标识,例如,动态口令的应用标识为:2;
[0112] 可选地,设备根据应用标识选择动态口令应用具体为:设备将选择应用指令发送给设备中的安全芯片,安全芯片根据指令中的应用标识选择对应的应用。
[0113] 步骤A6、设备通过动态口令应用获取动态口令值,根据蓝牙键盘协议将获取的动态口令值发送到上位机;
[0114] 在本实施例中,根据蓝牙键盘协议将获取的动态口令值发送到上位机,具体为:设备根据蓝牙键盘协议将获取的动态口令值转换成蓝牙键盘类虚拟按键信息,将虚拟按键信
息依次自动地发送到上位机。
[0115] 步骤A7、设备关闭第二蓝牙服务,获取保存的第一MAC地址,将设备的MAC地址设置为第一MAC地址,开启第一蓝牙服务并广播声明自身为蓝牙非键盘设备。
[0116] 在本实施例中,设备具体通过寄存器读取存储的第一MAC地址;
[0117] 例如,保存的第一MAC地址为:ef:07:52:6a:5f:2c;
[0118] 当前的MAC地址为:ef:07:52:6a:5f:2d。
[0119] 在本实施例中,设备声明自身为蓝牙非键盘设备之后还包括:设备等待接收上位机发送建立连接指令,当接收到建立连接指令时进行连接,若连接成功则根据应用标识选
择应用,若连接超时则关闭;
[0120] 可选地,根据应用标识选择应用的方式包括:设备根据默认设置选择应用,或者设备根据接收到的终端下发的选择应用指令进行选择应用;
[0121] 具体地,默认设置中包括应用标识。
[0122] 在本实施例中,设备选择应用具体为:设备将选择应用指令发送给设备中的安全芯片,安全芯片根据指令中的应用标识选择对应的应用;
[0123] 在本实施例中,当设备作为蓝牙非键盘设备与上位机连接成功,并选择应用后,还包括:设备接收上位机发送的数据,通过安全芯片对接收到的数据进行处理,并将处理结果
返回给上位机;
[0124] 具体地,设备接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理具体为:设备判断接收到的上位机发送的数据类型;
[0125] 当接收到的数据为注册请求数据则执行步骤a1,当接收到的数据为认证请求数据则执行步骤a3,当接收到的数据为其他数据则执行步骤a6;
[0126] 步骤a1:设备解析注册请求数据获取第一数据和第二数据,生成第二密钥对;根据第二密钥对的私钥和第一数据组成待加密数据,使用保存的对称密钥对待加密数据进行加
密得到密钥句柄;使用预置密钥对的私钥对保存的证书模板内容进行签名得到签名值,根
据签名值和证书模板内容组成认证证书;根据第一数据、第二数据、密钥句柄和第二密钥对
的公钥组成第一待签名数据,使用保存的第一密钥对的私钥对第一待签名数据进行签名得
到第一签名结果;
[0127] 步骤a2:设备根据第二密钥对、密钥句柄、认证证书和第一签名结果组成注册请求数据的响应数据,返回上位机;
[0128] 步骤a3:设备解析认证请求数据获取第一参数、第二参数和密钥句柄,使用保存的对称密钥对密钥句柄进行解密得到第一解密数据和第二解密数据;
[0129] 步骤a4:设备获取当前的认证次数,根据第一参数、所述第二参数和所述认证次数组成第二待签名数据,使用所述第二解密数据对所述第二待签名数据进行签名得到第二签
名结果;
[0130] 步骤a5:设备根据所述认证次数和所述第二签名结果组成认证请求数据的响应数据,返回上位机;
[0131] 步骤a6:设备执行其他相应操作,并向上位机返回其他相应响应数据。
[0132] 可选地,步骤a4之前还包括:根据第一参数和第一解密数据判断当前用户是否合法,是则执行步骤a4,否则根据预设错误字节码组成认证请求数据的响应数据,并返回上位
机;
[0133] 可选地,设备通过安全芯片对接收到的数据进行处理之前还包括:设备判断接收到的数据是否为认证数据或者注册数据,若是认证数据或者注册数据,则设备将处理结果
返回上位机后关机。
[0134] 实施例2
[0135] 本实施例中提及的蓝牙设备至少能够实现两种应用功能,每一种应用具有匹配的蓝牙服务,多种应用可以共用一个蓝牙服务,也可以是一种应用对应一个蓝牙服务。本实施
例中所提出的应用包括认证应用和动态口令应用,认证应用所对应的蓝牙服务为第一蓝牙
服务,动态口令应用所对应的蓝牙服务为第二蓝牙服务。
[0136] 本发明实施例提供了一种蓝牙设备的工作方法,如图2所示,本实施例的方法包括:
[0137] 步骤B1、设备上电,进行初始化;
[0138] 在本实施例中,设备上电后,还可以对设备外设、时钟服务进行初始化。
[0139] 步骤B2、设备开启第一蓝牙服务并广播声明自身为认证设备,等待接收上位机发送建立连接指令,当接收到建立连接指令时进行连接,若连接成功,则获取认证应用的应用
标识,根据应用标识选择认证应用;
[0140] 在本实施例中,选择认证应用的方式包括:设备根据默认设置选择应用,或者设备根据接收到的终端下发的选择应用指令进行选择应用;
[0141] 具体地,默认设置中包括应用标识。
[0142] 在本实施例中,设备选择认证应用具体为:设备将选择应用指令发送给设备中的安全芯片,安全芯片根据指令中的应用标识选择对应的应用;
[0143] 例如,设备广播声明自身为认证设备具体为:/**
[0144] 建立连接指令为:0x1b 0x06 0x35 0x01 0x34 0x11 0x06 0x0a 0x01 0x26 0x2f 0x00 0x00 0x97 0x00 0x00 0x00 0xd6 0xbe 0x89 0x8e 0x85 0x22 0xa1 0x06 0x15 
0xd0 0x9e 0x78 0xad 0x99 0xa4 0xbc 0x55 0xc0 0xe0 0x5c 0x65 0x50 0x28 0xb0 
0xf0 0x03 0x19 0x00 0x27 0x00 0x00 0x00 0xbc 0x02 0xff 0xff 0xff 0xff 0x1f 
0xa8 0xf2 0x61 0xda。
[0145] 例如,认证应用具体为FIDO,认证应用的应用标识为:0;
[0146] 步骤B3、设备判断是否有按键按下,若是则关闭第一蓝牙服务,执行步骤B4;若否则判断是否接收到数据,若是则执行步骤B9,若否则关机;
[0147] 本实施例中,设备通过检测芯片IO端口是否有触发按键信号来判断设备是否有按键被按下。
[0148] 步骤B4、设备判断蓝牙是否已连接,若是则断开蓝牙连接并关闭广播,若否则直接关闭广播,执行步骤B5;
[0149] 步骤B5、设备将当前的MAC地址保存为第一MAC地址,获取第二MAC地址,将当前的MAC地址设置为第二MAC地址;
[0150] 具体地,设备读取寄存器中存储的MAC地址作为第一MAC地址;
[0151] 可选地,设备获取第二MAC地址具体为:设备将第一MAC地址修改为第二MAC地址;
[0152] 优选的,设备将第一MAC地址修改为第二MAC地址,具体为:设备将读取到的当前MAC地址的最后一个字节加1,加1得到的MAC地址作为第二MAC地址;
[0153] 例如,当前认证应用的MAC地址为:0xa1 0x06 0x15 0xd0 0x9e 0x78;
[0154] 第二MAC地址为:0xa1 0x06 0x15 0xd0 0x9e 0x79。
[0155] 步骤B6、设备开启第二蓝牙服务并广播声明自身为动态口令设备,等待接收上位机发送建立连接指令,当接收到建立连接指令时进行连接,若连接成功,则获取动态口令应
用的应用标识,根据应用标识选择动态口令应用;
[0156] 在本实施例中,设备具体通过寄存器读取存储的动态口令应用的应用标识,例如,动态口令的应用标识为:2;
[0157] 可选地,设备根据应用标识选择动态口令应用具体为:设备将选择应用指令发送给设备中的安全芯片,安全芯片根据指令中的应用标识选择对应的应用;
[0158] 具体地,设备广播声明自身为动态口令设备具体为:/**
[0159] 建立连接指令为:0x1b 0x06 0x35 0x01 0x34 0x11 0x06 0x0a 0x01 0x26 0x2f 0x00 0x00 0x97 0x00 0x00 0x00 0xd6 0xbe 0x89 0x8e 0x85 0x22 0xa1 0x06 0x15 
0xd0 0x9e 0x78 0xad 0x99 0xa4 0xbc 0x55 0xc0 0xe0 0x5c 0x65 0x50 0x28 0xb0 
0xf0 0x03 0x19 0x00 0x27 0x00 0x00 0x00 0xbc 0x02 0xff 0xff 0xff 0xff 0x1f 
0xa8 0xf2 0x61 0xda。
[0160] 步骤B7、设备通过动态口令应用获取动态口令值,根据蓝牙键盘协议将获取的动态口令值发送到上位机;
[0161] 在本实施例中,根据蓝牙键盘协议将获取的动态口令值发送到上位机,具体为:设备根据蓝牙键盘协议将获取的动态口令值转换成蓝牙键盘类虚拟按键信息,将虚拟按键信
息依次自动地连续发送到上位机;
[0162] 具体地,设备获取的动态口令值的值为:12345;
[0163] 设备发送的虚拟按键信息具体为:当按键为1时,设备发送的信息为:0d 03 38 e2 01 60 0a 15 aa 5a 7b 65 50 16 13 0b 00 04 00 1b 16 00 00 00 1e 00 00 00 00 00 
89 64 3f d4 64 ec d6,将按键1抬起时发送的信息为:0d 03 38 e2 01 60 0a 15 aa 5a 
7b 65 50 1a 13 0b 00 04 00 1b 16 00 00 00 00 00 00 00 00 00 9b 4e 39 6f 1c 34 
14;当按键为2时,设备发送的信息为:0d 03 38 e2 01 60 0a 15 aa 5a 7b 65 50 16 13 
0b 00 04 00 1b 16 00 00 00 1f 00 00 00 00 00 a2 7e 84 60d8 76 ba,将按键2抬起
时发送的信息为:0d 03 38 e2 01 60 0a 15 aa 5a 7b 65 50 1a 13 0b 00 04 00 1b 16 
00 00 00 00 00 00 00 00 00 bf 76 17 a2 ee 88f4;当按键为3时,设备发送的信息为:
0d 03 38 e2 01 60 0a 15 aa 5a 7b 65 50 16 13 0b 00 04 00 1b 16 00 00 00 20 00 
00 00 00 00 18 4b 9f a8 fa 17 0a,将按键2抬起时发送的信息为:0d 03 1e e3 01 60 
08 15 aa 5a 7b 65 50 1a 13 0b 00 04 00 1b 16 00 00 00 00 00 00 00 00 00 7d 23 
8b 74 bd 8a ab;当按键为4时,设备发送的信息为:0d 03 1e e3 01 60 08 15 aa 5a 7b 
65 50 16 13 0b 00 04 00 1b 16 00 00 00 21 00 00 00 00 00 56 99 15 c0 20 61 
01,将按键4抬起时发送的信息为:0d 03 1e e3 01 60 08 15 aa 5a 7b 65 50 1a 13 0b 
00 04 00 1b 16 00 00 00 00 00 00 00 00 00 47 fd a6 34 89 8a 50;当按键为5时,设
备发送的信息为:0d 03 1e e3 01 60 08 15aa 5a 7b 65 50 16 13 0b 00 04 00 1b 16 
00 00 00 22 00 00 00 00 00 92 7d 22 7b 7c 88 2c,将按键5抬起时发送的信息为:0d 
03 1e e3 01 60 08 15 aa 5a 7b 65 50 1a 13 0b 00 04 00 1b 16 00 00 00 00 00 00 
00 00 00 3f 73 d2 f0 50 cf a6。
[0164] 步骤B8、设备关闭第二蓝牙服务,获取保存的第一MAC地址,将设备的MAC地址设置为第一MAC地址,开启第一蓝牙服务并广播声明自身为认证设备。在本实施例中,设备具体
通过寄存器读取存储的第一MAC地址;
[0165] 例如,保存的第一MAC地址为:0xa1 0x06 0x15 0xd0 0x9e 0x78;
[0166] 当前的MAC地址为:0xa1 0x06 0x15 0xd0 0x9e 0x79。
[0167] 步骤B9、设备接收上位机发送的数据,通过安全芯片对接收到的数据进行处理,并将处理结果返回给上位机。
[0168] 具体地,设备接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理具体为:如图3所示,设备判断接收到的上位机发送的数据类型;
[0169] 当接收到的数据为注册请求数据则执行步骤a1,当接收到的数据为认证请求数据则执行步骤a3,当接收到的数据为其他数据则执行步骤a6;
[0170] 步骤a1:设备解析注册请求数据获取第一数据和第二数据,生成第二密钥对;根据第二密钥对的私钥和第一数据组成待加密数据,使用保存的对称密钥对待加密数据进行加
密得到密钥句柄;使用预置密钥对的私钥对保存的证书模板内容进行签名得到签名值,根
据签名值和证书模板内容组成认证证书;根据第一数据、第二数据、密钥句柄和第二密钥对
的公钥组成第一待签名数据,使用保存的第一密钥对的私钥对第一待签名数据进行签名得
到第一签名结果;
[0171] 具体地,所述注册请求数据由64个字节的数据组成,本步骤具体为,解析所述注册请求数据,获取前32个字节的数据作为第一数据,获取后32个字节的数据作为第二数据;
[0172] 例如,注册数据为:01a4015820687134968222ec17202e42505f8ed2b16ae22f16bb05b88c25db9e602645f14102a26269646773657276657231646e616d65677365727665723103
a362696458202b6689bb18f4169f069fbcdf50cb6ea3c60a861b9a7b63946983e0b577b78c70
646e616d6571746573746374617040637461702e636f6d6b646973706c61794e616d65695465
737420437461700483a263616c672664747970656a7075626c69632d6b6579a263616c673901
0064747970656a7075626c69632d6b6579a263616c67382464747970656a7075626c69632d6b
6579;
[0173] 认证数据为:02a4016773657276657231025820687134968222ec17202e42505f8ed2b16ae22f16bb05b88c25db9e602645f1410385a262696458320101010101010101010101010
1010101010101010101010101010101010101010101010101010101010101010101010101016
4747970656a7075626c69632d6b6579a26269645832020202020202020202020202020202020
2020202020202020202020202020202020202020202020202020202020202020202647479706
56a7075626c69632d6b6579a26269645870286ca7f4cc4480c6fdf7e15d076db62054c8f96df
7bd604224ca04961d92d2db15cbee20d02d1191b182d53d51534df4042650797dbd9386c8534
05827c2ab469f563380c4293fa1e80c6cf424afcbbc65e757879ebfec78f59777e5ba6541f3c
b6212fb74aab630f17a512ecdcac66564747970656a7075626c69632d6b6579a262696458320
4040404040404040404040404040404040404040404040404040404040404040404040404040
4040404040404040404040464747970656a7075626c69632d6b6579a26269645832050505050
5050505050505050505050505050505050505050505050505050505050505050505050505050
50505050505050564747970656a7075626c69632d6b657905a1627570f5。
[0174] 步骤a2:设备根据第二密钥对、密钥句柄、认证证书和第一签名结果组成注册请求数据的响应数据,返回上位机;
[0175] 具体地,注册请求数据的响应数据为:00a301667061636b65640258f47f409b1b3211c37499c9619f42ae0d2abdee652ebdc1af0502d6b539a67043064100000001b82ed73c8fb4
e5a2402289c7060660010070286ca7f4cc4480c6fdf7e15d076db62054c8f96df7bd604224ca
04961d92d2db15cbee20d02d1191b182d53d51534df4042650797dbd9386c853405827c2ab46
9f563380c4293fa1e80c6cf424afcbbc65e757879ebfec78f59777e5ba6541f3cb6212fb74aa
b630f17a512ecdcac665a501020326200121582086010b1aee7166408a681ceb39c0b7ee9040
ea678f5ac096ee0dac3dd5d5a55b225820c93d6dc90e1584a8d2eba08955f9544f873f6637f1
603e33d5fb47c7dee67e2703a363616c6726637369675846304402201cf814728a06587b589c
f6c672fc161651065f361b0ed67647fe0feb7172158f02201105824cf62ffe4bf40f5f2ac054
420e6bad5bf5f6da579e560ae5e2e2dbf72c63783563825901623082015e30820104a0030201
02020900d79549bd1a671744300a06082a8648ce3d04030230173115301306035504030c0c46
54204649444f20303230303020170d3137303232303030303030305a180f3230353030353031
3030303030305a30183116301406035504030c0d4654204649444f3220546573743059301306
072a8648ce3d020106082a8648ce3d03010703420004df1bd845b086b939677eb01e75d64613
2be7c356b8a018cc10bcfeebb074401f9d58859f9ee76babf9e9e5e1c815e1a2e4dcba0ea8f5
4f144e1d327cb95c2b4aa3363034301d0603551d0e041604142393d61a27e84fef9bbd76db09
9e1c728cf0ba633013060b2b0601040182e51c020101040403020520300a06082a8648ce3d04
030203480030450221009453c09a35ebe8a1db27ce01253615adc9a0feeb56ab6ab6ea5934a1
cf17362102202d109c4c295eb448315a30dbedd0301836e2755adad49e274541957b918b8515
5901823082017e30820125a003020102020101300a06082a8648ce3d04030230173115301306
035504030c0c4654204649444f20303230303020170d3136303530313030303030305a180f32
303530303530313030303030305a30173115301306035504030c0c4654204649444f20303230
303059301306072a8648ce3d020106082a8648ce3d03010703420004d066ad1a953b1ced4c95
4dd7dbed76a70beed2907a89769e7336ff2620be4b199ebe7448a6d5808124cc74153aef342d
5104de556178ed478e08310254faa385a360305e301d0603551d0e041604144915642dd5bbc6
de333a5e0995fc872336d3bf0b301f0603551d230418301680144915642dd5bbc6de333a5e09
95fc872336d3bf0b300c0603551d13040530030101ff300e0603551d0f0101ff040403020106
300a06082a8648ce3d04030203470030440220307cfaa021621407e40105a546b1d1f2d2ce51
331964ce9497ff34b24d9994a50220076c09ea765133ca17fe7038dd187a489a2f3365f00821
ffffe2e2ac101b0743。
[0176] 步骤a3:设备解析认证请求数据获取第一参数、第二参数和密钥句柄,使用保存的对称密钥对密钥句柄进行解密得到第一解密数据和第二解密数据;
[0177] 例如,所述认证请求数据的组成数据包括:第一参数(32个字节)、第二参数(32个字节)、密钥句柄长度值(1个字节)和密钥句柄。
[0178] 本步骤具体为,解析所述认证请求数据,获取前32个字节的数据作为第一参数,获取第33至第64个字节的数据作为第二参数,根据第65个字节的取值确定密钥句柄的长度,
从第65个字节之后获取相应长度的数据作为密钥句柄。
[0179] 步骤a4:设备获取当前的认证次数,根据第一参数、所述第二参数和所述认证次数组成第二待签名数据,使用所述第二解密数据对所述第二待签名数据进行签名得到第二签
名结果;
[0180] 步骤a5:设备根据所述认证次数和所述第二签名结果组成认证请求数据的响应数据,返回上位机;
[0181] 具体地,认证请求数据的响应数据为:00a301a26269645870286ca7f4cc4480c6fdf7e15d076db62054c8f96df7bd604224ca04961d92d2db15cbee20d02d1191b182d53d51534d
f4042650797dbd9386c853405827c2ab469f563380c4293fa1e80c6cf424afcbbc65e757879e
bfec78f59777e5ba6541f3cb6212fb74aab630f17a512ecdcac66564747970656a7075626c69
632d6b65790258257f409b1b3211c37499c9619f42ae0d2abdee652ebdc1af0502d6b539a670
430601000000020358473045022100e0d2dd99fcd91d1e70e07c799da317be98fc7a65eaf767
394e76ec749f8e31d002203084474d7d2959f3e2e254338a625a5bc8c558b02e10f9c5907994
28ed8a8bd0。
[0182] 步骤a6:设备执行其他相应操作,并向上位机返回其他相应响应数据。
[0183] 可选地,步骤a4之前还包括:根据第一参数和第一解密数据判断当前用户是否合法,是则执行步骤a4,否则根据预设错误字节码组成认证请求数据的响应数据,并返回上位
机;
[0184] 可选地,设备通过安全芯片对接收到的数据进行处理之前还包括:设备判断接收到的数据是否为认证数据或者注册数据,若是认证数据或者注册数据,则设备将处理结果
返回上位机后关机。
[0185] 实施例3
[0186] 本发明实施例提供了一种蓝牙设备,如图4所示,该设备10包括:开启模块11、声明模块12、检测模块13、关闭模块14、设置模块15、等待并接收模块16、连接模块17、获取模块
18、选择应用模块19、发送模块20;
[0187] 开启模块11,用于开启第一蓝牙服务并广播;
[0188] 开启模块11,还用于开启第二蓝牙服务并广播;
[0189] 声明模块12,用于声明蓝牙设备为蓝牙非键盘设备;
[0190] 声明模块12,还用于声明蓝牙设备为蓝牙键盘设备;
[0191] 检测模块13,用于检测设备按键是否被按下;
[0192] 关闭模块14,用于当检测模块13检测到按键被按下时,关闭第一蓝牙服务;
[0193] 关闭模块14,还用于关闭第二蓝牙服务;
[0194] 获取模块18,用于获取第二MAC地址;
[0195] 设置模块15,用于将当前的MAC地址保存为第一MAC地址,将当前的MAC地址设置为第二MAC地址;
[0196] 获取模块18,还用于获取保存的第一MAC地址;
[0197] 设置模块15,还用于将设备的MAC地址设置为第一MAC地址,开启第一蓝牙服务并广播声明自身为蓝牙非键盘设备。
[0198] 等待并接收模块16,用于等待并接收上位机发送建立连接指令;
[0199] 连接模块17,用于当等待并接收模块16接收到建立连接指令时进行连接;
[0200] 选择应用模块19,用于当连接模块17连接成功后,获取动态口令应用的应用标识,根据应用标识选择动态口令应用;
[0201] 获取模块18,还用于通过动态口令应用获取动态口令值;
[0202] 发送模块20,用于根据蓝牙键盘协议将获取模块18获取的动态口令值发送到上位机。
[0203] 在本实施例中,蓝牙非键盘设备具体为认证设备;
[0204] 声明模块12声明蓝牙设备为蓝牙非键盘设之后还包括:
[0205] 等待并接收模块16,具体用于等待并接收上位机发送建立连接指令;
[0206] 连接模块17,具体用于当等待并接收模块16接收到建立连接指令时进行连接;
[0207] 选择应用模块19,还用于根据应用标识选择认证应用。
[0208] 在本实施例中,选择应用模块19,具体包括:第一获取单元、第一选择单元;第二获取单元、第二选择单元;
[0209] 第一获取单元,用于获取默认设置中的应用标识,将应用标识发送给设备中的安全芯片;
[0210] 第一选择单元,用于根据第一获取单元获取的应用标识选择认证应用;
[0211] 第二获取单元,用于接收上位机下发的选择应用指令,将选择应用指令发送给设备中的安全芯片,安全芯片根据选择应用指令获取认证应用标识;
[0212] 第二选择单元,用于根据第二获取单元获取的认证应用标识选择认证应用。
[0213] 在本实施例中,等待并接收模块16,还用于接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理,并将处理结果返回给上位机。
[0214] 在本实施例中,等待并接收模块16包括第一判断单元;
[0215] 第一判断单元,用于判断接收到的上位机发送的数据类型;
[0216] 当第一判断单元判断接收到的数据为注册请求数据时,等待并接收模块1616还包括:第一解析单元、加密单元、第一签名单元和第一组成单元;
[0217] 第一解析单元,用于解析注册请求数据获取第一数据和第二数据,生成第二密钥对;
[0218] 第一组成单元,用于根据第二密钥对的私钥和第一数据组成待加密数据;
[0219] 加密单元,用于使用保存的对称密钥对第一组成单元组成的待加密数据进行加密得到密钥句柄;
[0220] 第一签名单元,用于使用预置密钥对的私钥对保存的证书模板内容进行签名得到签名值;
[0221] 第一组成单元,还用于根据签名值和证书模板内容组成认证证书;
[0222] 第一组成单元,还用于根据第一数据、第二数据、密钥句柄和第二密钥对的公钥组成第一待签名数据;
[0223] 第一签名单元,还用于使用保存的第一密钥对的私钥对第一待签名数据进行签名得到第一签名结果;
[0224] 第一组成单元,还用于根据第二密钥对、密钥句柄、认证证书和第一签名结果组成注册请求数据的响应数据,返回上位机;
[0225] 当第一判断单元判断接收到的数据为认证请求数据时,等待并接收模块16还包括:第二解析单元、解密单元、第二签名单元和第二组成单元;
[0226] 第二解析单元,用于解析认证请求数据获取第一参数、第二参数和密钥句柄;
[0227] 解密单元,用于使用保存的对称密钥对密钥句柄进行解密得到第一解密数据和第二解密数据;
[0228] 第二组成单元,用于获取当前的认证次数,根据第一参数、第二参数和认证次数组成第二待签名数据;
[0229] 第二签名单元,用于使用第二解密数据对第二待签名数据进行签名得到第二签名结果;
[0230] 第二组成单元,用于根据认证次数和第二签名结果组成认证请求数据的响应数据,返回上位机;
[0231] 当第一判断单元判断接收到的数据为其他数据时,等待并接收模块16还包括:执行单元;
[0232] 执行单元,用于执行其他相应操作,并向上位机返回其他相应响应数据。
[0233] 在本实施例中,当第一判断单元判断接收到的数据为认证请求数据时,等待并接收模块16还包括:判断子单元;
[0234] 判断子单元,用于根据第一参数和第一解密数据判断当前用户是否合法;
[0235] 第二组成单元,还用于当判断子单元判断当前用户不合法时,根据预设错误字节码组成认证请求数据的响应数据,并返回上位机。
[0236] 在本实施例中,等待并接收模块16具体用于接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理之前,等待并接收模块16还包括第二判断单元;
[0237] 第二判断单元,用于判断接收到的数据是否为认证数据或者注册数据;
[0238] 当第二判断单元判断接收到的数据为认证数据或者注册数据时,等待并接收模块16还包括关闭单元;
[0239] 关闭单元,用于将处理结果返回上位机后将设备关机。
[0240] 在本实施例中,发送模块20包括转换单元和发送单元;
[0241] 转换单元,用于根据蓝牙键盘协议将获取模块18获取的动态口令值转换成蓝牙键盘类虚拟按键信息;
[0242] 发送单元,用于将转换单元转换得到的虚拟按键信息依次自动地发送到上位机。
[0243] 在本实施例中,选择应用模块19包括:第三获取单元和第三选择单元;
[0244] 第三获取单元,用于接收上位机下发的选择应用指令,将选择应用指令发送给设备中的安全芯片,安全芯片根据选择应用指令获取应用标识;
[0245] 第三选择单元,用于根据第三获取单元获取的应用标识选择动态口令应用。
[0246] 在本实施例中,检测模块13,具体用于通过检测芯片IO端口是否有触发按键信号来判断设备是否有按键被按下。
[0247] 在本实施例中,当获取模块18用于获取第二MAC地址时,获取模块18具体用于:获取当前的MAC地址,将当前MAC地址的最后一个字节加1,得到第二MAC地址。
[0248] 本发明提供的一种蓝牙设备,可通过设置设备MAC地址、广播设备类型实现不同的设备类型,当设备作为蓝牙键盘设备时,能够实现动态口令输入的功能,设备根据蓝牙键盘
协议将获取的动态口令值转换成蓝牙键盘类虚拟按键信息,将所述虚拟按键信息依次自动
地发送到上位机,设备会自动恢复设备类型,从而解决了键盘设备与上位机产生键盘冲突
的问题,降低了用户在上位机上输入动态口令的出错率,提高了身份认证的安全性。
[0249] 以上对本发明所提供的一种蓝牙设备及其工作方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解
本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具
体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限
制。