为什么BLE使用Secure Pairing而不是Simple Pairing
时间: 2023-11-20 15:39:08 浏览: 31
BLE使用Secure Pairing而不是Simple Pairing的原因是为了提高安全性。Secure Pairing是一种加强版本的Simple Pairing,它使用更强的加密算法和更复杂的密钥生成过程来保护设备之间的通信。Secure Pairing还采用了数字证书认证,确保设备的身份和完整性。这样可以有效地防止中间人攻击和其他安全漏洞。因此,BLE选择使用Secure Pairing来保护设备之间的通信安全。
相关问题
Android 将Bluedroid BLE配对修改为默认LE Legacy pairing而不是LE Secure connection
Bluedroid是Android中的一个蓝牙协议栈,用于管理Android设备的蓝牙功能。在Android 6.0及以上版本中,Bluedroid默认使用LE Secure Connection进行BLE设备的配对,以提高设备的安全性。
但是,在一些特殊情况下,如BLE设备的兼容性问题,可能需要将BLE配对修改为默认的LE Legacy Pairing。在这种情况下,可以通过修改Android设备的系统设置来实现。具体操作步骤如下:
1. 打开Android设备的设置应用程序。
2. 点击“蓝牙”选项,进入蓝牙设置页面。
3. 点击右上角的三个点,选择“高级”选项。
4. 在“高级”选项中,找到“BLE安全”选项,并点击进入。
5. 在“BLE安全”选项中,可以选择使用“LE Legacy Pairing”或“LE Secure Connection”进行BLE设备的配对。
需要注意的是,修改BLE配对方式可能会降低设备的安全性,因此应谨慎操作,并在不需要使用LE Legacy Pairing的情况下尽量使用LE Secure Connection。
修改Android bluedroid的代码使BLE配对为默认LE Legacy pairing而不是LE Secure connection
要将Android Bluedroid的BLE配对方式修改为默认的LE Legacy Pairing而不是LE Secure Connection,可以按照以下步骤进行:
1. 找到Bluedroid源代码中的`btif_dm_ble_sec_req_evt`函数,该函数位于`/system/bt/btif/src/btif_dm.c`文件中。
2. 在该函数中,找到以下代码:
```C
if (btm_ble_get_encryption_key_type(p_data->ble_req.bd_addr) == BTM_BLE_SEC_ENCRYPT) {
bond_type = BOND_TYPE_ENCRYPT;
}
```
3. 将上述代码修改为以下代码:
```C
if (btm_ble_get_encryption_key_type(p_data->ble_req.bd_addr) == BTM_BLE_SEC_ENCRYPT) {
bond_type = BOND_TYPE_LE_LEGACY;
}
```
4. 保存文件并重新编译Bluedroid源代码,生成新的系统镜像文件并刷写到Android设备中即可。
需要注意的是,修改BLE配对方式可能会降低设备的安全性,因此应谨慎操作,并在不需要使用LE Legacy Pairing的情况下尽量使用LE Secure Connection。同时,对于一些定制化的Android系统,可能需要使用其他的方法来修改BLE配对方式,请根据具体情况进行调整。