android - 与蓝牙设备配对与连接到蓝牙设备有什么区别?
问题描述
我正在开发一个连接到蓝牙物联网设备的 Flutter 应用程序。我正在使用flutter_blue库。该库允许扫描附近的蓝牙设备。根据该扫描,您可以“连接”到设备。没有与设备配对的概念。
根据我之前在手机上使用蓝牙的经验(连接到我的汽车和蓝牙扬声器时),我必须在 Android 操作系统上配对设备。
我很好奇,从高层次上看,配对设备与连接设备之间有什么区别。此外,更具体地说,在操作系统中配对设备与从应用程序扫描和连接设备有什么区别?
解决方案
在高层次上,您将始终使用“连接”来连接设备,但您可能必须先“配对”设备。蓝牙配对是一种安全程序。一次性配置步骤,为配对的两个设备配备一系列允许加密通信的共享安全密钥。
蓝牙低功耗设备可以具有三个安全级别,其中最低级别不需要配对,然后两个级别需要配对。
选择使用不配对的设备提供了最大的简单性,但显然没有安全性。通信未加密,任何其他设备都可以连接。
可以使用的两种配对方法在连接时提供相同级别的安全性。但是,在配对过程中,这两种方法中的一种比另一种更安全。密钥配对是两个过程中最安全的,需要输入 6 位数字。这提供了针对中间人 (MITM) 攻击的保护。Just Works Pairing 并不安全,但它不需要您输入任何内容,因此使用起来非常简单。
一旦建立配对,就可以进行连接,而无需每次都建立配对。
有关配对选项的更详细说明,请访问: https ://www.bluetooth.com/blog/bluetooth-pairing-part-1-pairing-feature-exchange/
推荐阅读
- java - 我正在尝试使用 java api 访问我的 coinbase pro 帐户,但它返回 403: Forbidden response code
- javascript - Oracle Apex - 使用选择列表中的值链接到同一页面
- java - 有插入时的数据库轮询 - Spring Data JPA
- git - Terragrunt 使用 git 的子目录作为源
- ibm-doors - 在 IBM Doors 中更改级别时不显示 InLinks 和 OutLinks
- laravel-6 - Laravel 对象更新数组因唯一电子邮件而失败
- html - 在桌子上设置线性渐变,这将在前景的黑暗方案上改变颜色
- java - Java 数独 ConcurrentModificationException
- pandas - 如何根据当前时间和 10 小时前之间的日期时间列过滤熊猫数据框?
- javascript - 带有 Javascript 的 DebugConsole 小问题