CN116208955A - 一种基于蓝牙连接的设备认证方法及装置 - Google Patents
一种基于蓝牙连接的设备认证方法及装置 Download PDFInfo
- Publication number
- CN116208955A CN116208955A CN202211734244.3A CN202211734244A CN116208955A CN 116208955 A CN116208955 A CN 116208955A CN 202211734244 A CN202211734244 A CN 202211734244A CN 116208955 A CN116208955 A CN 116208955A
- Authority
- CN
- China
- Prior art keywords
- data
- equipment
- bluetooth
- authentication
- signature
- 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.)
- Pending
Links
Images
Classifications
-
- 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/10—Integrity
- H04W12/106—Packet or message integrity
-
- 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 Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开了一种基于蓝牙连接的设备认证方法及装置,方法包括:第一设备确定并解析第二设备对应的蓝牙广播数据,获得第一数据,第一设备与第二设备建立蓝牙连接;第一设备基于第一数据生成待验证数据并发送给第二设备;第二设备利用自身保存的第一随机数对待验证数据进行验证,若验证成功,保持蓝牙连接,完成对第一设备的认证;第一设备向第二设备发送蓝牙特征值处理请求;第二设备获取目标数据并对目标数据进行签名生成签名结果,将签名结果作为响应结果返回给第一设备;第一设备对签名结果进行验签,若验签成功,保持蓝牙连接,完成对第二设备的认证。采用本申请提供的所述方法可以简化设备认证过程、提高认证速度。
Description
技术领域
本申请涉及信息安全技术领域,尤其涉及一种基于蓝牙连接的设备认证方法及装置。
背景技术
当前,采用蓝牙连接方式的设备之间进行双向认证时,是通过指令交互的方式完成身份认证,通过指令交互的设备认证方法过程繁琐,认证速度慢,如何提供一种简易的设备认证方法来提高认证速度成为亟待解决的技术问题。
发明内容
本申请实施例提供了一种基于蓝牙连接的设备认证方法及装置。所述技术方案如下:
第一方面,本申请实施例提供了一种基于蓝牙连接的设备认证方法,所述方法包括:
步骤S1:第一设备对扫描到的蓝牙广播数据进行解析,根据解析获得的蓝牙名称确定第二设备对应的蓝牙广播数据,所述第二设备对应的蓝牙广播数据中包含所述第二设备生成的第一随机数;
步骤S2:所述第一设备对所述第二设备对应的蓝牙广播数据进行解析,获得第一数据,所述第一设备与所述第二设备建立蓝牙连接;
步骤S3:所述第一设备基于解析获得的第一数据生成待验证数据,将所述待验证数据发送给所述第二设备;
步骤S4:所述第二设备利用自身保存的所述第一随机数对所述待验证数据进行验证,若验证成功,确定解析获得的第一数据是所述第二设备生成的第一随机数,保持蓝牙连接,完成对所述第一设备的认证,若验证失败,返回认证失败响应并断开蓝牙连接;
步骤S5:所述第一设备向所述第二设备发送蓝牙特征值处理请求,所述蓝牙特征值处理包括读取蓝牙特征值与写入蓝牙特征值;
步骤S6:所述第二设备获取目标数据,并对所述目标数据进行签名生成签名结果,将所述签名结果作为响应结果返回给所述第一设备;
步骤S7:所述第一设备对所述签名结果进行验签,若验签成功,保持蓝牙连接,完成对所述第二设备的认证,若验签失败,返回认证失败响应并断开蓝牙连接。
第二方面,本申请实施例提供了一种基于蓝牙连接的设备认证装置,所述装置应用于第一设备与第二设备中,所述装置包括数据扫描模块、数据解析模块、验证数据生成模块、第一认证模块、请求发送模块、签名生成模块、第二认证模块,其中,所述数据扫描模块、所述数据解析模块、所述验证数据生成模块、所述请求发送模块、所述第二认证模块应用于第一设备,所述第一认证模块、所述签名生成模块应用于第二设备;
所述数据扫描模块,用于对所述第一设备扫描到的蓝牙广播数据进行解析,根据解析获得的蓝牙名称确定所述第二设备对应的蓝牙广播数据,所述第二设备对应的蓝牙广播数据中包含所述第二设备生成的第一随机数;
所述数据解析模块,用于对所述第二设备对应的蓝牙广播数据进行解析,获得第一数据,所述第一设备与所述第二设备建立蓝牙连接;
所述验证数据生成模块,用于基于解析获得的第一数据生成待验证数据,将所述待验证数据发送给所述第二设备;
所述第一认证模块,用于利用自身保存的第一随机数对所述待验证数据进行验证,若验证成功,确定解析获得的第一数据是所述第二设备生成的第一随机数,保持蓝牙连接,完成对所述第一设备的认证,若验证失败,返回认证失败响应并断开蓝牙连接;
所述请求发送模块,用于向所述第二设备发送蓝牙特征值处理请求,所述蓝牙特征值处理请求包括读取蓝牙特征值与写入蓝牙特征值;
所述签名生成模块,用于获取目标数据,并对所述目标数据进行签名生成签名结果,将所述签名结果作为响应结果返回给所述第一设备;
所述第二认证模块,用于对所述签名结果进行验签,若验签成功,保持蓝牙连接,完成对所述第二设备的认证,若验签失败,返回认证失败响应并断开蓝牙连接。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项方法的步骤。
第四方面,本申请实施例提供了一种认证设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项方法的步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
本申请提供的基于蓝牙连接的设备认证方法,第二设备通过蓝牙广播将包含随机数的蓝牙广播数据广播出去,第一设备从接收的蓝牙广播数据中获得随机数从而实施设备身份认证,减少双方设备的交互,简化设备认证过程、提高认证速度,以及,本申请中第一设备是通过发送蓝牙特征值处理请求的方式来实现对第二设备的身份认证,可进一步优化蓝牙连接后的设备认证速度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种基于蓝牙连接的设备认证方法的流程示意图;
图2是本申请实施例提供的另一种基于蓝牙连接的设备认证方法的流程示意图;
图3至图4是本申请实施例提供的又一种基于蓝牙连接的设备认证方法的流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
下面对本申请实施例提供的基于蓝牙连接的设备认证方法进行详细介绍。
本申请提供的基于蓝牙连接的设备认证方法可以包括以下步骤:
步骤S-A1:第一设备对扫描到的蓝牙广播数据进行解析,根据解析获得的蓝牙名称确定第二设备对应的蓝牙广播数据,第二设备对应的蓝牙广播数据中包含第二设备生成的第一随机数;
步骤S-A2:第一设备对第二设备对应的蓝牙广播数据进行解析,获得第一数据,第一设备与第二设备建立蓝牙连接;
具体的,第一设备通过调用接口mBluetoothGatt=mBluetoothDevice.connectGatt(mContext,false,bluetoothGattCallback,BluetoothDevice.TRANSPORT_LE)与第二设备建立蓝牙连接。
步骤S-A3:第一设备基于解析获得的第一数据生成待验证数据,将待验证数据发送给第二设备;
步骤S-A4:第二设备利用自身保存的第一随机数对待验证数据进行验证,若验证成功,确定解析获得的第一数据是第二设备生成的第一随机数,保持蓝牙连接,完成对第一设备的认证,若验证失败,返回认证失败响应并断开蓝牙连接;
具体的,第一设备通过调用接口mBluetoothGatt.disconnect()与第二设备断开蓝牙连接。
步骤S-A5:第一设备向第二设备发送蓝牙特征值处理请求,蓝牙特征值处理包括读取蓝牙特征值与写入蓝牙特征值;
其中,读取蓝牙特征值与写入蓝牙特征值的处理操作不同,分别为:通过mBluetoothGatt.readCharacteristic(characteristic)对蓝牙特征值进行读取的操作;通过mBluetoothGatt.writeCharacteristic(characteristic)对蓝牙特征值进行写入的操作。
步骤S-A6:第二设备获取目标数据,并对目标数据进行签名生成签名结果,将签名结果作为响应结果返回给第一设备;
步骤S-A7:第一设备对签名结果进行验签,若验签成功,保持蓝牙连接,完成对第二设备的认证,若验签失败,返回认证失败响应并断开蓝牙连接。
本申请提供的基于蓝牙连接的设备认证方法,第二设备通过蓝牙广播将包含随机数的蓝牙广播数据广播出去,第一设备从接收的蓝牙广播数据中获得随机数从而实施设备身份认证,采用蓝牙广播随机数的方式可使双方设备减少一次交互,简化设备认证过程、提高认证速度,以及,本申请中第一设备是通过发送蓝牙特征值处理请求的方式来实现对第二设备的身份认证,可进一步优化蓝牙连接后的设备认证速度。
请参见图1,为本申请实施例提供的一种基于蓝牙连接的设备认证方法的流程示意图。
如图1所示,本申请实施例的所述方法可以包括以下步骤:
步骤S1-1:第二设备生成并保存第一随机数。
例如,第二设备生成的第一随机数为:
0x52,0x79,0x76,0x49,0x32,0x6A,0x49,0x59
步骤S1-2:第二设备将第一随机数作为会话密钥,并利用预先保存的第一公钥对会话密钥进行加密获得第一密文。
例如,第一公钥PUB2为:
123331
第一密文为:
0x16,0x1C,0x97,0x8C,0xB0,0x0B,0x65,0x0C,0x56,0x26,0xC0,0x51,0xFB,0x35,0x18,0x4A
步骤S1-3:第二设备基于第一密文组织蓝牙广播数据,开启蓝牙广播并对蓝牙广播数据进行广播。
例如,蓝牙广播数据为:
0D03000000800C25AAD6BE898E40231CF6F2965C67020102070946545F45 43521107161C978CB00B650C5626C051FB35184A47D05
其中数据字段包含:
接入地址:0x8E89BED6
蓝牙名称:0x46545F454352
广播地址:0x675C96F2F61C
广播携带服务UUID:0x161C978CB00B650C5626C051FB35184A;
0x161C978CB00B650C5626C051FB35184A即第一密文存储字段。
步骤S1:第一设备对扫描到的蓝牙广播数据进行解析,根据解析获得的蓝牙名称确定第二设备对应的蓝牙广播数据,第二设备对应的蓝牙广播数据中包含第二设备生成的第一随机数。
本申请实施例中,第一设备为终端,第二设备为数据接收方设备。
步骤S2:第一设备解析第二设备对应的蓝牙广播数据获得第一密文,利用内部保存的第一私钥对第一密文进行解密获得会话密钥并保存,第一设备与第二设备建立蓝牙连接。
例如,第一私钥PRV2为:
76895
特别指出的是,第一设备与第二设备建立蓝牙连接之后,还包括:
第二设备关闭蓝牙广播,重新生成第一随机数并保存,继续执行步骤S1-2至步骤S1-3。
第一设备与第二设备蓝牙连接成功后,第二设备需生成一个新的第一随机数用于下次广播。
例如,新的第一随机数为:
0x45,0x89,0x36,0xAB,0x24,0xE7,0x25,0x72
步骤S3:第一设备获取待处理的业务数据并利用预设补位规则对业务数据进行补位处理,利用自身保存的会话密钥对补位后的业务数据进行加密获得第二密文,将第二密文发送给第二设备。
例如,业务数据为:
7B227472616E735F74797065223A313030312C227472616E735F616D6F756E74223A312C226F726465725F6E6F223A223132333435363738227D
预设补位规则为:pkcs5补位。
第二密文为:
7ff3c308cd9529e6afb3ffe4976f5404cefdfb3f2b44ae617437b4f2feed59c47db4582a23fb7895912d09c05b76599b8acc668f5a6a7c531575526506cfa8e2
蓝牙数据传输为:
0d031c3e0210091d554bd045a6121b17000400522d0055aa0001 00407ff3c308cd9529e6afb3ffe4976fd15d48
0d031c3e0210091d554bd045a61e1b17000400522d005404cefd fb3f2b44ae617437b4f2feed59c47db4524657
0d031c3e0210091d554bd045a6121b17000400522d00582a23fb7895912d09c05b76599b8acc668f5a6a4dcc42
0d031c3e02100917554bd045a60e1511000400522d007c531575526506cfa8e29200cc3376eb16
蓝牙传输采用分包发送,每次最大字节数为20字节,其中0x2d00字节后为传输数据。
步骤S4:第二设备利用自身保存的会话密钥对第二密文进行解密,若解密成功,判断解密数据是否符合预设补位规则,若符合,则确定解密获得的第一数据是第二设备生成的第一随机数,完成对第一设备的认证,保持蓝牙连接并根据解密数据进行业务处理,若不符合,返回认证失败响应并断开蓝牙连接,若解密失败,返回认证失败响应并断开蓝牙连接。
步骤S5:第一设备向第二设备发送蓝牙特征值读取请求。
步骤S6:第二设备获取第一时间,利用内部保存的第二私钥对第一时间进行签名生成第一签名数据,将第一签名数据作为响应结果返回给第一设备,第一时间为第二设备的当前时间。
例如,第一时间为:
20221031143030
第二私钥PRV1为:
EFF98C89E2AB7EE72DD33E899AA61DB58B7D922AD1F90502EFF06B5EC1BBC87FD741B843C08BD3D49346B5C61DF471AAB7C69497AC476FBEF88FAD712E1C93ABA564B36EE778A0C5B3C08E3A90FF20379FC0D80CC53546AE3C064DC6254EA8E3BB173587C10C716AC1E99192BBB5C17D8A1117B0B901A99DCCD58CEFFEA83A89
第一签名数据为:
59AF0D55A5990588C66705A2400338EB23E810F22E5090E30030B60A29520ABECD0385D3CE03FA33E2030A37A418E389CF8858E240B5F752266F6D998BDE77F2E706DF93D0AC7A7F932947D22F33D45617EB1CE7B04DD5CDEDFA569DADB14CB26DA2CDC682E98FF1FEBAE2F4F0DF8011DF996654AF51C9BE39E4B8B105C17CB6
步骤S7:第一设备获取第二时间,利用预先保存的第二公钥、第二时间对第一签名数据进行验签,若验签成功,保持蓝牙连接,完成对第二设备的认证,若验签失败,返回认证失败响应并断开蓝牙连接,第二时间为第一设备的当前时间。
例如,第二公钥PUB1为:
9B0A3D43386F220579CD8BA15B3E91712E1F251ED591FAE55F2354DF41FD847C198B5394F2991063295129205624EA2DF4339E14E360D4950BA71E60A2B37E65E27A6ED2178F534054172073BB1FE18938A56BCD6B13F1BA60C2843D87E4013E04EDD068A885D9D3F69C0B9703F2611B69D2B02B9E1226177EEC73EDB8F7C483
本申请提供的基于蓝牙连接的设备认证方法,第二设备通过蓝牙广播将包含随机数的蓝牙广播数据广播出去,第一设备从接收的蓝牙广播数据中获得随机数从而实施设备身份认证,采用蓝牙广播随机数的方式可使双方设备减少一次交互,简化设备认证过程、提高认证速度,以及,本申请中第一设备是通过读取第二设备蓝牙特征值的方式来实现对第二设备的身份认证,蓝牙广播随机数、读取第二设备蓝牙特征值这两种交互方式,均为不带数据的交互,可进一步优化蓝牙连接后的设备认证速度。
请参见图2,为本申请实施例提供的另一种基于蓝牙连接的设备认证方法的流程示意图。
如图2所示,本申请实施例的所述方法可以包括以下步骤:
步骤S11:第一设备对扫描到的蓝牙广播数据进行解析,根据解析获得的蓝牙名称确定第二设备对应的蓝牙广播数据,第二设备对应的蓝牙广播数据中包含第二设备生成的第一随机数。
步骤S12:第一设备对第二设备对应的蓝牙广播数据进行解析,获得第一数据,第一设备与第二设备建立蓝牙连接。
可选实施例中,第一设备与第二设备建立蓝牙连接,包括:
步骤S12-1:第一设备与第二设备进行蓝牙配对,若配对成功,第一设备与第二设备建立单向蓝牙连接,执行步骤S12-2,否则,返回认证失败响应;
步骤S12-2:第二设备调用目标接口进行蓝牙连接,若连接成功,第二设备与第一设备建立双向蓝牙连接,执行步骤S13,否则,返回双向蓝牙连接失败响应,执行步骤S13。
具体的,第二设备通过调用接口mBluetoothGattServer.connect(device,false)与第一设备建立蓝牙连接。
基于步骤S12-1的蓝牙成功连接结果,第二设备可获取到已连接的设备对象并通过调用目标接口与第一设备进行双向蓝牙连接。
双向蓝牙连接可使第二设备监听到蓝牙断连状态。
当第二设备通过接口未能与第一设备成功建立蓝牙连接时,第一设备与第二设备仍可通过步骤S13之后的处理过程完成双向认证。
第二设备调用的目标接口例如为:
BluetoothGattServer.connect(BluetoothDevice,false)
步骤S13:第一设备获取预先保存的第一私钥,利用第一私钥对解析获得的第一数据进行签名,得到第二签名数据。
例如,第一私钥为:
FB6CDDC4E85A83EF110FAAEE7FB206819534F074A2739DF799F7EACC4C1E43BDF794394CB6890FA5F789CD987498547671B83D3E166754094F04C1851E161C978CB00B650C5626C051FB335CE1891BC1DB5306F4FB572323416E049 01BAFAE05E7C57576266809C970CB616B5DA44A14166458AA95A9849114870 40A7B2A8BA3
第二签名数据为:
84AA465953B82387AB55692F4E79E626FE0CE2536238F2B7FAF985420088CF32C8684325A4603C9DE0D24555AA09A5CDC27AFBAE84D0E09BA13E3093D017803751AB842C7DA9B6D8A392308748634DC65725A2B1C897EC04101673AE3FC6381CD3A5E3A7CC5DEBC4A575D152111A6F7E1810E95B03EF4C7FC1D66EDD495F0073
步骤S14:第一设备生成第二随机数并保存,对第二签名数据以及第二随机数进行组装获得第一报文,将第一报文发送给第二设备。
例如,第二随机数为:
0x4A,0x4C,0x36,0x6A,0x33,0x43,0x34,0x43
第一报文为:
84AA465953B82387AB55692F4E79E626FE0CE2536238F2B7FAF985420088CF32C8684325A4603C9DE0D24555AA09A5CDC27AFBAE84D0E09BA13E3093D017803751AB842C7DA9B6D8A392308748634DC65725A2B1C897EC04101673AE3FC6381CD3A5E3A7CC5DEBC4A575D152111A6F7E1810E95B03EF4C7FC1D66EDD495F00734A4C366A33433443
步骤S15:第二设备解析第一报文获得第二签名数据与第二数据,利用预先保存的第一公钥、内部存储的第一随机数对解析获得的第二签名数据进行验签,若验签成功,确定解析获得的第一数据是第二设备生成的第一随机数,完成对第一设备的认证,保存解析获得的第二数据并保持蓝牙连接,若验签失败,返回认证失败响应并断开蓝牙连接。
例如,第一公钥为:
8A2C6F511209EA13C731A26B3A4C759F3E80C553F3B1A3F33BEEFF7872 00155457B200FEB989566B97B9C902BBAB39AC7F5A5574BDC71B55BECAF6131B03A4FA2CBFCA0E854EFE142BC1FBBA49DAA487409BACC6C05B10C42B10FEF972535019859186EF4898C73EB63E7FBC198DA711054E5EAC719F18AEF F56885B67603125
利用预先保存的第一公钥、内部存储的第一随机数对解析获得的第二签名数据进行验签,具体包括:
第二设备利用预先保存的第一公钥对解析获得的第二签名数据进行解密,获得第一哈希值;
第二设备对内部存储的第一随机数进行哈希运算,获得第二哈希值;
第二设备判断第一哈希值与第二哈希值是否相同,若相同,则验签成功,保存解析获得的第二随机数并保持蓝牙连接,完成对第一设备的认证,若不相同,则验签失败,返回认证失败响应并断开蓝牙连接。
具体的,第二设备通过调用接口mBluetoothGattServer.cancelConnection(entry.getValue())与第一设备断开蓝牙连接。
步骤S16:第一设备向第二设备发送蓝牙特征值读取请求。
步骤S17:第二设备利用预先保存的第二私钥对解析获得的第二数据进行签名生成第三签名数据,将第三签名数据作为响应结果返回给第一设备。
例如,第三签名数据为:
E9B0B9D2257CBACC49202D6DA7772957EBEBDA17414967EBCB49965BE91A0D6D8FAD36BE1FA424A213BFE0088401792AA269793403E7C0808D1FC572E217973E543B86F6684F1697CEF8047BA05EC31969FF42B724489221E9FD69D808EE1515F4B7A34CD9C52D250D2DFA76E4F0B5E0E99313872ACB81634705B2BA3C16B023
步骤S18:第一设备利用预先保存的第二公钥、内部存储的第二随机数对第三签名数据进行验签,若验签成功,确定解析获得的第二数据是第一设备生成的第二随机数,保持蓝牙连接,完成对第二设备的认证,若验签失败,返回认证失败响应并断开蓝牙连接。
本步骤第三签名数据的验签过程具体可参考步骤S15,此处不再赘述。
本申请提供的基于蓝牙连接的设备认证方法,第二设备通过蓝牙广播将包含随机数的蓝牙广播数据广播出去,第一设备从接收的蓝牙广播数据中获得随机数从而实施设备身份认证,采用蓝牙广播随机数的方式可使双方设备减少一次交互,简化设备认证过程、提高认证速度,以及,本申请中第一设备通过读取第二设备蓝牙特征值的方式来实现对第二设备的身份认证,蓝牙广播随机数、读取第二设备蓝牙特征值这两种交互方式,均为不带数据的交互,可进一步优化蓝牙连接后的设备认证速度。
请参见图3至图4,为本申请实施例提供的又一种基于蓝牙连接的设备认证方法的流程示意图。
本实施例包含设备认证前的密钥交换过程。
如图3至图4所示,本实施例方法包括以下步骤:
步骤S21:第一设备对扫描到的蓝牙广播数据进行解析,根据解析获得的蓝牙名称确定第二设备对应的蓝牙广播数据,第二设备对应的蓝牙广播数据中包含第二设备生成的第一随机数。
可选实施例中,步骤S21之前,还包括:
步骤S21-1:第二设备生成第一随机数并保存。
例如,第二设备生成的第一随机数为:
0x52,0x79,0x76,0x49,0x32,0x6A,0x49,0x59
步骤S21-2:第二设备获取第二设备标识,对第一随机数以及第二设备标识进行拼接处理获得拼接结果,基于拼接结果组织蓝牙广播数据。
步骤S21-3:第二设备开启蓝牙广播并对蓝牙广播数据进行广播。
步骤S22:第一设备对第二设备对应的蓝牙广播数据进行解析,获得第二设备标识以及第一数据并保存,第一设备与第二设备建立蓝牙连接。
特别指出的是,第一设备与第二设备建立蓝牙连接之后,还包括:
第二设备关闭蓝牙广播,重新生成第一随机数并保存,继续执行步骤S21-2至步骤S21-3。
第一设备与第二设备蓝牙连接成功后,第二设备需生成一个新的第一随机数用于下次广播。
步骤S23:第一设备生成第一公钥与第一私钥并保存。
步骤S24:第一设备获取第一设备标识以及预置公钥,利用预置公钥对第一设备标识与第一公钥进行加密获得第三密文,将第三密文发送给第二设备。
例如,第一设备标识为:
0x56,0x65,0x03,0xF0,0x56,0x60
预置公钥为:
BD96AE42F4AF67BD3C5E54FBB5928020FC7B8F3FFA115D9C7C20F2DD7AFA34411E3251D11758D92443AD45B6C8295A757C5820316D00DE0391F14A5430DE23F8CB3C2CAD9724EE92A13A9AFD213E34A79F1E07D4A2D716B45D14 4E8E23F133A4A7B824F1803BBDE5D6313BC096A8426EC346435D3BC2C482015CDE1F660C1EFD
第三密文为:
81E8D6145F5930B477ACD16B8AFFD8C64D4CB6F362B1A5D1EE25AC59D2448F1C537E2EBA1AC739E6500F4B2F1B15E44F0DCB32E32FFE2A4EDD842276BC020AF762981755F20C22BDFA03BBA023563B9EF8A4B96F4B12CAE92391BD872357A76897E5EC0373531AB4574D14F74F437B23D5D4C86C00443688CF8D1DB64573F149
步骤S25:第二设备获取预置私钥,并利用预置私钥解密第三密文获得第一设备标识与第一公钥,根据解密获得的第一设备标识确定待认证设备信息,对待认证设备信息进行显示。
例如,预置私钥为:
FA7554B7FB900067E23B94B02BC118187AE5D3375BFDCFD1A7826FA089E30506FD6505603743C0B3DDB39E1BCCC065A14308297AD2788CE609081AC690A205EBC1C890DCD87EC24B315AD5339D5039660D82088DF2CA675961127DE40E6B8AC13B65597569EE8D02BB11B9D10EAD55B90D2A696DCB3E450B72EB49BAA2C0ACB7
本实施例中的预置公私钥是预先写死在设备中的。
例如,待认证设备信息包含第一设备名称等。
步骤S26:第二设备判断是否接收到用户针对待认证设备信息输入的确认操作,若是,执行步骤S27,若否,返回认证失败响应并断开蓝牙连接。
步骤S27:第二设备生成第二公钥、第二私钥与会话密钥,将第二公钥、第二私钥、会话密钥与解密获得的第一设备标识对应保存,利用预置私钥对第二公钥进行签名生成第四签名数据,利用解密获得的第一公钥对会话密钥进行加密获得第四密文,组装第二公钥、第四签名数据以及第四密文生成第二报文发送给第一设备。
例如,会话密钥为:
BA27E8106C2100B60F8100F104CE7E32FF3A2EE6AF40C7CA
第四签名数据为:
0CBFC7E90AB40C9DB5D045F593CBED1E376B9F11446630C9CADAFAA7018820AF75CCC73D74C00F59C0C3A8C99BA7665F38490784FBC944E171FC3FA473C691B81A517347B022DE6D52F2FAC1D239F5E81A8A4F072CD38C829FC DB9CADF81D53EF86081AAD24AA261A4A06D8265B08B6B81C9FD66DAE5F2A2B0D3382609C88781
第四密文为:
36A43F0DF760860A169C770317C813BF1B986188AED490541420857C9AC5FE7B141D2AF956A7683F19FE1410B9A2A530ED0CC00EF2366FCDB3ED23A6D27967F0C481D1966C7388535064898DBE9575828C8BFE0D765FEE672FEB2D80D38E8A3BEFE679A451D8BF96D9C6E2D8BF149F985DFBD19A930EBFA28F2FC887A21DADF3
步骤S28:第一设备解析第二报文获得第二公钥、第四签名数据以及第四密文,利用预置公钥与解析获得的第二公钥对解析获得的第四签名数据进行验签,若验签成功,保存解析获得的第二公钥,完成密钥交换,执行步骤S29,若验签失败,返回认证失败响应并断开蓝牙连接。
利用预置公钥与解析获得的第二公钥对解析获得的第四签名数据进行验签,具体包括:
步骤S28-1:第一设备利用预置公钥对解析获得的第四签名数据进行解密,获得第三哈希值;
步骤S28-2:第一设备对解析获得的第二公钥进行哈希运算,获得第四哈希值;
步骤S28-3:第一设备判断第三哈希值与第四哈希值是否相同,若相同,则验签成功,保存解析获得的第二公钥,完成密钥交换,执行步骤S29,若不相同,则验签失败,返回认证失败响应并断开蓝牙连接。
要说明的是,密钥交换(即步骤S23至步骤S28)是双方设备初次建立蓝牙连接时需要执行的操作,双方设备后续再建立蓝牙连接时无需再进行密钥交换,直接执行认证操作(步骤S29至步骤S34)即可。
步骤S29:第一设备利用第一私钥对解析获得的第四密文进行解密,获得会话密钥并保存,利用第一私钥对保存的第一随机数进行签名生成第五签名数据。
例如,第五签名数据为:
35681449630CD46F48EF42FE9C27FFCA52306C2B05AE45D7E2219299A7A116AE51DF0E62C02C6DD1A2A2E8F510A35E8DDB479C21EAECA9A27D2E61 099C1303FCFB1B9DE27F1C6D0C603CB56B8CD85C79D29E8874E888E9720D851A861BF721FFFA9060D5DB36DD1C8AC7A3B82848969BBFD41B1B5DCD1B9E7BBCEAB725A07E2B
步骤S30:第一设备生成第二随机数并保存,利用解密获得的会话密钥对第五签名数据以及第二随机数进行加密获得第三密文,将第三密文发送给第二设备。
例如,第二随机数为:
0x4A,0x4C,0x36,0x6A,0x33,0x43,0x34,0x43
第三密文为:
69504176377D339CD9BA181FB20B742356F899084B21BCE27FAD6132299 49AEA735745E99F7928422F181FDC72A030C20F351509F85A60556BF64E51400 37FD7EBDC0CF7A05555BC657419C763C9744AC4B874C95D2E72FF825B82E9EF85E1B30100F7C992DCFD7711402E2236C1E5B468F7D85D61079C21077A39FC30D0CAA579313438534D4732
步骤S31:第二设备利用会话密钥对第三密文进行解密获得第五签名数据与第二数据,利用第一公钥、内部保存的第一随机数对解密获得的第五签名数据进行验签,若验签成功,确定解析获得的第一数据是第二设备生成的第一随机数,保存解密获得的第二数据并保持蓝牙连接,完成对第一设备的认证,若验签失败,返回认证失败响应并断开蓝牙连接。
步骤S32:第一设备向第二设备发送蓝牙特征值读取请求。
步骤S33:第二设备利用第二私钥对解密获得的第二数据进行签名生成第六签名数据,利用会话密钥对第六签名数据进行加密,获得第四密文,将第四密文作为响应结果返回给第一设备。
例如,第三签名数据为:
A11BD8910A4B40819577ECB633CFAEE00D15BB7C47371AE67E2FCDE04CDA8E08165C7C4F06A0543488D5996279B7A71F4EA98BC0584F396A2EF1A9407B5B27F447769D45F8FF6495F38CD9598ACAFBF10BC2B80646DCE4D81A07CFA0EA1BEB37A6BF083D1D4000B2BE2F97F5C5E6922224F16B1E5E7CA7652D69B3894BD11683
第四密文为:
9D4C99C63FA4B99CECA4583E069455483F637FF8B500E7D1A87BCE72A8226195BA36D1DEF3A13CA27F3A5365610DB26477BFC47F710334F3EE1FA27C3EA1E4ED340AD3FE621ED2DD3C726D828D085990FC623E8A1E3B4A655A9193FD39D80896C6A9D5E0CB1C5851723CFA702A282DDE67923CDD4D65B67C250155E7D577B8D1
步骤S34:第一设备利用保存的会话密钥对第四密文进行解密获得第六签名数据,利用解析获得的第二公钥、内部保存的第二随机数对解密获得的第六签名数据进行验签,若验签成功,确定解密获得的第二数据是第一设备生成的第二随机数,保持蓝牙连接,完成对第二设备的认证,若验签失败,返回认证失败响应并断开蓝牙连接。
对第六签名数据的验签过程具体可参考步骤S28或步骤S31,此处不再赘述。
要说明的是,密钥交换与设备认证是两个相互独立的过程,其中,密钥交换过程仅在双方设备初次建立蓝牙连接时实施;设备认证包含第二设备对第一设备的认证(即步骤S19至步骤S21)、第一设备对第二设备进行认证(即步骤S22至步骤S24),第二设备对第一设备进行认证为设备处理业务前的必要认证步骤,第一设备对第二设备进行认证为设备处理业务前的非必要认证步骤(即第一设备对第二设备可认证、可不认证)。
本申请提供的基于蓝牙连接的设备认证方法,第二设备通过蓝牙广播将包含随机数的蓝牙广播数据广播出去,第一设备从接收的蓝牙广播数据中获得随机数从而实施设备身份认证,采用蓝牙广播随机数的方式可使双方设备减少一次交互,简化设备认证过程、提高认证速度,以及,本申请中第一设备通过读取第二设备蓝牙特征值的方式来实现对第二设备的身份认证,蓝牙广播随机数、读取第二设备蓝牙特征值这两种交互方式,均为不带数据的交互,可进一步优化蓝牙连接后的设备认证速度。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
本申请实施例提供的基于蓝牙连接的设备认证装置应用于第一设备与第二设备中,所述装置包括数据扫描模块、数据解析模块、验证数据生成模块、第一认证模块、请求发送模块、签名生成模块、第二认证模块,其中,所述数据扫描模块、所述数据解析模块、所述验证数据生成模块、所述请求发送模块、所述第二认证模块应用于第一设备,所述第一认证模块、所述签名生成模块应用于第二设备;
所述数据扫描模块,用于第一设备对扫描到的蓝牙广播数据进行解析,根据解析获得的蓝牙名称确定第二设备对应的蓝牙广播数据,所述第二设备对应的蓝牙广播数据中包含所述第二设备生成的第一随机数;
所述数据解析模块,用于对所述第二设备对应的蓝牙广播数据进行解析,获得第一数据,所述第一设备与所述第二设备建立蓝牙连接;
所述验证数据生成模块,用于基于解析获得的第一数据生成待验证数据,将所述待验证数据发送给所述第二设备;
所述第一认证模块,用于利用自身保存的第一随机数对所述待验证数据进行验证,若验证成功,确定解析获得的第一数据是所述第二设备生成的第一随机数,保持蓝牙连接,完成对所述第一设备的认证,若验证失败,返回认证失败响应并断开蓝牙连接;
所述请求发送模块,用于向所述第二设备发送蓝牙特征值处理请求,所述蓝牙特征值处理请求包括读取蓝牙特征值与写入蓝牙特征值;
所述签名生成模块,用于获取目标数据,并对所述目标数据进行签名生成签名结果,将所述签名结果作为响应结果返回给所述第一设备;
所述第二认证模块,用于对所述签名结果进行验签,若验签成功,保持蓝牙连接,完成对所述第二设备的认证,若验签失败,返回认证失败响应并断开蓝牙连接。
可选实施例中,所述数据解析模块用于:
解析所述第二设备对应的蓝牙广播数据获得第一密文,利用内部保存的第一私钥对所述第一密文进行解密获得第一数据,第一设备与第二设备建立蓝牙连接;
所述验证数据生成模块用于:
获取待处理的业务数据,并利用预设补位规则对所述业务数据进行补位处理,利用解密获得的第一数据对补位后的业务数据进行加密,获得第二密文,将所述第二密文发送给所述第二设备;
所述第一认证模块用于:
利用自身保存的第一随机数对所述第二密文进行解密,若解密成功,判断解密数据是否符合预设补位规则,若符合,则确定解密获得的第一数据是所述第二设备生成的第一随机数,完成对第一设备的认证,保持蓝牙连接并根据解密数据进行业务处理,若不符合,返回认证失败响应并断开蓝牙连接,若解密失败,返回认证失败响应并断开蓝牙连接。
可选实施例中,所述目标数据具体为第一时间,所述签名生成模块用于:
获取第一时间,利用内部保存的第二私钥对所述第一时间进行签名生成第一签名数据,将所述第一签名数据作为响应结果返回给所述第一设备,所述第一时间为所述第二设备的当前时间;
所述第二认证模块用于:
获取第二时间,利用预先保存的第二公钥、第二时间对所述第一签名数据进行验签,若验签成功,保持蓝牙连接,完成对所述第二设备的认证,若验签失败,返回认证失败响应并断开蓝牙连接,所述第二时间为所述第一设备的当前时间。
可选实施例中,所述装置还包括随机数生成模块、密文生成模块、数据广播模块,所述随机数生成模块、所述密文生成模块、所述数据广播模块用于第二设备:
所述随机数生成模块,用于生成第一随机数并保存;
所述密文生成模块,用于利用预先保存的第一公钥对所述第一随机数进行加密获得第一密文;
所述数据广播模块,用于基于所述第一密文组织蓝牙广播数据,开启蓝牙广播并对所述蓝牙广播数据进行广播。
可选实施例中,所述数据解析模块还用于:
关闭蓝牙广播,重新生成第一随机数并保存,触发所述密文生成模块与所述数据广播模块。
可选实施例中,所述数据解析模块包括:
配对单元,用于进行蓝牙配对,若配对成功,所述第一设备与所述第二设备建立单向蓝牙连接,触发连接单元,否则,返回认证失败响应;
所述连接单元,用于调用目标接口进行蓝牙连接,若连接成功,所述第二设备与所述第一设备建立双向蓝牙连接,触发所述验证数据生成模块,否则,返回双向蓝牙连接失败响应,触发所述验证数据生成模块。
可选实施例中,所述验证数据生成模块用于:
获取预先保存的第一私钥,利用所述第一私钥对解析获得的第一数据进行签名,得到第二签名数据;
生成第二随机数并保存,并对所述第二签名数据和所述第二随机数进行组装获得第一报文,将所述第一报文发送给第二设备;
所述第一认证模块用于:
解析所述第一报文获得第二签名数据与第二数据,利用预先保存的第一公钥、内部存储的第一随机数对解析获得的第二签名数据进行验签,若验签成功,确定解析获得的第一数据是所述第二设备生成的第一随机数,完成对第一设备的认证,保存解析获得的第二数据并保持蓝牙连接,若验签失败,返回认证失败响应并断开蓝牙连接。
可选实施例中,所述第一认证模块用于:
解析所述第一报文获得第二签名数据与第二数据,利用预先保存的第一公钥对解析获得的第二签名数据进行解密,获得第一哈希值;
对内部存储的第一随机数进行哈希运算,获得第二哈希值;
判断第一哈希值与第二哈希值是否相同,若相同,则验签成功,确定解析获得的第一数据是所述第二设备生成的第一随机数,完成对第一设备的认证,保存解析获得的第二数据并保持蓝牙连接,若不相同,则验签失败,返回认证失败响应并断开蓝牙连接。
可选实施例中,所述目标数据具体为解析获得的第二数据,所述签名生成模块用于:
利用预先保存的第二私钥对解析获得的第二数据进行签名生成第三签名数据,将所述第三签名数据作为响应结果返回给所述第一设备;
所述第二认证模块用于:
利用预先保存的第二公钥、内部存储的第二随机数对所述第三签名数据进行验签,若验签成功,确定解析获得的第二数据是所述第一设备生成的第二随机数,保持蓝牙连接,完成对所述第二设备的认证,若验签失败,返回认证失败响应并断开蓝牙连接。
需要说明的是,上述实施例提供的基于蓝牙连接的设备认证装置在执行基于蓝牙连接的设备认证方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于蓝牙连接的设备认证装置与基于蓝牙连接的设备认证方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请提供的基于蓝牙连接的设备认证装置,第二设备通过蓝牙广播将包含随机数的蓝牙广播数据广播出去,第一设备从接收的蓝牙广播数据中获得随机数从而实施设备身份认证,采用蓝牙广播随机数的方式可使双方设备减少一次交互,简化设备认证过程、提高认证速度,以及,本申请中第一设备是通过读取第二设备蓝牙特征值的方式来实现对第二设备的身份认证,可进一步优化蓝牙连接后的设备认证速度。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一实施例方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。
本申请实施例还提供了一种认证设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任一实施例方法的步骤。
本申请实施例提供了一种认证设备包括:处理器和存储器。
本申请实施例中,处理器为计算机系统的控制中心,可以是实体机的处理器,也可以是虚拟机的处理器。处理器可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器可以采用DSP(DigitalSignalProcessing,数字信号处理)、FPGA(Field-ProgrammableGateArray,现场可编程门阵列)、PLA(ProgrammableLogicArray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(CentralProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。
存储器可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在本申请的一些实施例中,存储器中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器所执行以实现本申请实施例中的方法。
一些实施例中,认证设备还包括有:外围设备接口和至少一个外围设备。处理器、存储器和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。具体地,外围设备包括:显示屏、摄像头和音频电路中的至少一种。
外围设备接口可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器和存储器。在本申请的一些实施例中,处理器、存储器和外围设备接口被集成在同一芯片或电路板上;在本申请的一些其他实施例中,处理器、存储器和外围设备接口中的任意一个或两个可以在单独的芯片或电路板上实现。本申请实施例对此不作具体限定。
显示屏用于显示UI(UserInterface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏是触摸显示屏时,显示屏还具有采集在显示屏的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器进行处理。此时,显示屏还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在本申请的一些实施例中,显示屏可以为一个,设置于认证设备的前面板;在本申请的另一些实施例中,显示屏可以为至少两个,分别设置在认证设备的不同表面或呈折叠设计;在本申请的再一些实施例中,显示屏可以是柔性显示屏,设置在认证设备的弯曲表面上或折叠面上。甚至,显示屏还可以设置成非矩形的不规则图形,也即异形屏。显示屏可以采用LCD(LiquidCrystalDisplay,液晶显示屏)、OLED(OrganicLight-EmittingDiode,有机发光二极管)等材质制备。
摄像头用于采集图像或视频。可选地,摄像头包括前置摄像头和后置摄像头。通常,前置摄像头设置在客户端的前面板,后置摄像头设置在客户端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在本申请的一些实施例中,摄像头还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器进行处理。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在认证设备的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。
电源用于为认证设备中的各个组件进行供电。电源可以是交流电、直流电、一次性电池或可充电电池。当电源包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
本申请实施例中示出的客户端结构框图并不构成对认证设备的限定,认证设备可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在本申请中,术语“第一”、“第二”等仅用于描述的目的,而不能理解为指示或暗示相对重要性或顺序;术语“多个”则指两个或两个以上,除非另有明确的限定。术语“安装”、“相连”、“连接”、“固定”等术语均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;“相连”可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
本申请的描述中,需要理解的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或单元必须具有特定的方向、以特定的方位构造和操作,因此,不能理解为对本申请的限制。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (12)
1.一种基于蓝牙连接的设备认证方法,其特征在于,所述方法包括:
步骤S1:第一设备对扫描到的蓝牙广播数据进行解析,根据解析获得的蓝牙名称确定第二设备对应的蓝牙广播数据,所述第二设备对应的蓝牙广播数据中包含所述第二设备生成的第一随机数;
步骤S2:所述第一设备对所述第二设备对应的蓝牙广播数据进行解析,获得第一数据,所述第一设备与所述第二设备建立蓝牙连接;
步骤S3:所述第一设备基于解析获得的第一数据生成待验证数据,将所述待验证数据发送给所述第二设备;
步骤S4:所述第二设备利用自身保存的所述第一随机数对所述待验证数据进行验证,若验证成功,则第一设备解析获得的第一数据是所述第二设备生成的第一随机数,保持蓝牙连接,完成对所述第一设备的认证,若验证失败,返回认证失败响应并断开蓝牙连接;
步骤S5:所述第一设备向所述第二设备发送蓝牙特征值处理请求,所述蓝牙特征值处理包括读取蓝牙特征值与写入蓝牙特征值;
步骤S6:所述第二设备获取目标数据,并对所述目标数据进行签名生成签名结果,将所述签名结果作为响应结果返回给所述第一设备;
步骤S7:所述第一设备对所述签名结果进行验签,若验签成功,保持蓝牙连接,完成对所述第二设备的认证,若验签失败,返回认证失败响应并断开蓝牙连接。
2.根据权利要求1所述的方法,其特征在于,所述步骤S2包括:
所述第一设备解析所述第二设备对应的蓝牙广播数据获得第一密文,利用内部保存的第一私钥对所述第一密文进行解密获得第一数据,所述第一设备与所述第二设备建立蓝牙连接;
所述步骤S3包括:
所述第一设备获取待处理的业务数据,并利用预设补位规则对所述业务数据进行补位处理,利用解密获得的第一数据对补位后的业务数据进行加密,获得第二密文,将所述第二密文发送给所述第二设备;
所述步骤S4包括:
所述第二设备利用自身保存的所述第一随机数对所述第二密文进行解密,若解密成功,判断解密数据是否符合预设补位规则,若符合,则完成对第一设备的认证,保持蓝牙连接并根据所述解密数据进行业务处理,若不符合,返回认证失败响应并断开蓝牙连接,若解密失败,返回认证失败响应并断开蓝牙连接。
3.根据权利要求1所述的方法,其特征在于,所述目标数据具体为第一时间,所述步骤S6包括:
所述第二设备获取第一时间,利用内部保存的第二私钥对所述第一时间进行签名生成第一签名数据,将所述第一签名数据作为响应结果返回给所述第一设备,所述第一时间为所述第二设备的当前时间;
所述步骤S7包括:
所述第一设备获取第二时间,利用预先保存的第二公钥、所述第二时间对所述第一签名数据进行验签,若验签成功,保持蓝牙连接,完成对所述第二设备的认证,若验签失败,返回认证失败响应并断开蓝牙连接,所述第二时间为所述第一设备的当前时间。
4.根据权利要求2所述的方法,其特征在于,所述步骤S1之前还包括:
步骤S1-1:所述第二设备生成第一随机数并保存;
步骤S1-2:所述第二设备利用预先保存的第一公钥对所述第一随机数进行加密获得第一随机数的密文;
步骤S1-3:所述第二设备基于所述第一随机数的密文组织所述蓝牙广播数据,开启蓝牙广播并对所述蓝牙广播数据进行广播。
5.根据权利要求4所述的方法,其特征在于,所述第一设备与所述第二设备建立蓝牙连接之后,还包括:
所述第二设备关闭蓝牙广播,重新生成第一随机数并保存,继续执行步骤S1-2至步骤S1-3。
6.根据权利要求1所述的方法,其特征在于,所述第一设备与所述第二设备建立蓝牙连接,包括:
步骤S2-1:所述第一设备与所述第二设备进行蓝牙配对,若配对成功,所述第一设备与所述第二设备建立单向蓝牙连接,执行步骤S2-2,否则,返回认证失败响应;
步骤S2-2:所述第二设备调用目标接口进行蓝牙连接,若连接成功,所述第二设备与所述第一设备建立双向蓝牙连接,执行步骤S3,否则,返回双向蓝牙连接失败响应,执行步骤S3。
7.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:
所述第一设备获取预先保存的第一私钥,利用所述第一私钥对解析获得的第一数据进行签名,得到第二签名数据;
所述第一设备生成第二随机数并保存,并对所述第二签名数据和所述第二随机数进行组装获得第一报文,将所述第一报文发送给第二设备;
所述步骤S4包括:
所述第二设备解析所述第一报文获得第二签名数据与第二数据,利用预先保存的第一公钥、内部存储的第一随机数对解析获得的第二签名数据进行验签,若验签成功,则第一设备解析获得的第一数据是所述第二设备生成的第一随机数,完成对所述第一设备的认证,保存解析获得的第二数据并保持蓝牙连接,若验签失败,返回认证失败响应并断开蓝牙连接。
8.根据权利要求7所述的方法,其特征在于,所述步骤S4具体包括:
所述第二设备解析所述第一报文获得第二签名数据与第二数据,利用预先保存的第一公钥对解析获得的第二签名数据进行解密,获得第一哈希值;
所述第二设备对内部存储的第一随机数进行哈希运算,获得第二哈希值;
所述第二设备判断第一哈希值与第二哈希值是否相同,若相同,则验签成功,第一设备解析获得的第一数据是所述第二设备生成的第一随机数,完成对所述第一设备的认证,保存解析获得的第二数据并保持蓝牙连接,若不相同,则验签失败,返回认证失败响应并断开蓝牙连接。
9.根据权利要求7所述的方法,其特征在于,所述目标数据具体为解析获得的第二数据,所述步骤S6包括:
所述第二设备利用预先保存的第二私钥对解析获得的第二数据进行签名生成第三签名数据,将所述第三签名数据作为响应结果返回给所述第一设备;
所述步骤S7包括:
所述第一设备利用预先保存的第二公钥、内部存储的第二随机数对所述第三签名数据进行验签,若验签成功,则第二设备解析获得的第二数据是所述第一设备生成的第二随机数,保持蓝牙连接,完成对所述第二设备的认证,若验签失败,返回认证失败响应并断开蓝牙连接。
10.一种基于蓝牙连接的设备认证装置,其特征在于,所述装置应用于第一设备与第二设备中,所述装置包括数据扫描模块、数据解析模块、验证数据生成模块、第一认证模块、请求发送模块、签名生成模块、第二认证模块,其中,所述数据扫描模块、所述数据解析模块、所述验证数据生成模块、所述请求发送模块、所述第二认证模块应用于第一设备,所述第一认证模块、所述签名生成模块应用于第二设备;
所述数据扫描模块,用于对所述第一设备扫描到的蓝牙广播数据进行解析,根据解析获得的蓝牙名称确定所述第二设备对应的蓝牙广播数据,所述第二设备对应的蓝牙广播数据中包含所述第二设备生成的第一随机数;
所述数据解析模块,用于对所述第二设备对应的蓝牙广播数据进行解析,获得第一数据,所述第一设备与所述第二设备建立蓝牙连接;
所述验证数据生成模块,用于基于解析获得的第一数据生成待验证数据,将所述待验证数据发送给所述第二设备;
所述第一认证模块,用于利用自身保存的第一随机数对所述待验证数据进行验证,若验证成功,确定解析获得的第一数据是所述第二设备生成的第一随机数,保持蓝牙连接,完成对所述第一设备的认证,若验证失败,返回认证失败响应并断开蓝牙连接;
所述请求发送模块,用于向所述第二设备发送蓝牙特征值处理请求,所述蓝牙特征值处理请求包括读取蓝牙特征值与写入蓝牙特征值;
所述签名生成模块,用于获取目标数据,并对所述目标数据进行签名生成签名结果,将所述签名结果作为响应结果返回给所述第一设备;
所述第二认证模块,用于对所述签名结果进行验签,若验签成功,保持蓝牙连接,完成对所述第二设备的认证,若验签失败,返回认证失败响应并断开蓝牙连接。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现所述权利要求1-9中任一项所述方法的步骤。
12.一种认证设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1-9中任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211734244.3A CN116208955A (zh) | 2022-12-30 | 2022-12-30 | 一种基于蓝牙连接的设备认证方法及装置 |
PCT/CN2023/128927 WO2024139697A1 (zh) | 2022-12-30 | 2023-10-31 | 一种基于蓝牙连接的设备认证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211734244.3A CN116208955A (zh) | 2022-12-30 | 2022-12-30 | 一种基于蓝牙连接的设备认证方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116208955A true CN116208955A (zh) | 2023-06-02 |
Family
ID=86512165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211734244.3A Pending CN116208955A (zh) | 2022-12-30 | 2022-12-30 | 一种基于蓝牙连接的设备认证方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116208955A (zh) |
WO (1) | WO2024139697A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024139697A1 (zh) * | 2022-12-30 | 2024-07-04 | 飞天诚信科技股份有限公司 | 一种基于蓝牙连接的设备认证方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106559217B (zh) * | 2015-09-29 | 2019-09-20 | 腾讯科技(深圳)有限公司 | 一种动态加密方法、终端、服务器 |
CN107006049A (zh) * | 2015-11-03 | 2017-08-01 | 国民技术股份有限公司 | 一种智能设备及其建立设备间蓝牙连接的方法、装置 |
CN105307172B (zh) * | 2015-11-13 | 2018-11-23 | 四川虹信软件有限公司 | 基于动态时间的蓝牙基站合法性验证方法 |
CN105450269B (zh) * | 2015-12-21 | 2017-09-22 | 飞天诚信科技股份有限公司 | 一种实现蓝牙设备间安全交互配对认证的方法及装置 |
CN105788047B (zh) * | 2016-03-30 | 2018-12-14 | 北京千丁互联科技有限公司 | 一种蓝牙门禁设备、蓝牙门禁管理系统及方法 |
CN105933039B (zh) * | 2016-06-24 | 2018-06-29 | 飞天诚信科技股份有限公司 | 一种蓝牙设备及其工作方法 |
CN107969001B (zh) * | 2018-01-17 | 2020-07-07 | 飞天诚信科技股份有限公司 | 一种蓝牙配对双向认证的方法及装置 |
CN113593088A (zh) * | 2021-07-27 | 2021-11-02 | 胡奕旸 | 一种智能开锁方法、智能锁、移动终端及服务器 |
CN116208955A (zh) * | 2022-12-30 | 2023-06-02 | 飞天诚信科技股份有限公司 | 一种基于蓝牙连接的设备认证方法及装置 |
-
2022
- 2022-12-30 CN CN202211734244.3A patent/CN116208955A/zh active Pending
-
2023
- 2023-10-31 WO PCT/CN2023/128927 patent/WO2024139697A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024139697A1 (zh) * | 2022-12-30 | 2024-07-04 | 飞天诚信科技股份有限公司 | 一种基于蓝牙连接的设备认证方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2024139697A1 (zh) | 2024-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109548018B (zh) | 无线网络接入方法、装置、设备及系统 | |
CN109600223B (zh) | 验证方法、激活方法、装置、设备及存储介质 | |
CN110245144B (zh) | 协议数据管理方法、装置、存储介质及系统 | |
WO2016050037A1 (zh) | 操作授权方法及装置 | |
CN108833607B (zh) | 物理地址获取方法、装置及可读介质 | |
CN113259301B (zh) | 一种账号数据共享方法及电子设备 | |
CN111061524A (zh) | 一种应用数据处理方法及相关装置 | |
US20160301530A1 (en) | Sensitive operation verification method, apparatus, and system | |
KR20150087667A (ko) | 지문 센서를 이용하여 제어 기능을 제공하기 위한 전자 장치 및 방법 | |
US9514321B2 (en) | Electro device for protecting user's privacy and method for controlling thereof | |
KR20150065508A (ko) | 전자기기 및 전자기기 시스템 | |
CN110263525B (zh) | 设备配置方法及装置 | |
WO2024139697A1 (zh) | 一种基于蓝牙连接的设备认证方法及装置 | |
CN111404991A (zh) | 获取云服务的方法、装置、电子设备及介质 | |
CN113726521A (zh) | 通信方法、装置、电子设备及可读存储介质 | |
CN104980919B (zh) | 网络服务信息的获取方法及设备 | |
KR20130077192A (ko) | 이동 단말기 및 그 제어방법, 이를 위한 기록매체 | |
CN114448649B (zh) | 一种数据流通方法、系统、存储介质及电子设备 | |
CN113630405B (zh) | 入网认证方法、装置、电子设备及存储介质 | |
US20210385088A1 (en) | Network access method, user equipment, network entity, and storage medium | |
KR20160053691A (ko) | 이동 단말기 및 그 제어방법 | |
CN105812339A (zh) | 加密、解密方法及装置 | |
CN115033864A (zh) | 身份验证方法、系统及电子设备 | |
CN111447132B (zh) | 数据传输方法、装置、系统以及计算机存储介质 | |
CN108683684B (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 |