我想知道我的BLE5(低能耗,不是“典型的”/core蓝牙)嵌入式系统是否使用(最好是非对称的)加密,如果加密的话。
我正在使用这个与SOC通信的ble模块。我的SOC可以加密,但是BLE模块产品的FAE不能提供任何有用的信息。
我的程序似乎没有绑定/配对过程,但我可能是错的,因为我没有仔细研究HAL层程序。
我的问题是,BLE5需要加密吗?
如果没有,我如何使用嗅探器以外的方法来确定我的连接是否加密?例如,是否有任何步骤必须通过以促进加密,在这种情况下,我应该检查这些步骤是否被跳过?(如果跳过,那么我的通信肯定是纯文本的)。
目标BLE模块是基于nrf52832的,不知道他们使用的是什么BLE堆栈/软设备。我的soc是STM32WB55系列,使用了一个相当全面的BLE堆栈,它支持大多数功能,我暂时想不起这些功能的名字。
发布于 2020-11-13 18:22:21
BLE不需要加密即可建立连接。
首先,每个BLE连接都以安全模式1、级别1启动,该模式根本不使用任何加密。每条消息都将以明文形式发送。为了提高安全性,两个设备必须“配对”。在配对过程中交换安全密钥。有多种不同的配对方法,具有不同的要求。请看一看this的文章作为起点。
配对过程通常不是手动启动的,而是在设备尝试访问安全特征时自动启动的。如果您使用电话访问此类特征,系统将弹出配对请求提示。根据您的描述,我假设您的连接当前未加密。
要在您的SoC上启用加密,请查看函数aci_gatt_add_char。This文档(直接下载链接)引用了第55页上的此函数,并显示它将Security_Permissions作为参数。下一页说明可能的选项如下:
0x00:ATTR_PERMISSION_NONE0x01:需要身份验证到read0x02:需要授权到read0x04:链接应该加密到read0x08:需要身份验证到write0x10:需要授权到write0x20:链接应该加密以便写入https://stackoverflow.com/questions/64814596
复制相似问题