CN110730441B - 一种蓝牙设备及其工作方法 - Google Patents
一种蓝牙设备及其工作方法 Download PDFInfo
- Publication number
- CN110730441B CN110730441B CN201910994617.2A CN201910994617A CN110730441B CN 110730441 B CN110730441 B CN 110730441B CN 201910994617 A CN201910994617 A CN 201910994617A CN 110730441 B CN110730441 B CN 110730441B
- Authority
- CN
- China
- Prior art keywords
- data
- unit
- application
- module
- upper computer
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
- H04L63/0838—Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
- H04L63/0846—Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/041—Key generation or derivation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/043—Key management, e.g. using generic bootstrapping architecture [GBA] using a trusted network node as an anchor
- H04W12/0431—Key distribution or pre-distribution; Key agreement
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- 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/06—Authentication
- H04W12/069—Authentication using certificates or pre-shared keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/10—Integrity
- H04W12/108—Source integrity
-
- 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
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/60—Context-dependent security
- H04W12/69—Identity-dependent
- H04W12/71—Hardware identity
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/11—Allocation or use of connection identifiers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/14—Direct-mode setup
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供了一种蓝牙设备及其工作方法,通过设置设备MAC地址、广播设备类型实现不同的设备类型,当设备作为蓝牙键盘设备时,能够实现动态口令输入的功能,设备根据蓝牙键盘协议将获取的动态口令值转换成蓝牙键盘类虚拟按键信息,将所述虚拟按键信息依次自动地发送到上位机,设备会自动恢复设备类型,从而解决了键盘设备与上位机产生键盘冲突的问题,还降低了用户在上位机上输入动态口令的出错率,提高了身份认证的安全性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种蓝牙设备及其工作方法。
背景技术
随着互联网科技的发展,信息安全的重要性也与日俱增,因此,身份认证作为信息安全防护的第一关,承担着至关重要的作用。基于现有的身份认证技术,用于身份认证的设备除了智能密钥设备等还包括动态口令设备,为了确保只有合法用户才能够访问应用系统并使用服务。动态口令认证俨然成为身份认证技术中的主流方式,被广泛应用于企业、网游、金融等领域,现有的智能密钥设备和动态口令设备是两个独立的设备,设备的集成性差,降低了资源的利用率和用户的使用体验。现有技术中,当设备作为动态口令设备与上位机建立连接时,上位机检测到设备为蓝牙键盘设备时,则会隐藏自身系统的虚拟键盘,因此设备与上位机键盘产生冲突,导致用户无法将设备生成的动态口令输入到上位机上,另外,现有的动态口令通过动态口令设备生成后,均需要用户将生成的动态口令手动输入到主机或终端设备中进行认证操作,然而,手动输入的这种方式会存在一些问题,例如,手动误输入、手动输入速度慢等导致动态口令认证不成功。
发明内容
本发明实施例提供了一种蓝牙设备及其工作方法。该方法包括:
步骤S1、设备开启第一蓝牙服务并广播声明自身为蓝牙非键盘设备;
步骤S2、当设备检测到按键被按下时,关闭第一蓝牙服务,执行步骤S3;
步骤S3、设备将当前的MAC地址保存为第一MAC地址,获取第二MAC地址,将当前的MAC地址设置为第二MAC地址;
步骤S4、设备开启第二蓝牙服务并广播声明自身为蓝牙键盘设备,等待接收上位机发送建立连接指令,当接收到建立连接指令时进行连接,若连接成功,则获取动态口令应用的应用标识,根据应用标识选择动态口令应用;
步骤S5、设备通过动态口令应用获取动态口令值,根据蓝牙键盘协议将获取的动态口令值发送到上位机;
步骤S6、设备关闭第二蓝牙服务,获取保存的第一MAC地址,将设备的MAC地址设置为所述第一MAC地址,开启第一蓝牙服务并广播声明自身为蓝牙非键盘设备。
其中,蓝牙非键盘设备具体为认证设备;步骤S2之前还包括:设备等待接收上位机发送建立连接指令,当接收到建立连接指令时进行连接,若连接成功则根据应用标识选择认证应用。
其中,设备根据认证应用标识选择认证应用具体为:设备获取默认设置中的应用标识,将应用标识发送给设备中的安全芯片,安全芯片根据应用标识选择认证应用;
或,设备接收上位机下发的选择应用指令,将选择应用指令发送给设备中的安全芯片,安全芯片根据选择应用指令获取认证应用标识,并根据认证应用标识选择认证应用。
一方面,步骤S2还包括:设备接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理,并将处理结果返回给上位机。
其中,设备接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理具体为:设备判断接收到的上位机发送的数据类型;
当接收到的数据为注册请求数据则执行步骤101,当接收到的数据为认证请求数据则执行步骤103,当接收到的数据为其他数据则执行步骤106;
步骤101:设备解析注册请求数据获取第一数据和第二数据,生成第二密钥对;根据第二密钥对的私钥和第一数据组成待加密数据,使用保存的对称密钥对待加密数据进行加密得到密钥句柄;使用预置密钥对的私钥对保存的证书模板内容进行签名得到签名值,根据签名值和证书模板内容组成认证证书;根据第一数据、第二数据、密钥句柄和第二密钥对的公钥组成第一待签名数据,使用保存的第一密钥对的私钥对第一待签名数据进行签名得到第一签名结果;
步骤102:设备根据第二密钥对、密钥句柄、认证证书和第一签名结果组成注册请求数据的响应数据,返回上位机;
步骤103:设备解析认证请求数据获取第一参数、第二参数和密钥句柄,使用保存的对称密钥对密钥句柄进行解密得到第一解密数据和第二解密数据;
步骤104:设备获取当前的认证次数,根据第一参数、第二参数和认证次数组成第二待签名数据,使用第二解密数据对第二待签名数据进行签名得到第二签名结果;
步骤105:设备根据认证次数和第二签名结果组成认证请求数据的响应数据,返回上位机;
步骤106:设备执行其他相应操作,并向上位机返回其他相应响应数据。
可选地,步骤104之前还包括:根据第一参数和第一解密数据判断当前用户是否合法,是则执行步骤104,否则根据预设错误字节码组成认证请求数据的响应数据,并返回上位机。
可选地,设备通过安全芯片对接收到的数据进行处理之前还包括:设备判断接收到的数据是否为认证数据或者注册数据,若是认证数据或者注册数据,则设备将处理结果返回上位机后关机,否则返回步骤S2。
可选地,设备根据蓝牙键盘协议将获取的动态口令值发送到上位机,具体为:设备根据蓝牙键盘协议将获取的动态口令值转换成蓝牙键盘类虚拟按键信息,将虚拟按键信息依次自动地发送到上位机。
可选地,设备获取动态口令应用的应用标识,根据应用标识选择动态口令应用具体为:设备接收上位机下发的选择应用指令,将选择应用指令发送给设备中的安全芯片,安全芯片根据选择应用指令获取应用标识,并根据应用标识选择动态口令应用。
可选地,设备检测是否有按键被按下具体为:设备通过检测芯片IO端口是否有触发按键信号来判断设备是否有按键被按下。
可选地,设备获取第二MAC地址具体为:设备获取当前的MAC地址,将当前MAC地址的最后一个字节加1,得到第二MAC地址。
本发明实施例提供了一种蓝牙设备,该设备包括:开启模块、声明模块、检测模块、关闭模块、设置模块、等待并接收模块、连接模块、获取模块、选择应用模块、发送模块;
其中,开启模块,用于开启第一蓝牙服务并广播;
开启模块,还用于开启第二蓝牙服务并广播;
声明模块,用于声明所述蓝牙设备为蓝牙非键盘设备;
声明模块,还用于声明所述蓝牙设备为蓝牙键盘设备;
检测模块,用于检测设备按键是否被按下;
关闭模块,用于当所述检测模块检测到按键被按下时,关闭第一蓝牙服务;
关闭模块,还用于关闭第二蓝牙服务;
获取模块,用于获取第二MAC地址;
设置模块,用于将当前的MAC地址保存为第一MAC地址,将当前的MAC地址设置为所述第二MAC地址;
获取模块,还用于获取保存的第一MAC地址;
设置模块,还用于将设备的MAC地址设置为第一MAC地址,开启第一蓝牙服务并广播声明自身为蓝牙非键盘设备。
等待并接收模块,用于等待并接收上位机发送建立连接指令;
连接模块,用于当等待并接收模块接收到建立连接指令时进行连接;
选择应用模块,用于当连接模块连接成功后,获取动态口令应用的应用标识,根据应用标识选择动态口令应用;
获取模块,还用于通过动态口令应用获取动态口令值;
发送模块,用于根据蓝牙键盘协议将获取模块获取的动态口令值发送到上位机。
其中,蓝牙非键盘设备具体为认证设备;
声明模块声明蓝牙设备为蓝牙非键盘设之后还包括:
等待并接收模块,具体用于等待并接收上位机发送建立连接指令;
连接模块,具体用于当等待并接收模块接收到建立连接指令时进行连接;
选择应用模块,还用于根据应用标识选择认证应用。
可选地,选择应用模块,具体包括:第一获取单元、第一选择单元;第二获取单元、第二选择单元;
其中,第一获取单元,用于获取默认设置中的应用标识,将应用标识发送给设备中的安全芯片;
第一选择单元,用于根据第一获取单元获取的应用标识选择认证应用;
第二获取单元,用于接收上位机下发的选择应用指令,将选择应用指令发送给设备中的安全芯片,安全芯片根据选择应用指令获取认证应用标识;
第二选择单元,用于根据第二获取单元获取的认证应用标识选择认证应用。
可选地,等待并接收模块,还用于接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理,并将处理结果返回给上位机。
可选地,等待并接收模块包括第一判断单元;
第一判断单元,用于判断接收到的上位机发送的数据类型;
当第一判断单元判断接收到的数据为注册请求数据时,等待并接收模块还包括:第一解析单元、加密单元、第一签名单元和第一组成单元;
其中,第一解析单元,用于解析注册请求数据获取第一数据和第二数据,生成第二密钥对;
第一组成单元,用于根据第二密钥对的私钥和第一数据组成待加密数据;
加密单元,用于使用保存的对称密钥对第一组成单元组成的待加密数据进行加密得到密钥句柄;
第一签名单元,用于使用预置密钥对的私钥对保存的证书模板内容进行签名得到签名值;
第一组成单元,还用于根据签名值和证书模板内容组成认证证书;
第一组成单元,还用于根据第一数据、第二数据、密钥句柄和第二密钥对的公钥组成第一待签名数据;
第一签名单元,还用于使用保存的第一密钥对的私钥对第一待签名数据进行签名得到第一签名结果;
第一组成单元,还用于根据第二密钥对、密钥句柄、认证证书和第一签名结果组成注册请求数据的响应数据,返回上位机;
当第一判断单元判断接收到的数据为认证请求数据时,等待并接收模块还包括:第二解析单元、解密单元、第二签名单元和第二组成单元;
第二解析单元,用于解析认证请求数据获取第一参数、第二参数和密钥句柄;
解密单元,用于使用保存的对称密钥对密钥句柄进行解密得到第一解密数据和第二解密数据;
第二组成单元,用于获取当前的认证次数,根据第一参数、第二参数和认证次数组成第二待签名数据;
第二签名单元,用于使用第二解密数据对第二待签名数据进行签名得到第二签名结果;
第二组成单元,用于根据认证次数和第二签名结果组成认证请求数据的响应数据,返回上位机;
当第一判断单元判断接收到的数据为其他数据时,等待并接收模块还包括:执行单元;
执行单元,用于执行其他相应操作,并向上位机返回其他相应响应数据。
可选地,当第一判断单元判断接收到的数据为认证请求数据时,等待并接收模块还包括:判断子单元;
判断子单元,用于根据第一参数和第一解密数据判断当前用户是否合法;
第二组成单元,还用于当判断子单元判断当前用户不合法时,根据预设错误字节码组成认证请求数据的响应数据,并返回上位机。
可选地,等待并接收模块具体用于接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理之前,等待并接收模块还包括第二判断单元;
第二判断单元,用于判断接收到的数据是否为认证数据或者注册数据;
当第二判断单元判断接收到的数据为认证数据或者注册数据时,等待并接收模块还包括关闭单元;
关闭单元,用于将处理结果返回上位机后将设备关机。
可选地,发送模块包括转换单元和发送单元;
转换单元,用于根据蓝牙键盘协议将获取模块获取的动态口令值转换成蓝牙键盘类虚拟按键信息;
发送单元,用于将转换单元转换得到的虚拟按键信息依次自动地发送到上位机。
可选地,选择应用模块包括:第三获取单元和第三选择单元;
第三获取单元,用于接收上位机下发的选择应用指令,将选择应用指令发送给设备中的安全芯片,安全芯片根据选择应用指令获取应用标识;
第三选择单元,用于根据第三获取单元获取的应用标识选择动态口令应用。
可选地,检测模块,具体用于通过检测芯片IO端口是否有触发按键信号来判断设备是否有按键被按下。
可选地,当获取模块用于获取第二MAC地址时,获取模块具体用于:获取当前的MAC地址,将当前MAC地址的最后一个字节加1,得到第二MAC地址。
本发明提供的一种蓝牙设备,可通过设置设备MAC地址、广播设备类型实现不同的设备类型,当设备作为蓝牙键盘设备时,能够实现动态口令输入的功能,设备根据蓝牙键盘协议将获取的动态口令值转换成蓝牙键盘类虚拟按键信息,将所述虚拟按键信息依次自动地发送到上位机,设备会自动恢复设备类型,从而解决了键盘设备与上位机产生键盘冲突的问题,还降低了用户在上位机上输入动态口令的出错率,提高了身份认证的安全性。
附图说明
图1是本发明实施例1提供的一种蓝牙设备的工作方法流程图;
图2是本发明实施例2提供的一种蓝牙设备的工作方法流程图;
图3是本发明实施例2提供的一种蓝牙设备对接收到的数据进行处理的方法流程图;
图4是本发明实施例3提供的一种蓝牙设备的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本实施例中提及的蓝牙设备至少能够实现两种应用功能,每一种应用具有匹配的蓝牙服务,多种应用可以共用一个蓝牙服务,也可以是一种应用对应一个蓝牙服务。本实施例中所提出的应用包括第一应用和动态口令应用,第一应用所对应的蓝牙服务为第一蓝牙服务,动态口令应用所对应的蓝牙服务为第二蓝牙服务。
本发明实施例一提供了一种蓝牙设备的工作方法,如图1所示,本实施例的方法包括:
步骤A1、设备上电,进行初始化;
在本实施例中,设备上电后,还可以对设备外设、时钟服务进行初始化。
步骤A2、设备开启第一蓝牙服务并广播声明自身为蓝牙非键盘设备;
步骤A3、当设备检测到按键被按下时,关闭第一蓝牙服务,执行步骤A4;
本实施例中,设备通过检测芯片IO端口是否有触发按键信号来判断设备是否有按键被按下。
步骤A4、设备将当前的MAC地址保存为第一MAC地址,获取第二MAC地址,将当前的MAC地址设置为第二MAC地址;
具体地,设备读取寄存器中存储的MAC地址作为第一MAC地址;
可选地,设备获取第二MAC地址具体为:设备将第一MAC地址修改为第二MAC地址;
优选的,设备将第一MAC地址修改为第二MAC地址,具体为:设备将读取到的当前MAC地址的最后一个字节加1,加1得到的MAC地址作为第二MAC地址;
例如,第一MAC地址为:ef:07:52:6a:5f:2c;
第二MAC地址为:ef:07:52:6a:5f:2d。
步骤A5、设备开启第二蓝牙服务并广播声明自身为蓝牙键盘设备,等待接收上位机发送建立连接指令,当接收到建立连接指令时进行连接,若连接成功,则获取动态口令应用的应用标识,根据应用标识选择动态口令应用;
在本实施例中,设备具体通过寄存器读取存储的动态口令应用的应用标识,例如,动态口令的应用标识为:2;
可选地,设备根据应用标识选择动态口令应用具体为:设备将选择应用指令发送给设备中的安全芯片,安全芯片根据指令中的应用标识选择对应的应用。
步骤A6、设备通过动态口令应用获取动态口令值,根据蓝牙键盘协议将获取的动态口令值发送到上位机;
在本实施例中,根据蓝牙键盘协议将获取的动态口令值发送到上位机,具体为:设备根据蓝牙键盘协议将获取的动态口令值转换成蓝牙键盘类虚拟按键信息,将虚拟按键信息依次自动地发送到上位机。
步骤A7、设备关闭第二蓝牙服务,获取保存的第一MAC地址,将设备的MAC地址设置为第一MAC地址,开启第一蓝牙服务并广播声明自身为蓝牙非键盘设备。
在本实施例中,设备具体通过寄存器读取存储的第一MAC地址;
例如,保存的第一MAC地址为:ef:07:52:6a:5f:2c;
当前的MAC地址为:ef:07:52:6a:5f:2d。
在本实施例中,设备声明自身为蓝牙非键盘设备之后还包括:设备等待接收上位机发送建立连接指令,当接收到建立连接指令时进行连接,若连接成功则根据应用标识选择应用,若连接超时则关闭;
可选地,根据应用标识选择应用的方式包括:设备根据默认设置选择应用,或者设备根据接收到的终端下发的选择应用指令进行选择应用;
具体地,默认设置中包括应用标识。
在本实施例中,设备选择应用具体为:设备将选择应用指令发送给设备中的安全芯片,安全芯片根据指令中的应用标识选择对应的应用;
在本实施例中,当设备作为蓝牙非键盘设备与上位机连接成功,并选择应用后,还包括:设备接收上位机发送的数据,通过安全芯片对接收到的数据进行处理,并将处理结果返回给上位机;
具体地,设备接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理具体为:设备判断接收到的上位机发送的数据类型;
当接收到的数据为注册请求数据则执行步骤a1,当接收到的数据为认证请求数据则执行步骤a3,当接收到的数据为其他数据则执行步骤a6;
步骤a1:设备解析注册请求数据获取第一数据和第二数据,生成第二密钥对;根据第二密钥对的私钥和第一数据组成待加密数据,使用保存的对称密钥对待加密数据进行加密得到密钥句柄;使用预置密钥对的私钥对保存的证书模板内容进行签名得到签名值,根据签名值和证书模板内容组成认证证书;根据第一数据、第二数据、密钥句柄和第二密钥对的公钥组成第一待签名数据,使用保存的第一密钥对的私钥对第一待签名数据进行签名得到第一签名结果;
步骤a2:设备根据第二密钥对、密钥句柄、认证证书和第一签名结果组成注册请求数据的响应数据,返回上位机;
步骤a3:设备解析认证请求数据获取第一参数、第二参数和密钥句柄,使用保存的对称密钥对密钥句柄进行解密得到第一解密数据和第二解密数据;
步骤a4:设备获取当前的认证次数,根据第一参数、所述第二参数和所述认证次数组成第二待签名数据,使用所述第二解密数据对所述第二待签名数据进行签名得到第二签名结果;
步骤a5:设备根据所述认证次数和所述第二签名结果组成认证请求数据的响应数据,返回上位机;
步骤a6:设备执行其他相应操作,并向上位机返回其他相应响应数据。
可选地,步骤a4之前还包括:根据第一参数和第一解密数据判断当前用户是否合法,是则执行步骤a4,否则根据预设错误字节码组成认证请求数据的响应数据,并返回上位机;
可选地,设备通过安全芯片对接收到的数据进行处理之前还包括:设备判断接收到的数据是否为认证数据或者注册数据,若是认证数据或者注册数据,则设备将处理结果返回上位机后关机。
实施例2
本实施例中提及的蓝牙设备至少能够实现两种应用功能,每一种应用具有匹配的蓝牙服务,多种应用可以共用一个蓝牙服务,也可以是一种应用对应一个蓝牙服务。本实施例中所提出的应用包括认证应用和动态口令应用,认证应用所对应的蓝牙服务为第一蓝牙服务,动态口令应用所对应的蓝牙服务为第二蓝牙服务。
本发明实施例提供了一种蓝牙设备的工作方法,如图2所示,本实施例的方法包括:
步骤B1、设备上电,进行初始化;
在本实施例中,设备上电后,还可以对设备外设、时钟服务进行初始化。
步骤B2、设备开启第一蓝牙服务并广播声明自身为认证设备,等待接收上位机发送建立连接指令,当接收到建立连接指令时进行连接,若连接成功,则获取认证应用的应用标识,根据应用标识选择认证应用;
在本实施例中,选择认证应用的方式包括:设备根据默认设置选择应用,或者设备根据接收到的终端下发的选择应用指令进行选择应用;
具体地,默认设置中包括应用标识。
在本实施例中,设备选择认证应用具体为:设备将选择应用指令发送给设备中的安全芯片,安全芯片根据指令中的应用标识选择对应的应用;
例如,设备广播声明自身为认证设备具体为:/**<Human Interface Deviceservice UUID.*/,UUID:0x1812;
建立连接指令为:0x1b 0x06 0x35 0x01 0x34 0x11 0x06 0x0a 0x01 0x26 0x2f0x00 0x00 0x97 0x00 0x00 0x00 0xd6 0xbe 0x89 0x8e 0x85 0x22 0xa1 0x06 0x150xd0 0x9e 0x78 0xad 0x99 0xa4 0xbc 0x55 0xc0 0xe0 0x5c 0x65 0x50 0x28 0xb00xf0 0x03 0x19 0x00 0x27 0x00 0x00 0x00 0xbc 0x02 0xff 0xff 0xff 0xff 0x1f0xa8 0xf2 0x61 0xda。
例如,认证应用具体为FIDO,认证应用的应用标识为:0;
步骤B3、设备判断是否有按键按下,若是则关闭第一蓝牙服务,执行步骤B4;若否则判断是否接收到数据,若是则执行步骤B9,若否则关机;
本实施例中,设备通过检测芯片IO端口是否有触发按键信号来判断设备是否有按键被按下。
步骤B4、设备判断蓝牙是否已连接,若是则断开蓝牙连接并关闭广播,若否则直接关闭广播,执行步骤B5;
步骤B5、设备将当前的MAC地址保存为第一MAC地址,获取第二MAC地址,将当前的MAC地址设置为第二MAC地址;
具体地,设备读取寄存器中存储的MAC地址作为第一MAC地址;
可选地,设备获取第二MAC地址具体为:设备将第一MAC地址修改为第二MAC地址;
优选的,设备将第一MAC地址修改为第二MAC地址,具体为:设备将读取到的当前MAC地址的最后一个字节加1,加1得到的MAC地址作为第二MAC地址;
例如,当前认证应用的MAC地址为:0xa1 0x06 0x15 0xd0 0x9e 0x78;
第二MAC地址为:0xa1 0x06 0x15 0xd0 0x9e 0x79。
步骤B6、设备开启第二蓝牙服务并广播声明自身为动态口令设备,等待接收上位机发送建立连接指令,当接收到建立连接指令时进行连接,若连接成功,则获取动态口令应用的应用标识,根据应用标识选择动态口令应用;
在本实施例中,设备具体通过寄存器读取存储的动态口令应用的应用标识,例如,动态口令的应用标识为:2;
可选地,设备根据应用标识选择动态口令应用具体为:设备将选择应用指令发送给设备中的安全芯片,安全芯片根据指令中的应用标识选择对应的应用;
具体地,设备广播声明自身为动态口令设备具体为:/**<Human InterfaceDevice service UUID.*/,UUID:0xFFFD;
建立连接指令为:0x1b 0x06 0x35 0x01 0x34 0x11 0x06 0x0a 0x01 0x26 0x2f0x00 0x00 0x97 0x00 0x00 0x00 0xd6 0xbe 0x89 0x8e 0x85 0x22 0xa1 0x06 0x150xd0 0x9e 0x78 0xad 0x99 0xa4 0xbc 0x55 0xc0 0xe0 0x5c 0x65 0x50 0x28 0xb00xf0 0x03 0x19 0x00 0x27 0x00 0x00 0x00 0xbc 0x02 0xff 0xff 0xff 0xff 0x1f0xa8 0xf2 0x61 0xda。
步骤B7、设备通过动态口令应用获取动态口令值,根据蓝牙键盘协议将获取的动态口令值发送到上位机;
在本实施例中,根据蓝牙键盘协议将获取的动态口令值发送到上位机,具体为:设备根据蓝牙键盘协议将获取的动态口令值转换成蓝牙键盘类虚拟按键信息,将虚拟按键信息依次自动地连续发送到上位机;
具体地,设备获取的动态口令值的值为:12345;
设备发送的虚拟按键信息具体为:当按键为1时,设备发送的信息为:0d 03 38 e201 60 0a 15 aa 5a 7b 65 50 16 13 0b 00 04 00 1b 16 00 00 00 1e 00 00 00 00 0089 64 3f d4 64 ec d6,将按键1抬起时发送的信息为:0d 03 38 e2 01 60 0a 15 aa 5a7b 65 50 1a 13 0b 00 04 00 1b 16 00 00 00 00 00 00 00 00 00 9b 4e 39 6f 1c 3414;当按键为2时,设备发送的信息为:0d 03 38 e2 01 60 0a 15 aa 5a 7b 65 50 16 130b 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 1600 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 0000 00 00 00 18 4b 9f a8 fa 17 0a,将按键2抬起时发送的信息为:0d 03 1e e3 01 6008 15 aa 5a 7b 65 50 1a 13 0b 00 04 00 1b 16 00 00 00 00 00 00 00 00 00 7d 238b 74 bd 8a ab;当按键为4时,设备发送的信息为:0d 03 1e e3 01 60 08 15 aa 5a 7b65 50 16 13 0b 00 04 00 1b 16 00 00 00 21 00 00 00 00 00 56 99 15 c0 20 6101,将按键4抬起时发送的信息为:0d 03 1e e3 01 60 08 15 aa 5a 7b 65 50 1a 13 0b00 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 1600 00 00 22 00 00 00 00 00 92 7d 22 7b 7c 88 2c,将按键5抬起时发送的信息为:0d03 1e e3 01 60 08 15 aa 5a 7b 65 50 1a 13 0b 00 04 00 1b 16 00 00 00 00 00 0000 00 00 3f 73 d2 f0 50 cf a6。
步骤B8、设备关闭第二蓝牙服务,获取保存的第一MAC地址,将设备的MAC地址设置为第一MAC地址,开启第一蓝牙服务并广播声明自身为认证设备。在本实施例中,设备具体通过寄存器读取存储的第一MAC地址;
例如,保存的第一MAC地址为:0xa1 0x06 0x15 0xd0 0x9e 0x78;
当前的MAC地址为:0xa1 0x06 0x15 0xd0 0x9e 0x79。
步骤B9、设备接收上位机发送的数据,通过安全芯片对接收到的数据进行处理,并将处理结果返回给上位机。
具体地,设备接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理具体为:如图3所示,设备判断接收到的上位机发送的数据类型;
当接收到的数据为注册请求数据则执行步骤a1,当接收到的数据为认证请求数据则执行步骤a3,当接收到的数据为其他数据则执行步骤a6;
步骤a1:设备解析注册请求数据获取第一数据和第二数据,生成第二密钥对;根据第二密钥对的私钥和第一数据组成待加密数据,使用保存的对称密钥对待加密数据进行加密得到密钥句柄;使用预置密钥对的私钥对保存的证书模板内容进行签名得到签名值,根据签名值和证书模板内容组成认证证书;根据第一数据、第二数据、密钥句柄和第二密钥对的公钥组成第一待签名数据,使用保存的第一密钥对的私钥对第一待签名数据进行签名得到第一签名结果;
具体地,所述注册请求数据由64个字节的数据组成,本步骤具体为,解析所述注册请求数据,获取前32个字节的数据作为第一数据,获取后32个字节的数据作为第二数据;
例如,注册数据为:01a4015820687134968222ec17202e42505f8ed2b16ae22f16bb05b88c25db9e602645f14102a26269646773657276657231646e616d65677365727665723103a362696458202b6689bb18f4169f069fbcdf50cb6ea3c60a861b9a7b63946983e0b577b78c70646e616d6571746573746374617040637461702e636f6d6b646973706c61794e616d65695465737420437461700483a263616c672664747970656a7075626c69632d6b6579a263616c6739010064747970656a7075626c69632d6b6579a263616c67382464747970656a7075626c69632d6b6579;
认证数据为:02a4016773657276657231025820687134968222ec17202e42505f8ed2b16ae22f16bb05b88c25db9e602645f1410385a26269645832010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010164747970656a7075626c69632d6b6579a26269645832020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020264747970656a7075626c69632d6b6579a26269645870286ca7f4cc4480c6fdf7e15d076db62054c8f96df7bd604224ca04961d92d2db15cbee20d02d1191b182d53d51534df4042650797dbd9386c853405827c2ab469f563380c4293fa1e80c6cf424afcbbc65e757879ebfec78f59777e5ba6541f3cb6212fb74aab630f17a512ecdcac66564747970656a7075626c69632d6b6579a26269645832040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040464747970656a7075626c69632d6b6579a26269645832050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050564747970656a7075626c69632d6b657905a1627570f5。
步骤a2:设备根据第二密钥对、密钥句柄、认证证书和第一签名结果组成注册请求数据的响应数据,返回上位机;
具体地,注册请求数据的响应数据为:00a301667061636b65640258f47f409b1b3211c37499c9619f42ae0d2abdee652ebdc1af0502d6b539a67043064100000001b82ed73c8fb4e5a2402289c7060660010070286ca7f4cc4480c6fdf7e15d076db62054c8f96df7bd604224ca04961d92d2db15cbee20d02d1191b182d53d51534df4042650797dbd9386c853405827c2ab469f563380c4293fa1e80c6cf424afcbbc65e757879ebfec78f59777e5ba6541f3cb6212fb74aab630f17a512ecdcac665a501020326200121582086010b1aee7166408a681ceb39c0b7ee9040ea678f5ac096ee0dac3dd5d5a55b225820c93d6dc90e1584a8d2eba08955f9544f873f6637f1603e33d5fb47c7dee67e2703a363616c6726637369675846304402201cf814728a06587b589cf6c672fc161651065f361b0ed67647fe0feb7172158f02201105824cf62ffe4bf40f5f2ac054420e6bad5bf5f6da579e560ae5e2e2dbf72c63783563825901623082015e30820104a003020102020900d79549bd1a671744300a06082a8648ce3d04030230173115301306035504030c0c4654204649444f20303230303020170d3137303232303030303030305a180f32303530303530313030303030305a30183116301406035504030c0d4654204649444f3220546573743059301306072a8648ce3d020106082a8648ce3d03010703420004df1bd845b086b939677eb01e75d646132be7c356b8a018cc10bcfeebb074401f9d58859f9ee76babf9e9e5e1c815e1a2e4dcba0ea8f54f144e1d327cb95c2b4aa3363034301d0603551d0e041604142393d61a27e84fef9bbd76db099e1c728cf0ba633013060b2b0601040182e51c020101040403020520300a06082a8648ce3d04030203480030450221009453c09a35ebe8a1db27ce01253615adc9a0feeb56ab6ab6ea5934a1cf17362102202d109c4c295eb448315a30dbedd0301836e2755adad49e274541957b918b85155901823082017e30820125a003020102020101300a06082a8648ce3d04030230173115301306035504030c0c4654204649444f20303230303020170d3136303530313030303030305a180f32303530303530313030303030305a30173115301306035504030c0c4654204649444f20303230303059301306072a8648ce3d020106082a8648ce3d03010703420004d066ad1a953b1ced4c954dd7dbed76a70beed2907a89769e7336ff2620be4b199ebe7448a6d5808124cc74153aef342d5104de556178ed478e08310254faa385a360305e301d0603551d0e041604144915642dd5bbc6de333a5e0995fc872336d3bf0b301f0603551d230418301680144915642dd5bbc6de333a5e0995fc872336d3bf0b300c0603551d13040530030101ff300e0603551d0f0101ff040403020106300a06082a8648ce3d04030203470030440220307cfaa021621407e40105a546b1d1f2d2ce51331964ce9497ff34b24d9994a50220076c09ea765133ca17fe7038dd187a489a2f3365f00821ffffe2e2ac101b0743。
步骤a3:设备解析认证请求数据获取第一参数、第二参数和密钥句柄,使用保存的对称密钥对密钥句柄进行解密得到第一解密数据和第二解密数据;
例如,所述认证请求数据的组成数据包括:第一参数(32个字节)、第二参数(32个字节)、密钥句柄长度值(1个字节)和密钥句柄。
本步骤具体为,解析所述认证请求数据,获取前32个字节的数据作为第一参数,获取第33至第64个字节的数据作为第二参数,根据第65个字节的取值确定密钥句柄的长度,从第65个字节之后获取相应长度的数据作为密钥句柄。
步骤a4:设备获取当前的认证次数,根据第一参数、所述第二参数和所述认证次数组成第二待签名数据,使用所述第二解密数据对所述第二待签名数据进行签名得到第二签名结果;
步骤a5:设备根据所述认证次数和所述第二签名结果组成认证请求数据的响应数据,返回上位机;
具体地,认证请求数据的响应数据为:00a301a26269645870286ca7f4cc4480c6fdf7e15d076db62054c8f96df7bd604224ca04961d92d2db15cbee20d02d1191b182d53d51534df4042650797dbd9386c853405827c2ab469f563380c4293fa1e80c6cf424afcbbc65e757879ebfec78f59777e5ba6541f3cb6212fb74aab630f17a512ecdcac66564747970656a7075626c69632d6b65790258257f409b1b3211c37499c9619f42ae0d2abdee652ebdc1af0502d6b539a670430601000000020358473045022100e0d2dd99fcd91d1e70e07c799da317be98fc7a65eaf767394e76ec749f8e31d002203084474d7d2959f3e2e254338a625a5bc8c558b02e10f9c590799428ed8a8bd0。
步骤a6:设备执行其他相应操作,并向上位机返回其他相应响应数据。
可选地,步骤a4之前还包括:根据第一参数和第一解密数据判断当前用户是否合法,是则执行步骤a4,否则根据预设错误字节码组成认证请求数据的响应数据,并返回上位机;
可选地,设备通过安全芯片对接收到的数据进行处理之前还包括:设备判断接收到的数据是否为认证数据或者注册数据,若是认证数据或者注册数据,则设备将处理结果返回上位机后关机。
实施例3
本发明实施例提供了一种蓝牙设备,如图4所示,该设备10包括:开启模块11、声明模块12、检测模块13、关闭模块14、设置模块15、等待并接收模块16、连接模块17、获取模块18、选择应用模块19、发送模块20;
开启模块11,用于开启第一蓝牙服务并广播;
开启模块11,还用于开启第二蓝牙服务并广播;
声明模块12,用于声明蓝牙设备为蓝牙非键盘设备;
声明模块12,还用于声明蓝牙设备为蓝牙键盘设备;
检测模块13,用于检测设备按键是否被按下;
关闭模块14,用于当检测模块13检测到按键被按下时,关闭第一蓝牙服务;
关闭模块14,还用于关闭第二蓝牙服务;
获取模块18,用于获取第二MAC地址;
设置模块15,用于将当前的MAC地址保存为第一MAC地址,将当前的MAC地址设置为第二MAC地址;
获取模块18,还用于获取保存的第一MAC地址;
设置模块15,还用于将设备的MAC地址设置为第一MAC地址,开启第一蓝牙服务并广播声明自身为蓝牙非键盘设备。
等待并接收模块16,用于等待并接收上位机发送建立连接指令;
连接模块17,用于当等待并接收模块16接收到建立连接指令时进行连接;
选择应用模块19,用于当连接模块17连接成功后,获取动态口令应用的应用标识,根据应用标识选择动态口令应用;
获取模块18,还用于通过动态口令应用获取动态口令值;
发送模块20,用于根据蓝牙键盘协议将获取模块18获取的动态口令值发送到上位机。
在本实施例中,蓝牙非键盘设备具体为认证设备;
声明模块12声明蓝牙设备为蓝牙非键盘设之后还包括:
等待并接收模块16,具体用于等待并接收上位机发送建立连接指令;
连接模块17,具体用于当等待并接收模块16接收到建立连接指令时进行连接;
选择应用模块19,还用于根据应用标识选择认证应用。
在本实施例中,选择应用模块19,具体包括:第一获取单元、第一选择单元;第二获取单元、第二选择单元;
第一获取单元,用于获取默认设置中的应用标识,将应用标识发送给设备中的安全芯片;
第一选择单元,用于根据第一获取单元获取的应用标识选择认证应用;
第二获取单元,用于接收上位机下发的选择应用指令,将选择应用指令发送给设备中的安全芯片,安全芯片根据选择应用指令获取认证应用标识;
第二选择单元,用于根据第二获取单元获取的认证应用标识选择认证应用。
在本实施例中,等待并接收模块16,还用于接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理,并将处理结果返回给上位机。
在本实施例中,等待并接收模块16包括第一判断单元;
第一判断单元,用于判断接收到的上位机发送的数据类型;
当第一判断单元判断接收到的数据为注册请求数据时,等待并接收模块1616还包括:第一解析单元、加密单元、第一签名单元和第一组成单元;
第一解析单元,用于解析注册请求数据获取第一数据和第二数据,生成第二密钥对;
第一组成单元,用于根据第二密钥对的私钥和第一数据组成待加密数据;
加密单元,用于使用保存的对称密钥对第一组成单元组成的待加密数据进行加密得到密钥句柄;
第一签名单元,用于使用预置密钥对的私钥对保存的证书模板内容进行签名得到签名值;
第一组成单元,还用于根据签名值和证书模板内容组成认证证书;
第一组成单元,还用于根据第一数据、第二数据、密钥句柄和第二密钥对的公钥组成第一待签名数据;
第一签名单元,还用于使用保存的第一密钥对的私钥对第一待签名数据进行签名得到第一签名结果;
第一组成单元,还用于根据第二密钥对、密钥句柄、认证证书和第一签名结果组成注册请求数据的响应数据,返回上位机;
当第一判断单元判断接收到的数据为认证请求数据时,等待并接收模块16还包括:第二解析单元、解密单元、第二签名单元和第二组成单元;
第二解析单元,用于解析认证请求数据获取第一参数、第二参数和密钥句柄;
解密单元,用于使用保存的对称密钥对密钥句柄进行解密得到第一解密数据和第二解密数据;
第二组成单元,用于获取当前的认证次数,根据第一参数、第二参数和认证次数组成第二待签名数据;
第二签名单元,用于使用第二解密数据对第二待签名数据进行签名得到第二签名结果;
第二组成单元,用于根据认证次数和第二签名结果组成认证请求数据的响应数据,返回上位机;
当第一判断单元判断接收到的数据为其他数据时,等待并接收模块16还包括:执行单元;
执行单元,用于执行其他相应操作,并向上位机返回其他相应响应数据。
在本实施例中,当第一判断单元判断接收到的数据为认证请求数据时,等待并接收模块16还包括:判断子单元;
判断子单元,用于根据第一参数和第一解密数据判断当前用户是否合法;
第二组成单元,还用于当判断子单元判断当前用户不合法时,根据预设错误字节码组成认证请求数据的响应数据,并返回上位机。
在本实施例中,等待并接收模块16具体用于接收到上位机发送的数据,通过安全芯片对接收到的数据进行处理之前,等待并接收模块16还包括第二判断单元;
第二判断单元,用于判断接收到的数据是否为认证数据或者注册数据;
当第二判断单元判断接收到的数据为认证数据或者注册数据时,等待并接收模块16还包括关闭单元;
关闭单元,用于将处理结果返回上位机后将设备关机。
在本实施例中,发送模块20包括转换单元和发送单元;
转换单元,用于根据蓝牙键盘协议将获取模块18获取的动态口令值转换成蓝牙键盘类虚拟按键信息;
发送单元,用于将转换单元转换得到的虚拟按键信息依次自动地发送到上位机。
在本实施例中,选择应用模块19包括:第三获取单元和第三选择单元;
第三获取单元,用于接收上位机下发的选择应用指令,将选择应用指令发送给设备中的安全芯片,安全芯片根据选择应用指令获取应用标识;
第三选择单元,用于根据第三获取单元获取的应用标识选择动态口令应用。
在本实施例中,检测模块13,具体用于通过检测芯片IO端口是否有触发按键信号来判断设备是否有按键被按下。
在本实施例中,当获取模块18用于获取第二MAC地址时,获取模块18具体用于:获取当前的MAC地址,将当前MAC地址的最后一个字节加1,得到第二MAC地址。
本发明提供的一种蓝牙设备,可通过设置设备MAC地址、广播设备类型实现不同的设备类型,当设备作为蓝牙键盘设备时,能够实现动态口令输入的功能,设备根据蓝牙键盘协议将获取的动态口令值转换成蓝牙键盘类虚拟按键信息,将所述虚拟按键信息依次自动地发送到上位机,设备会自动恢复设备类型,从而解决了键盘设备与上位机产生键盘冲突的问题,降低了用户在上位机上输入动态口令的出错率,提高了身份认证的安全性。
以上对本发明所提供的一种蓝牙设备及其工作方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (20)
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地址。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910994617.2A CN110730441B (zh) | 2019-10-18 | 2019-10-18 | 一种蓝牙设备及其工作方法 |
US17/297,013 US11622253B2 (en) | 2019-10-18 | 2020-09-03 | Bluetooth device and working method thereof |
PCT/CN2020/113294 WO2021073300A1 (zh) | 2019-10-18 | 2020-09-03 | 一种蓝牙设备及其工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910994617.2A CN110730441B (zh) | 2019-10-18 | 2019-10-18 | 一种蓝牙设备及其工作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110730441A CN110730441A (zh) | 2020-01-24 |
CN110730441B true CN110730441B (zh) | 2021-07-02 |
Family
ID=69221535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910994617.2A Active CN110730441B (zh) | 2019-10-18 | 2019-10-18 | 一种蓝牙设备及其工作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11622253B2 (zh) |
CN (1) | CN110730441B (zh) |
WO (1) | WO2021073300A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110730441B (zh) * | 2019-10-18 | 2021-07-02 | 飞天诚信科技股份有限公司 | 一种蓝牙设备及其工作方法 |
CN112188490A (zh) * | 2020-09-23 | 2021-01-05 | 衡水海博云科技有限公司 | 一种多合一动态密码口令装置及其工作方法 |
CN111930184B (zh) * | 2020-10-13 | 2021-01-01 | 飞天诚信科技股份有限公司 | 一种外接设备模拟键盘的实现方法、装置及系统 |
TWI817162B (zh) * | 2021-07-14 | 2023-10-01 | 臺灣網路認證股份有限公司 | 行動裝置免元件簽章系統及其方法 |
CN115379590B (zh) * | 2022-10-27 | 2023-02-14 | 深圳市正浩创新科技股份有限公司 | 蓝牙连接建立方法、装置、电子设备及计算机存储介质 |
CN115883276A (zh) * | 2022-10-27 | 2023-03-31 | 四川虹美智能科技有限公司 | 一种基于小程序的智能家电安全控制方法 |
CN116234062B (zh) * | 2022-12-27 | 2024-03-01 | 深圳凯晖电子科技有限公司 | 一对多输入设备连接方法、装置及计算机设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105827655A (zh) * | 2016-05-27 | 2016-08-03 | 飞天诚信科技股份有限公司 | 一种智能密钥设备及其工作方法 |
CN107463825A (zh) * | 2017-08-09 | 2017-12-12 | 纳思达股份有限公司 | 指纹登录设备及指纹登录方法 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030013483A1 (en) * | 2001-07-06 | 2003-01-16 | Ausems Michiel R. | User interface for handheld communication device |
US20070123166A1 (en) * | 2005-11-29 | 2007-05-31 | Arnold Sheynman | System, method and apparatus for pre-pairing bluetooth enabled devices |
WO2009039419A1 (en) * | 2007-09-21 | 2009-03-26 | Wireless Dynamics, Inc. | Wireless smart card and integrated personal area network, near field communication and contactless payment system |
US9286742B2 (en) * | 2008-03-31 | 2016-03-15 | Plantronics, Inc. | User authentication system and method |
US8254902B2 (en) * | 2008-06-26 | 2012-08-28 | Apple Inc. | Apparatus and methods for enforcement of policies upon a wireless device |
KR101614984B1 (ko) * | 2010-02-08 | 2016-04-22 | 다니엘 프리드랜더 | 존재 검출 방법, 장치, 및 이용 |
JP5972295B2 (ja) * | 2011-03-16 | 2016-08-17 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 無線装置の間のペアリング |
KR101995251B1 (ko) * | 2012-10-08 | 2019-09-30 | 삼성전자주식회사 | 근거리 무선 통신 장치에서 전원을 제어하는 장치 및 방법 |
CN109379732B (zh) * | 2012-12-03 | 2021-11-23 | 索诺瓦公司 | 用于将音频信号无线流式传输到多个音频接收器设备的方法、系统 |
CN103746816B (zh) * | 2014-02-18 | 2017-11-28 | 飞天诚信科技股份有限公司 | 一种多功能认证设备及其工作方法 |
CN105405012A (zh) * | 2014-09-11 | 2016-03-16 | 苏州海博智能系统有限公司 | 智能ic卡及支付处理方法 |
CN104753681A (zh) * | 2015-03-31 | 2015-07-01 | 恒宝股份有限公司 | 一种动态口令认证方法及系统 |
US9660968B2 (en) * | 2015-09-25 | 2017-05-23 | Intel Corporation | Methods and apparatus for conveying a nonce via a human body communication conduit |
CN205405639U (zh) * | 2016-02-01 | 2016-07-27 | 泉州佳乐电器有限公司 | 基于云服务器的门禁系统 |
EP3255949A1 (en) * | 2016-06-07 | 2017-12-13 | Nxp B.V. | Configuring wireless communications according to multiple communication protocols |
CN105956852B (zh) * | 2016-06-21 | 2019-11-15 | 飞天诚信科技股份有限公司 | 一种蓝牙智能密钥设备及其工作方法 |
DE102016216562B4 (de) * | 2016-09-01 | 2021-08-12 | Continental Automotive Gmbh | Verfahren und Vorrichtung zum Orten eines mobilen Endgeräts insbesondere in Form eines Mobilfunkendgeräts für ein insbesondere zellulares Mobilfunknetz durch eine Vorrichtung seitens eines Kraftfahrzeugs |
CN106548054A (zh) * | 2016-10-13 | 2017-03-29 | 北京握奇智能科技有限公司 | 一种面向pc与移动终端的无驱个人密码管理方法及设备 |
US20180260557A1 (en) * | 2017-03-12 | 2018-09-13 | Paul Alexander Rockwell | System and method for managing and updating passwords to online services |
TWI652592B (zh) * | 2017-04-20 | 2019-03-01 | 周宏建 | Storage device and access control method thereof |
US11278668B2 (en) * | 2017-12-22 | 2022-03-22 | Glysens Incorporated | Analyte sensor and medicant delivery data evaluation and error reduction apparatus and methods |
CN108764924A (zh) * | 2018-05-31 | 2018-11-06 | 飞天诚信科技股份有限公司 | 一种免密emv接触交易的实现方法及装置 |
CN208207951U (zh) * | 2018-06-07 | 2018-12-07 | 合肥马道信息科技有限公司 | 一种自动切换开锁方式的动态密码锁系统 |
CN109005541B (zh) * | 2018-07-20 | 2019-12-06 | 北京海泰方圆科技股份有限公司 | 蓝牙连接方法、装置和系统 |
CN110730441B (zh) * | 2019-10-18 | 2021-07-02 | 飞天诚信科技股份有限公司 | 一种蓝牙设备及其工作方法 |
-
2019
- 2019-10-18 CN CN201910994617.2A patent/CN110730441B/zh active Active
-
2020
- 2020-09-03 US US17/297,013 patent/US11622253B2/en active Active
- 2020-09-03 WO PCT/CN2020/113294 patent/WO2021073300A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105827655A (zh) * | 2016-05-27 | 2016-08-03 | 飞天诚信科技股份有限公司 | 一种智能密钥设备及其工作方法 |
CN107463825A (zh) * | 2017-08-09 | 2017-12-12 | 纳思达股份有限公司 | 指纹登录设备及指纹登录方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2021073300A1 (zh) | 2021-04-22 |
CN110730441A (zh) | 2020-01-24 |
US11622253B2 (en) | 2023-04-04 |
US20220248198A1 (en) | 2022-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110730441B (zh) | 一种蓝牙设备及其工作方法 | |
EP3352412B1 (en) | Identity authentication method and device | |
US10637654B2 (en) | Smart key device and working method thereof | |
EP2963959B1 (en) | Method, configuration device, and wireless device for establishing connection between devices | |
CN105337740B (zh) | 一种身份验证方法、客户端、中继设备及服务器 | |
US20150312240A1 (en) | Wireless automatic pairing method, method of establishing connection, and wireless access point device | |
EP3319268A1 (en) | Identity information authentication method, user terminal, service terminal, authentication server, and service system | |
US10412266B2 (en) | Image processing apparatus, method of controlling the same, and storage medium | |
CN103747012A (zh) | 网络交易的安全验证方法、装置及系统 | |
US20160381011A1 (en) | Network security method and network security system | |
TWI680687B (zh) | 一種通信方法和裝置 | |
US11126702B2 (en) | Application login password input method and apparatus, and terminal | |
CN111683370B (zh) | 无线网络设备的接入认证方法、装置和系统 | |
CN114039734A (zh) | 设备重置方法和装置 | |
CN106685897B (zh) | 一种安全输入方法、装置和系统 | |
CN112311558A (zh) | 一种密钥设备的工作方法及密钥设备 | |
JP6294203B2 (ja) | 認証システム | |
CN105471580B (zh) | 一种复核签名方法和设备 | |
CN111148275A (zh) | 基于设备码的通信方法、装置及系统 | |
CN106713222A (zh) | 一种无线局域网络的接入认证方法、服务器和认证系统 | |
WO2011060739A1 (zh) | 一种安全系统及方法 | |
TWI705347B (zh) | 身份認證方法和設備 | |
CN115734221B (zh) | 物联网设备管理方法、设备、移动终端、装置及存储介质 | |
CN114205292B (zh) | 路由器拨号配置方法、装置、路由器、管理端和存储介质 | |
WO2019013647A1 (en) | AUTHENTICATION METHOD, AUTHENTICATION DEVICE, AND SYSTEM COMPRISING THE AUTHENTICATION DEVICE |
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 |