【问题标题】:What is the difference between pairing with a bluetooth device vs connecting to a bluetooth device?与蓝牙设备配对与连接到蓝牙设备有什么区别?
【发布时间】:2021-04-26 08:27:21
【问题描述】:

我正在开发一个连接到蓝牙物联网设备的 Flutter 应用程序。我正在使用flutter_blue 库。该库允许扫描附近的蓝牙设备。根据该扫描,您可以“连接”到设备。没有与设备配对的概念。

根据我之前在手机上使用蓝牙的经验(连接到我的汽车和蓝牙扬声器时),我必须在 Android 操作系统上配对设备。

我很好奇,从高层次上看,配对设备与连接设备之间有什么区别。此外,更具体地说,在操作系统中配对设备与从应用程序扫描和连接设备有什么区别?

【问题讨论】:

  • 根据我自己使用蓝牙设备的经验,配对意味着您之前已经连接过,以便记住连接。这意味着您下次连接时无需启动蓝牙配对,您只需确保蓝牙单元已打开,在范围内,然后在手机蓝牙设置中单击它即可。

标签: android flutter bluetooth bluetooth-lowenergy


【解决方案1】:

概括地说,您将始终使用“连接”来连接设备,但您可能必须先“配对”设备。蓝牙配对是一种安全程序。一次性配置步骤,为配对的两台设备配备一系列共享安全密钥,允许对通信进行加密。

蓝牙低功耗设备可以具有三个安全级别,其中最低级别不需要配对,然后两个级别需要配对。

选择使用不配对的设备提供了最大的简单性,但显然没有安全性。通信未加密,任何其他设备都可以连接。

可以使用的两种配对方法在连接时提供相同级别的安全性。但是,在配对过程中,这两种方法中的一种比另一种更安全。 密钥配对是两个过程中最安全的,需要输入 6 位数字。这提供了针对中间人 (MITM) 攻击的保护。 Just Works Pairing 不那么安全,但它不需要您输入任何内容,因此使用起来非常简单。

一旦建立配对,就可以进行连接,而无需每次都建立配对。

有关配对选项的更详细说明,请访问: https://www.bluetooth.com/blog/bluetooth-pairing-part-1-pairing-feature-exchange/

【讨论】:

  • 不要忘记带外 (OOB) 和数值比较的配对方法
【解决方案2】:

根据Bluetooth Core Specification 版本 5.2 |卷。 1,A部分,第5.1章配对定义为

创建一个或多个共享密钥的过程

密钥不是共享的,而是使用称为Diffie-Hellman key exchange 的过程建立的。这意味着只有在加密连接时才需要配对。如果您连接的设备需要对其特性之一采取安全措施,Android 会自动提示您的应用用户提出配对请求。

您可能听说过的另一个术语是bonding,其定义为:

存储配对期间创建的密钥以供后续连接使用以形成可信设备对的行为

绑定允许重新连接您的设备,而无需其他配对过程,因为之前已建立密钥。

使用低功耗蓝牙 (BLE) 时,无需在操作系统中手动配对设备。您始终可以扫描宣传其存在的设备。正如我之前所说:如果需要,配对由操作系统自动处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    • 2020-10-10
    • 1970-01-01
    相关资源
    最近更新 更多