课题研究 物联网与工控安全 子课题01 · 第06页 / 共8页
01子课题 · IoT设备固件安全与漏洞挖掘

IoT设备固件安全与漏洞挖掘第06页:硬件接口与硬件安全分析

软件分析到硬件层封顶:UART产测shell、JTAG/SWD调试口、存储芯片直接读取是固件获取与验证的三大物理入口;侧信道与故障注入是高对抗设计评估手段。本页系统给出各接口的识别方法、工具链(JTAGulator/OpenOCD/flashrom/esptool/ChipWhisperer)、法律边界,以及Secure Boot信任链(ROM→SPL→内核→dm-verity→OTA)与硬件防御设计核查清单。

硬件安全UARTJTAGSWDOpenOCDflashromCH341AeFuseSecure Bootdm-verity故障注入DICE研究状态:研究中
所属专题未来研究方向 › 物联网与工控安全 › 子课题01
目标受众硬件安全工程师、逆向工程师、设备厂商安全团队、测评机构
本页要点UART/JTAG/SWD接口分析 · 存储芯片读取 · 侧信道与故障注入前沿 · Secure Boot信任链 · 硬件防御核查清单

01 · UART:成本最低的入口

UART(通用异步收发)是绝大多数嵌入式主控的调试/产测串口。设备PCB上常见4个并排焊盘(GND/VCC/TX/RX),设备启动过程中常输出内核日志,部分固件甚至直接提供root shell——这属于产测残留的普遍性工程问题(OWASP IoT Top 10 I10"缺乏物理加固"的国内对应项)。

1.1 识别与连接

  • 引脚识别:先以万用表确定GND(与地平面连通)与VCC(常压1.8V/3.3V/5V),TX/RX以逻辑分析仪(Saleae等)观察上电波形区分;JTAGulator也可辅助识别。
  • 波特率确定:常见115200/57600/38400;以逻辑分析仪测位宽换算,或逐档尝试观察可读输出。
  • 连接工具:FT232RL/USB-TTL转换器,注意电平匹配(5V TTL直连3.3V芯片可能损坏)。

1.2 安全分析价值

  • 内核启动日志泄露硬件配置、分区表与固件版本;
  • 进入shell后可读取运行时配置、明文密钥、内存取证(印证第3章静态发现的口令与加密误用);
  • 观察固件升级过程,截获解密后的中间产物(分析"加密升级包"算法的关键手段)。

02 · JTAG/SWD调试口

2.1 JTAG(IEEE 1149.1)

JTAG是边界扫描与芯片调试标准接口(TCK/TMS/TDI/TDO四线+可选TRST),可单步执行、读写内存与寄存器、烧录Flash,是最高权限的硬件入口。引脚在量产板上常被隐藏(未贴装焊盘、丝印覆盖、测试点分散),可用JTAGulator(Joe Grand/Grand Idea Studio设计)对未知引脚排列做自动识别。连接后以OpenOCD(开源调试服务器)加载芯片描述文件即可调试。

2.2 SWD(ARM Cortex-M/M33 IoT设备主流)

SWD以两线(SWDIO/SWCLK)替代JTAG五线,是ARM Cortex-M系列(STM32、nRF、ESP32-C等)的调试标准,ST-Link/J-Link均可连接。Debug Lock是核心防线:以STM32为例,RDP(读保护)分0/1/2级,RDP2不可逆封锁调试读取——但历史上针对部分芯片的RDP降级攻击(电压/时钟毛刺)被公开研究过,说明硬件防护需配合安全元件纵深设计(见05节)。

与固件分析的衔接:JTAG/SWD调试可绕过Secure Boot直接Dump运行内存,验证"密钥仅存在于受保护硬件中"的设计声明是否属实;对RTOS类设备(无文件系统可解包),调试口是获取固件映像与运行时状态的唯一低损途径。

03 · 存储芯片直接读取

介质读取工具要点
SPI NOR(25系列)CH341A编程器 + flashrom / 编程器软件最常见;SOIC-8夹具免拆焊;读取前核对芯片型号电压(3.3V为主)
NAND FlashRT809H等NAND编程器需处理OOB/ECC与坏块表;位翻转需纠错后重组镜像
eMMCeMMC编程器/ISP接口(CLK/CMD/DAT0)部分芯片支持boot分区与用户分区分离读取;加密依赖主控内密钥
MCU内置Flash调试口读取 / 厂商ISP协议受读保护限制;ESP32系列可用esptool.py read_flash(在未启用flash加密时)
旁路启动mask ROM模式(Rockchip/Amlogic等SoC)部分SoC的上电strap引脚强制进入mask ROM,经USB导出镜像——Secure Boot未正确熔断时风险显著

法律边界:芯片读取与硬件分析仅针对自有或获书面授权的设备;对二手市场设备的分析须确认来源合法。读取过程中可能接触前机主残留数据(配置、凭证),应按取证规范封存、脱敏、限期销毁。

04 · 侧信道与故障注入(研究前沿)

当设备启用了完善的安全启动与闪存加密,正面路径失效,学术界转向物理层攻击:

  • 侧信道分析(SCA):功耗分析(SPA/DPA)与电磁分析通过采集加密运算时的物理信号恢复密钥;防御手段包括屏蔽层、随机化与恒时实现、敏感算法下沉安全元件。
  • 故障注入(FI):时钟毛刺、电压毛刺(ChipWhisperer是标准教学/研究平台)、电磁脉冲与激光注入,通过制造瞬态计算错误跳过关键校验(如跳过签名验证分支、降级读保护)。
  • 研究意义:此类攻击揭示"Secure Boot熔断是否正确配置""密钥是否真正受硬件保护"等设计层真相;对高价值设备(车载、能源计量)的威胁建模具有刚性需求(对应子课题02/04的合规测评)。

课题定位:侧信道与故障注入属于高成本、强对抗的专项能力,本子课题将其定位为设计评估与抽样验证手段(对宣称硬件防护的设备做独立验证),并作为子课题02(工控)与子课题04(车载)安全测评能力的前置储备,不追求规模化。

05 · 硬件信任根与安全启动链

5.1 Secure Boot的信任链

层级校验内容实现机制
ROM Bootloader校验下一阶段(SPL/二级引导)签名掩膜ROM不可修改,信任根锚定;公钥哈希烧录于eFuse/OTP
SPL / U-Boot校验内核(uImage/FIT)签名U-Boot CONFIG_FIT_SIGNATURE;密钥存放于受保护存储
Linux内核校验根文件系统完整性dm-verity(块级完整性树);或IMA/appraisal策略
应用层OTA升级包签名校验Ed25519/RSA-PSS签名;防回滚依赖单调计数器/熔断版本位

5.2 配套机制

  • 密钥固化:eFuse/OTP一次性烧录公钥哈希,私钥由厂商HSM保管、离线分级(签名密钥与发布密钥分离)。
  • 防回滚:版本熔断或安全计数器;A/B分区+原子切换实现"更新失败可回退、但不回退到更低安全版本"。
  • 可信执行环境:ARM TrustZone(OP-TEE)隔离密钥操作与安全世界固件;Intel SGX在网关类x86设备上的对应物。
  • 设备身份:DICE(TCG设备标识组合引擎)从不可变度量派生分层身份密钥,支持证书轮换与破损即弃;PUF(物理不可克隆函数)提供芯片级唯一性。

06 · 硬件侧防御设计核查清单

  • 调试口治理:量产固件关闭JTAG/SWD使能位(eFuse锁死)而非仅软件隐藏;UART产测shell要求出厂口令或物理跳线使能。
  • 启动链完整性:逐级验证"ROM→SPL→内核→文件系统"完整链是否闭合,是否存在可降级窗口;掩码ROM降级路径是否熔断。
  • 密钥独立性:一机一密/按批次轮换;禁止固件内置全局TLS私钥(第3章);密钥运算是否下沉安全元件。
  • 存储加密:Flash加密密钥是否绑定芯片eFuse(而非固件内常量);冷启动残留数据是否清除。
  • 产测残留:工厂模式、测试Wi-Fi、ATE命令是否在量产固件中移除或加口令。
  • 物理防拆:防拆开关触发密钥擦除;屏蔽层防侧信道(高安全等级设备)。
硬件安全分析路径:从外部接口到信任根验证
每层结论回馈固件层分析(第3—5页)形成完整证据链
工具说明以OpenOCD、flashrom、esptool等官方文档为准;STM32 RDP等机制以厂商参考手册为准。

07 · 拆机与硬件分析操作规范

  • 授权与记录:拆机前确认设备所有权或书面授权,拍照记录原始状态(保修贴、防拆螺丝、丝印),全程留存操作日志。
  • 静电与供电安全:佩戴防静电手环;上电测量前先确认主板额定电压;对大电容件先放电再操作。
  • 最小干预原则:优先无损方式(外部接口、SOIC夹具读取);必须焊接时记录焊点并在分析完成后恢复原状。
  • 数据保护:读取的闪存镜像按取证规范封存(以只读工作副本开展分析);含前机主残留数据的设备按第8页伦理条款脱敏并限期销毁。
  • 人身安全:市电直供设备(如带电源适配器的IoT网关)拆机后禁止裸板带电触碰市电侧;故障注入与侧信道实验在专用实验台进行。

本节参考来源(第6页)

以下均为真实可查的权威来源(学术论文、标准组织、监管机构、官方项目仓库与漏洞库),用于支撑本页事实性表述;涉统计数字均标注原始出处。

[1]

OpenOCD(开源调试服务器):openocd.org;flashrom:flashrom.org;esptool(乐鑫):github.com/espressif/esptool。

[2]

Grand Idea Studio JTAGulator(JTAG引脚识别):grandideastudio.com/jtagulator;NewAE ChipWhisperer(故障注入/侧信道研究平台):chipwhisperer.com。

[3]

U-Boot官方文档(FIT签名、安全配置):u-boot.readthedocs.io;Linux内核dm-verity文档:docs.kernel.org(dm-verity)。

[4]

TCG DICE(Device Identifier Composition Engine)规范:trustedcomputinggroup.org;NIST SP 800-193《Platform Firmware Resiliency Guidelines》(2018):csrc.nist.gov/pubs/sp/800/193/final。

[5]

OWASP IoT Top 10(I10缺乏物理加固):owasp.org/www-project-internet-of-things;ETSI EN 303 645硬件相关条款:etsi.org/standards。