在http://people.csail.mit.edu/albert/bluez-intro/x502.html处的Bluetooth客户端示例中,只要我具有设备的Bluetooth MAC地址,似乎我就可以简单地连接到远程Bluetooth套接字。
如果我可以简单地连接到远程蓝牙设备,我想知道蓝牙配对到底能做什么。何时真正需要配对?
更新:
从How does Bluetooth pairing work?看来,配对的最终结果是加密密钥存储在两侧。我假设,当您打开远程套接字连接时,本地蓝牙守护程序会拦截该调用。继而,守护程序将数据加密并发送到远程设备。远程设备上的守护程序将数据解密并发送到远程客户端应用程序:
Device1Client-> Device1Daemon-> Device2Daemon-> Device2Client
这个假设正确吗?
答案 0 :(得分:0)
是的,您的假设部分正确。加密是Passkey的用途之一。
每当两个蓝牙设备相互连接以共享资源时,就有必要进行蓝牙配对。使用数字密码(通常称为密码)在设备之间建立信任关系。根据一个蓝牙设备与另一个蓝牙设备连接的频率,用户可能会选择保存密码以供将来进行连接尝试,或者在每次设备请求彼此通信时提示输入密码。
这已在堆栈溢出中说明,请检查-How does Bluetooth pairing work?
在下面的答案中,我将尝试解释上面的链接或答案中未提及的内容。
在配对过程中,当启动设备向另一台设备发送“配对请求”时。然后,这两个设备交换I / O功能,身份验证要求,最大链接密钥大小和绑定要求。基本上,所有此阶段都包括两个设备交换其功能并确定如何建立安全连接。同样重要的是要注意,在此阶段交换的所有数据都是未加密的。
现在的问题是为什么需要此阶段? 如前所述,“两个设备交换功能。”配对应在兼容设备之间进行,因为鼠标功能不同于耳机,所以将鼠标与耳机配对没有意义。
配对的另一种用途是–“确定它们如何建立安全连接。”这里的跳频模式是基于两个原因确定的-
蓝牙在频带中使用79个射频信道,起始于2402 MHz,然后每1 MHz连续。蓝牙技术正在“跳”上这些频道。信号在确定的通道模式上以每秒1600跳的速率快速切换载波通道。跳频模式在配对过程中确定得很好,因此在实例中没有其他设备会知道数据在哪个频带中传输。少数情况下,跳频模式对于几个正在通信的设备可以相同,从而避免了冲突。
注意:如果任何第三台设备都能捕获密码,则它可以复制整个通信模式并捕获正在传输的数据。这就是BT Sniffers的工作方式。
根据SIG规范,我无法涵盖所有详细信息。希望以上答案能使您对配对过程的需求有一个更清晰的了解。如果您想让我详细解释任何特定问题,请随时指出。
以下是更多信息的参考链接- http://large.stanford.edu/courses/2012/ph250/roth1/
https://www.bluetooth.com/blog/bluetooth-pairing-part-1-pairing-feature-exchange/