当前位置: 首页 > news >正文

ESP32 C3开发实战 -7(BLE加密连接Bond)

在一些特定物联网产品,有时会遇到对BLE的GATT访问进行加密

先来看下BLE加密连接流程图

扫描&连接->安全请求->配对处理->生成加密key->链路加密,完成链路加密连接

实例项目开发时候,需要几个步骤来完成

1,BLE组件对应的SMP项设置:开启加密配对,加密连接,保存bond key到NVS

2,在这里使用:Just work bond。

ble host config:配置为:BLE_HS_IO_NO_INPUT_OUTPUT,无需输入pair key,

nimble_host_config_init

ble_hs_cfg.sm_io_cap = BLE_HS_IO_NO_INPUT_OUTPUT;//无输入,无输出设备

ble_hs_cfg.sm_bonding = 1;

ble_hs_cfg.sm_mitm = 0;

ble_hs_cfg.sm_our_key_dist |= BLE_SM_PAIR_KEY_DIST_ENC | BLE_SM_PAIR_KEY_DIST_ID;

ble_hs_cfg.sm_their_key_dist |= BLE_SM_PAIR_KEY_DIST_ENC | BLE_SM_PAIR_KEY_DIST_ID;

3,GATT层访问安全设定,读写需加密ENC

GATT的读写权限加密设定为:BLE_GATT_CHR_F_READ_ENC和BLE_GATT_CHR_F_WRITE_ENC

* GATT services table */

staticconststructble_gatt_svc_defgatt_svr_svcs[]= {

/* Heart rate service */

{.type = BLE_GATT_SVC_TYPE_PRIMARY,

.uuid = &heart_rate_svc_uuid.u,

.characteristics =

(structble_gatt_chr_def[]){

{/* Heart rate characteristic */

.uuid = &heart_rate_chr_uuid.u,

.access_cb =heart_rate_chr_access,

.flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_INDICATE |

BLE_GATT_CHR_F_READ_ENC,

.val_handle = &heart_rate_chr_val_handle},

{

0,/* No more characteristics in this service. */

}}},

/* Automation IO service */

{

.type = BLE_GATT_SVC_TYPE_PRIMARY,

.uuid = &auto_io_svc_uuid.u,

.characteristics =

(structble_gatt_chr_def[]){

/* LED characteristic */

{.uuid = &led_chr_uuid.u,

.access_cb =led_chr_access,

.flags = BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_WRITE_ENC,

.val_handle = &led_chr_val_handle},

{0}},

}

{

0,/* No more services. */

},

};

http://www.jsqmd.com/news/1090557/

相关文章:

  • 时光回溯:为互联网记忆打造的数字保险箱
  • upload-labs靶场通关实战:20种文件上传漏洞的深度剖析与利用
  • 终极指南:3分钟解决Windows软件运行库依赖问题
  • 认知颠覆型:别只看排行!一文揭秘oem卫浴五金洁具工厂真实实力
  • NifSkope深度探索:解锁游戏模型编辑的无限可能
  • 微信小程序渗透测试实战指南:从抓包到漏洞挖掘
  • OpCore-Simplify:终极黑苹果EFI配置自动化工具,15分钟完成专业级OpenCore构建
  • 计算机毕业设计之基于SSM的智能公寓管理系统的设计与实现
  • Rust 并发编程实战:从 Mutex 到 Channel,数据竞争的编译期防线
  • Applite:Mac软件管理的终极解决方案,告别命令行的智能管家
  • PHP集成国密SM2算法实战:从PFX证书解析到数据加密完整指南
  • 纪宏超团队:代谢组新一代深度学习注释
  • 3步免费实现VR视频转2D播放:MPV插件终极解决方案
  • 如何彻底解决网盘下载限速问题:九大网盘直链解析工具完整指南
  • 60+专业Freeplane思维导图模板:免费开源高效创作指南
  • Spring Boot AOP 拦截逻辑性能分析
  • 3分钟掌握微信防撤回:macOS用户的终极消息保护方案
  • 第七周小学期记录
  • VMware Log4j2漏洞应急响应:从原理到实战修复指南
  • 3步解决macOS SMAPI模组加载器安全限制的实用方案
  • 【ISO15031_OBD诊断】-9.1-$09服务Request vehicle information实战解析:从协议到数据获取
  • QModMaster:免费开源ModBus调试工具的完整使用指南
  • 文献综述:认知心理学发展
  • Android自动化输入完全指南:ADB虚拟键盘的7大实战技巧与解决方案
  • Magisk V24.1 源码编译实战:从环境配置到APK生成的完整避坑指南
  • 手把手教你用Python搭建一个轴承故障预测模型
  • 终极暗黑破坏神II角色编辑工具:5分钟打造完美角色的完整指南
  • 掌握专注写作:用FocusWriter解锁高效创作潜能
  • 小米手表表盘设计终极指南:如何用Mi-Create免费创建个性化表盘
  • AI与大模型新闻日报 | 2026-06-29