关于 ESP32 未公开 Bluetooth® HCI 命令的事实澄清

概述

乐鑫已就近期有关 ESP32 Bluetooth 控制器可能存在“后门”或“未公开功能”引发安全担忧的报道作出正式回应。目前,原报道已经删除“后门”字样,且 Tralogic 研究团队已经在 X (原 Twitter)上就使用了不适当的词汇进行公开道歉。

本文将重点介绍相关 Bluetooth HCI 命令的技术细节,并澄清这些未公开的 HCI 命令不会构成安全威胁,更不属于所谓的“后门”。

什么是 HCI 命令?

Bluetooth 协议栈主要由两层组成:

  • Bluetooth 控制器(底层) —— 负责无线电操作、链路管理及底层 Bluetooth 通信。ESP32 系列芯片通过软硬件结合实现该控制器。
  • Bluetooth 主机栈(上层) —— 负责处理更高层级的 Bluetooth 功能,如配对、加密及应用层交互。这一层完全由软件实现。ESP32 系列芯片基于开源的 NimBLE 和 Bluedroid 开发 Bluetooth 主机栈。

这两层通过标准接口 HCI(主机控制器接口) 进行通信。HCI 定义了一组标准命令,供 Bluetooth 主机调用。Bluetooth 控制器不仅实现了这些标准 HCI 命令,还支持厂家自定义 HCI 命令,主要用于实现标准 HCI 命令不支持的功能以及一些调试的功能。

报道中的安全问题是什么?

此次报道指出,ESP32 含有一组未公开的 HCI 命令,并声称这些命令可能被用于恶意访问运行 ESP32 Bluetooth 的设备。

这些未公开的命令是什么?

报告中提到的“未公开” HCI 命令实际上是 ESP32 Bluetooth 控制器中的调试命令。这些命令主要用于辅助调试(如读取/写入 RAM、读取映射到内存的 Flash、发送/接收数据包等),在与标准 Bluetooth主机栈(如 NimBLE 或 Bluedroid)的 HCI 通信中,这些命令并未起到作用。

此类调试命令在 Bluetooth 控制器的实现中较为常见,可帮助开发者调试控制器行为,尤其在双芯片 (Dual-Chip) 解决方案中尤为有用。

ESP32 Bluetooth 架构

在 ESP32 中,Bluetooth 控制器和主机栈运行在同一 MCU(微控制单元)上,主机栈和控制器之间仍然通过 HCI 进行通信。但由于二者运行在同一芯片上,HCI 可视为虚拟 HCI 层,即 ESP32 内部通信的一部分。 任何可以访问此虚拟 HCI 层的代码,必须首先在 ESP32 上执行,并且具有完整的执行权限。

影响分析

  • 大多数 ESP32 应用场景——由于蓝牙主机和控制器都集成在ESP32运行的同一个应用程序二进制文件中,因此这些 HCI 命令不会带来额外的安全风险。应用程序本身已经拥有对内存和寄存器的完全访问权限,并可自由发送/接收 Bluetooth 数据包,无需依赖这些自定义的 HCI 命令。
  • 无法通过远程方式触发——这些命令无法通过 Bluetooth、无线电信号或互联网触发,除非应用本身或无线协议存在漏洞。而如果存在此类漏洞,其影响远大于这些 HCI 命令的存在,且这些命令不会增加额外的攻击面。
  • 仅影响原始 ESP32 芯片——这些命令仅存在于 ESP32 芯片中,而 ESP32-C、ESP32-S 和 ESP32-H 系列 的 Bluetooth 控制器并不支持这些命令,因此不受影响。

ESP32 仅仅作为蓝牙控制器模块的情况(需要串口外接蓝牙主机,较少使用)

在某些不太常见的配置中,ESP32 仅仅作为蓝牙控制器,通过串口外接蓝牙主机(比如其他 MCU,PC 等)。这些蓝牙主机通过串口(如 UART HCI)给 ESP32 芯片发送 HCI 指令。这种配置通常用于 ESP32 作为通信协处理器的场景,而相比于独立运行模式,这种使用方式较少见。

在此类系统中,ESP32 完全信任主机。如果攻击者控制了主机系统,则可能通过这些调试命令影响 ESP32 的行为。然而,这首先需要攻击者成功入侵主机设备,因此属于第二阶段攻击路径,而非独立的安全漏洞。此外,攻击者还需对设备进行物理访问,才能通过串口发送 HCI 命令。 对于使用 UART-HCI 方式的应用,攻击者无法直接远程利用此漏洞。此外,乐鑫计划通过 OTA(在线更新)禁用这些调试命令,以增强安全性,并将在软件层面提供进一步的更新。

缓解措施

如前所述,目前没有已知的实际安全威胁,未公开的 HCI 命令不会对设备安全构成风险。然而,为了进一步增强安全性,乐鑫决定采取以下措施:

  • 发布软件修复补丁——在当前支持的 ESP-IDF 版本中,提供软件更新,移除 ESP32 芯片对这些 HCI 调试命令的支持。
  • 完善文档透明度——乐鑫将详细说明所有可能在客户产品中出现的自定义 HCI 命令,确保 HCI 层功能的透明性。

总结

综合来看,对于大多数 ESP32 应用而言,只要启用了推荐的安全特性,此次报道的问题不会带来实际影响。而对于少量基于 Bluetooth HCI 串口通信的场景,我们可以通过禁用调试命令来缓解潜在风险,并将在后续提供相关更新。 乐鑫始终遵循标准化的产品安全事件响应流程,并秉持负责任披露 (Responsible Disclosure) 原则。 我们始终认为,基于乐鑫芯片的设备安全至关重要,并承诺保持透明度,遵循最佳安全实践。我们将继续与社区合作,确保我们的设备安全可靠,并负责任地披露所有与安全相关的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值