ESP-IDF 例程——加密

18. security 目录

18.1 flash_encryption

字段 描述
例程名称 Flash 加密示例
所在文件夹路径 examples\security\flash_encryption
核心功能说明 演示如何在开发和发布模式下启用和使用 Flash 加密,包括检查 Flash 加密状态、读写加密分区、初始化加密和非加密 FATFS 和 NVS 分区
主要调用的内部/外部函数或模块 - Flash 加密 API
  • NVS 加密 API
  • FATFS 组件
  • 支持多种 ESP32 芯片 |
    | 输入输出参数说明 | 配置参数:
  • Flash 加密模式(开发或发布)
  • 分区表配置
  • 加密密钥设置

输出结果:

  • Flash 加密状态检查结果
  • eFuse 状态信息
  • 加密分区读写结果
  • FATFS 和 NVS 初始化状态
  • 加密数据操作结果 |
    | 适用场景及典型应用案例 | - 保护敏感数据不被物理读取
  • 物联网设备的固件保护
  • 工业设备的安全存储
  • 金融设备的数据加密
  • 医疗设备的隐私保护 |

18.2 hmac_soft_jtag

字段 描述
例程名称 HMAC 软 JTAG 示例
所在文件夹路径 examples\security\hmac_soft_jtag
核心功能说明 演示如何使用 HMAC 外设安全地重新启用软件禁用的 JTAG 接口,实现设备的 Return Material Access (RMA) 功能
主要调用的内部/外部函数或模块 - HMAC 外设 API
  • JTAG 控制 API
  • console 组件(命令行界面)
  • 支持多种 ESP32 芯片 |
    | 输入输出参数说明 | 配置参数:
  • HMAC 密钥生成
  • 令牌数据生成
  • JTAG 重新启用命令

输出结果:

  • JTAG 状态信息
  • HMAC 密钥生成结果
  • 令牌生成结果
  • JTAG 重新启用状态 |
    | 适用场景及典型应用案例 | - 设备的 RMA(退货授权)流程
  • 安全调试和维护
  • 工业设备的远程调试
  • 智能设备的售后支持 |

18.3 nvs_encryption_hmac

字段 描述
例程名称 NVS 加密 HMAC 示例
所在文件夹路径 examples\security\nvs_encryption_hmac
核心功能说明 演示如何使用基于 HMAC 的加密密钥保护方案进行 NVS 加密,密钥从 eFuse 存储的 HMAC 密钥派生,无需单独的 nvs_keys 分区
主要调用的内部/外部函数或模块 - NVS 加密 API
  • HMAC 外设 API
  • eFuse API
  • 支持多种 ESP32 芯片 |
    | 输入输出参数说明 | 配置参数:
  • HMAC 密钥生成
  • eFuse 密钥烧录
  • NVS 加密方案启用

输出结果:

  • HMAC 密钥生成结果
  • eFuse 烧录状态
  • NVS 加密初始化状态
  • NVS 读写操作结果 |
    | 适用场景及典型应用案例 | - 物联网设备的配置存储
  • 敏感配置数据的保护
  • 设备凭证的安全存储
  • 加密密钥的管理 |

18.4 security_features_app

字段 描述
例程名称 安全功能应用示例
所在文件夹路径 examples\security\security_features_app
核心功能说明 演示如何同时启用多种安全功能,包括 Secure Boot V2、Flash Encryption、HMAC-based NVS Encryption 和 Secure JTAG Return Material Access
主要调用的内部/外部函数或模块 - Secure Boot V2 API
  • Flash 加密 API
  • NVS 加密 API
  • HMAC 外设 API
  • JTAG 控制 API
  • 支持 ESP32-C3 和 ESP32-S3 芯片 |
    | 输入输出参数说明 | 配置参数:
  • Secure Boot V2 密钥生成和烧录
  • Flash 加密启用
  • NVS 加密配置
  • Secure JTAG 配置

输出结果:

  • 安全功能启用状态
  • eFuse 烧录结果
  • Flash 加密状态
  • NVS 加密初始化状态
  • JTAG 状态信息 |
    | 适用场景及典型应用案例 | - 生产环境中的设备安全配置
  • 高安全性要求的物联网设备
  • 企业级设备的安全部署
  • 批量设备的安全配置 |

18.5 tee (Trusted Execution Environment)

18.5.1 tee_basic

字段 描述
例程名称 TEE 基础示例
所在文件夹路径 examples\security\tee\tee_basic
核心功能说明 演示如何使用 ESP-TEE 框架在可信执行环境中执行安全服务,包括 AES 加密/解密操作
主要调用的内部/外部函数或模块 - ESP-TEE 框架
  • AES 加密 API
  • 安全服务组件
  • 支持多种 ESP32 芯片 |
    | 输入输出参数说明 | 配置参数:
  • TEE 安全服务注册
  • 加密/解密操作配置

输出结果:

  • TEE 初始化状态
  • 安全服务注册结果
  • 加密/解密操作结果 |
    | 适用场景及典型应用案例 | - 敏感数据的加密/解密
  • 安全密钥管理
  • 数字签名生成和验证
  • 安全认证 |

18.5.2 tee_attestation

字段 描述
例程名称 TEE 证明示例
所在文件夹路径 examples\security\tee\tee_attestation
核心功能说明 演示如何使用 ESP-TEE 框架生成实体证明令牌,用于设备身份验证和完整性验证
主要调用的内部/外部函数或模块 - ESP-TEE 框架
  • 证明令牌生成 API
  • 加密密钥管理
  • 支持多种 ESP32 芯片 |
    | 输入输出参数说明 | 配置参数:
  • 证明密钥生成
  • 设备身份信息配置

输出结果:

  • TEE 初始化状态
  • 证明令牌生成结果
  • 设备身份验证状态 |
    | 适用场景及典型应用案例 | - 设备身份验证
  • 固件完整性验证
  • 安全启动流程
  • 物联网设备的可信连接 |

18.5.3 tee_secure_ota

字段 描述
例程名称 TEE 安全 OTA 示例
所在文件夹路径 examples\security\tee\tee_secure_ota
核心功能说明 演示如何使用 ESP-TEE 框架进行安全 OTA 更新,确保固件更新的安全性和完整性
主要调用的内部/外部函数或模块 - ESP-TEE 框架
  • OTA 服务 API
  • HTTPS 客户端
  • 固件签名验证
  • 支持多种 ESP32 芯片 |
    | 输入输出参数说明 | 配置参数:
  • OTA 服务器配置
  • 固件签名验证配置
  • 安全更新策略

输出结果:

  • TEE 初始化状态
  • OTA 连接状态
  • 固件下载进度
  • 固件验证结果
  • 更新结果 |
    | 适用场景及典型应用案例 | - 安全固件更新
  • 设备远程管理
  • 漏洞修复
  • 功能升级 |

18.5.4 tee_secure_storage

字段 描述
例程名称 TEE 安全存储示例
所在文件夹路径 examples\security\tee\tee_secure_storage
核心功能说明 演示如何使用 ESP-TEE 框架提供的安全存储功能,实现数据的加密存储和签名保护
主要调用的内部/外部函数或模块 - ESP-TEE 框架
  • 安全存储 API
  • 加密和签名 API
  • 支持多种 ESP32 芯片 |
    | 输入输出参数说明 | 配置参数:
  • 安全存储区域配置
  • 数据加密策略
  • 签名验证配置

输出结果:

  • TEE 初始化状态
  • 安全存储初始化状态
  • 数据读写操作结果
  • 签名验证结果 |
    | 适用场景及典型应用案例 | - 敏感数据的安全存储
  • 密钥和凭证管理
  • 配置数据的完整性保护
  • 审计日志的不可篡改存储 |

18.6 技术要点

  • 安全启动

    • 支持 Secure Boot V2
    • 多签名密钥支持
    • 固件完整性验证
    • 防回滚保护
  • Flash 加密

    • 支持开发和发布模式
    • AES-XTS 加密算法
    • 分区级加密控制
    • 加密密钥管理
  • NVS 加密

    • 基于 HMAC 的密钥派生
    • 无需单独的密钥分区
    • 透明的加密/解密操作
    • 支持多个加密 NVS 分区
  • JTAG 安全

    • 软件禁用 JTAG
    • HMAC 认证重新启用
    • RMA 流程支持
    • 调试权限管理
  • TEE 功能

    • 隔离的可信执行环境
    • 安全服务注册
    • 加密操作保护
    • 安全存储
    • 远程证明
    • 安全 OTA

18.7 构建与运行

  1. 设置目标芯片:idf.py set-target <chip_name>
  2. 配置项目:idf.py menuconfig
  3. 选择安全功能配置
  4. 构建项目:idf.py build
  5. 烧录并监控:idf.py -p PORT flash monitor
  6. 运行测试或使用命令行工具进行验证

18.8 应用场景总结

  • 适用于对安全性要求较高的设备
  • 保护敏感数据和固件
  • 支持多种安全功能的组合使用
  • 适合物联网、工业自动化、金融、医疗等领域
  • 提供从开发到生产的完整安全解决方案

这些例程展示了 ESP-IDF 在设备安全方面的强大功能,涵盖了从固件保护到数据加密,再到安全执行环境的全方位安全解决方案,为开发者提供了构建高安全性设备的工具和示例。


ESP-IDF 例程——加密
https://blog.zhaosn.top/ESP32-examples/18.security/
作者
Zhao SN
发布于
2026年1月21日
更新于
2026年1月21日
许可协议