bluetooth - 蓝牙和蓝牙 LE 之间的配对差异?

标签 bluetooth bluetooth-lowenergy

配对“普通”蓝牙设备和配对蓝牙 LE 设备之间是否存在任何(大)技术差异?

我找到了很多关于蓝牙 LE 配对的信息,但没有正常的?例如 Info 1 .

那么普通蓝牙的这个信息也正确吗?

最佳答案

如果您所说的“正常”是指经典蓝牙或 BR/EDR,则差异取决于所使用的蓝牙版本。

经典蓝牙或 BR/EDR 2.1 - 4.1 与 BLE 4.0-4.1

  1. BR/EDR 配对过程由蓝牙 Controller 的 LMP 层处理。

    BLE 配对过程由主机堆栈中的 SMP 处理。

  2. BR/EDR 使用 ECDH key 生成来防止被动窃听。

    BLE 传统配对不使用 ECDH key 生成,因此容易受到被动窃听

  3. BR/EDR定义了4种关联模型; OOB、密码输入、正常工作、数字比较

    BLE Legacy Pairing定义了3种关联模型; OOB,密码输入,正常工作。

    虽然从用户角度来看它们看起来很相似,但它们并不提供相同级别的安全性。请参阅#2

  4. BR/EDR 在两个设备上生成链接 key 。

    BLE 传统配对,生成 STK。正在使用的 Link Key 即 LTK 由从机分配

BR/EDR v4.2 安全连接与 BLE v4.2 安全连接

BLE 4.2 安全连接添加了 ECDH key 生成和数字比较关联模型。它还取消了 STK。 LTK 现已在从属设备和主设备上生成。

BLE链路上的安全连接关联模型,在防范MITM攻击和被动窃听方面,与BR/EDR安全连接关联模型等效。 当两个 BR/EDR/LE 设备支持两种传输上的安全连接时,可以在单个配对过程中生成两种传输的 key 。将 key 从一种传输方式转换为另一种传输方式的能力消除了配对两次的需要。

仍然存在一些差异。

  1. BR/EDR 配对过程由蓝牙 Controller 的 LMP 层处理。

    BLE 配对过程由主机堆栈中的 SMP 处理。

  2. BR/EDR 加密函数使用 HMAC-SHA-256。

    BLE 加密函数使用 AES-CMAC。

更多信息可以在蓝牙核心规范here中找到。

关于bluetooth - 蓝牙和蓝牙 LE 之间的配对差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39592435/

相关文章:

iphone - iOS 和低功耗蓝牙,有可能吗?

Android BLE 连接成功后有一些延迟

linux - 使用 org.bluez.Adapter.CreateDevice 连接到 BT LE 设备失败并显示 org.bluez.Error.Failed : Operation canceled Error

java - 蓝牙 InputStream.read() 不会永远返回数据和 block

java - 将蓝牙的 Mac 地址传递给其他 Activity

android - 扫描蓝牙和蓝牙 LE

java - Android:通过 BLE 发送数据 >20 字节