当前位置: 首页 > 知识库问答 >
问题:

蓝牙配对在技术上做什么?

谭志用
2023-03-14

来自蓝牙客户端示例http://people.csail.mit.edu/albert/bluez-intro/x502.html,似乎只要我有设备的蓝牙MAC地址,我就可以简单地连接到远程蓝牙插座。

如果我可以简单地连接到远程蓝牙设备,我想知道蓝牙配对到底做什么。什么时候真正需要配对?

更新:

蓝牙配对是如何工作的?,配对的最终结果似乎是加密密钥存储在两侧。我假设,当您打开远程套接字连接时,调用被本地蓝牙守护进程拦截。反过来,守护进程加密数据并发送到远程设备。远程设备上的守护进程解密数据并发送到远程客户端应用程序:

设备1客户端--

这个假设正确吗?

共有1个答案

厍胤运
2023-03-14

是的,你的假设部分正确。加密是Passkey的用途之一。

每当两个蓝牙设备相互连接以共享资源时,就需要进行蓝牙配对。使用数字密码(通常称为密钥)在设备之间建立信任关系。根据一个蓝牙设备连接到另一个设备的频率,用户可以选择保存密钥以备将来的连接尝试,或者在设备每次请求相互通信时提示输入密钥。

这已经在堆栈溢出中解释过了,请检查-蓝牙配对是如何工作的?

在下面的回答中,我将尝试解释上述链接或答案中没有提到的内容。

在配对过程中,当发起设备向另一个设备发送“配对请求”时。然后两个设备交换I/O功能、身份验证要求、最大链路密钥大小和绑定要求。基本上,所有这一阶段都包括两个设备交换它们的功能并确定它们将如何建立安全连接。同样重要的是要注意,在此阶段交换的所有数据都是未加密的。

现在的问题是为什么需要这个阶段?如前所述——“两个设备交换它们的功能”配对应该发生在兼容的设备之间,因为鼠标功能与耳机不同,所以将鼠标与耳机配对是没有意义的。

配对的另一个用途是“确定他们将如何建立安全连接。”这里,跳频图案的确定有两个原因-

  1. 以避免中间人攻击。
  2. 为了避免碰撞

蓝牙在从2402 MHz开始并每隔1 MHz继续的频段中使用79个射频通道。蓝牙技术正在“跳转”这些频率通道。信号以每秒1600跳的速度在确定的通道模式上快速切换载波通道。跳频模式在配对过程中确定得很好,因此没有其他设备会知道数据在实例中传输的频率的哪个频段。跳频模式对于几个通信的设备来说可能是相同的,因此避免了冲突,这是一种罕见的情况。

我无法按照SIG规格涵盖所有细节。我希望上述答案能让您更清楚地了解配对过程的必要性。如果您想让我详细解释任何具体问题,请随时指出。

以下是更多信息的参考链接-http://large.stanford.edu/courses/2012/ph250/roth1/

https://www.bluetooth.com/blog/bluetooth-pairing-part-1-pairing-feature-exchange/

 类似资料:
  • 本文向大家介绍Android Bluetooth蓝牙技术初体验,包括了Android Bluetooth蓝牙技术初体验的使用技巧和注意事项,需要的朋友参考一下 一:Bluetooth包简介 Android平台提供了一个android.bluetooth的包,里面实现蓝牙设备之间通信的蓝牙API。总共有8个类,常用的四个类如下: BluetoothAdapter类 代表了一个本地的蓝牙适配器。它是所

  • 嗨,我要开发一个应用程序,所以我有一个设备(服务器)与3个客户端。我做了所有的验证,打开蓝牙,找到设备,所有的工作都很好。但当我要连接一个设备时,我不知道会发生什么。 我正在使用下一个代码,当我单击一个我想连接它的设备时。我只有我的应用程序在母设备中。 这里我有一个问题,如果它没有配对会发生什么?如果我尝试连接,它会自动配对吗? 我的UUID是:“00001101-0000-1000-8000-0

  • 我正在Visual Studio 2015中用C语言为运行Windows IoT Core的Raspberry PI 2设备开发。 对于我的应用程序,我需要配对和取消配对蓝牙设备 我可以获得配对/未配对/所有蓝牙设备的列表吗<类似于内置管理网站的蓝牙页面(http://[设备IP]:8080/Bluetooth.htm) 我找到了一个例子(https://github.com/Microsoft/

  • 问题内容: 我正在创建一个应通过蓝牙连接到特定设备的应用程序。 无论设备是否已配对,我都希望我的应用程序与此设备连接。 现在我有这个 但是此功能仅连接到配对的设备。如果我的设备尚未配对,我想将其配对。不知道该怎么做。 有人可以给我任何建议吗? 问题答案: 首次请求权限。 然后使您的设备可发现: 然后创建一个 BroadcastReceiver 来监听系统中的动作: 并通过注册以下 Boardcas

  • 我正在开发一款连接蓝牙物联网设备的Flitter应用程序。我正在使用Flatter_blue图书馆。该库允许扫描附近的蓝牙设备。基于该扫描,您可以“连接”到设备。没有与设备配对的概念。 根据我以前在手机上使用蓝牙的经验(连接到我的汽车和蓝牙扬声器时),我必须在Android操作系统上配对设备。 我很好奇,从高层次上讲,配对设备和连接设备之间有什么区别。此外,更具体地说,在操作系统内配对设备与扫描并

  • 我想用一些蓝牙低能耗开发工具包创建我自己的iBeacon。苹果尚未发布iBeacons的规范,然而,一些硬件开发人员已经根据AirLocate示例代码对iBeacon进行了反向工程,并开始销售iBeacon开发工具包。 那么什么是iBeacon蓝牙模式? 蓝牙低能耗使用GATT进行LE配置文件服务发现。因此,我认为我们需要知道iBeacon属性的属性句柄、属性类型、属性值,以及可能的属性权限。因此