Android BluetoothDevice -> connectGatt() 安全

Posted

技术标签:

【中文标题】Android BluetoothDevice -> connectGatt() 安全【英文标题】:Android BluetoothDevice -> connectGatt() Security 【发布时间】:2015-01-31 21:11:55 【问题描述】:

在使用this 方法连接到蓝牙 LE 设备后交换数据时是否有任何内置安全性?在这里,我想澄清以下内容-

1.设备连接后通信通道是否安全(但尚未配对/绑定)?

或者

2。是否必须绑定/配对 BLE 设备(使用 createBond())以确保通信安全?

我查看了以下线程,问题 4 似乎与我的问题相似。

Bluetooth Low Energy encryption and data safety

但答案因回应而异。如果有人对此有明确的了解,请回复。

问候,

保罗

【问题讨论】:

【参考方案1】:
    不,配对过程与 LE 中的连接过程是分开的。您无需配对即可连接并交换数据。 当您说安全时,您的意思是加密吗? LE 安全性有不同的功能。您可以在不配对的情况下签名并添加完整性。

无论使用安全简单配对还是 LE 安全连接,数据加密都需要配对。

【讨论】:

感谢您的回复。 “安全”是指加密或其他阻止 MITM 跟踪正在交换的数据的机制。另外,当您说签署数据时(您的回复中的第 2 点),这是否意味着实现我自己的加密逻辑?你能多说一点吗? 首先,加密不一定能保护您免受 MITM 攻击。关联模型可以。登录 LE 不使用 OOB,它使用 CSRK 对您的数据 PDU 进行签名。

以上是关于Android BluetoothDevice -> connectGatt() 安全的主要内容,如果未能解决你的问题,请参考以下文章

Android bluetoothSocket连接错误

在 [BluetoothDevice classicDevice] 无法识别的选择器上寻找崩溃源

Android 蓝牙扫描代码

android蓝牙操作

经典蓝牙Android开发(通信)

Android BLE 蓝牙编程