CN105430605B - 一种蓝牙主从设备及两者建立安全通道的方法 - Google Patents

一种蓝牙主从设备及两者建立安全通道的方法 Download PDF

Info

Publication number
CN105430605B
CN105430605B CN201510909212.6A CN201510909212A CN105430605B CN 105430605 B CN105430605 B CN 105430605B CN 201510909212 A CN201510909212 A CN 201510909212A CN 105430605 B CN105430605 B CN 105430605B
Authority
CN
China
Prior art keywords
data
bluetooth
slave devices
key
random number
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
Application number
CN201510909212.6A
Other languages
English (en)
Other versions
CN105430605A (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN201510909212.6A priority Critical patent/CN105430605B/zh
Publication of CN105430605A publication Critical patent/CN105430605A/zh
Application granted granted Critical
Publication of CN105430605B publication Critical patent/CN105430605B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup

Abstract

本发明公开一种蓝牙主从设备及两者建立安全通道的方法,属于信息安全领域。所述方法包括:蓝牙设备双方交换各自的设备信息,根据所述设备信息,蓝牙设备间开始建立连接,蓝牙设备双方交换并验证各自根据同样的算法生成的认证密钥,当验证成功后,蓝牙设备双方根据同样算法生成通信加密密钥,至此蓝牙设备间建立安全通道;蓝牙从设备包括:数据接收模块、第一数据发送模块、第二数据发送模块、数据生成模块、运算模块、判断模块、通信加密模块、显示模块;蓝牙主设备包括:数据接收模块、数据发送模块、数据生成模块、运算模块、判断模块、通信加密模块、输入模块;实现了蓝牙设备间通过验证码进行连接,防止其他设备的恶意连接。

Description

一种蓝牙主从设备及两者建立安全通道的方法
技术领域
本发明涉及信息安全领域,特别涉及一种蓝牙主从设备及两者建立安全通道的方法。
背景技术
蓝牙技术利用短距离、低成本的无线连接替代了电缆连接,广泛的应用于包括移动电话、无线耳机、笔记本电脑、相关外设等众多设备之间,实现了蓝牙设备间的无线通信;蓝牙设备是一种利用蓝牙技术设计的无线通信电子产品,支持短距离无线通信,具有延迟时间短、连接稳定性强等特点。
当蓝牙设备间建立安全通道时,由于现阶段蓝牙设备之间大都采用无验证连接方式,这增加了连接的不确定性,存在恶意连接的问题;当蓝牙设备向具有蓝牙功能的设备发送数据时,由于通信数据不会加密,通信数据易受到窃听、中间人攻击、消息修改及资源滥用等问题。
发明内容
本发明目的是为了克服现有技术的缺陷,提出一种蓝牙主从设备及两者建立安全通道的方法。
本发明方法是通过下述技术方案实现的
一种蓝牙主从设备间建立安全通道的方法,包括:
步骤101、蓝牙主设备与周围有效范围内的蓝牙设备交换各自的设备信息;
具体的,所述设备信息具体为设备地址类型和设备地址。
步骤102、所述蓝牙主设备向用户选择的蓝牙设备发送配对请求指令,所述用户选择的蓝牙设备作为蓝牙从设备;
步骤103、蓝牙从设备接收所述蓝牙主设备发送的配对请求指令,产生并显示第一初始密钥,并向所述蓝牙主设备发送配对响应指令;
步骤104、所述蓝牙主设备接收用户根据所述第一初始密钥输入的第二初始密钥;所述蓝牙主设备产生第一随机数,并根据所述蓝牙主设备的设备信息、所述蓝牙从设备的设备信息、所述第一随机数、所述配对请求指令中的第一通信参数、所述配对响应指令中的第二通信参数以及所述第二初始密钥生成第一认证密钥;所述蓝牙从设备产生第二随机数,并根据所述蓝牙主设备的设备信息、所述蓝牙从设备的设备信息、所述第二随机数、所述第一通信参数、所述第二通信参数以及所述第一初始密钥生成第二认证密钥;所述蓝牙主从设备交换各自生成的第一认证密钥和第二认证密钥;所述蓝牙主设备还向所述蓝牙从设备发送第一随机数;
所述蓝牙主设备根据所述蓝牙主设备的设备信息、所述蓝牙从设备的设备信息、所述第一随机数、所述第一通信参数、所述第二通信参数以及所述第二初始密钥生成第一认证密钥,具体包括:
步骤301、所述蓝牙主设备根据所述蓝牙主设备的所述设备地址类型、所述蓝牙从设备的设备地址类型、所述第一通信参数以及所述第二通信参数生成第一数据;
具体的,所述蓝牙主设备根据所述蓝牙主设备的所述设备地址类型、所述蓝牙从设备的设备地址类型、所述第一通信参数以及所述第二通信参数生成第一数据具体包括:所述蓝牙主设备获取所述蓝牙主设备的设备地址类型的预设字节;获取所述蓝牙从设备的设备地址类型的预设字节;将所述蓝牙主设备的设备地址类型的预设字节、所述蓝牙从设备的设备地址类型的预设字节、所述第一通信参数、所述第二通信参数的预设数据顺序拼接得到第一数据。
步骤302、所述蓝牙主设备将所述第二初始密钥转换为第二临时密钥;
步骤303、所述蓝牙主设备将所述第一随机数与所述第一数据经过预设运算得到的结果与所述第二临时密钥进行预设加密运算得到第二数据;
具体的,所述蓝牙主设备将所述第一随机数与所述第一数据经过预设运算得到的结果与所述第二临时密钥进行预设加密运算得到第二数据具体包括:所述蓝牙主设备将所述第一随机数与所述第一数据进行异或运算,并将运算得到的结果与所述第二临时密钥进行128比特的AES运算得到第二数据。
步骤304、所述蓝牙主设备根据所述蓝牙主设备的设备地址和所述蓝牙从设备的设备地址得到第三数据;
具体的,所述蓝牙主设备根据所述蓝牙主设备的设备地址和所述蓝牙从设备的设备地址得到第三数据具体包括:所述蓝牙主设备将所述蓝牙主设备的设备地址与所述蓝牙从设备的设备地址顺序拼接得到第三数据。
步骤305、所述蓝牙主设备将所述第二数据与所述第三数据经过所述预设运算得到的结果与所述第二临时密钥进行所述预设加密运算得到第一认证密钥。
具体的,所述蓝牙主设备将所述第二数据与所述第三数据经过所述预设运算得到的结果与所述第二临时密钥进行所述预设加密运算得到第一认证密钥具体包括:所述蓝牙主设备将所述第二数据与所述第三数据进行异或运算,并将运算得到结果与所述第二临时密钥进行128比特的AES运算得到第一认证密钥。
步骤105、所述蓝牙从设备根据所述蓝牙主设备的设备信息、所述蓝牙从设备的设备信息、所述第一随机数、所述配对请求指令中的第一通信参数、所述配对响应指令中的第二通信参数以及所述第一初始密钥生成第三认证密钥,并判断所述第一认证密钥是否等于所述第三认证密钥;是则所述蓝牙从设备向所述蓝牙主设备发送所述第二随机数执行步骤106,否则建立安全通道失败;
步骤106、所述蓝牙主设备根据所述设备信息、所述第二随机数、所述配对请求指令中的第一通信参数、所述配对响应指令中的第二通信参数以及所述第二初始密钥生成第四认证密钥,并判断所述第二认证密钥是否等于所述第四认证密钥,是则所述蓝牙主设备向所述蓝牙从设备发送比对成功指令,执行步骤107,否则建立安全通道失败;
步骤107、所述蓝牙主设备根据所述第二初始密钥、所述第一随机数和所述第二随机数生成第二通信加密密钥;所述蓝牙从设备根据所述第一初始密钥、所述第一随机数和所述第二随机数生成第一通信加密密钥。
具体的,所述蓝牙主设备根据第二初始密钥、第一随机数和第二随机数生成第二通信加密密钥,具体包括:
步骤801、所述蓝牙主设备将所述第一随机数的预设数据、第二随机数的预设数据顺序拼接得到第四数据;
步骤802、所述蓝牙主设备将第二初始密钥转换的第二临时密钥,并将所述第四数据与所述第二临时密钥进行所述预设加密运算得到第二通信加密密钥。
优选的,所述蓝牙主设备向用户选择的蓝牙设备发送配对请求指令之后还包括:所述蓝牙从设备解析配对请求指令,判断配对方式是否为简单配对,是则所述蓝牙从设备等待接收所述蓝牙主设备的通信数据,否则产生并显示第一初始密钥。
优选的,所述蓝牙从设备向所述蓝牙主设备发送第一初始密钥,所述蓝牙主设备接收并显示所述蓝牙从设备发送的第一初始密钥,等待用户触发确认信息。
一种蓝牙从设备建立安全通道的方法,包括:
步骤A、蓝牙从设备接收蓝牙主设备的设备信息并向所述蓝牙主设备发送所述蓝牙从设备的设备信息;
步骤B、所述蓝牙从设备接收所述蓝牙主设备发送的配对请求指令,产生并显示第一初始密钥,并向所述蓝牙主设备发送配对响应指令;
步骤C、所述蓝牙从设备产生第二随机数,根据所述设备信息、所述第二随机数、所述配对请求指令中的第一通信参数、所述配对响应指令中的第二通信参数以及所述第一初始密钥生成第二认证密钥;并向所述蓝牙主设备发送所述第二认证密钥;
步骤D、所述蓝牙从设备接收所述蓝牙主设备发送的第一认证密钥和第一随机数,并根据所述蓝牙主设备的设备信息、所述蓝牙从设备的设备信息、所述第一随机数、所述第一通信参数、所述第二通信参数以及所述第一初始密钥生成第三认证密钥;
步骤E、所述蓝牙从设备判断所述第一认证密钥是否与所述第三认证密钥相等,是则向所述蓝牙主设备发送所述第二随机数,执行步骤F,否则所述蓝牙主设备身份不合法,建立安全通道失败;
步骤F、所述蓝牙从设备接收所述蓝牙主设备发送的认证结果,若所述认证结果为成功则所述蓝牙从设备根据所述第一初始密钥、所述第一随机数和所述第二随机数生成第一通信加密密钥,否则建立安全通道失败。
一种蓝牙从设备,包括:
数据接收模块,用于接收所述蓝牙主设备的设备信息、配对请求指令、第一随机数、第一认证密钥和认证结果;
第一数据发送模块,用于向所述蓝牙主设备发送所述蓝牙从设备的设备信息、配对响应指令和第二认证密钥;
所述第一数据发送模块发送的所述蓝牙从设备的设备信息具体为:所述蓝牙从设备的设备地址和设备地址类型;所述数据接收模块接收的所述蓝牙主设备的设备信息为设备地址和设备地址类型。
第二数据发送模块,用于若判断模块判断第一认证密钥等于第三认证密钥时发送第二随机数;
数据生成模块,用于生成第一初始密钥和第二随机数;
显示模块,用于显示所述数据生成模块生成的所述第一初始密钥;
运算模块,用于根据所述数据接收模块接收的所述蓝牙主设备的设备信息,所述蓝牙从设备的设备信息,所述数据接收模块接收的所述第一随机数、所述数据接收模块接收的所述配对请求指令中的第一通信参数、所述配对响应指令中的第二配对参数以及所述数据生成模块生成的所述第一初始密钥生成第三认证密钥;还用于根据所述数据接收模块接收的所述蓝牙主设备的设备信息,所述蓝牙从设备的设备信息,所述数据生成模块生成的所述第二随机数、所述第一通信参数、所述第二配对参数以及所述数据生成模块生成的所述第一初始密钥生成第二认证密钥;
具体的,所述运算模块,包括:
第一数据生成子模块,用于根据所述蓝牙主设备的设备地址类型、所述蓝牙从设备的设备地址类型、所述第一通信参数以及所述第二通信参数生成第一数据;
所述第一数据生成子模块具体包括
获取预设字节单元,用于获取所述蓝牙主设备的设备地址类型的预设字节并转换为十六进制,还用于获取所述蓝牙从设备的地址类型的预设字节并转换为十六进制;
第一拼接单元,用于将所述获取预设字节单元生成的所述蓝牙主设备的设备地址类型的预设字节的十六进制数据、所述蓝牙从设备的设备地址类型的预设字节的十六进制数据、所述第一通信参数以及所述第二通信参数顺序拼接为第一数据。
临时密钥生成子模块,用于将第一初始密钥生成第一临时密钥;
第二数据生成子模块,用于将所述第二随机数与所述第一数据生成子模块生成的所述第一数据经过预设运算得到的结果与所述第一临时密钥生成子模块生成的所述第一临时密钥进行预设加密运算生成第二数据;
具体的,所述第二数据生成模块具体包括:
第一异或单元,用于将所述第二随机数与所述第一数据生成子模块生成的所述第一数据进行异或运算;
第一加密单元,用于将所述第一异或单元运算得到的结果与所述第一临时密钥生成子模块生成的第一临时密钥进行128比特的AES运算得到第二数据。
第三数据生成子模块,用于根据所述蓝牙主设备的设备地址和所述蓝牙从设备的设备地址生成第三数据;
具体的,所述第三数据生成子模块具体包括:将所述蓝牙主设备的设备地址与所述蓝牙从设备的设备地址顺序拼接得到第三数据。
第一认证密钥生成子模块,用于将所述第二数据生成子模块生成的所述第二数据与所述第三数据生成子模块生成的第三数据经过所述的预设运算得到的结果与所述第一临时密钥生成子模块生成的第一临时密钥进行预设加密运算得到第一认证密钥。
具体的,所述第二认证密钥生成子模块具体包括:
第二异或单元,用于将所述第二数据生成子模块生成的所述第二数据与所述第三数据生成子模块生成的所述第三数据进行异或运算;
第二加密单元,用于将第二异或单元运算得到结果与所述第一临时密钥子模块生成的所述第一临时密钥进行128比特的AES运算得到第二认证密钥。
判断模块,用于判断所述数据接收模块接收到的所述第一认证密钥与所述运算模块生成的所述第三认证密钥是否相等;
通信加密模块,用于若所述数据接收模块接收的认证结果为成功时根据所述第一随机数、所述第二随机数和所述第一初始密钥生成第一通信加密密钥。
具体的,所述通信加密模块,具体包括:
第四数据生成子模块,用于将所述第一随机数的预设数据、第二随机数的预设数据顺序拼接得到第四数据;
第一通信加密密钥生成子模块,用于将所述第一初始密钥转换为第一临时密钥,并将所述第四数据生成子模块生成的第四数据与所述第一临时密钥进行所述预设加密运算得到第一通信加密密钥。
优选的,所述蓝牙从设备还包括:
配对请求指令解析模块,用于解析配对请求指令,判断配对方式是否为简单配对,是则所述蓝牙从设备等待接收所述蓝牙主设备的通信数据,否则触发所述数据生成模块。
一种蓝牙主设备,包括:
数据接收模块,用于接收所述蓝牙从设备的设备信息、配对响应指令、第二随机数和第二认证密钥;
数据发送模块,用于向所述蓝牙从设备发送所述蓝牙主设备的设备信息、配对请求指令、第一随机数和第一认证密钥;
数据生成模块,用于生成所述第一随机数;
输入模块,用于接收用户根据所述蓝牙从设备显示的第一初始密钥输入的第二初始密钥;
运算模块,用于根据所述数据接收模块接收的所述蓝牙从设备的设备信息,所述蓝牙主设备的设备信息,所述数据接收模块接收的所述第二随机数、所述数据接收模块接收的所述配对响应指令中的第二通信参数、所述配对请求指令中的第一通信参数以及所述输入模块接收的第二初始密钥生成第四认证密钥;还用于根据所述数据接收模块接收的所述蓝牙从设备的设备信息,所述蓝牙主设备的设备信息,所述数据生成模块生成的所述第一随机数、所述数据接收模块接收的所述配对响应指令中的第二通信参数、所述配对请求指令的第一通信参数以及所述输入模块接收的第二初始密钥生成第一认证密钥;
判断模块,用于判断所述数据接收模块接收到的所述第二认证密钥与所述运算模块生成的所述第四认证密钥是否相等;
通信加密模块,用于若判断模块判断所述第二认证密钥与所述第四认证密钥相等时根据所述第一随机数、所述第二随机数和所述第二初始密钥生成通信加密密钥。
优选的,所述蓝牙主设备还包括显示模块;
所述数据接收模块,还用于接收所述蓝牙从设备发送的第一初始密钥;
所述显示模块,用于显示所述蓝牙从设备发送的第一初始密钥;
所述输入模块,还用于接收用户的确认信息。
本发明方法的有益效果在于:实现了蓝牙设备间通过验证码进行连接,防止其他设备的恶意连接;并且对通信数据进行加密,保护通信数据传输安全,防止通信数据被窃听,使得蓝牙通信更加安全可靠。
附图说明
为了更清楚的说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的一种蓝牙主从设备建立安全通道的方法的整体流程图。
图2为本发明实施例1提供的生成第一认证密钥的流程图。
图3为本发明实施例2提供的一种蓝牙从设备的方框图。
图4为本发明实施例3提供的一种蓝牙主设备的方框图
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,本实施例1提供一种蓝牙主从设备建立安全通道的方法,具体为:
步骤101、从设备进行数据广播。
从设备进行数据广播,具体为11 09 46 54 5F 32 30 30 30 30 30 30 30 30 3031 32 00 02 01 05 11 07 45 46 41 53 54 46 00 00 C3 00 01 00 01 00 54 46,其中第三个字节至第十八个字节为从设备名称。
步骤102、主设备发送Inquiry搜索命令搜索周围有效范围内的蓝牙设备,并向搜索到的蓝牙设备下发主设备的设备信息;
具体的所述蓝牙主设备的设备信息为设备地址以及设备地址类型。
本实施例中所述Inquiry搜索命令具体为01 01 04 05 9E 8B 33 06 00,其中第五个字节至第八个字节为通用接入码,主设备允许无限制的搜索,第八个字节为搜索的最长时间。
步骤103、从设备向主设备返回携带从设备的设备信息的应答数据。
具体的从设备的设备信息为设备名称、设备地址以及设备地址类型。
步骤104、主设备解析接收到的应答数据,显示从设备名称,接收用户选中的蓝牙设备信息。
所述用户选中的蓝牙设备为从设备。
步骤105、主设备向用户选中的蓝牙设备发送配对请求指令。
所述配对请求指令具体为06 09 1e 01 21 21 06 0a 33 14 33 0b 00 b3 73 0000 5d 93 9a af 0e 0b 07 00 06 00 01 04 00 05 10 07 07 a8 72 cc。其中第二十八个字节为操作位,‘01’标识当前操作为配对请求;第二十九个字节标识主设备初始密钥显示方式标志位,‘04’标识主设备显示初始密钥;第三十个字节为配对方式标志位,‘00’标识当前配对不是简单配对,‘01’标识当前配对为简单配对;第三十一个字节为绑定标志位;第三十二个字节为初始密钥的最大长度;第三十三个字节为主设备密文通信响应标志位,第三十四个字节为从设备密文通信响应标志位。
步骤106、从设备判断配对方式是否为简单配对,是则执行步骤107,否则执行步骤108。
步骤107、从设备等待接收主设备的通信数据。
步骤108、从设备产生随机数作为第一初始密钥并显示第一初始密钥。
步骤109、从设备向主设备发送配对响应指令。
所述配对响应指令具体为09 04 1e 01 21 21 06 0a 31 14 33 0b 00 b3 73 0000 5d 93 9a af 0e 0b 07 00 06 00 02 04 00 05 10 06 03 a8 72 cc。其中第二十八个字节为操作位,‘02’标识当前操作为配对响应,;第二十九个字节标识主设备初始密钥显示方式标志位,‘04’标识主设备显示初始密钥;第三十个字节为配对方式标志位,‘00’标识当前配对不是简单配对,‘01’标识当前配对为简单配对;第三十一个字节为绑定标志位;第三十二个字节为初始密钥的最大长度;第三十三个字节为主设备密文通信请求标志位,第三十四个字节为从设备密文通信请求标志位。
步骤110、主设备接收用户输入的第二初始密钥,并将第二初始密钥转换为第二临时密钥,产生第一随机数,根据第一随机数,第二临时密钥,配对请求指令中的第一通信参数,配对响应指令中的第二通信参数,主设备的设备信息和从设备的设备信息生成第一认证密钥。
如图2所示,将第二初始密钥转化为第二临时密钥,根据第一随机数,第二临时密钥,配对请求指令中的第一通信参数,配对响应指令中的第二通信参数,主设备的设备信息,从设备的设备信息生成第一认证密钥,具体为:
步骤S1、将配对请求指令中的第二十八个字节至第三十四个字节的数据作为第一通信参数,将配对响应指令中的第二十八个字节到第三十四个字节的数据作为第二通信参数。
本实施例中,第一通信参数为01 04 00 05 10 07 07,第二通信参数为02 04 0045 10 06 03。
步骤S2、获取从设备的设备地址类型的最低比特,并将获取到的最低比特前端补零转换为十六进制数据记为rat’,获取主设备的设备地址类型的最低比特,并将获取到的最低比特前端补零转换为十六进制数据记为iat’。
本实施例中,响应设备为从设备;例如响应设备类型为0x1F,则响应设备的最低比特为1,最低比特前端补零转换为十六进制数据为0x01。所述主设备类型为0x02,则主设备的最低比特为0,最低比特前端补零转换为十六进制数据为0x00。
步骤S3、将第一通信参数、第二通信参数、rat’和iat’顺序拼接的结果记为P1。
顺序拼接得到的P1为01 04 00 05 10 07 07 02 04 00 45 10 06 03 01 00。
步骤S4、将用户输入的第二初始密钥前端补零转化成128比特的十六进制数据作为第二临时密钥。
例如,输入的第二初始密钥为019655,将019655转换为十六进制为4CC7,拼接后的数据不足128比特,拼接后的数据前端补零,得到的第二临时密钥为00 00 00 00 00 00 0000 00 00 00 00 00 00 4C C7。
步骤S5、将第一随机数与P1的异或值与第二临时密钥经过128比特的AES运算得到的结果记为P3。
步骤S6、将从设备的设备地址与主设备的设备地址的顺序拼接得到的数据前端补零转化为128比特的十六进制数据记为P2。
例如:响应设备地址为0xD1 99 5F 02 35 C7,主设备地址为0x88 0F 10 92 5F8B,所述P2为0x00 00 00 00 88 0F 10 92 5F 8B D1 99 5F 02 35 C7。
步骤S7、将P2与P3的异或值与第二临时密钥经过128比特的AES运算得到的结果作为第一认证密钥。
例如:从设备的设备地址类型的最低比特1,主设备类型的最低比特为0,Preq为0x07071000000101,Pres为0x05000800000302,主设备地址为0xA1A2A3A4A5A6,响应设备地址为0xB1B2B3B4B5B6,第二临时密钥为0x00000000000000000000000000000000,随机数为0x5783D52156AD6F0E6388274EC6702EE0。
根据以上参数得到的:
P1为0x05000800000302070710000001010001,
P2为0x00000000A1A2A3A4A5A6B1B2B3B4B5B6,
认证密钥为0x1E1E3FEF878988EAD2A74DC5BEF13B86。
步骤111、从设备产生第二随机数,并将第一初始密钥转化为第一临时密钥,根据第二随机数,第一临时密钥,配对请求指令中的第一通信参数,配对响应指令中的第二通信参数,主设备的设备信息和从设备的设备信息生成第二认证密钥。
步骤112、主设备向从设备发送第一认证密钥。
步骤113、从设备向主设备发送第二认证密钥。
步骤114、主设备向从设备发送第一随机数。
步骤115、从设备根据第一随机数,第一临时密钥,配对请求指令中的第一通信参数,配对响应指令中的第二通信参数,主设备的设备信息和从设备的设备信息生成第三认证密钥。
步骤116、从设备判断第一认证密钥是否等于第三认证密钥,是则执行步骤118,否则执行步骤117。
步骤117、从设备向主设备发送配对失败指令。
所述配对失败指令具体为01 20 0C 01 00,其中第四个字节为配对标志位,‘00’标识配对禁止。
步骤118、从设备关机。
本实施例中从设备包含两个部分:蓝牙模块和主控模块,蓝牙模块在接收到配对失败指令后向主控模块发送验证失败指令,所述验证失败指令具体为6B 00 00 00 01 0001 04 00 00-其中第八个字节‘04’是验证失败的标志位,主控模块断电关机。
步骤119、从设备向主设备发送第二随机数。
步骤120、主设备根据第二随机数,第二临时密钥,配对请求指令中的第一通信参数,配对响应指令中的第二通信参数,主设备的设备信息和从设备的设备信息生成第四认证密钥。
所述第二认证密钥、第三认证密钥以及第四认证密钥与第一认证密钥的生成方法相同。
步骤121、主设备判断第二认证密钥是否等于第四认证密钥,是则执行步骤124,否则执行步骤122。
步骤122、主设备向从设备发送配对失败指令。
步骤123、从设备关机。
步骤124、主设备向从设备发送配对成功指令和主设备名称。
所述配对成功指令具体为01 20 0C 01 01,其中第四个字节为配对标志位,‘01’标识配对成功。
步骤125、从设备显示与主设备连接成功。
本实施例中蓝牙模块接收到配对成功指令后向主控模块发送验证成功指令,所述验证成功指令具体为61 00 00 00 13 00 01 00 00 00 81 10 01 02 03 04 05 06 07 0809 0a 0b 0c 0d 0e 0f 01–,第十三个字节至第二十八个字节为主设备名称,主控模块显示‘与xxx连接成功’字样。
步骤126、从设备以第一随机数,第二随机数和第一临时密钥为参数生成第一通信加密密钥。
所述从设备以第一随机数,第一随机数和第一临时密钥生成通信加密密钥,具体为,获取第一随机数的高64比特和第二随机数的高64比特,并将第一随机数的高64比特和第二随机数的高64比特顺序拼接得到的结果作为r’,将r’与第二临时密钥经过128比特的AES运算得到的结果作为第一通信加密密钥。
例如第一随机数为0x1122334455667788000F0E0D0B0A09,获取第一随机数的高64比特为0x1122334455667788,第二随机数为0xAABBCCDDEEFF00010203040506070899,获取第二随机数数的高64比特为0xAABBCCDDEEFF00,将第一随机数的高64比特和第二随机数数的高64比特顺序拼接的结果作为r’,本实施例中拼接得到的r’具体为0x1122334455667788AABBCCDDEEFF00,将r’与第二临时密钥经过128比特的AES运算得到的结果作为通信加密密钥,本实施例中通信加密密钥具体为0x9A1FE1F0E8B0F49B5B4216AE796DA062。
步骤127、主设备以第一随机数,第二随机数和第二临时密钥为参数生成第二通信加密密钥。
主设备和从设备生成通信加密密钥后,随后的通信中发送方通过通信加密密钥对需要将需要传送的数据进行加密,接收方接收到数据后通过通信加密密钥进行解密,实现了主从设备间通信的密文传输。
本实施例中步骤110从设备生成第一认证密钥和步骤111主设备生成第二认证密钥没有固定的先后顺序,步骤126从设备生成第一通信加密密钥与步骤127主设备生成第二通信加密密钥没有固定的先后顺序,本实施例中提供了一种优选的实施方式,其他的实施方式也应属于本发明专利的保护范围之内。
实施例2
如图3所示,本实施例2提供一种蓝牙从设备具体包括:
数据接收模块11,用于接收所述蓝牙主设备的设备信息、配对请求指令、第一随机数、第一认证密钥和认证结果;
具体的,所述数据接收模块11接收的所述蓝牙主设备的设备信息为设备地址和设备地址类型;
第一数据发送模块12,用于向所述蓝牙主设备发送所述蓝牙从设备的设备信息、配对响应指令和第二认证密钥;
具体的,所述第一数据发送模块12发送的所述蓝牙从设备的设备信息具体为所述蓝牙从设备的设备地址和设备地址类型;
第二数据发送模块13,用于若判断模块17判断第一认证密钥等于第三认证密钥时发送第二随机数;
数据生成模块14,用于生成第一初始密钥和第二随机数;
显示模块15,用于显示所述数据生成模块14生成的所述第一初始密钥;
运算模块16,用于根据所述数据接收模块11接收的所述蓝牙主设备的设备信息,所述蓝牙从设备的设备信息,所述数据接收模块11接收的所述第一随机数、所述数据接收模块11接收的所述配对请求指令中的第一通信参数、所述配对响应指令中的第二配对参数以及所述数据生成模块14生成的所述第一初始密钥生成第三认证密钥;还用于根据所述数据接收模块11接收的所述蓝牙主设备的设备信息,所述蓝牙从设备的设备信息,所述数据生成模块14生成的所述第二随机数、所述第一通信参数、所述第二配对参数以及所述数据生成模块14生成的所述第一初始密钥生成第二认证密钥;
具体的,所述运算模块16,具体包括:
第一数据生成子模块,用于根据所述蓝牙主设备的设备地址类型、所述蓝牙从设备的设备地址类型、所述配对请求指令中的第一通信参数以及所述配对响应指令中的第二通信参数生成第一数据;
优选的,所述第一数据生成子模块具体包括:
获取预设字节单元,用于获取所述蓝牙主设备的设备地址类型的预设字节并转换为十六进制,还用于获取所述蓝牙从设备的地址类型的预设字节并转换为十六进制;
第一拼接单元,用于将所述获取预设字节单元生成的所述蓝牙主设备的设备地址类型的预设字节的十六进制数据、所述蓝牙从设备的设备地址类型的预设字节的十六进制数据、所述第一通信参数以及第二通信参数顺序拼接为第一数据。
临时密钥生成子模块,用于将第一初始密钥生成第一临时密钥;
具体的,临时密钥生成子模块具体包括将所述第一初始密钥转换为十六进制并将转换后的数据前端补零至预设长度得到第一临时密钥。
第二数据生成子模块,用于将所述第二随机数与所述第一数据生成子模块生成的所述第一数据经过预设运算得到的结果与所述第一临时密钥生成子模块生成的所述第一临时密钥进行预设加密运算生成第二数据;
具体的,所述第二数据生成模块具体包括:
第一异或单元,用于将所述第二随机数与所述第一数据生成子模块生成的所述第一数据进行异或运算;
第一加密单元,用于将所述第一异或单元运算得到的结果与所述第一临时密钥生成子模块生成的第一临时密钥进行128比特的AES运算得到第二数据。
第三数据生成子模块,用于根据所述蓝牙主设备的设备地址和所述蓝牙从设备的设备地址生成第三数据;
具体的,所述第三数据生成子模块具体包括:将所述蓝牙主设备的设备地址与所述蓝牙从设备的设备地址顺序拼接,并将拼接得到的结果前端补零至所述预设长度得到第三数据。
第二认证密钥生成子模块,用于将所述第二数据生成子模块生成的所述第二数据与所述第三数据生成子模块生成的第三数据经过所述的预设运算得到的结果与所述第一临时密钥生成子模块生成的第一临时密钥进行预设加密运算得到第二认证密钥;
具体的,所述第二认证密钥生成子模块具体包括:
第二异或单元,用于将所述第二数据生成子模块生成的所述第二数据与所述第三数据生成子模块生成的所述第三数据进行异或运算;
第二加密单元,用于将第二异或单元运算得到结果与所述第一临时密钥子模块生成的所述第一临时密钥进行128比特的AES运算得到第二认证密钥。
判断模块17,用于判断所述数据接收模块11接收到的所述第一认证密钥与所述运算模块16生成的所述第三认证密钥是否相等;
通信加密模块18,用于若所述数据接收模块11接收的认证结果为成功时根据所述第一随机数、所述第二随机数和所述第一初始密钥生成第一通信加密密钥。
所述通信加密模块18,具体包括:
第四数据生成子模块,用于将所述第一随机数的预设数据、第二随机数的预设数据顺序拼接,并将拼接后的结果前端补零至预设长度得到第四数据;
第一通信加密密钥生成子模块,用于将所述第一初始密钥转换为第一临时密钥,并将所述第四数据生成子模块生成的第四数据与所述第一临时密钥进行所述预设加密运算得到第一通信加密密钥。
优选的,所述蓝牙从设备还包括配对请求指令解析模块,用于解析配对请求指令,判断配对方式是否为简单配对,是则所述蓝牙从设备等待接收所述蓝牙主设备的通信数据,否则触发所述数据生成子模块。
实施例3
如图4所示,本实施例3提供一种蓝牙主设备,包括:
数据接收模块21,用于接收所述蓝牙从设备的设备信息、配对响应指令、第二随机数和第二认证密钥;
所述数据接收模块21接收的所述蓝牙从设备的设备信息具体为所述蓝牙从设备的设备名称,设备地址和设备地址类型;
数据发送模块22,用于向所述蓝牙从设备发送所述蓝牙主设备的设备信息、配对请求指令、第一随机数和第一认证密钥;
所述数据发送模块22发送的所述蓝牙主设备的设备信息为设备地址和设备地址类型。
数据生成模块23,用于生成所述第一随机数;
输入模块24,用于接收用户根据所述蓝牙从设备显示的第一初始密钥输入的第二初始密钥;
运算模块25,用于根据所述数据接收模块21接收的所述蓝牙从设备的设备信息,所述蓝牙主设备的设备信息,所述数据接收模块21接收的所述第二随机数、所述数据接收模块21接收的所述配对响应指令中的第二通信参数、所述配对请求指令中的第一通信参数以及所述输入模块24接收的第二初始密钥生成第四认证密钥;还用于根据所述数据接收模块21接收的所述蓝牙从设备的设备信息,所述蓝牙主设备的设备信息,所述数据生成模块23生成的所述第一随机数、所述数据接收模块21接收的所述配对响应指令中的第二通信参数、所述配对请求指令中的第一通信参数以及所述输入模块24接收的第二初始密钥生成第一认证密钥;
具体的,所述运算模块25,具体包括:
第一数据生成子模块,用于根据所述蓝牙主设备的设备地址类型、所述蓝牙从设备的设备地址类型、所述配对响应指令中的第二通信参数、所述配对请求指令中的第一通信参数生成第一数据;
具体的,所述第一数据生成子模块具体包括:
获取预设字节单元,用于获取所述蓝牙主设备的设备地址类型的预设字节并转换为十六进制,还用于获取所述蓝牙从设备的地址类型的预设字节并转换为十六进制;
第一拼接单元,用于将所述获取预设字节单元生成的所述蓝牙主设备的设备地址类型的预设字节的十六进制数据、所述蓝牙从设备的设备地址类型的预设字节的十六进制数据、所述第一通信参数以及所述第二通信参数顺序拼接为第一数据。
临时密钥生成子模块,用于将第二初始密钥转换为第二临时密钥;
具体的,临时密钥生成子模块具体包括将所述第二初始密钥转换为十六进制并将转换后的数据前端补零至预设长度得到第二临时密钥。
第二数据生成子模块,用于将所述第二随机数与所述第一数据生成子模块生成的所述第一数据经过预设运算得到的结果与所述第二临时密钥生成子模块生成的所述第二临时密钥进行预设加密运算生成第二数据;
具体的,第二数据生成子模块具体包括:
第一异或单元,用于将所述第二随机数与所述第一数据生成子模块生成的所述第一数据进行异或运算;
第一加密单元,用于将所述第一异或单元运算得到的结果与所述第一临时密钥生成子模块生成的第一临时密钥进行128比特的AES运算得到第二数据。
第三数据生成子模块,用于根据所述蓝牙主设备的设备地址和所述蓝牙从设备的设备地址生成第三数据;
具体的,第三数据生成子模块具体包括:将所述蓝牙主设备的设备地址与所述蓝牙从设备的设备地址顺序拼接,并将拼接得到的结果前端补零至所述预设长度得到第三数据。
第一认证密钥生成子模块,用于将所述第二数据生成子模块生成的所述第二数据与所述第三数据生成子模块生成的第三数据经过所述的预设运算得到的结果与所述第二临时密钥生成子模块生成的第二临时密钥进行预设加密运算得到第一认证密钥。
具体的,所述第一认证密钥生成子模块具体包括:
第二异或单元,用于将所述第二数据生成子模块生成的所述第二数据与所述第三数据生成子模块生成的所述第三数据进行异或运算;
第二加密单元,用于将第二异或单元运算得到结果与所述第一临时密钥子模块生成的所述第一临时密钥进行128比特的AES运算得到第一认证密钥
判断模块26,用于判断所述数据接收模块21接收到的所述第二认证密钥与所述运算模块25生成的所述第四认证密钥是否相等;
通信加密模块27,用于若判断模块26判断所述第二认证密钥与所述第四认证密钥相等时根据所述第一随机数、所述第二随机数和所述第二初始密钥生成通信加密密钥。
具体的,通信加密模块27具体包括:
第四数据生成子模块,用于将所述第一随机数的预设数据、第二随机数的预设数据顺序拼接,并将拼接后的结果前端补零至预设长度得到第四数据;
第二通信加密密钥生成子模块,用于将所述第二初始密钥转换为所述第二临时密钥,并将所述第四数据生成模块生成的第四数据与所述第二临时密钥进行所述预设加密运算得到第二通信加密密钥。
优选的,所述蓝牙主设备还包括:显示模块;
数据接收模块还用于接收所述蓝牙从设备发送的第一初始密钥;
显示模块,用于显示所述蓝牙从设备发送的第一初始密钥;
输入模块24,还用于接收用户的确认信息。

Claims (43)

1.一种蓝牙主从设备建立安全通道的方法,其特征在于,包括:
步骤101、蓝牙主设备与周围有效范围内的蓝牙设备交换各自的设备信息;
步骤102、所述蓝牙主设备向用户选择的蓝牙设备发送配对请求指令,所述用户选择的蓝牙设备作为蓝牙从设备;
步骤103、蓝牙从设备接收所述蓝牙主设备发送的配对请求指令,产生并显示第一初始密钥,并向所述蓝牙主设备发送配对响应指令;
步骤104、所述蓝牙主设备接收用户根据所述第一初始密钥输入的第二初始密钥;所述蓝牙主设备产生第一随机数,并根据所述蓝牙主设备的设备信息、所述蓝牙从设备的设备信息、所述第一随机数、所述配对请求指令中的第一通信参数、所述配对响应指令中的第二通信参数以及所述第二初始密钥生成第一认证密钥;所述蓝牙从设备产生第二随机数,并根据所述蓝牙主设备的设备信息、所述蓝牙从设备的设备信息、所述第二随机数、所述第一通信参数、所述第二通信参数以及所述第一初始密钥生成第二认证密钥;所述蓝牙主从设备交换各自生成的第一认证密钥和第二认证密钥;所述蓝牙主设备还向所述蓝牙从设备发送第一随机数;
步骤105、所述蓝牙从设备根据所述蓝牙主设备的设备信息、所述蓝牙从设备的设备信息、所述第一随机数、所述配对请求指令中的第一通信参数、所述配对响应指令中的第二通信参数以及所述第一初始密钥生成第三认证密钥,并判断所述第一认证密钥是否等于所述第三认证密钥;是则所述蓝牙从设备向所述蓝牙主设备发送所述第二随机数执行步骤106,否则建立安全通道失败;
步骤106、所述蓝牙主设备根据所述设备信息、所述第二随机数、所述配对请求指令中的第一通信参数、所述配对响应指令中的第二通信参数以及所述第二初始密钥生成第四认证密钥,并判断所述第二认证密钥是否等于所述第四认证密钥,是则所述蓝牙主设备向所述蓝牙从设备发送比对成功指令,执行步骤107,否则建立安全通道失败;
步骤107、所述蓝牙主设备根据所述第二初始密钥、所述第一随机数和所述第二随机数生成第二通信加密密钥;所述蓝牙从设备根据所述第一初始密钥、所述第一随机数和所述第二随机数生成第一通信加密密钥。
2.如权利要求1所述的方法,其特征在于,所述设备信息具体为设备地址类型和设备地址。
3.如权利要求2所述的方法,其特征在于,所述蓝牙主设备根据所述蓝牙主设备的设备信息、所述蓝牙从设备的设备信息、所述第一随机数、所述第一通信参数、所述第二通信参数以及所述第二初始密钥生成第一认证密钥,具体包括:
步骤301、所述蓝牙主设备根据所述蓝牙主设备的所述设备地址类型、所述蓝牙从设备的设备地址类型、所述第一通信参数以及所述第二通信参数生成第一数据;
步骤302、所述蓝牙主设备将所述第二初始密钥转换为第二临时密钥;
步骤303、所述蓝牙主设备将所述第一随机数与所述第一数据经过预设运算得到的结果与所述第二临时密钥进行预设加密运算得到第二数据;
步骤304、所述蓝牙主设备根据所述蓝牙主设备的设备地址和所述蓝牙从设备的设备地址得到第三数据;
步骤305、所述蓝牙主设备将所述第二数据与所述第三数据经过所述预设运算得到的结果与所述第二临时密钥进行所述预设加密运算得到第一认证密钥。
4.如权利要求3所述的方法,其特征在于,所述蓝牙主设备根据所述蓝牙主设备的所述设备地址类型、所述蓝牙从设备的设备地址类型、所述第一通信参数以及所述第二通信参数生成第一数据具体包括:所述蓝牙主设备获取所述蓝牙主设备的设备地址类型的预设字节;获取所述蓝牙从设备的设备地址类型的预设字节;将所述蓝牙主设备的设备地址类型的预设字节、所述蓝牙从设备的设备地址类型的预设字节、所述第一通信参数、所述第二通信参数的预设数据顺序拼接得到第一数据。
5.如权利要求3所述的方法,其特征在于,所述蓝牙主设备将所述第一随机数与所述第一数据经过预设运算得到的结果与所述第二临时密钥进行预设加密运算得到第二数据具体包括:所述蓝牙主设备将所述第一随机数与所述第一数据进行异或运算,并将运算得到的结果与所述第二临时密钥进行128比特的AES运算得到第二数据。
6.如权利要求3所述的方法,其特征在于,所述蓝牙主设备根据所述蓝牙主设备的设备地址和所述蓝牙从设备的设备地址得到第三数据具体包括:所述蓝牙主设备将所述蓝牙主设备的设备地址与所述蓝牙从设备的设备地址顺序拼接得到第三数据。
7.如权利要求3所述的方法,其特征在于,所述蓝牙主设备将所述第二数据与所述第三数据经过所述预设运算得到的结果与所述第二临时密钥进行所述预设加密运算得到第一认证密钥具体包括:所述蓝牙主设备将所述第二数据与所述第三数据进行异或运算,并将运算得到结果与所述第二临时密钥进行128比特的AES运算得到第一认证密钥。
8.如权利要求1所述的方法,其特征在于,所述蓝牙主设备根据第二初始密钥、第一随机数和第二随机数生成第二通信加密密钥,具体包括:
步骤801、所述蓝牙主设备将所述第一随机数的预设数据、第二随机数的预设数据顺序拼接得到第四数据;
步骤802、所述蓝牙主设备将第二初始密钥转换的第二临时密钥,并将所述第四数据与所述第二临时密钥进行所述预设加密运算得到第二通信加密密钥。
9.如权利要求2所述的方法,其特征在于,所述蓝牙从设备根据所述蓝牙主设备的设备信息、所述蓝牙从设备的设备信息、所述第二随机数、所述第一通信参数、所述第二通信参数以及所述第一初始密钥生成第二认证密钥,具体包括:
步骤901、所述蓝牙从设备根据所述蓝牙主设备的所述设备地址类型、所述蓝牙从设备的设备地址类型、所述第一通信参数以及所述第二通信参数生成第一数据;
步骤902、所述蓝牙从设备将所述第二初始密钥转换为第二临时密钥;
步骤903、所述蓝牙从设备将所述第一随机数与所述第一数据经过预设运算得到的结果与所述第二临时密钥进行预设加密运算得到第二数据;
步骤904、所述蓝牙从设备根据所述蓝牙主设备的设备地址和所述蓝牙从设备的设备地址得到第三数据;
步骤905、所述蓝牙从设备将所述第二数据与所述第三数据经过所述预设运算得到的结果与所述第二临时密钥进行所述预设加密运算得到第二认证密钥。
10.如权利要求9所述的方法,其特征在于,所述蓝牙从设备根据所述蓝牙主设备的所述设备地址类型、所述蓝牙从设备的设备地址类型、所述第一通信参数以及所述第二通信参数生成第一数据具体包括:所述蓝牙从设备获取所述蓝牙主设备的设备地址类型的预设字节;获取所述蓝牙从设备的设备地址类型的预设字节;将所述蓝牙主设备的设备地址类型的预设字节、所述蓝牙从设备的设备地址类型的预设字节、所述第一通信参数、所述第二通信参数顺序拼接得到第一数据。
11.如权利要求9所述的方法,其特征在于,所述蓝牙从设备将所述第一随机数与所述第一数据经过预设运算得到的结果与所述第二临时密钥进行预设加密运算得到第二数据具体包括:所述蓝牙从设备将所述第二随机数与所述第一数据进行异或运算,并将运算得到的结果与所述第二临时密钥进行128比特的AES运算得到第二数据。
12.如权利要求9所述的方法,其特征在于,所述蓝牙从设备根据所述蓝牙主设备的设备地址和所述蓝牙从设备的设备地址得到第三数据具体包括:所述蓝牙从设备将所述蓝牙主设备的设备地址与所述蓝牙从设备的设备地址顺序拼接第三数据。
13.如权利要求9所述的方法,其特征在于,所述蓝牙从设备将所述第二数据与所述第三数据经过所述预设运算得到的结果与所述第二临时密钥进行所述预设加密运算得到第二认证密钥具体包括:所述蓝牙从设备将所述第二数据与所述第三数据进行异或运算,并将运算得到结果与所述第二临时密钥进行128比特的AES运算得到第二认证密钥。
14.如权利要求1所述的方法,其特征在于,所述蓝牙从设备根据所述第一随机数、所述第二随机数以及第二初始密钥生成第一通信加密密钥具体包括:
步骤A1、所述蓝牙从设备将所述第一随机数的预设数据、第二随机数的预设数据顺序拼接得到第四数据;
步骤A2、所述蓝牙从设备将所述第二初始密钥转换为第二临时密钥,并将所述第四数据与所述第二临时密钥进行所述预设加密运算得到第一通信加密密钥。
15.如权利要求1所述的方法,其特征在于,所述蓝牙主设备向用户选择的蓝牙设备发送配对请求指令之后还包括:所述蓝牙从设备解析配对请求指令,判断配对方式是否为简单配对,是则所述蓝牙从设备等待接收所述蓝牙主设备的通信数据,否则产生并显示第一初始密钥。
16.如权利要求1所述的方法,其特征在于,所述蓝牙主设备接收用户根据所述第一初始密钥输入的第二初始密钥,还可以为:所述蓝牙从设备向所述蓝牙主设备发送第一初始密钥,所述蓝牙主设备接收并显示所述蓝牙从设备发送的第一初始密钥,等待用户触发确认信息。
17.一种蓝牙主从设备建立安全通道的方法,其特征在于,包括:
步骤A、蓝牙从设备接收蓝牙主设备的设备信息并向所述蓝牙主设备发送所述蓝牙从设备的设备信息;
步骤B、所述蓝牙从设备接收所述蓝牙主设备发送的配对请求指令,产生并显示第一初始密钥,并向所述蓝牙主设备发送配对响应指令;
步骤C、所述蓝牙从设备产生第二随机数,根据所述设备信息、所述第二随机数、所述配对请求指令中的第一通信参数、所述配对响应指令中的第二通信参数以及所述第一初始密钥生成第二认证密钥;并向所述蓝牙主设备发送所述第二认证密钥;
步骤D、所述蓝牙从设备接收所述蓝牙主设备发送的第一认证密钥和第一随机数,并根据所述蓝牙主设备的设备信息、所述蓝牙从设备的设备信息、所述第一随机数、所述第一通信参数、所述第二通信参数以及所述第一初始密钥生成第三认证密钥;
步骤E、所述蓝牙从设备判断所述第一认证密钥是否与所述第三认证密钥相等,是则向所述蓝牙主设备发送所述第二随机数,执行步骤F,否则所述蓝牙主设备身份不合法,建立安全通道失败;
步骤F、所述蓝牙从设备接收所述蓝牙主设备发送的认证结果,若所述认证结果为成功则所述蓝牙从设备根据所述第一初始密钥、所述第一随机数和所述第二随机数生成第一通信加密密钥,否则建立安全通道失败。
18.如权利要求17所述的方法,其特征在于,所述蓝牙主设备的设备信息具体为:所述蓝牙主设备的设备地址类型和设备地址,所述蓝牙从设备的设备信息具体为:所述蓝牙从设备的设备地址类型和设备地址。
19.如权利要求18所述的方法,其特征在于,所述蓝牙从设备产生第二随机数,根据所述设备信息、所述第二随机数、所述配对请求指令中的第一通信参数、所述配对响应指令中的第二通信参数以及所述第一初始密钥生成第二认证密钥,具体包括:
步骤B1、所述蓝牙从设备根据所述蓝牙主设备的设备地址类型、所述蓝牙从设备的设备地址类型、所述第一通信参数以及所述第二通信参数生成第一数据;
步骤B2、所述蓝牙从设备将所述第一初始密钥转换为第一临时密钥;
步骤B3、所述蓝牙从设备将所述第二随机数与所述第一数据经过预设运算得到的结果与所述第一临时密钥进行预设加密运算得到第二数据;
步骤B4、所述蓝牙从设备根据所述蓝牙主设备的设备地址和所述蓝牙从设备的设备地址得到第三数据;
步骤B5、所述蓝牙从设备将所述第二数据与所述第三数据经过所述预设运算得到的结果与所述第一临时密钥进行所述预设加密运算得到第二认证密钥。
20.如权利要求19所述的方法,其特征在于,所述根据所述蓝牙主设备的设备地址类型、所述蓝牙从设备的设备地址类型、所述第一通信参数以及所述第二通信参数生成第一数据,具体包括:所述蓝牙从设备获取所述蓝牙主设备的设备地址类型的预设字节;获取所述蓝牙从设备的设备地址类型的预设字节;将所述蓝牙主设备的设备地址类型的预设字节、所述蓝牙从设备的设备地址类型的预设字节、所述第一通信参数、所述第二通信参数顺序拼接得到第一数据。
21.如权利要求19所述的方法,其特征在于,所述蓝牙从设备将所述第二随机数与所述第一数据经过预设运算得到的结果与所述第一临时密钥进行预设加密运算得到第二数据具体包括:所述蓝牙从设备将所述第二随机数与所述第一数据进行异或运算,并将运算得到的结果与所述第一临时密钥进行128比特的AES运算得到第二数据。
22.如权利要求19所述的方法,其特征在于,所述蓝牙从设备根据所述蓝牙主设备的设备地址和所述蓝牙从设备的设备地址得到第三数据具体包括:所述蓝牙从设备将所述蓝牙主设备的设备地址与所述蓝牙从设备的设备地址顺序拼接得到第三数据。
23.如权利要求19所述的方法,其特征在于,所述蓝牙从设备将所述第二数据与所述第三数据经过所述预设运算得到的结果与所述第一临时密钥进行所述预设加密运算得到第二认证密钥具体包括:所述蓝牙从设备将所述第二数据与所述第三数据进行异或运算,并将运算得到结果与所述第一临时密钥进行128比特的AES运算得到第二认证密钥。
24.如权利要求17所述的方法,其特征在于,所述蓝牙从设备根据所述第一随机数、所述第二随机数以及第一初始密钥生成第一通信加密密钥具体包括:
步骤A1、所述蓝牙从设备将所述第一随机数的预设数据、第二随机数的预设数据顺序拼接得到第四数据;
步骤A2、所述蓝牙从设备将所述第一初始密钥转换为第一临时密钥,并所述第四数据与所述第一临时密钥进行所述预设加密运算得到第一通信加密密钥。
25.如权利要求17所述的方法,其特征在于,所述蓝牙从设备接收所述蓝牙主设备发送的配对请求指令之后还包括:所述蓝牙从设备解析配对请求指令,判断配对方式是否为简单配对,是则所述蓝牙从设备等待接收所述蓝牙主设备的通信数据,否则产生并显示第一初始密钥。
26.一种蓝牙从设备,其特征在于,包括:
数据接收模块,用于接收所述蓝牙主设备的设备信息、配对请求指令、第一随机数、第一认证密钥和认证结果;
第一数据发送模块,用于向所述蓝牙主设备发送所述蓝牙从设备的设备信息、配对响应指令和第二认证密钥;
第二数据发送模块,用于若判断模块判断第一认证密钥等于第三认证密钥时发送第二随机数;
数据生成模块,用于生成第一初始密钥和第二随机数;
显示模块,用于显示所述数据生成模块生成的所述第一初始密钥;
运算模块,用于根据所述数据接收模块接收的所述蓝牙主设备的设备信息,所述蓝牙从设备的设备信息,所述数据接收模块接收的所述第一随机数、所述数据接收模块接收的所述配对请求指令中的第一通信参数、所述配对响应指令中的第二配对参数以及所述数据生成模块生成的所述第一初始密钥生成第三认证密钥;还用于根据所述数据接收模块接收的所述蓝牙主设备的设备信息,所述蓝牙从设备的设备信息,所述数据生成模块生成的所述第二随机数、所述第一通信参数、所述第二配对参数以及所述数据生成模块生成的所述第一初始密钥生成第二认证密钥;
判断模块,用于判断所述数据接收模块接收到的所述第一认证密钥与所述运算模块生成的所述第三认证密钥是否相等;
通信加密模块,用于若所述数据接收模块接收的认证结果为成功时根据所述第一随机数、所述第二随机数和所述第一初始密钥生成第一通信加密密钥。
27.如权利要求26所述的蓝牙从设备,其特征在于,所述第一数据发送模块发送的所述蓝牙从设备的设备信息具体为:所述蓝牙从设备的设备地址和设备地址类型;所述数据接收模块接收的所述蓝牙主设备的设备信息为设备地址和设备地址类型。
28.如权利要求27所述的蓝牙从设备,其特征在于,所述运算模块,包括:
第一数据生成子模块,用于根据所述蓝牙主设备的设备地址类型、所述蓝牙从设备的设备地址类型、所述第一通信参数以及第二通信参数生成第一数据;
第一临时密钥生成子模块,用于将第一初始密钥生成第一临时密钥;
第二数据生成子模块,用于将所述第二随机数与所述第一数据生成子模块生成的所述第一数据经过预设运算得到的结果与所述第一临时密钥生成子模块生成的所述第一临时密钥进行预设加密运算生成第二数据;
第三数据生成子模块,用于根据所述蓝牙主设备的设备地址和所述蓝牙从设备的设备地址生成第三数据;
第一认证密钥生成子模块,用于将所述第二数据生成子模块生成的所述第二数据与所述第三数据生成子模块生成的第三数据经过所述的预设运算得到的结果与所述第一临时密钥生成子模块生成的第一临时密钥进行预设加密运算得到第一认证密钥。
29.如权利要求28所述的蓝牙从设备,其特征在于,所述第一数据生成子模块具体包括
获取预设字节单元,用于获取所述蓝牙主设备的设备地址类型的预设字节并转换为十六进制,还用于获取所述蓝牙从设备的地址类型的预设字节并转换为十六进制;
第一拼接单元,用于将所述获取预设字节单元生成的所述蓝牙主设备的设备地址类型的预设字节的十六进制数据、所述蓝牙从设备的设备地址类型的预设字节的十六进制数据、所述第一通信参数以及所述第二通信参数顺序拼接为第一数据。
30.如权利要求28所述的蓝牙从设备,其特征在于所述第二数据生成模块具体包括:
第一异或单元,用于将所述第二随机数与所述第一数据生成子模块生成的所述第一数据进行异或运算;
第一加密单元,用于将所述第一异或单元运算得到的结果与所述第一临时密钥生成子模块生成的第一临时密钥进行128比特的AES运算得到第二数据。
31.如权利要求28所述的蓝牙从设备,其特征在于所述第三数据生成子模块具体包括:将所述蓝牙主设备的设备地址与所述蓝牙从设备的设备地址顺序拼接得到第三数据。
32.如权利要求28所述的蓝牙从设备,其特征在于,所述第二认证密钥生成子模块具体包括:
第二异或单元,用于将所述第二数据生成子模块生成的所述第二数据与所述第三数据生成子模块生成的所述第三数据进行异或运算;
第二加密单元,用于将第二异或单元运算得到结果与所述第一临时密钥子模块生成的所述第一临时密钥进行128比特的AES运算得到第二认证密钥。
33.如权利要求26所述的蓝牙从设备,其特征在于所述通信加密模块,具体包括:
第四数据生成子模块,用于将所述第一随机数的预设数据、第二随机数的预设数据顺序拼接得到第四数据;
第一通信加密密钥生成子模块,用于将所述第一初始密钥转换为第一临时密钥,并将所述第四数据生成子模块生成的第四数据与所述第一临时密钥进行所述预设加密运算得到第一通信加密密钥。
34.如权利要求26所述的蓝牙从设备,其特征在于,所述蓝牙从设备还包括:
配对请求指令解析模块,用于解析配对请求指令,判断配对方式是否为简单配对,是则所述蓝牙从设备等待接收所述蓝牙主设备的通信数据,否则触发所述数据生成模块。
35.一种蓝牙主设备,其特征在于,包括:
数据接收模块,用于接收所述蓝牙从设备的设备信息、配对响应指令、第二随机数和第二认证密钥;
数据发送模块,用于向所述蓝牙从设备发送所述蓝牙主设备的设备信息、配对请求指令、第一随机数和第一认证密钥;
数据生成模块,用于生成所述第一随机数;
输入模块,用于接收用户根据所述蓝牙从设备显示的第一初始密钥输入的第二初始密钥;
运算模块,用于根据所述数据接收模块接收的所述蓝牙从设备的设备信息,所述蓝牙主设备的设备信息,所述数据接收模块接收的所述第二随机数、所述数据接收模块接收的所述配对响应指令中的第二通信参数、所述配对请求指令中的第一通信参数以及所述输入模块接收的第二初始密钥生成第四认证密钥;还用于根据所述数据接收模块接收的所述蓝牙从设备的设备信息,所述蓝牙主设备的设备信息,所述数据生成模块生成的所述第一随机数、所述数据接收模块接收的所述配对响应指令中的第二通信参数、所述配对请求指令的第一通信参数以及所述输入模块接收的第二初始密钥生成第一认证密钥;
判断模块,用于判断所述数据接收模块接收到的所述第二认证密钥与所述运算模块生成的所述第四认证密钥是否相等;
通信加密模块,用于若判断模块判断所述第二认证密钥与所述第四认证密钥相等时根据所述第一随机数、所述第二随机数和所述第二初始密钥生成通信加密密钥。
36.如权利要求35所述的主设备,其特征在于,
所述数据接收模块接收的所述蓝牙从设备的设备信息具体为所述蓝牙从设备的设备名称,设备地址和设备地址类型;所述数据发送模块发送的所述蓝牙主设备的设备信息为设备地址和设备地址类型。
37.如权利要求36所述的蓝牙主设备,其特征在于,所述运算模块,具体包括:
第一数据生成子模块,用于根据所述蓝牙主设备的设备地址类型、所述蓝牙从设备的设备地址类型、所述第一通信参数以及所述第二通信参数生成第一数据;
第二临时密钥生成子模块,用于将第二初始密钥转换为第二临时密钥;
第二数据生成子模块,用于将所述第二随机数与所述第一数据生成子模块生成的所述第一数据经过预设运算得到的结果与所述第二临时密钥生成子模块生成的所述第二临时密钥进行预设加密运算生成第二数据;
第三数据生成子模块,用于根据所述蓝牙主设备的设备地址和所述蓝牙从设备的设备地址生成第三数据;
第二认证密钥生成子模块,用于将所述第二数据生成子模块生成的所述第二数据与所述第三数据生成子模块生成的第三数据经过所述的预设运算得到的结果与所述第二临时密钥生成子模块生成的第二临时密钥进行预设加密运算得到第二认证密钥。
38.如权利要求37所述的蓝牙主设备,其特征在于,所述第一数据生成子模块具体包括:
获取预设字节单元,用于获取所述蓝牙主设备的设备地址类型的预设字节并转换为十六进制,还用于获取所述蓝牙从设备的地址类型的预设字节并转换为十六进制;
第一拼接单元,用于将所述获取预设字节单元生成的所述蓝牙主设备的设备地址类型的预设字节的十六进制数据、所述蓝牙从设备的设备地址类型的预设字节的十六进制数据、所述第一通信参数以及所述第二通信参数顺序拼接为第一数据。
39.如权利要求37所述的蓝牙主设备,其特征在于所述第二数据生成子模块具体包括:
第一异或单元,用于将所述第二随机数与所述第一数据生成子模块生成的所述第一数据进行异或运算;
第一加密单元,用于将所述第一异或单元运算得到的结果与所述第二临时密钥生成子模块生成的第二临时密钥进行128比特的AES运算得到第二数据。
40.如权利要求37所述的蓝牙主设备,其特征在于所述第三数据生成子模块具体包括:将所述蓝牙主设备的设备地址与所述蓝牙从设备的设备地址顺序拼接得到第三数据。
41.如权利要求37所述的蓝牙主设备,其特征在于,所述第二认证密钥生成子模块具体包括:
第二异或单元,用于将所述第二数据生成子模块生成的所述第二数据与所述第三数据生成子模块生成的所述第三数据进行异或运算;
第二加密单元,用于将第二异或单元运算得到结果与所述第二临时密钥子模块生成的所述第二临时密钥进行128比特的AES运算得到第二认证密钥。
42.如权利要求35所述的蓝牙主设备,其特征在于,所述通信加密模块具体包括:
第四数据生成子模块,用于将所述第一随机数、第二随机数顺序拼接得到第四数据;
第二通信加密密钥生成子模块,用于将所述第二初始密钥转换为第二临时密钥,并将所述第四数据生成模块生成的第四数据与所述第二临时密钥进行预设加密运算得到第二通信加密密钥。
43.如权利要求35所述的蓝牙主设备,其特征在于,所述蓝牙主设备还包括显示模块;
所述数据接收模块还用于接收所述蓝牙从设备发送的第一初始密钥;
所述显示模块,用于显示所述蓝牙从设备发送的第一初始密钥;
所述输入模块,还用于接收用户的确认信息。
CN201510909212.6A 2015-12-10 2015-12-10 一种蓝牙主从设备及两者建立安全通道的方法 Active CN105430605B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510909212.6A CN105430605B (zh) 2015-12-10 2015-12-10 一种蓝牙主从设备及两者建立安全通道的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510909212.6A CN105430605B (zh) 2015-12-10 2015-12-10 一种蓝牙主从设备及两者建立安全通道的方法

Publications (2)

Publication Number Publication Date
CN105430605A CN105430605A (zh) 2016-03-23
CN105430605B true CN105430605B (zh) 2018-09-25

Family

ID=55508477

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510909212.6A Active CN105430605B (zh) 2015-12-10 2015-12-10 一种蓝牙主从设备及两者建立安全通道的方法

Country Status (1)

Country Link
CN (1) CN105430605B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105813010B (zh) * 2016-05-05 2019-07-05 广东小天才科技有限公司 基于nfc建立连接的方法、系统和nfc设备
CN105933039B (zh) 2016-06-24 2018-06-29 飞天诚信科技股份有限公司 一种蓝牙设备及其工作方法
CN108270554B (zh) * 2016-12-30 2022-06-10 国民技术股份有限公司 一种终端配对方法及系统
US10313131B2 (en) * 2017-01-26 2019-06-04 Infineon Technologies Ag Secured daisy chain communication
CN108696347B (zh) * 2017-04-12 2021-02-19 展讯通信(上海)有限公司 蓝牙aes加密启动方法、系统和蓝牙主、从设备
CN107317606B (zh) * 2017-07-03 2020-05-19 飞天诚信科技股份有限公司 一种蓝牙防追踪的方法及设备
CN108243181A (zh) * 2017-10-09 2018-07-03 北京车和家信息技术有限公司 一种车联网终端、数据加密方法及车联网服务器
CN108848164B (zh) * 2018-06-15 2022-02-25 广州视源电子科技股份有限公司 显示设备的连接方法、显示设备及系统
US11546096B2 (en) 2019-06-21 2023-01-03 Carrier Corporation Method and system for data transfer in a Bluetooth low energy network
CN111132154B (zh) * 2019-12-26 2022-10-21 飞天诚信科技股份有限公司 一种协商会话密钥的方法及系统
CN111866827B (zh) * 2019-12-31 2024-04-12 北京骑胜科技有限公司 蓝牙设备状态检测方法、装置、电子设备及介质
CN113920615B (zh) * 2020-06-24 2023-02-03 广州汽车集团股份有限公司 蓝牙钥匙与车辆连接的方法、车辆蓝牙系统、蓝牙钥匙
CN113920616B (zh) * 2020-06-24 2023-08-08 广州汽车集团股份有限公司 车辆与蓝牙钥匙安全连接的方法、蓝牙模块、蓝牙钥匙
CN112149167B (zh) * 2020-09-29 2024-03-15 北京计算机技术及应用研究所 一种基于主从系统的数据存储加密方法及装置
CN112261612B (zh) * 2020-10-14 2022-07-12 奇瑞汽车股份有限公司 车辆控制方法及装置
CN113329386B (zh) * 2021-06-11 2023-03-31 北京智芯微电子科技有限公司 支持身份鉴权的蓝牙配对方法、安全芯片及蓝牙模块
CN117135631A (zh) * 2023-02-24 2023-11-28 荣耀终端有限公司 设备认证方法及终端设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102045333A (zh) * 2010-06-29 2011-05-04 北京飞天诚信科技有限公司 一种安全报文过程密钥的生成方法
CN102983892A (zh) * 2012-11-19 2013-03-20 深圳市文鼎创数据科技有限公司 蓝牙配对方法及系统
CN104104499A (zh) * 2014-07-28 2014-10-15 深圳宝嘉电子设备有限公司 数据传输方法、电子密码锁装置及其控制方法
CN104510431A (zh) * 2013-09-30 2015-04-15 西安福安创意咨询有限责任公司 一种红外采暖烘鞋装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102045333A (zh) * 2010-06-29 2011-05-04 北京飞天诚信科技有限公司 一种安全报文过程密钥的生成方法
CN102983892A (zh) * 2012-11-19 2013-03-20 深圳市文鼎创数据科技有限公司 蓝牙配对方法及系统
CN104510431A (zh) * 2013-09-30 2015-04-15 西安福安创意咨询有限责任公司 一种红外采暖烘鞋装置
CN104104499A (zh) * 2014-07-28 2014-10-15 深圳宝嘉电子设备有限公司 数据传输方法、电子密码锁装置及其控制方法

Also Published As

Publication number Publication date
CN105430605A (zh) 2016-03-23

Similar Documents

Publication Publication Date Title
CN105430605B (zh) 一种蓝牙主从设备及两者建立安全通道的方法
CN104158567B (zh) 蓝牙设备间的配对方法和系统、数据交互方法和系统
EP2418883B1 (en) Wireless local area network terminal pre-authentication method and wireless local area network system
CN102045333B (zh) 一种安全报文过程密钥的生成方法
US20100227549A1 (en) Apparatus and Method for Pairing Bluetooth Devices by Acoustic Pin Transfer
KR20180045014A (ko) 무선 장치의 인증을 위한 방법 및 장치
CN109413627A (zh) 一种智能家居设备的配网方法及配网系统
CN104303583B (zh) 用于在通信系统中建立安全连接的系统和方法
CN108809643A (zh) 一种设备与云端协商密钥的方法、系统及设备
EP2586180A1 (en) Secure node admission in a communication network
WO2016101494A1 (zh) 一种无线智能接入方法
CN106788977A (zh) 低功耗蓝牙设备通讯加密方法及系统
CN105814859B (zh) 一种网络配置方法、相关装置及系统
CN101707767B (zh) 一种数据传输方法及设备
CN107969001A (zh) 一种蓝牙配对双向认证的方法及装置
CN104540089A (zh) 一种主设备与从设备进行蓝牙配对的方法、设备及系统
CN106792700A (zh) 一种可穿戴设备的安全通信环境的建立方法及系统
CN109714360A (zh) 一种智能网关及网关通信处理方法
CN105407109A (zh) 一种蓝牙设备间数据安全传输方法
US20210152361A1 (en) Authentication method and authentication device
CN107852327A (zh) 通信设备、通信方法和程序
CN105554693B (zh) 蓝牙设备的配对方法和装置
US20130297938A1 (en) Communication apparatus, control method, and storage medium
WO2003077581A1 (en) Security protection for data communication
CN106209384B (zh) 使用安全机制的客户终端与充电装置的通信认证方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant