深入理解低功耗蓝牙的配对过程- Part 5 Out of band

在以前的文章中,我们讨论了Passkey Entry和Numeric Comparison等主题,这是两种类型的配对方法。今天,我将介绍另一种方法OOB。

out of band (OOB)配对模式适用于使用out of band机制来发现设备以及交换或传输在配对过程中使用的密码信息的场景。Out of band的方式比较灵活,它允许定义自己的一些配对机制,因此安全级别取决于Out of band保护能力。下面,让我们来看看它的实现方法。

配对特征交换

在以下这个表中,有一个名为“OOB Data Flag”的字段,它的长度为1个字节。

 

 “OOB数据标志”的定义见表2

 

OOB数据标志定义了在使用OOB身份验证数据是否可用,0表示不使用OOB,0x01表示使用OOB方式

 LE Legacy Pairing

当两个蓝牙设备都使用LE legacy配对时,这个过程很容易理解。有关LE legacy配对方法选择映射的详细信息,请参阅表3。我已经在这个表格中突出显示了OOB的选择,你可以看到:

如果要使用OOB进行配对,两个设备都必须把OOB数据标志设置为0x01;

  • 如果一个设备设置了OOB数据标志,而另一个没有设置,那么这两个设备都将检查“AutheReq”字段中的MITM标志,表1用绿色标记。如果任何一个设备设置了它的MITM标志,那么将通过将IO功能映射来选择配对方法。蓝牙核心规范v5.0, Vol3, Part H, Table 2.8提供了详细的映射信息。
  • 否则,就使用“Just Works”作为配对方法。

 

在图1中,阴影部分是我们之前文章所讲的深入理解低功耗蓝牙的配对过程- Part 3 LE legacy Pairing Passkey Entry 流程 ,之后两个设备的安全管理机制将执行以下步骤:

  • 步骤0  两边设备都创建随机值Mrand和Srand。之后,OOB可用于交换信息以帮助发现设备,比如设备地址和128位临时密钥(TK)值。正如我之前在第3部分“入理解低功耗蓝牙的配对过程- Part 3 LE legacy Pairing Passkey Entry”中所解释的,TK值是一个128位随机数,由伪随机数引擎生成,该引擎应该符合蓝牙核心规范的要求。
  • 步骤1  使用函数c1计算Mconfirm和Sconfirm,有关任何加密工具集,请参阅蓝牙核心规范v5.0, Vol 3, Part H, Section 2.2。
  • 步骤2  交换Mconfirm, Sconfirm和Mrand。
  • 步骤3  响应设备通过重复初始设备使用接收到的Mrand值执行的计算来验证Mconfirm值。
    • 如果响应设备计算的Mconfirm值与初始设备接收到的Mconfirm值不匹配,则配对过程将中止,响应设备将发送配对失败命令,并给出原因代码“Confirm value Failed”。
    • 如果响应设备的计算Mconfirm值与从发起设备接收到的Mconfirm值匹配,则响应设备将Srand传输给发起设备。
  • 步骤4  配对的发起设备通过重复使用接收到的Srand值执行响应设备的计算来验证接收到的Sconfirm值。
    • 如果初始化设备计算的Sconfirm值与从响应设备接收到的Sconfirm值不匹配,则配对过程将中止,初始化设备将发送配对失败命令,其中的原因代码为“Confirm value Failed”。
    • 如果初始化设备计算的Sconfirm值与响应设备接收到的Sconfirm值匹配,则初始化设备计算短期密钥(STK)并告诉控制器启用加密。

OOB应用

Nordic nRF52832/40芯片都带有NFC接口,利用这个NFC功能可以实现两个设备间OOB这种快速配对方式。目前大部分智能手机都支持BLE和NFC功能,当手机和手环(nRF52832/40)进行配对时就可以利用NFC通信实现密钥交互(OOB方式)完成配对。对于用户来说,在启动配对功能后只需要将手机和手环相互靠近一下就快速完成了整个配对流程,这是一种非常好的用户体验。

原文地址:https://www.cnblogs.com/lim11/p/11175611.html