蓝牙配对到底是如何工作的?在配对过程中,每个设备之间的通信是什么?
有人告诉我,如果您想与设备B配对:
>
+-----+ key +-----+
| | ----> | |
| A | | B |
| | <---- | |
+-----+ echoed +-----+
这似乎是不准确的,所以有人能够进一步扩展或实际解释如何/什么是沟通的结果,以成功配对的设备吗?
我曾考虑将这些研究中的一些纳入大学的最后一年项目中,但至少需要先了解一些蓝牙编程配对的知识。
如果您能帮助描述这些初始通信是如何工作的,我们将不胜感激。
在我的研究中,我听说过“停车模式”和“被动模式”等术语,但尚未在设计背后的编程中找到任何“有用”信息(因此我提出了这个问题)。在谷歌上搜索这类主题也相当困难,因为它似乎会带来诸如“如何打开蓝牙”页面之类的内容,而不是它背后的编程设计。
使用数字密码(通常称为密钥)在设备之间建立信任关系。根据一个蓝牙设备连接到另一个设备的频率,用户可以选择保存密钥以备将来的连接尝试,或者在设备每次请求相互通信时提示输入密钥。
阅读更多:http://www.ehow.com/how-does_4964578_bluetooth-pairing-work.html
要使两个设备能够配对,它们必须共享相同的蓝牙配置文件。以下内容来自蓝牙官方网站:
配对设备
并非所有支持蓝牙的设备都设计为配对。从逻辑上讲,没有理由将无线鼠标连接到无线耳机。您应该能够将支持蓝牙的耳机与支持蓝牙的手机配对,或者将支持蓝牙的鼠标与支持蓝牙的计算机配对。
如果您不确定要连接的两个设备是否设计为相互配对,请确保它们的蓝牙配置文件匹配。
蓝牙安全简单配对使用椭圆曲线Diffie Hellman(ECDH)公钥加密,使用FIPS批准的P192椭圆曲线具有大约95位熵。
E:y2=x3 +ax+b(modp)
给出了以下参数:
>
整数p和r以十进制形式给出;位字符串和字段元素以十六进制表示。
p = 6277101735386680763835789423207666416083908700390324961279
r = 6277101735386680763835789423176059013767194773182842284081
b = 64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1
Gx = 188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012
Gy = 07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811
1、公钥交换
每个设备生成自己的椭圆曲线Diffie-Hellman(ECDH)公钥-私钥对。
2、认证阶段1
3个协议选项中的1个由连接设备根据两个设备的IO能力选择。这些是:
3、认证阶段2
每个设备都确认两个设备都已成功完成交换,正如在上一步中选择和使用的协议所规定的那样。
4、链路键计算
根据导出的共享密钥和公开交换的数据计算链接密钥。这是显示给用户的数字代码。
5. LMP认证和加密
生成加密密钥。设备已成功连接。
>
蓝牙核心完整规范v4.0 vol0(ZIP/PDF)
核心规范有138页,要完全回答您的问题至少需要20页,所以要完全回答您的问题,您需要阅读参考资料
嗨,我要开发一个应用程序,所以我有一个设备(服务器)与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/
我有一个通过蓝牙连接的配对设备列表。但是我想把它们归类为iPhone或Android。这怎么可能呢?
BLE外围模拟器应用程序与Web蓝牙示例相结合,是开发人员的巨大资源。 一旦设备配对,有没有办法通过Web蓝牙绕过配对屏幕直接进入应用程序?
问题内容: 我希望能在开发一个Android应用程序时对我有所帮助,该应用程序需要连接蓝牙设备(例如扫描仪和打印机),目前我可以列出所有配对的设备,但是我想知道配对的设备是否是打印机,扫描仪,移动设备等 有某种方法可以知道配对的蓝牙设备的种类? 问题答案: 简而言之, 是的你可以。您可以通过使用设备的UUID来执行此操作。如果您知道设备的UUID,则可以从报告的UUID中将它们匹配,并知道哪个配对
我能够配对蓝牙键盘,但无法连接,使其成为输入设备。我查阅了开发商网站上提供的文件-http://developer.android.com/guide/topics/connectivity/bluetooth.html#Profiles 它说Android Bluetooth API提供了以下蓝牙配置文件的实现,但您可以实现接口BluetoothProfile来编写自己的类来支持特定的蓝牙配置文