Sco*_*ttF 7 android bluetooth bluetooth-lowenergy flutter
我正在开发一个连接到蓝牙物联网设备的 Flutter 应用程序。我正在使用flutter_blue库。该库允许扫描附近的蓝牙设备。根据该扫描,您可以“连接”到设备。没有与设备配对的概念。
根据我之前在手机上使用蓝牙的经验(当连接到我的汽车和蓝牙扬声器时),我必须在 Android 操作系统中配对设备。
我很好奇,从高层次来看,配对设备与连接设备之间有什么区别。此外,更具体地说,在操作系统内配对设备与从应用程序扫描并连接到设备之间有什么区别?
根据蓝牙核心规范版本5.2 | 卷。1、A部分第5.1章配对定义为
创建一个或多个共享密钥的过程
密钥本身不是共享的,而是使用称为Diffie-Hellman 密钥交换的过程建立的过程来建立。这意味着仅当连接被加密时才需要配对。如果您连接到的设备需要对其特征之一采取安全措施,Android 将自动提示您的应用程序的用户发出配对请求。
您可能听说过的另一个术语是“粘合”,其定义为:
存储配对期间创建的密钥以供后续连接使用以形成可信设备对的行为
绑定允许重新连接您的设备,而无需执行其他配对过程,因为密钥之前已建立。
使用低功耗蓝牙 (BLE) 时,无需在操作系统内手动配对设备。您始终可以扫描宣告其存在的设备。正如我之前所说:如果需要,配对由操作系统自动处理。
在较高级别上,您将始终使用“连接”来连接到设备,但您可能必须首先“配对”设备。蓝牙配对是一个安全过程。一次性配置步骤,为配对的两个设备配备一系列共享安全密钥,从而对通信进行加密。
蓝牙低功耗设备可以具有三个安全级别,其中最低级别不需要配对,然后是两个需要配对的级别。
选择使用“不配对”的设备提供了最大的简单性,但显然没有安全性。通信未加密,任何其他设备都可以连接。
可以使用的两种配对方法在连接时提供相同级别的安全性。然而,在配对过程本身期间,这两种方法中的一种比另一种更安全。密钥配对是这两个过程中最安全的,需要输入 6 位数字。这可以防止中间机器 (MITM) 攻击。Just Works 配对并不那么安全,但它不需要您输入任何内容,因此使用起来非常简单。
一旦建立配对,就可以进行连接,而无需每次都建立配对。
有关配对选项的更详细说明,请访问: https://www.bluetooth.com/blog/bluetooth-pairing-part-1-pairing-feature-exchange/
| 归档时间: |
|
| 查看次数: |
4260 次 |
| 最近记录: |