一种蓝牙配对的实现方法及装置与流程

文档序号:12698354阅读:275来源:国知局
一种蓝牙配对的实现方法及装置与流程

本发明涉及信息安全领域,尤其涉及一种蓝牙配对的实现方法及装置。



背景技术:

IOS系统和高版本安卓系统的移动设备的蓝牙MAC(英文全称:Media Access Control,中文全称:介质访问控制)是动态的,要想实现MAC的获取需要对地址进行解析,从解析结果中可以获取到动态MAC的唯一识别码,用来区分连接过的移动设备。IOS系统和高版本安卓系统的移动设备为了防止攻击,蓝牙MAC是每隔15分钟变一次,蓝牙设备与移动设备首次进行配对时,会出现重放攻击,而且MAC经常性的发生变化,用户体验非常不好;而且现有技术中的蓝牙配对方法中,只要移动设备搜索到蓝牙设备就可以直接进行配对连接,没有用户的参与,可能存在重放攻击的危险。



技术实现要素:

本发明的目的是为了克服现有技术的不足,提供一种蓝牙配对的实现方法及装置。

本发明提供了一种蓝牙配对的实现方法,包括:

步骤S1:蓝牙设备与移动设备建立逻辑连接,并通知所述移动设备使用蓝牙简单配对协议进行通讯;

步骤S2:所述蓝牙设备生成长期密钥,将蓝牙设备MAC地址和长期密钥发用给所述移动设备,并接收所述移动设备返回的移动设备唯一标识和移动设备厂商信息,根据所述移动设备唯一标识、所述蓝牙设备MAC地址、所述长期密钥、所述移动设备厂商信息计算得到配对唯一信息;

步骤S3:当所述蓝牙设备接收到所述移动设备下发的设备认证请求时,判断所述设备认证请求中的配对信息与计算得到的所述配对唯一信息是否一致,是则执行步骤S4,否则报错;

步骤S4:所述蓝牙设备遍历配对列表,判断所述配对唯一信息是否已存在,是则执行步骤S7,否则执行步骤S5;

步骤S5:所述蓝牙设备生成第一数据并进行显示,提示并等待用户进行确认;

步骤S6:所述蓝牙设备接收用户的按键信息,如按键信息为确认键时所述蓝牙设备与所述移动设备进行配对,当配对成功时执行步骤S7;

步骤S7:所述蓝牙设备用得到的所述配对唯一信息更新所述配对列表;

步骤S8:所述蓝牙设备设置连接状态为配对成功,与所述移动设备开始进行通讯。

其中,所述步骤S1包括:

步骤S1-1:所述蓝牙设备上电,进行初始化;

步骤S1-2:当所述蓝牙设备接收到所述移动设备下发的连接请求时,所述蓝牙设备与所述移动设备协商通讯参数;

步骤S1-3:当所述蓝牙设备接收到所述移动设备发送的配对请求和加密请求时,分别给所述移动设备返回对应的响应;

步骤S1-4:所述蓝牙设备对所述移动设备进行认证,如认证通过则执行步骤S1-5,如认证失败则报错;

步骤S1-5:当所述蓝牙设备接收到所述移动设备发送的获取通信密钥指令之后时将通信密钥密文发送给所述移动设备;

所述步骤S8中的与所述移动设备开始进行通讯,包括:所述蓝牙设备与所述移动设备使用通信密钥密文的解密结果进行通讯。

其中,所述蓝牙设备与所述移动设备协商通讯参数,包括:

所述蓝牙设备与所述移动设备协商蓝牙版本号;

所述蓝牙设备与所述移动设备协商移动设备的最大传输单元;

所述蓝牙设备向所述移动设备上报所述蓝牙设备的特征。

其中,所述步骤S1-4包括:

步骤a1:所述蓝牙设备从寄存器中获取身份认证密钥;

步骤a2:所述蓝牙设备接收所述移动设备发送的移动设备MAC地址;

步骤a3:所述蓝牙设备根据所述身份认证密钥和所述移动设备MAC地址中的随机数做哈希算法得到本地哈希值;

步骤a4:所述蓝牙设备判断所述本地哈希值和所述移动设备MAC地址中的哈希值是否一致,是则执行步骤S1-5,否则报错。

其中,所述将通信密钥密文发送给所述移动设备,包括:所述蓝牙设备生成随机数据,使用预设私钥对所述随机数据进行加密得到通信密钥密文并将其发送给所述移动设备。

其中,所述步骤S7还包括:所述蓝牙设备发送配对成功的移动设备个数到所述移动设备。

其中,所述步骤S2中根据所述移动设备唯一标识、所述蓝牙设备MAC地址、所述长期密钥、所述移动设备厂商信息计算得到配对唯一信息,包括:所述蓝牙设备根据所述移动设备唯一标识、所述蓝牙设备MAC地址、所述长期密钥、所述移动设备厂商信息生成待加密数据,使用所述长期密钥根据加密算法对待加密数据进行加密,根据杂凑算法对加密结果进行杂凑计算,并根据哈希算法对得到的杂凑结果进行哈希计算得到所述配对唯一信息。

其中,所述步骤S5还包括:所述蓝牙设备将所述第一数据发送给所述移动设备,所述移动设备接收到所述第一数据后进行显示。

其中,所述步骤S5中所述蓝牙设备生成第一数据并进行显示与提示并等待用户进行确认之间包括:所述蓝牙设备接收所述移动设备发送的用户输入的第二数据,判断所述第一数据与所述第二数据是否相同,是则提示并等待用户进行确认,否则报错。

其中,所述步骤S5替换为:所述蓝牙设备和所述移动设备分别根据预置算法生成第一数据并进行显示,所述蓝牙设备提示并等待用户进行确认。

其中,所述步骤S6包括:

步骤b1:所述蓝牙设备判断在预设时间内是否接收到按键信息,是则执行步骤b2,否则设置超时标记,关机;

步骤b2:所述蓝牙设备判断接收到的按键信息的类型,如为确认键则设置确认按键标识,执行步骤b3,如为取消键则设置取消按键标识,执行步骤b3;

步骤b3:当所述蓝牙设备接收到所述移动设备发送的获取按键指令时,将设置的按键标识发送给所述移动设备;

步骤b4:当所述蓝牙设备接收到移动设备发送的确定收到按键标识指令时,判断当前设置的按键标识的类型,如为取消键则所述蓝牙设备提示用户取消蓝牙配对信息,关机,如为确认键则执行步骤b5;

步骤b5:所述蓝牙设备给移动设备返回配对成功响应,执行步骤S7。

本发明又提供一种蓝牙配对的实现装置,包括:

建立通知模块,用于将蓝牙设备与移动设备建立逻辑连接,并通知所述移动设备使用蓝牙简单配对协议进行通讯;

第一生成模块,用于生成长期密钥;

发送模块,用于将蓝牙设备MAC地址和长期密钥发用给所述移动设备;

接收模块,用于接收所述移动设备返回的所述移动设备唯一标识和移动设备厂商信息,还用于接收所述移动设备发送的设备认证请求;

计算模块,用于根据所述移动设备唯一标识、所述蓝牙设备MAC地址、所述长期密钥、所述移动设备厂商信息计算得到配对唯一信息;

第一判断模块,用于当所述接收模块接收到所述移动设备下发的设备认证请求时,判断所述设备认证请求中的配对信息与计算得到的所述配对唯一信息是否一致,是则触发第二判断模块,否则触发报错模块;

所述报错模块,用于报错;

所述第二判断模块,用于遍历配对列表,判断所述配对唯一信息是否已存在,是则触发更新模块,否则触发生成显示模块;

所述生成显示模块,用于生成第一数据并进行显示,提示并等待用户进行确认;

按键模块,用于接收用户的按键信息;

配对模块,用于当所述按键模块接收到的用户的按键信息为确认键时,将所述蓝牙设备与所述移动设备进行配对,当配对成功时触发所述更新模块和第一设置模块;

所述更新模块,用于用所述计算模块计算得到的所述配对唯一信息更新所述配对列表;

所述第一设置模块,用于设置连接状态为配对成功,所述蓝牙设备与所述移动设备开始进行通讯。

其中,所述建立通知模块包括:

初始化单元,用于在所述蓝牙设备上电之后进行初始化;

协商单元,用于接收所述移动设备下发的连接请求,并与所述移动设备协商所述蓝牙设备与所述移动设备之间的通讯参数;

第一接收发送单元,用于接收到所述移动设备发送的配对请求和加密请求时,并分别给所述移动设备返回对应的响应;

认证单元,用于对所述移动设备进行认证,如认证通过则触发第二接收发送单元,如认证失败则触发所述报错模块;

所述第二接收发送单元,用于接收所述移动设备发送的获取通信密钥指令,并将通信密钥密文发送给所述移动设备;

所述蓝牙模块与所述移动设备开始进行通讯包括:所述蓝牙设备与所述移动设备使用通信密钥密文的解密结果进行通讯。

其中,所述协商单元具体用于与所述移动设备协商蓝牙版本号和移动设备的最大传输单元,还用于向所述移动设备上报所述蓝牙设备的特征。

其中,所述认证单元包括:

获取子单元,用于从寄存器中获取身份认证密钥;

接收子单元,用于接收所述移动设备发送的移动设备MAC地址;

计算子单元,用于根据所述身份认证密钥和所述移动设备MAC地址中的随机数做哈希算法得到本地哈希值;

判断子单元,用于判断所述本地哈希值和所述移动设备MAC地址中的哈希值是否一致,是则认证通过,否则认证失败。

其中,所述第二接收发送单元具体用于接收所述移动设备发送的获取通信密钥指令,生成随机数据,使用预设私钥对所述随机数据进行加密得到通信密钥密文并将其发送给所述移动设备。

其中,所述发送模块还用于发送配对成功的移动设备个数到所述移动设备。

其中,所述计算模块具体用于根据所述移动设备唯一标识、所述蓝牙设备MAC地址、所述长期密钥、所述移动设备厂商信息生成待加密数据,使用所述长期密钥根据加密算法对待加密数据进行加密,根据杂凑算法对加密结果进行杂凑计算,并根据哈希算法对得到的杂凑结果进行哈希计算得到所述配对唯一信息。

其中,所述发送模块还用于将所述第一数据发送给所述移动设备,所述移动设备接收到所述第一数据后进行显示。

其中,所述装置还包括第三判断模块,

所述接收模块还用于接收所述移动设备发送的用户输入的第二数据;

所述第三判断模块,用于判断所述第一数据与所述第二数据是否相同,是则提示并等待用户进行确认,否则触发所述报错模块。

其中,所述生成显示模块,还用于根据预置算法生成第一数据并进行显示,提示并等待用户进行确认;

所述移动设备同步根据预置算法生成第一数据并进行显示。

其中,所述装置还包括:

第四判断模块,用于判断在预设时间内是否接收到按键信息,是则触发第五判断模块,否则设置超时标记,关机;

所述第五判断模块,用于判断接收到的按键信息的类型,如为确认键则设置确认按键标识,如为取消键则设置取消按键标识;

第二设置模块,用于当所述接收模块接收到所述移动设备发送的获取按键指令时,将设置的按键标识发送给所述移动设备;

第六判断模块,用于当所述接收模块接收到移动设备发送的确定收到按键标识指令时,判断当前设置的按键标识的类型,如为取消键则所述蓝牙设备提示用户取消蓝牙配对信息,关机,如为确认键则触发所述发送模块给移动设备返回配对成功响应。

本发明与现有技术相比,具有以下优点:

蓝牙设备采用justwork(中文全称:蓝牙简单配对协议)方式,在与移动设备进行连接生成LTK(英文全称:A long-term蓝牙设备,中文全称:长期密钥)信息,对移动设备唯一信息和蓝牙设备的唯一信息等信息进行计算得到配对唯一信息,通过该配对唯一信息生成配对列表,增加了配对的安全性;并且首次配对时采用按键确认的方式实现防重放攻击。将LTK作为蓝牙设备的唯一标识符,有效识别动态MAC的移动设备,提高配对的有效性。

附图说明

图1为本发明实施例一提供的一种蓝牙配对的实现方法流程图;

图2为本发明实施例二提供的一种蓝牙配对的实现方法流程图;

图3为本发明实施例三提供的一种蓝牙配对的实现方法流程图;

图4为本发明实施例四提供的一种蓝牙配对的实现装置示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本发明实施例一提供一种蓝牙配对的实现方法,如图1所示,包括:

步骤S1:蓝牙设备与移动设备建立逻辑连接,并通知移动设备使用蓝牙简单配对协议进行通讯;

在本实施例中,步骤S1包括:

步骤S1-1:蓝牙设备上电,进行初始化;

步骤S1-2:当蓝牙设备接收到移动设备下发的连接请求时,蓝牙设备与移动设备协商通讯参数;

具体的,蓝牙设备与移动设备协商通讯参数包括:蓝牙设备与移动设备协商蓝牙版本号;蓝牙设备与移动设备协商移动设备的最大传输单元;蓝牙设备向移动设备上报蓝牙设备的特征;

步骤S1-3:当蓝牙设备接收到移动设备发送的配对请求和加密请求时,分别给移动设备返回对应的响应;

步骤S1-4:蓝牙设备对移动设备进行认证,如认证通过则执行步骤S1-5,如认证失败则报错;

具体的,在本实施例中,步骤S1-4包括:

步骤a1:蓝牙设备从寄存器中获取身份认证密钥;

步骤a2:蓝牙设备接收移动设备发送的移动设备MAC地址;

步骤a3:蓝牙设备根据身份认证密钥和移动设备MAC地址中的随机数做哈希算法得到本地哈希值;

步骤a4:蓝牙设备判断本地哈希值和移动设备MAC地址中的哈希值是否一致,是则执行步骤S1-5,否则报错;

步骤S1-5:当蓝牙设备接收到移动设备发送的获取通信密钥指令之后时将通信密钥密文发送给移动设备;

在本实施例中,将通信密钥密文发送给移动设备,包括:蓝牙设备生成随机数据,使用预设私钥对随机数据进行加密得到通信密钥密文并将其发送给移动设备。

步骤S2:蓝牙设备生成长期密钥,将蓝牙设备MAC地址和长期密钥发用给移动设备,并接收移动设备返回的移动设备唯一标识和移动设备厂商信息,根据移动设备唯一标识、蓝牙设备MAC地址、长期密钥、移动设备厂商信息计算得到配对唯一信息;

具体的,在本实施例中,步骤S2中根据移动设备唯一标识、蓝牙设备MAC地址、长期密钥、移动设备厂商信息计算得到配对唯一信息,包括:蓝牙设备根据移动设备唯一标识、蓝牙设备MAC地址、长期密钥、移动设备厂商信息生成待加密数据,使用长期密钥根据加密算法对待加密数据进行加密,根据杂凑算法对加密结果进行杂凑计算,并根据哈希算法对得到的杂凑结果进行哈希计算得到配对唯一信息;

步骤S3:当蓝牙设备接收到移动设备下发的设备认证请求时,判断设备认证请求中的配对信息与计算得到的配对唯一信息是否一致,是则执行步骤S4,否则报错;

步骤S4:蓝牙设备遍历配对列表,判断配对唯一信息是否已存在,是则执行步骤S7,否则执行步骤S5;

步骤S5:蓝牙设备生成第一数据并进行显示,提示并等待用户进行确认;

在本实施例中,步骤S5的实现可以有多种方法,例如蓝牙设备生成第一数据并进行显示之后,将第一数据发送给移动设备,移动设备接收到第一数据后进行显示,用户对比蓝牙设备上显示的第一数据和移动设备上显示的数据,并在蓝牙设备或者在移动设备上进行确认,如在移动设备上确认则移动设备将用户按键信息发送给蓝牙设备;或者蓝牙设备生成第一数据并进行显示之后,用户将蓝牙设备上显示的数据输入到移动设备,移动设备将用户输入的第二数据发送给蓝牙设备,蓝牙设备接收移动设备发送的用户输入的第二数据,判断第一数据与第二数据是否相同,是则提示并等待用户进行确认,否则报错;又或者蓝牙设备和移动设备分别根据预置算法生成第一数据并进行显示,蓝牙设备或移动设备提示并等待用户进行确认,如在移动设备上确认则移动设备将用户按键信息发送给蓝牙设备;

步骤S6:蓝牙设备接收用户的按键信息,如按键信息为确认键时蓝牙设备与移动设备进行配对,当配对成功时执行步骤S7;

具体的,步骤S6包括:

步骤b1:蓝牙设备判断在预设时间内是否接收到按键信息,是则执行步骤b2,否则设置超时标记,关机;

步骤b2:蓝牙设备判断接收到的按键信息的类型,如为确认键则设置确认按键标识,执行步骤b3,如为取消键则设置取消按键标识,执行步骤b3;

步骤b3:当蓝牙设备接收到移动设备发送的获取按键指令时,将设置的按键标识发送给移动设备;

步骤b4:当蓝牙设备接收到移动设备发送的确定收到按键标识指令时,判断当前设置的按键标识的类型,如为取消键则蓝牙设备提示用户取消蓝牙配对信息,关机,如为确认键则执行步骤b5;

步骤b5:蓝牙设备给移动设备返回配对成功响应,执行步骤S7;

步骤S7:蓝牙设备用得到的配对唯一信息更新配对列表;

在本实施例中,步骤S7还包括:蓝牙设备发送配对成功的移动设备个数到移动设备,使移动设备上的个数与蓝牙设备上的个数保持同步,保证移动设备与蓝牙设备的正常通讯;

步骤S8:蓝牙设备设置连接状态为配对成功,与移动设备开始进行通讯;

步骤S8中的与移动设备开始进行通讯,包括:蓝牙设备与移动设备使用通信密钥密文的解密结果进行通讯。

本实施例方法中蓝牙设备采用justwork(中文全称:蓝牙简单配对协议)方式,在与移动设备进行连接生成LTK(英文全称:A long-term蓝牙设备,中文全称:长期密钥)信息,对移动设备唯一信息和蓝牙设备的唯一信息等信息进行计算得到配对唯一信息,通过该配对唯一信息生成配对列表,增加了配对的安全性;并且首次配对时采用按键确认的方式实现防重放攻击。将LTK作为蓝牙设备的唯一标识符,有效识别动态MAC的移动设备,提高配对的有效性。

实施例二

本发明实施例二提供一种蓝牙配对的实现方法,如图2所示,包括:

步骤101:蓝牙设备上电,进行初始化;

具体的,在本实施例中,蓝牙芯片系统初始化、蓝牙协议栈初始化化、蓝牙广播初始化打开广播;

步骤102:蓝牙设备判断是否收到移动设备下发的连接请求,是则执行步骤103,否则返回步骤102;

步骤103:蓝牙设备与移动设备协商蓝牙版本号;

步骤104:蓝牙设备与移动设备协商移动设备的MTU(中文全称:最大传输单元,英文全称:Maximum Transmission Unit);

步骤105:蓝牙设备向移动设备上报蓝牙设备的特征;

具体的,本实施例中蓝牙设备的特征包括:蓝牙设备的接口信息、读特征、写特征;

步骤106:当蓝牙设备接收到移动设备发送的配对请求时给移动设备返回配对响应;

具体的,在本实施例中,移动设备发送配对请求之后和发送加密请求之间还包括:移动设备给蓝牙设备发送配对确认信息;

步骤107:当蓝牙设备接收到移动设备发送的加密请求时给移动设备返回加密响应;

步骤108:蓝牙设备从寄存器中获取IRK(英文全称:Identity Resolving蓝牙设备,中文全称:身份认证密钥);

步骤109:蓝牙设备接收移动设备发送的移动设备MAC地址;

在本实施例中,地址包括24bit的哈希值和24bit的随机数;本实施例中的步骤108和109顺序可调换;

步骤110:蓝牙设备根据IRK和移动设备MAC地址中的随机数做哈希算法得到本地哈希值;

步骤111:蓝牙设备判断本地哈希值和移动设备MAC地址中的哈希值是否一致,是则执行步骤112,否则报错;

步骤112:当蓝牙设备接收到移动设备发送的获取通信密钥指令之后时将通信密钥密文发送给移动设备;

具体的,在本实施例中,将加密后的通信密钥发送给移动设备包括:蓝牙设备生成随机数据,用预设私钥对该随机数据进行加密得到通信密钥密文并将其发送给移动设备;

步骤113:蓝牙设备生成LTK,并将LTK和蓝牙设备MAC地址发送给移动设备,接收移动设备发送的移动设备唯一标识和移动设备厂商信息,根据移动设备唯一标识、蓝牙设备MAC地址、LTK、移动设备厂商信息生成待加密数据,将LTK作为密钥对待加密数据进行计算得到配对唯一信息;

在本实施例中,蓝牙设备生成LTK是根据密钥传输协议生成的,具体为:LTK=d1(ER,DIV,0),函数d1为多元函数,该函数基于AES-128加密,DIV(Diversifying)为分散器,将一些数据分散然后通过计算将数据还原,是16位的变化符,ER是一个生成在蓝牙设备上的128位的伪随机数。

具体的,将LTK作为密钥对待加密数据进行计算得到配对唯一信息包括:将LTK作为密钥根据SM4加密算法对待加密数据进行加密,根据SM3杂凑算法对加密结果进行杂凑计算,并根据SHA-1哈希算法对得到的杂凑结果进行哈希计算得到配对唯一信息;本实施例使用的算法不限于此,也可以使用其他算法来实现;

在本实施例中,LTK作为长期密钥,设备唯一标识可以为设备序列号、应用ID、移动设备身份码等;优选的,配对唯一信息的长度为20字节;

例如,本实施例中的LTK为C56D9E1C520818113FE6753D80A5A9C8,MAC为65D80FBE90D1,应用ID为3EA02991F239EC4E6C1FC61D3AB143DF63EA2265238A8E9D2A5454FEC80431F0,厂商信息为BCE7D962D7835609C936B0B545B1F7D6;计算过程为:对应用ID、设备MAC、LTK、厂商信息进行拼接得到待签名数据3EA02991F239EC4E6C1FC61D3AB143DF63EA2265238A8E9D2A5454FEC80431F065D80FBE90D1C56D9E1C520818113FE6753D80A5A9C8BCE7D962D7835609C936B0B545B1F7D6;对待签名数据进行PKCS5填充得到的填充结果为3EA02991F239EC4E6C1FC61D3AB143DF63EA2265238A8E9D2A5454FEC80431F065D80FBE90D1C56D9E1C520818113FE6753D80A5A9C8BCE7D962D7835609C936B0B545B1F7D60A0A0A0A0A0A0A0A0A0A;用LTK使用SM4对填充结果进行ECB加密得到的加密结果为2E5DBE840DACC41C1DC7B26615B9CCCBD8F1172EA06C92F305AACC43A6193A14A9AECDDF9D960D0C79CBCFC6A657DAFEF06E6826EE32FEA647005BF4656C3F85291A653718DA96F6848502842910BB29;对加密结果进行SM3哈希计算得到的哈希结果为F6CCD2B284652C9D9F6758AC0F63E1716B681643E98FB80378395365978AE2C0,对哈希结果进行SHA-1计算得到配对唯一标示0D33A3317BE855CA5ACBF715B4B683766C687FAF;

步骤114:当蓝牙设备接收到移动设备下发的设备认证请求时,判断设备认证请求中的配对信息与计算得到的配对唯一信息是否一致,是则执行步骤115,否则报错;

步骤115:蓝牙设备遍历配对列表,判断此配对唯一信息是否已存在,是则执行步骤122,否则执行步骤116;

步骤116:蓝牙设备生成第一数据并进行显示,提示并等待用户进行确认;

在本实施例中,步骤116还可以包括:蓝牙设备将第一数据发送给移动设备,提示并等待用户进行确认;移动设备接收到第一数据后进行显示;

本实施例中的步骤116中蓝牙设备生成第一数据并进行显示之后还可以包括:移动设备接收用户输入的第二数据并将第二数据发送给蓝牙设备,蓝牙设备判断接收到的第二数据与生成的第一数据是否相同,如相同则提示并等待用户进行确认连接,否则报错;

或者步骤116替换为:蓝牙设备和移动设备分别根据预置算法生成第一数据并进行显示,蓝牙设备提示并等待用户进行确认;

优选的,本步骤中生成的第一数据长度为6个字节;第一数据显示在屏幕上;

步骤117:蓝牙设备判断在预设时间内是否接收到按键信息,是则执行步骤118,否则设置超时标记,关机;

优选的,在本实施例中,蓝牙设备设置超时标记之后等待预设时长后关机,例如等待时长为5秒;设置超时标记具体为:将操作状态设置为0x01;

具体的,在本实施例中,蓝牙设备在等待接收按键信息时,移动设备轮询向蓝牙设备发送获取按键状态指令;

步骤118:蓝牙设备判断接收到的按键信息的类型,如为确认键则设置确认按键标识,执行步骤119,如为取消键则设置取消按键标识,执行步骤119;

在本实施例中,设置确认按键标记具体为:将操作状态设置为0x00;设置取消按键标记具体为:将操作状态设置为0x02;

步骤119:当蓝牙设备接收到移动设备发送的获取按键指令时,将设置的按键标识发送给移动设备;

步骤120:当蓝牙设备接收到移动设备发送的确定收到按键标识指令时,判断当前设置的按键标识的类型,如为取消键则执行步骤121,如为确认键则执行步骤122;

具体的,在本实施例中,判断当前设置的按键标识的类型包括:判断操作状态的数值,如为0x00则为确认键,如为0x02则为取消键;

步骤121:蓝牙设备提示用户取消蓝牙配对信息,关机;

步骤122:蓝牙设备给移动设备返回配对成功响应,并用配对唯一信息更新配对列表,发送配对成功的移动设备个数到移动设备;

步骤123:蓝牙设备设置该连接状态为配对成功,与移动设备开始数据通讯;

在本实施例中,蓝牙设备与移动设备使用通信密钥密文的解密结果进行通讯,即蓝牙设备与移动设备之间的通讯数据时密文数据,该密文数据是使用通信密钥密文的解密结果对待发送数据进行加密得到的。

本实施例的方法中蓝牙设备采用justwork(中文全称:蓝牙简单配对协议)方式,在与移动设备进行连接生成LTK(英文全称:A long-term蓝牙设备,中文全称:长期密钥)信息,对移动设备唯一信息和蓝牙设备的唯一信息等信息进行计算得到配对唯一信息,通过该配对唯一信息生成配对列表,增加了配对的安全性;并且首次配对时采用按键确认的方式实现防重放攻击。将LTK作为蓝牙设备的唯一标识符,有效识别动态MAC的移动设备,提高配对的有效性。蓝牙设备与移动设备的配对过程中提供自动回连功能,即在蓝牙设备与移动设备首次配对完成后,蓝牙设备绑定移动设备,相同的移动设备再次与该蓝牙设备连接时无需再次交互确认,实现快速连接。

实施例三

本发明实施例三提供一种蓝牙配对的实现方法,如图3所示,包括:

步骤201:当蓝牙设备接收到移动设备发送的获取通信密钥之后时将通信密钥密文发送给移动设备;

具体的,在本实施例中,将加密后的通信密钥发送给移动设备包括:蓝牙设备生成随机数,用预设私钥对该随机数进行加密得到通信密钥密文并将其发送给移动设备;

步骤202:蓝牙设备生成LTK,并将LTK和蓝牙设备MAC地址发送给移动设备,接收移动设备发送的移动设备唯一标识和移动设备厂商信息,根据移动设备唯一标识、蓝牙设备MAC地址、LTK、移动设备厂商信息生成待加密数据,将LTK作为密钥根据SM4加密算法对待加密数据进行加密,根据SM3杂凑算法对加密结果进行杂凑计算,并根据SHA-1哈希算法对得到的杂凑结果进行哈希计算得到配对唯一信息;

在本实施例中,配对唯一信息的长度为20字节;

优选的,本实施例中预置密钥是根据与预设私钥对应的预设公钥计算得到的,例如对预设公钥进行拆分,对拆分结果进行与运算,对与运算结果进行哈希计算,再对哈希结果进行拆分,对拆分结果进行与运算得到预置密钥;

步骤203:当蓝牙设备接收到移动设备下发的设备认证请求时,判断设备认证请求中的配对信息与计算得到的配对唯一信息是否一致,是则执行步骤204,否则报错;

步骤204:蓝牙设备遍历配对列表,判断此配对唯一信息是否已存在,是则执行步骤211,否则执行步骤205;

步骤205:蓝牙设备生成第一数据并进行显示,提示并等待用户进行确认;

在本实施例中,步骤205还可以包括:蓝牙设备将第一数据发送给移动设备,并等待用户进行确认;移动设备接收到第一数据后进行显示;

本实施例中的步骤205中蓝牙设备生成第一数据并进行显示之后还可以包括:移动设备接收用户输入的第二数据并将第二数据发送给蓝牙设备,蓝牙设备判断接收到的第二数据与生成的第一数据是否相同,如相同则提示并等待用户进行确认连接,否则报错;

或者步骤205替换为:蓝牙设备和移动设备分别根据预置算法生成第一数据并进行显示,蓝牙设备提示并等待用户进行确认;

优选的,本步骤中生成的第三随机数长度为6个字节;第一数据显示在屏幕上;

步骤206:蓝牙设备判断在预设时间内是否接收到按键信息,是则执行步骤207,否则设置超时标记,关机;

优选的,在本实施例中,蓝牙设备设置超时标记之后等待预设时长后关机,例如等待时长为5秒;设置超时标记具体为:将操作状态设置为0x01;

具体的,在本实施例中,蓝牙设备在等待接收按键信息时,移动设备轮询向蓝牙设备发送获取按键状态指令;

步骤207:蓝牙设备判断接收到的按键信息的类型,如为确认键则设置确认按键标识,执行步骤208,如为取消键则设置取消按键标识,执行步骤208;

在本实施例中,设置确认按键标记具体为:将操作状态设置为0x00;设置取消按键标记具体为:将操作状态设置为0x02;

步骤208:当蓝牙设备接收到移动设备发送的获取按键指令时,将设置的按键标识发送给移动设备;

步骤209:当蓝牙设备接收到移动设备发送的确定收到按键标识指令时,判断当前设置的按键标识的类型,如为取消键则执行步骤210,如为确认键则执行步骤211;

具体的,在本实施例中,判断当前设置的按键标识的类型包括:判断操作状态的数值,如为0x00则为确认键,如为0x02则为取消键;

步骤210:蓝牙设备提示用户取消蓝牙配对,关机;

步骤211:蓝牙设备给移动设备返回配对成功响应,并用配对唯一信息更新配对列表,发送配对成功的移动设备个数到移动设备;

步骤212:蓝牙设备设置该连接状态为配对成功,与移动设备开始数据通讯;

在本实施例中,蓝牙设备与移动设备使用通信密钥密文的解密结果进行通讯,即蓝牙设备与移动设备之间的通讯数据时密文数据,该密文数据是使用通信密钥密文的解密结果对待发送数据进行加密得到的。

本实施例的方法中蓝牙设备采用justwork方式,在与移动设备进行连接生成LTK信息,对移动设备唯一信息和蓝牙设备的唯一信息等信息进行计算得到配对唯一信息,通过该配对唯一信息生成配对列表,增加了配对的安全性;并且首次配对时采用按键确认的方式实现防重放攻击。将LTK作为蓝牙设备的唯一标识符,有效识别动态MAC的移动设备,提高配对的有效性。

实施例四

本发明实施例四提供一种蓝牙配对的实现装置,如图4所示,包括:

建立通知模块31,用于将蓝牙设备与移动设备建立逻辑连接,并通知移动设备使用蓝牙简单配对协议进行通讯;

具体的,在本实施例中,建立通知模块31包括:

初始化单元,用于在蓝牙设备上电之后进行初始化;

协商单元,用于接收移动设备下发的连接请求,并与移动设备协商蓝牙设备与移动设备之间的通讯参数;

在本实施例中,协商单元具体用于与移动设备协商蓝牙版本号和移动设备的最大传输单元,还用于向移动设备上报蓝牙设备的特征;

第一接收发送单元,用于接收到移动设备发送的配对请求和加密请求时,并分别给移动设备返回对应的响应;

认证单元,用于对移动设备进行认证,如认证通过则触发第二接收发送单元,如认证失败则触发报错模块;

具体的,本实施例中的认证单元包括:

获取子单元,用于从寄存器中获取身份认证密钥;

接收子单元,用于接收移动设备发送的移动设备MAC地址;

计算子单元,用于根据身份认证密钥和移动设备MAC地址中的随机数做哈希算法得到本地哈希值;

判断子单元,用于判断本地哈希值和移动设备MAC地址中的哈希值是否一致,是则认证通过,否则认证失败;

第二接收发送单元,用于接收移动设备发送的获取通信密钥指令,并将通信密钥密文发送给移动设备;

在本实施例中,第二接收发送单元具体用于接收移动设备发送的获取通信密钥指令,生成随机数据,使用预设私钥对随机数据进行加密得到通信密钥密文并将其发送给移动设备;

蓝牙模块与移动设备开始进行通讯包括:蓝牙设备与移动设备使用通信密钥密文的解密结果进行通讯。

第一生成模块32,用于生成长期密钥;

发送模块33,用于将蓝牙设备MAC地址和长期密钥发用给移动设备;

接收模块34,用于接收移动设备返回的移动设备唯一标识和移动设备厂商信息,还用于接收移动设备发送的认证请求;

计算模块35,用于根据移动设备唯一标识、蓝牙设备MAC地址、长期密钥、移动设备厂商信息计算得到配对唯一信息;

在本实施例中,计算模块具体用于根据移动设备唯一标识、蓝牙设备MAC地址、长期密钥、移动设备厂商信息生成待加密数据,使用长期密钥根据加密算法对待加密数据进行加密,根据杂凑算法对加密结果进行杂凑计算,并根据哈希算法对得到的杂凑结果进行哈希计算得到配对唯一信息;

第一判断模块36,用于当接收模块34接收到移动设备下发的设备认证请求时,判断设备认证请求中的配对信息与计算得到的配对唯一信息是否一致,是则触发第二判断模块38,否则触发报错模块37;

报错模块37,用于报错;

第二判断模块38,用于遍历配对列表,判断配对唯一信息是否已存在,是则触发更新模块312,否则触发生成显示模块39;

生成显示模块39,用于生成第一数据并进行显示,提示并等待用户进行确认;

按键模块310,用于接收用户的按键信息;

配对模块311,用于当按键模块接收到的用户的按键信息为确认键时,将蓝牙设备与移动设备进行配对,当配对成功时触发更新模块312和第一设置模块313;

更新模块312,用于蓝牙设备与移动设备配对成功时,用计算模块35计算得到的配对唯一信息更新配对列表;

第一设置模块313,用于设置连接状态为配对成功,蓝牙设备与移动设备开始进行通讯。

在本实施例中,如蓝牙设备与移动设备配对成功则发送模块33还用于发送配对成功的移动设备个数到移动设备,使移动设备与蓝牙设备上的配对成功的移动设备个数同步,保证两者可以正常通讯。

(1)本实施例中的发送模块33还用于将第一数据发送给移动设备,移动设备接收到第一数据后进行显示。

(2)本实施例中的装置还包括第三判断模块,

接收模块33还用于接收移动设备发送的用户输入的第二数据;

第三判断模块,用于判断第一数据与第二数据是否相同,是则提示并等待用户进行确认,否则触发报错模块。

(3)本实施例中的生成显示模块39,还用于根据预置算法生成第一数据并进行显示,蓝牙设备提示并等待用户进行确认;移动设备同步根据预置算法生成第一数据并进行显示;用户对照蓝牙设备显示的第一数据和移动设备显示的第一数据进行按键确认;

本实施例中的装置还包括:

第四判断模块,用于判断在预设时间内是否接收到按键信息,是则触发第五判断模块,否则设置超时标记,关机;

第五判断模块,用于判断接收到的按键信息的类型,如为确认键则设置确认按键标识,如为取消键则设置取消按键标识;

第二设置模块,用于当接收模块接收到移动设备发送的获取按键指令时,将设置的按键标识发送给移动设备;

第六判断模块,用于当接收模块接收到移动设备发送的确定收到按键标识指令时,判断当前设置的按键标识的类型,如为取消键则蓝牙设备提示用户取消蓝牙配对信息,关机,如为确认键则触发发送模块给移动设备返回配对成功响应。

本实施例中的蓝牙设备采用justwork(中文全称:蓝牙简单配对协议)方式,在与移动设备进行连接生成LTK(英文全称:A long-term蓝牙设备,中文全称:长期密钥)信息,对移动设备唯一信息和蓝牙设备的唯一信息等信息进行计算得到配对唯一信息,通过该配对唯一信息生成配对列表,增加了配对的安全性;并且首次配对时采用按键确认的方式实现防重放攻击。将LTK作为蓝牙设备的唯一标识符,有效识别动态MAC的移动设备,提高配对的有效性。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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