博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
蓝牙配对过程分析
阅读量:6304 次
发布时间:2019-06-22

本文共 1525 字,大约阅读时间需要 5 分钟。

1.概念

配对是指“Master和Slave通过协商确立用于加(解)密的key的过程。指的是下图中的第7部分。

蓝牙配对过程分析

2.配对方法

Master和Slave有两种可选的配对方法:legacy pairing和Secure Connections。从命名上看,前者是过去的方法,后者是新方法。选择的依据是:当Master和Slave都支持Secure Connections(新方法)的时候,则使用Secure Connections。否则,使用legacy pairing。

3.配对过程

配对过程如图所示,主要由下面四部分完成:

蓝牙配对过程分析

3.1.Pairing Feature Exchange

用于交换双方有关鉴权的需求(authentication requirements),以及双方具有怎么的人机交互能力(IO capabilities)。其中最重要的是IO capabilities exchange。

蓝牙配对过程分析
IO的能力可以归纳为如下的六种:
NoInputNoOutput
DisplayOnly
NoInputNoOutput1
DisplayYesNo
KeyboardOnly
KeyboardDisplay
上述的IO能力决定了后续的鉴权方式。

3.2.Public key exchange

两个设备之间交换Public key。 一旦设备收到对端设备的公钥,它就可以开始计算Diffie Hellman密钥(DHKey)。耗时较多,应该尽早开始,以便用户交互可以隐藏计算时间。 在步骤8之前不需要DHKey。

当 Public key的长度大于DM1包的长度时,要使用专门的PDU来进行数据发送。
蓝牙配对过程分析

3.3.Authentication

通过SMP协议进行实际的配对操作,根据阶段1 “Feature Exchange”的结果,有三种鉴权方法可选:

3.3.1.OOB鉴权:

如果双方都支持OOB鉴权,则选择该方式(优先级最高)。由配对的双方,在配对过程之外,额外的交互一些信息,并以这些信息为输入,进行后续的配对操作。这些额外信息也称作OOB(out of band),OOB的交互过程称为OOB protocol。

蓝牙配对过程分析

3.3.2.MITM鉴权:

(man-in-the-middle)authentication,由两者方法:

Numeric Comparision方式鉴权:两个设备自行协商生成6个数字,并显示出来(要求两个设备具有显示能力),用户比较后进行确认(一致,或者不一致,要求设备有简单的yes or no的确认能力)。
蓝牙配对过程分析
Passkey Entry,通过输入配对码的方式鉴权。
蓝牙配对过程分析

3.3.3.Just Work:

Just Work,不需要用户参与,两个设备自行协商。

3.4.DHKey Checks

一旦设备完成鉴权过程,并且DHKey计算已完成,则检查生成的DHKey值。 如果成功,则两个设备都将完成向用户显示关于该过程的信息,否则控制器向主机发送消息以通知其停止显示该信息。

蓝牙配对过程分析

当配对过程完成后,link key就可以从DHKey中计算得到,并用做后续交互过程的输入(KEY + 明文 => 加密数据),通过HCI_Link_Key_Notification来通知host。

蓝牙配对过程分析

经过上述过程后,双方已经产生了加密key,因而可以建立加密的连接。加密连接建立后,可以互相传送一些私密的信息,例如Encryption Information、Identity Information、Identity Address Information等。

转载于:https://blog.51cto.com/11134889/2089794

你可能感兴趣的文章
CentOS 6.9通过RPM安装EPEL源(http://dl.fedoraproject.org)
查看>>
“区块链”并没有什么特别之处
查看>>
没有功能需求设计文档?对不起,拒绝开发!
查看>>
4星|《先发影响力》:影响与反影响相关的有趣的心理学研究综述
查看>>
IE8调用window.open导出EXCEL文件题目
查看>>
python之 列表常用方法
查看>>
vue-cli脚手架的搭建
查看>>
在网页中加入百度搜索框实例代码
查看>>
在Flex中动态设置icon属性
查看>>
采集音频和摄像头视频并实时H264编码及AAC编码
查看>>
3星|《三联生活周刊》2017年39期:英国皇家助产士学会于2017年5月悄悄修改了政策,不再鼓励孕妇自然分娩了...
查看>>
linux查看命令是由哪个软件包提供的
查看>>
高级Linux工程师常用软件清单
查看>>
堆排序算法
查看>>
folders.cgi占用系统大量资源
查看>>
路由器ospf动态路由配置
查看>>
zabbix监控安装与配置
查看>>
python 异常
查看>>
last_insert_id()获取mysql最后一条记录ID
查看>>
可执行程序找不到lib库地址的处理方法
查看>>