【问题标题】:Difference between Connecting and Pairing in BlueZBlueZ 中连接和配对的区别
【发布时间】:2017-12-24 02:55:27
【问题描述】:

我正在查看 BlueZ 5.44 中的 Device API,对连接和配对设备之间的区别有点困惑。我看到连接是基于配置文件的,而配对似乎独立于配置文件。配对似乎更多地与 SDP 和身份验证有关。

但是,在阅读了该文档之后,我仍然对其中一个开始和另一个结束感到有些困惑。例如,设备必须先配对才能连接?如果有人有任何详细说明这一点的蓝牙文档或 BlueZ 文档,他们将不胜感激。

【问题讨论】:

    标签: linux bluetooth dbus bluez


    【解决方案1】:

    这是假设 OP 打算询问经典蓝牙的情况下回答的。 经典配对需要较低层的蓝牙经典连接。一个设备是否需要与另一个设备配对取决于所涉及设备的安全级别(在通用访问配置文件中定义)。大多数移动电话使用 SecurityMode 4,Level 4,它强制对除 SDP 之外的大多数配置文件进行配对。这意味着无需配对即可完成服务发现,但需要服务级别连接的配置文件需要配对。请参阅core_v5.0蓝牙规范(https://www.bluetooth.com/specifications/bluetooth-core-specification)中GAP配置文件第5.2节中的安全模式的详细信息。如果您看到服务级别/配置文件级别的连接和底层,可以避免您提到的文档中的混淆单独连接。

    【讨论】:

    • 我明白了。因此,配对是可能需要的较低级别的连接,具体取决于其 GAP 配置中指定的每个设备的安全性。然后,连接特定配置文件又取决于安全级别。但是,我正在使用的平台有一个双模式 4.0 控制器——这会改变经典模式配对还是独立于 LE 配对?再次感谢!
    • Classic 和 LE 配对是不同的(从蓝牙 4.2 开始,有交叉传输密钥生成功能,它允许使用一个传输生成的密钥来生成另一个传输的密钥)。经典配对和 LE 配对的不同之处在于交换秘密共享密钥的方式不同(在蓝牙 4.0 和 4.1 中),并且还通过较低层 (LMP) 还是较高层 (SMP) 促进配对程序。
    • 经典配对是执行一组程序以通过相互身份验证在两个设备中安全地创建相同密钥并存储这些密钥的行为。请注意,密钥永远不会通过无线方式传输。不要将配对混淆为低层连接,请参阅实现配对需要低层连接。这个想法是在配对完成后在两个设备之间建立信任关系(有些设备会显示一个爱的符号:))。
    【解决方案2】:

    让我们让事情尽可能简单。 什么是配对:这是为安全连接创建链接密钥(两个设备将具有相同的加密密钥)的过程。您不希望其他人通过蓝牙听到您说的话,不是吗。

    配对过程当然需要连接。

    设备可以选择是否加密链路,并且可以决定蓝牙堆栈上的哪个级别开始加密,即配置文件、协议或低级别数据链路。

    SDP作为配置文件不同,因为它是向其他设备显示本地功能的配置文件,因此在连接SDP时,它基本上不需要配对。

    【讨论】:

      猜你喜欢
      • 2014-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      • 1970-01-01
      • 2012-01-31
      • 2015-03-08
      相关资源
      最近更新 更多