一种与移动终端执行配对服务的方法及蓝牙设备与流程

文档序号:16279046发布日期:2018-12-14 22:46阅读:303来源:国知局
一种与移动终端执行配对服务的方法及蓝牙设备与流程

本发明涉及蓝牙通信技术领域,尤其涉及一种与移动终端执行配对服务的方法及蓝牙设备。

背景技术

在现有技术中,蓝牙设备配对丢失后,移动终端设备发起配对后不能通信,因此连接成功后无法通信,需要用户手动断开再连接后才能进行通信,用户体验不佳。



技术实现要素:

本发明为了解决现有技术中存在的问题,提供一种与移动终端执行配对服务的方法及蓝牙设备。

本发明提供了一种蓝牙设备与移动终端执行配对服务的方法,包括:

步骤a、蓝牙设备与移动终端建立连接;

步骤b、蓝牙设备接收所述移动终端下发的请求,并判断所述请求的类型,如为配对请求,执行步骤c;如为加密请求,执行步骤e;

步骤c、蓝牙设备绑定所述移动终端;

步骤d、蓝牙设备判断绑定丢失标志位是否置位,如果是,断开与所述移动终端的连接,返回步骤a;否则,执行步骤f;

步骤e、蓝牙设备根据所述加密请求判断是否已经绑定移动终端,如果是,执行步骤f;否则,蓝牙设备向移动终端发送申请绑定的请求,并置位绑定丢失标志位,返回步骤b;

步骤f、蓝牙设备与移动终端正常通信,结束。

本发明提供了一种与移动终端执行配对服务的蓝牙设备,包括:

连接模块,用于与移动终端建立连接;

接收模块,用于接收移动终端下发的请求;

判断模块,用于判断接收模块接收到的请求的类型;

绑定模块,用于当判断模块判断出接收模块接收到的移动终端下发的请求的类型为配对请求时,绑定移动终端;

判断模块,还用于判断绑定丢失标志位是否置位;

断开模块,用于当判断模块判断出绑定丢失标志位置位时,断开与移动终端的连接,触发连接模块;

判断模块,还用于当判断出接收模块接收到的请求的类型为加密请求时,判断是否已经绑定了移动终端;

发送模块,用于当判断模块判断出蓝牙设备没有绑定移动终端时,向移动终端发送申请绑定的请求,并置位绑定丢失标志位,触发接收模块;

通信模块,用于当判断模块判断出绑定丢失标志位没有置位时或判断模块判断出绑定模块已经绑定移动终端时,与移动终端正常通信。

通过本发明,可以通过蓝牙设备让移动终端重新获取服务,避免了移动终端与蓝牙设备连接后无法通信,用户体验良好。

附图说明

为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例1中提供的一种蓝牙设备与移动终端执行配对服务的方法;

图2为本发明实施例2中提供的一种蓝牙设备与移动终端执行配对服务的方法。

图3为本发明实施例3中提供的一种与移动终端执行配对服务的蓝牙设备。

具体实施方式

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

实施例1

本实施例提供了一种蓝牙设备与移动终端执行配对服务的方法,如图1所示,包括:

步骤101:蓝牙设备与移动终端建立蓝牙连接。

可选地,步骤101之前还包括:

步骤a-1:蓝牙设备进行初始化;

步骤a-2:蓝牙设备开启蓝牙广播;

步骤a-3:蓝牙设备判断是否接收到移动终端发送的连接请求,如果是,执行步骤101;否则,返回步骤a-3。

可选地,步骤101中,蓝牙设备与移动终端建立蓝牙连接后,还包括:获取移动终端的mac(mediumaccesscontrol,物理地址)地址并保存。

具体的,在本实施例中,蓝牙设备接收到移动终端下发的连接请求后会产生一个蓝牙连接事件实现与移动终端建立蓝牙连接;

例如,移动终端下发的连接请求为:0x0d0x030x000x000x000x900x0d0x240xaa0xd60xbe0x890x8e0xc50x220x150x640x3a0xb40xc90x460x060xc00x8c0xa50xe00xdd0x1a0x930x9a0xaf0x5c0x220xd40x030x140x000x180x000x000x000x480x000xff0xff0xff0xff0x1f0xaa0xd00x230x02;根据连接请求的第16字节到第21字节获取到移动终端mac地址为:0x460xc90xb40x3a0x640x15;

需要说明的是,蓝牙设备获取移动终端的mac地址后,根据移动终端mac地址的前两个字节判断mac地址的类型。

具体地,mac地址的类型包括:动态mac地址和静态mac地址。

需要说明的是,蓝牙设备接收到移动终端的连接请求即完成了蓝牙设备与移动终端的物理层连接;蓝牙设备与移动终端建立蓝牙连接即完成了蓝牙设备协议层与移动终端协议层建立蓝牙连接。

步骤102:蓝牙设备接收移动终端下发的请求,并判断接收到的请求的类型,如果是配对请求,执行步骤103;如果是加密请求,执行步骤105。

具体的,在本实施例中,蓝牙设备判断接收到的请求中第二十八个字节数据(opcpde),如为第一数据则为配对请求,如为第二数据则为加密请求;例如,第一数据为0x03,第二数据为0x00;

例如,蓝牙设备接收到的请求为0x1b0x060x280x010x700x110x060x0a0x030x120x2f0x1d0x000xe00xbc0x000x000xe00x5c0x650x500x0e0x150x110x000x060x000x030x380x820xd70xf60x900x560xfa0x2f0x890xf50x390x300x890x160x5f0xe00xa10xc90x95则为配对请求;如蓝牙设备接收到的请求为0x1b0x060x2a0x010x780x110x060x0a0x030x0d0x2f0x210x000x8f0xbc0x000x000xe00x5c0x650x500x0f0x170x030x000x000x000x000x000x000x000x000x000x000xdf0xde0xd80x670x5f0x080xdc0xe20xda0x2d0xe10xdb0x940xad0x0f则为加密请求;

可选地,步骤102之前,还包括:蓝牙设备等待接收请求,并判断是否接收到移动终端下发的请求,如果是,执行步骤102;否则,断开蓝牙连接,返回步骤a-2。

可选地,步骤102还包括:蓝牙设备清除广播特定标志位。

步骤103:蓝牙设备绑定移动终端。

具体地,步骤103包括:

步骤103-1:蓝牙设备与移动终端协商出第一密钥并保存;

优选地,步骤103-1具体包括:

步骤103-11、蓝牙设备向移动终端返回配对响应;

例如,返回的配对响应为:0x0d0x030x100x150x010x200x0e0x0d0xaa0x1a0x930x9a0xaf0x0a0x0b0x070x000x060x000x020x030x000x010x100x020x030xaa0x480x24;

步骤103-12、移动终端向蓝牙设备发送第一随机数;

例如,第一随机数为:0x4b0xac0xe70x3b0xcb0xd20x8b0x5c0x960x860x2d0x5c0x760xea0x870x75;移动终端给蓝牙设备发送数据为:0x1b0x060x280x010x740x110x060x0a0x030x220x2f0x1f0x000x8f0xbc0x000x000xe00x5c0x650x500x0e0x150x110x000x060x000x040x4b0xac0xe70x3b0xcb0xd20x8b0x5c0x960x860x2d0x5c0x760xea0x870x750x2d0xb70x14;

步骤103-13、蓝牙设备接收第一随机数并保存,生成第二随机数并将其发送给移动终端;

例如,本实施例中,生成的第二随机数为:0x340xbb0x920x070x990x420x260xcf0xcf0xa60x7e0x200x950x5d0xec0x87,蓝牙设备给移动终端发送的数据为:0x1b0x060x280x010x740x110x060x0a0x030x220x2f0x1f0x000x8f0xbc0x000x000xe00x5c0x650x500x0e0x150x110x000x060x000x040x4b0xac0xe70x3b0xcb0xd20x8b0x5c0x960x860x2d0x5c0x760xea0x870x750x2d0xb70x14;

在步骤103-13中,蓝牙设备接收到第一随机数并保存后,向移动终端发送保存响应,该响应内带有刚刚生成的第二随机数,移动终端根据保存响应判断蓝牙设备接收并保存的第一随机数是否正确,是则执行步骤103-14;否则,报错;

步骤103-14、蓝牙设备和移动终端分别根据预设认证码、第一随机数、第二随机数计算得到第一密钥;

例如:第一密钥为短密钥。

在本实施例中,第一随机数和第二随机数均为128bit的数据,蓝牙设备将第一随机数和第二随机数中的低64bit数据进行首尾拼接,然后根据预设认证码和拼接结果进行计算得到第一密钥,其中根据预设认证码和拼接结果进行计算得到第一密钥所使用的公式为s1(k,r1,r2)=e(k,r’),e()为aes128算法,r1为第一随机数,r2为第二随机数,k为预设认证码,r’为拼接结果;例如,预设认证码为0x00000000000000000000000000000000,第一随机数为0x000f0e0d0c0b0a091122334455667788,第二随机数为0x020203040506070899aabbccddeeff00,拼接结果为0x112233445566778899aabbccddeeff00,计算得到的第一密钥为:0x9a1fe1f0e8b0f49b5b4216ae796da062;蓝牙设备与移动终端在后续的数据通讯中,使用第一密钥对传输的数据进行加密;

例如,第一密钥为短密钥。

步骤103-2:蓝牙设备生成通信密钥,使用第一密钥加密通信密钥得到第一加密结果,将第一加密结果发送给移动终端;

可选地,蓝牙设备生成通信密钥是根据密钥传输协议生成的,具体为:通信密钥=d1(er,div,0),函数d1为多元函数,该函数基于aes-128加密,div(diversifying)为分散器,将一些数据分散然后通过计算将数据还原,是16位的变化符,er是本实施例中的第二随机数,优选的为128位的伪随机数;

例如,蓝牙设备生成的第一加密结果并发送给移动终端的数据为:

0x990xdc0x780x060x020xf20x150x6f0x550x9d0xd40x0d0x2d0x020x2c0x8b,具体数据如下:0x0d0x030x020x4e0x010x600x0e0x1b0xaa0x1a0x930x9a0xaf0x060x190x110x000x060x000x060x990xdc0x780x060x020xf20x150x6f0x550x9d0xd40x0d0x2d0x020x2c0x8b0xd40x800x120x980xee0x490x6e。

步骤103-3:蓝牙设备生成第三随机数,并根据第三随机数生成第一身份识别码,使用第一密钥加密第三随机数和第一身份识别码获得第二加密结果,将第二加密结果发送给移动终端,并对应保存移动终端的mac地址、通信密钥和从移动终端接收的第二身份识别码至绑定列表;

需要说明的是,如果移动终端mac地址是动态的,对应保存移动终端传来的身份解析密钥、生成的通信密钥和第二身份识别码;

具体的,根据第三随机数生成第一身份识别码包括:蓝牙设备根据自身的div(识别码,例如可以为蓝牙设备生产期间生成的私钥)和第三随机数据计算得到mask(具体为蓝牙设备用私钥和第三随机数据做aes128算法取2的16次方的余数得到mask(加密识别码)),然后根据mask和自身的div进行异或计算得到第一ediv(身份识别码);

具体的,将第二身份识别码和通信密钥、移动终端mac地址(或者身份解析密钥)对应保存包括但不限于如下实现方式:

(1)蓝牙设备更新绑定计数值,根据绑定计数值计算存储位置地址,并将通信密钥、第二身份识别码和移动终端mac地址保存在绑定列表中与存储位置地址对应的位置;

具体的,绑定计数值的初始值为0,更新绑定计数值具体为:绑定计数值自加1;根据绑定计数值计算存储位置地址具体为:将绑定计数值除以4取余的结果作为存储位置地址;

(2)蓝牙设备判断绑定列表中是否有空闲的存储位置,是则将通信密钥、第二身份识别码、移动终端mac地址和当前的存储时刻顺序存储到绑定列表中空闲的存储位置,否则将通信密钥、第二身份识别码、移动终端mac地址和当前的存储时刻存储到绑定列表中与最早的存储时间相对应的存储位置;

(3)蓝牙设备显示与其连接的移动终端信息,提示用户进行选择替换的移动终端;当蓝牙设备接收到用户选择的替换移动终端信息时,将通信密钥、第二身份识别码和移动终端mac地址保存到绑定列表中与替换移动终端信息相对应的存储位置;

例如,本实施例中,移动终端的信息包括移动终端型号、名称、mac值等等;

在本实施例中,将第二身份识别码和通信密钥、移动终端mac地址对应保存的上述实现方式中的移动终端mac地址可以替换为身份解析密钥。

步骤103-4:蓝牙设备接收移动终端传来的身份解析密钥,使用第一密钥加密身份解析密钥得到第三加密结果,将第三加密结果发送给移动终端;

在本实施例中,步骤208之前还包括:移动终端下发irk;移动终端向蓝牙设备发送一个身份认证地址信息;移动终端下发一个签名值;

步骤103-5:蓝牙设备使用第一密钥加密蓝牙设备的mac地址获得第四加密结果,将第四加密结果发送给移动终端。

例如,第一密钥为短密钥;通信密钥为长密钥。

步骤104:蓝牙设备判断绑定丢失标志位是否置位,如果是,断开蓝牙连接,返回步骤101;否则,执行步骤106。

优选地,步骤104中,当蓝牙设备判断绑定丢失标志位置位时,断开蓝牙连接之后还包括修改广播中特定标志位,当蓝牙设备判断出广播中特定的标志位修改之后,则再次与移动终端进行连接。

可选地,当判断绑定丢失标志位置位时,断开蓝牙连接之后,返回步骤101之前,还包括绑定丢失标志位清零。

步骤105:蓝牙设备根据加密请求判断是否已经绑定了移动终端,如果是,根据加密请求检索通信密钥,执行步骤106;否则,蓝牙设备向移动终端发送申请配对的请求,并置位绑定丢失标志位,返回步骤102。

具体地,步骤105包括:蓝牙设备获取绑定列表,从加密请求中获取移动终端的身份识别码并判断身份识别码对应的移动终端是否在绑定列表中,如果是,蓝牙设备已经绑定了移动终端,根据加密请求检索通信密钥,执行步骤106;否则,蓝牙设备丢失与移动终端的绑定,蓝牙设备向移动终端发送申请配对的请求,并置位绑定丢失标志位,返回步骤102。

步骤106:蓝牙设备与移动终端正常通信,结束。

通过本发明,可以通过蓝牙设备让上层重新获取服务,避免了连接后因无法通信而需要用户手动断开再连接,用户体验良好。

实施例2

本实施例提供了一种蓝牙设备与移动终端执行配对服务的方法,如图2所示,包括:

步骤201:蓝牙设备进行初始化;

步骤202:蓝牙设备开启蓝牙广播;

步骤203:蓝牙设备判断是否接收到移动终端的连接请求,如果是,执行步骤204;否则,继续执行步骤203;

步骤204:蓝牙设备与移动终端建立蓝牙连接,获取移动终端的mac(mediumaccesscontrol,物理地址)地址并保存;

具体的,在本实施例中,蓝牙设备接收到移动终端下发的连接请求后会产生一个蓝牙连接事件实现与移动终端建立蓝牙连接;

例如,移动终端下发的连接请求为:0x0d0x030x000x000x000x900x0d0x240xaa0xd60xbe0x890x8e0xc50x220x150x640x3a0xb40xc90x460x060xc00x8c0xa50xe00xdd0x1a0x930x9a0xaf0x5c0x220xd40x030x140x000x180x000x000x000x480x000xff0xff0xff0xff0x1f0xaa0xd00x230x02;根据连接请求的第16字节到第21字节获取到移动终端mac地址为:0x460xc90xb40x3a0x640x15;

需要说明的是,蓝牙设备获取移动终端的mac地址后,根据移动终端mac地址的前两个字节判断mac地址的类型。

具体地,mac地址的类型包括:动态mac地址和静态mac地址。

需要说明的是,蓝牙设备接收到移动终端的连接请求即完成了蓝牙设备与移动终端的物理层连接;蓝牙设备与移动终端建立蓝牙连接即完成了蓝牙设备协议层与移动终端协议层建立蓝牙连接。

步骤205:蓝牙设备等待接收移动终端下发的请求,判断是否接收到移动终端下发的请求,如果是,执行步骤206;否则,断开蓝牙连接,返回步骤202;

步骤206:蓝牙设备清除广播特定标志位,判断接收到的请求的类型,如为配对请求,则执行步骤207;如为加密请求,则执行步骤213;

具体的,在本实施例中,蓝牙设备判断接收到的请求中第二十八个字节数据(opcpde),如为第一数据则为配对请求,如为第二数据则为加密请求;例如,第一数据为0x03,第二数据为0x00;

例如,蓝牙设备接收到的请求为0x1b0x060x280x010x700x110x060x0a0x030x120x2f0x1d0x000xe00xbc0x000x000xe00x5c0x650x500x0e0x150x110x000x060x000x030x380x820xd70xf60x900x560xfa0x2f0x890xf50x390x300x890x160x5f0xe00xa10xc90x95则为配对请求;如蓝牙设备接收到的请求为0x1b0x060x2a0x010x780x110x060x0a0x030x0d0x2f0x210x000x8f0xbc0x000x000xe00x5c0x650x500x0f0x170x030x000x000x000x000x000x000x000x000x000x000xdf0xde0xd80x670x5f0x080xdc0xe20xda0x2d0xe10xdb0x940xad0x0f则为加密请求;

可选地,在步骤206之前还包括:

蓝牙设备判断接收到的请求是否符合预设条件,是则执行步骤206,否则断开蓝牙连接,返回执行步骤202;

在本实施例中,符合预设条件的请求,具体为符合预置的蓝牙通信协议版本的请求;例如,符合预置的蓝牙通信协议版本为蓝牙4.0蓝牙通信协议;

需要说明的是,在蓝牙设备判断在预设时间内是否接收到移动终端发送的符合预设条件的请求之前需要启动检测定时器,相应地,执行步骤206之前还包括关闭检测定时器;

在本实施例中,检测定时器可以为一个,也可为多个。

步骤207:蓝牙设备与移动终端协商出第一密钥并保存协商出的第一密钥;

优选地,在本实施例中,步骤207中的蓝牙设备与移动终端协商出第一密钥具体包括:

步骤207-1、蓝牙设备向移动终端返回配对响应;

例如,返回的配对响应为:0x0d0x030x100x150x010x200x0e0x0d0xaa0x1a0x930x9a0xaf0x0a0x0b0x070x000x060x000x020x030x000x010x100x020x030xaa0x480x24;

步骤207-2、移动终端向蓝牙设备发送第一随机数;

例如,本实施例中,第一随机数为:0x4b0xac0xe70x3b0xcb0xd20x8b0x5c0x960x860x2d0x5c0x760xea0x870x75;移动终端给蓝牙设备发送数据为:0x1b0x060x280x010x740x110x060x0a0x030x220x2f0x1f0x000x8f0xbc0x000x000xe00x5c0x650x500x0e0x150x110x000x060x000x040x4b0xac0xe70x3b0xcb0xd20x8b0x5c0x960x860x2d0x5c0x760xea0x870x750x2d0xb70x14;

步骤207-3、蓝牙设备接收第一随机数并保存,生成第二随机数并将其发送给移动终端;

例如,本实施例中,生成的第二随机数为:0x340xbb0x920x070x990x420x260xcf0xcf0xa60x7e0x200x950x5d0xec0x87,蓝牙设备给移动终端发送的数据为:0x1b0x060x280x010x740x110x060x0a0x030x220x2f0x1f0x000x8f0xbc0x000x000xe00x5c0x650x500x0e0x150x110x000x060x000x040x4b0xac0xe70x3b0xcb0xd20x8b0x5c0x960x860x2d0x5c0x760xea0x870x750x2d0xb70x14;

在步骤207-3中,蓝牙设备接收到第一随机数并保存后,向移动终端发送保存响应,该响应内带有第二随机数,移动终端根据保存响应判断蓝牙设备接收并保存的第一随机数是否正确,是则执行步骤207-4;否则,报错;

步骤207-4、蓝牙设备和移动终端分别根据预设认证码、第一随机数、第二随机数计算得到第一密钥;

例如:第一密钥为短密钥。

在本实施例中,第一随机数和第二随机数均为128bit的数据,蓝牙设备将第一随机数和第二随机数中的低64bit数据进行首尾拼接,然后根据预设认证码和拼接结果进行计算得到第一密钥,其中根据预设认证码和拼接结果进行计算得到第一密钥所使用的公式为s1(k,r1,r2)=e(k,r’),e()为aes128算法,r1为第一随机数,r2为第二随机数,k为预设认证码,r’为拼接结果;例如,预设认证码为0x00000000000000000000000000000000,第一随机数为0x000f0e0d0c0b0a091122334455667788,第二随机数为0x020203040506070899aabbccddeeff00,拼接结果为0x112233445566778899aabbccddeeff00,计算得到的第一密钥为:0x9a1fe1f0e8b0f49b5b4216ae796da062;蓝牙设备与移动终端在后续的数据通讯中,使用第一密钥对传输的数据进行加密;

步骤208:蓝牙设备生成通信密钥,使用第一密钥加密通信密钥生成第一加密结果,并将第一加密结果发送给移动终端;

在本实施例中,蓝牙设备生成通信密钥是根据密钥传输协议生成的,具体为:通信密钥=d1(er,div,0),函数d1为多元函数,该函数基于aes-128加密,div(diversifying)为分散器,将一些数据分散然后通过计算将数据还原,是16位的变化符,er是本实施例中的第二随机数,优选的为128位的伪随机数;

例如,生成的第一加密结果并发给移动终端的数据为0x990xdc0x780x060x020xf20x150x6f0x550x9d0xd40x0d0x2d0x020x2c0x8b,具体数据如下:0x0d0x030x020x4e0x010x600x0e0x1b0xaa0x1a0x930x9a0xaf0x060x190x110x000x060x000x060x990xdc0x780x060x020xf20x150x6f0x550x9d0xd40x0d0x2d0x020x2c0x8b0xd40x800x120x980xee0x490x6e。

步骤209:蓝牙设备生成第三随机数,并根据第三随机数生成第一身份识别码,使用第一密钥对第三随机数和第一身份识别码进行加密生成第二加密结果并将第二加密结果发送给移动终端,并对应保存移动终端mac地址、生成的第二密钥和从移动终端接收的第二身份识别码至绑定列表;

例如,生成的第三随机数并发给终端数据如下:0x6d0x630x150xe70x420x8d0x360x0c,发送原始数据如下:0x0d0x030x0a0x500x010x600x0e0x150xaa0x1a0x930x9a0xaf0x060x130x0b0x000x060x000x070xcd0xdb0x6d0x630x150xe70x420x8d0x360x0c0x880xf50x0c0x960xa30x7b0x57。

需要说明的是,如果移动终端mac地址是动态的,对应保存移动终端传来的身份解析密钥、生成的通信密钥和身份识别码;

具体的,根据第三随机数生成第一身份识别码包括:蓝牙设备根据自身的div(识别码,例如可以为蓝牙设备生产期间生成的私钥)和第三随机数据计算得到mask(具体为蓝牙设备用私钥和第三随机数据做aes128算法取2的16次方的余数得到mask(加密识别码)),然后根据mask和自身的div进行异或计算得到ediv(身份识别码);

具体的,将从移动终端接收到的第二身份识别码和生成的第二密钥、移动终端mac(或者身份解析密钥)对应保存包括但不限于如下实现方式:

(1)蓝牙设备更新绑定计数值,根据绑定计数值计算存储位置地址,并将第二密钥、第二身份识别码和移动终端mac保存在绑定列表中与存储位置地址对应的位置;

具体的,绑定计数值的初始值为0,更新绑定计数值具体为:绑定计数值自加1;根据绑定计数值计算存储位置地址具体为:将绑定计数值除以4取余的结果作为存储位置地址;

(2)蓝牙设备判断绑定列表中是否有空闲的存储位置,是则将第二密钥、第二身份识别码、移动终端mac和当前的存储时刻顺序存储到绑定列表中空闲的存储位置,否则将第二密钥、第二身份识别码、移动终端mac和当前的存储时刻存储到绑定列表中与最早的存储时间相对应的存储位置;

(3)蓝牙设备显示与其连接的移动终端信息,提示用户进行选择替换的移动终端;当蓝牙设备接收到用户选择的替换移动终端信息时,将第二密钥、第二身份识别码和移动终端mac保存到绑定列表中与替换移动终端信息相对应的存储位置;

例如,本实施例中,移动终端的信息包括移动终端型号、名称、mac值等等;

在本实施例中,将第二身份识别码和第二密钥、移动终端mac对应保存的上述实现方式中的移动终端mac可以替换为身份解析密钥。

步骤210:蓝牙设备接收移动终端传来的irk(身份解析密钥),并用第一密钥对irk(身份解析密钥)进行加密得到第三加密结果,并将第三加密结果发送给移动终端;

例如,生成的irk(身份解析密钥)并发给终端数据如下:0xb20x0d0x5b0x440xd30xfb0x550x800xec0xd00x2f0xc80x1f0xcc0xf80x67,发送原始数据如下:0d0x030x320x520x010x600x0e0x1b0xaa0x1a0x930x9a0xaf0x060x190x110x000x060x000x080xb20x0d0x5b0x440xd30xfb0x550x800xec0xd00x2f0xc80x1f0xcc0xf80x670xf00xd70xf60x6d0x2e0xac0x30。

在本实施例中,步骤208之前还包括:移动终端下发irk;移动终端向蓝牙设备发送一个身份认证地址信息;移动终端下发一个签名值;

例如,第二密钥为长密钥。

步骤211:蓝牙设备使用第一密钥加密蓝牙设备的mac地址得到第四加密结果,并将第四加密结果发送给移动终端;

例如,mac地址并发给终端数据如下:0x060xc00x8c0xa50xe00xdd,发送原始数据如下:0x0d0x030x0e0x540x010x600x0e0x120xaa0x1a0x930x9a0xaf0x060x100x080x000x060x000x090x010x060xc00x8c0xa50xe00xdd0x770x540xda0x580x2e0xf70x8b

步骤212:蓝牙设备判断绑定丢失标志位是否置位,如果是,断开蓝牙连接,并修改广播中特定标志位,返回步骤204;否则,执行步骤214。

步骤213:蓝牙设备根据加密请求判断是否已经绑定了移动终端,如果是,根据加密请求检索通信密钥,执行步骤214;否则,蓝牙设备向移动终端发送申请配对请求,并置位绑定丢失标志,返回步骤205;

具体地,步骤213包括:蓝牙设备获取绑定列表,从加密请求中获取第二身份识别码并判断第二身份识别码对应的移动终端是否在绑定列表中,如果是,蓝牙设备已经绑定了移动终端,根据加密请求检索通信密钥,执行步骤214;否则,蓝牙设备丢失与移动终端的绑定,蓝牙设备向移动终端发送申请配对的请求,并置位绑定丢失标志位,返回步骤205;

步骤214:蓝牙设备与移动终端进行正常通信,结束。

通过本发明,可以通过蓝牙设备让上层重新获取服务,避免了连接后因无法通信而需要用户手动断开再连接,用户体验良好。

实施例3

本实施例提供了一种与移动终端执行配对服务的蓝牙设备,如图3所示,包括:

连接模块10,用于与移动终端建立连接;

接收模块11,用于接收移动终端下发的请求;

判断模块12,用于判断接收模块11接收到的请求的类型;

绑定模块13,用于当判断模块12判断出接收模块11接收到的移动终端下发的请求的类型为配对请求时,绑定移动终端;

可选地,判断模块12,还用于判断绑定丢失标志位是否置位;

断开模块14,用于当判断模块12判断出绑定丢失标志位置位时,断开与移动终端的连接,触发连接模块10;

可选地,判断模块12,还用于当判断出接收模块11接收到的请求的类型为加密请求时,判断是否已经绑定了移动终端;

发送模块15,用于当判断模块12判断出蓝牙设备没有绑定移动终端时,向移动终端发送申请绑定的请求,并置位绑定丢失标志位,触发接收模块10;

通信模块16,用于当判断模块12判断出绑定丢失标志位没有置位时或判断模块12判断出绑定模块已经绑定移动终端时,与移动终端正常通信。

可选地,蓝牙设备,还包括:

初始化模块,用于初始化蓝牙设备;

广播模块,用于开启蓝牙广播;

判断模块12,还用于判断是否接收到移动终端发送的连接请求,当判断出接收到移动终端发送的连接请求时,触发连接模块10。

可选地,判断模块12还用于判断是否接收到移动终端下发的请求,当接收到移动终端下发的请求时,触发接收模块11;当没有接收到移动终端下发的请求时,断开模块14断开与移动终端的连接,触发广播模块。

可选地,蓝牙设备,还包括:

获取模块,用于和移动终端建立连接后,获取移动终端的mac地址并保存。

可选地,绑定模块13具体包括:

生成子模块,用于生成第三随机数,并根据第三随机数生成第一身份识别码;

加密子模块,用于使用第一密钥加密生成子模块生成的第三随机数和第一身份识别码获得第二加密结果;

发送子模块,用于将加密子模块获得的第二加密结果发送给移动终端;

保存子模块,用于对应保存移动终端的mac地址和第二身份识别码至绑定列表;

接收子模块,用于从移动终端接收身份解析密钥;

加密子模块,还用于使用第一密钥加密接收子模块从移动终端接收到的身份解析密钥得到第三加密结果;

发送子模块,还用于将加密子模块得到的第三加密结果发送给移动终端;

加密子模块,还用于使用第一密钥加密蓝牙设备的mac地址得到第四加密结果;

发送子模块,还用于将加密子模块得到的第四加密结果发送给移动终端。

可选地,绑定模块13还包括:

生成子模块还用于生成通信密钥;

发送子模块还用于将生成子模块生成的通信密钥发送给移动终端。

可选地,判断模块12具体包括:

获取子模块,用于获取绑定列表,以及从加密请求中获取第二身份识别码;

判断子模块,用于判断获取子模块获取的第二身份识别码对应的移动终端是否在绑定列表中;

检索子模块,用于当判断子模块判断第二身份识别码对应的移动终端在绑定列表中时,根据加密请求检索通信密钥,触发通信模块16;

发送模块15包括:

发送子模块,用于当判断子模块判断第二身份识别码对应的移动终端不在绑定列表中时,向移动终端发送申请配对的请求,并设置绑定丢失标志位,触发接收模块11。

可选地,蓝牙设备中,生成子模块具体包括:

协商单元,用于与移动终端协商出第一密钥并保存;

生成单元,用于生成通信密钥,用第一密钥加密通信密钥得到第一加密结果;

发送子模块包括:

发送单元,用于将第一加密结果发送给移动终端。

可选地,协商单元具体包括:

返回子单元,用于向移动终端返回配对响应;

发送子单元,用于向蓝牙设备发送第一随机数;

接收子单元,用于接收第一随机数并保存;

生成子单元,用于生成第二随机数;

发送子单元,还用于将生成子单元生成的第二随机数发送给移动终端;

计算子单元,用于根据预设认证码、接收子单元接收到的第一随机数、生成子单元生成的第二随机数计算得到第一密钥。

可选地,保存子模块还用于将通信密钥对应保存至绑定列表。

可选地,蓝牙设备还包括:

清除模块,用于清除广播特定标志位。

可选地,判断模块12具体包括:

修改子模块,用于当判断模块12判断绑定丢失标志位为置位时,断开模块14断开与移动终端的连接之后,修改广播中的特定标志位;

判断子模块,用于判断广播中的特定标志位是否被修改过;

连接子模块,还用于当判断子模块判断出广播中的特定标志位被修改过时,再次与移动终端进行连接。

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