首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何判断我的BLE通信是否使用非对称加密(如果是加密的)?(表5.x)

如何判断我的BLE通信是否使用非对称加密(如果是加密的)?(表5.x)
EN

Stack Overflow用户
提问于 2020-11-13 10:25:22
回答 1查看 154关注 0票数 1

我想知道我的BLE5(低能耗,不是“典型的”/core蓝牙)嵌入式系统是否使用(最好是非对称的)加密,如果加密的话。

我正在使用这个与SOC通信的ble模块。我的SOC可以加密,但是BLE模块产品的FAE不能提供任何有用的信息。

我的程序似乎没有绑定/配对过程,但我可能是错的,因为我没有仔细研究HAL层程序。

我的问题是,BLE5需要加密吗?

如果没有,我如何使用嗅探器以外的方法来确定我的连接是否加密?例如,是否有任何步骤必须通过以促进加密,在这种情况下,我应该检查这些步骤是否被跳过?(如果跳过,那么我的通信肯定是纯文本的)。

目标BLE模块是基于nrf52832的,不知道他们使用的是什么BLE堆栈/软设备。我的soc是STM32WB55系列,使用了一个相当全面的BLE堆栈,它支持大多数功能,我暂时想不起这些功能的名字。

EN

回答 1

Stack Overflow用户

发布于 2020-11-13 18:22:21

BLE不需要加密即可建立连接。

首先,每个BLE连接都以安全模式1、级别1启动,该模式根本不使用任何加密。每条消息都将以明文形式发送。为了提高安全性,两个设备必须“配对”。在配对过程中交换安全密钥。有多种不同的配对方法,具有不同的要求。请看一看this的文章作为起点。

配对过程通常不是手动启动的,而是在设备尝试访问安全特征时自动启动的。如果您使用电话访问此类特征,系统将弹出配对请求提示。根据您的描述,我假设您的连接当前未加密。

要在您的SoC上启用加密,请查看函数aci_gatt_add_charThis文档(直接下载链接)引用了第55页上的此函数,并显示它将Security_Permissions作为参数。下一页说明可能的选项如下:

  • 0x00:ATTR_PERMISSION_NONE
  • 0x01:需要身份验证到read
  • 0x02:需要授权到read
  • 0x04:链接应该加密到read
  • 0x08:需要身份验证到write
  • 0x10:需要授权到write
  • 0x20:链接应该加密以便写入
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64814596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档