结合空口ellisys看经典蓝牙BR/EDR配对过程

背景

前面文章介绍了经典蓝牙扫描和连接过程,这篇文章我们以手机和耳机为例,也结合ellisys空口包来分析经典蓝牙配对的过程:

  1. LMP feature exchange and LMP connection setup
    在这里插入图片描述
    注意红色框框里面支持Simple secure pairing和 Secure connection(蓝牙4.2引入的新的鉴权加密方式,采用的是非对称加密方式)

  2. IO capbility exchange:
    在这里插入图片描述
    红色框是手机的IO能力:有显示,没有OOB,要求MIMT(中间人攻击)保护。
    绿色框是耳机的IO能力:无显示,没有OOB,可以MIMT。

  3. Public key exchange:
    由于采用非对称加密方式,交换手机和耳机的公钥,由于secure connection采取非对称加密方式,公钥和私钥是分开的,公钥会作为明文发送给对方,可以参照core spec:
    在这里插入图片描述

看看手机和耳机的空口交互如下图:

在这里插入图片描述

  • 红色框是手机的公钥:总共256个字节,一个包64个字节,4个包发送,假设此公钥为PKa。

  • 绿色框是耳机的公钥:也是256个字节,分4个包发送,假设此公钥为PKb。

  • 于此同时手机和耳机会计算各自的DHKey,手机的计算公式:DHKey = P256(SKa, PKb),耳机的计算公式DHKey = P256(SKb,PKa),正常情况下二者算出来的DHKey应该是相等的。

  1. Numeric comparison:
    先看一下core spec关于数字比较的流程的描述:
    在这里插入图片描述

再看一下手机和耳机的空口数据交互如下:

在这里插入图片描述

  • 红色框表示耳机发给手机一个随机数Confirm,这个值是由耳机的的随机数,以及耳机和手机的公钥通过某种运算方式得来,假设为Cb=f1(PKbx,PKax,Nb,0)。

  • 黄色框表示手机发送一个随机数给耳机,耳机接受,此值为Na。

  • 绿色框表示耳机把随机数Nb发给手机,手机拿到这个随机数,然后计算一个Confirm值,如果这个值也等于Cb,那就回复LMP Accept.

  • 接下来手机和耳机会各自计算Va=g(PKax,PKbx,Na,Nb) 和Vb=g(PKax,PKbx,Na,Nb),也就是六位数字,如果确认他们相对,配对就OK,否则终止配对。

  1. DHkey Check
    DHKey是在交换完公钥就算出来的,双方拿对方的公钥和自己的私钥通过运算得到,DHKey 校验,先看下core spec是如何描述:
    在这里插入图片描述
    在这里插入图片描述接下来看下手机和耳机的空口交换:
    在这里插入图片描述
    红色框表示手机通过DHKey和随机数通过运算得到一个Confirm值发给耳机,耳机经过验证通过,回复LMP Accepted.同理绿色框耳机发给Confrim值给手机,手机来验证。
  2. Key distribution
    先看下core spec的描述:
    在这里插入图片描述这个阶段手机和耳机会利用前面产生的LTK去加密数据,接下来的空口交换都是加密 进行的:
    在这里插入图片描述手机蓝牙芯片和耳机蓝牙芯片分别算出link key通过HCI_Link_Key_Notification发送给Host。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tim_Jiangzj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值