📺 B站视频讲解(Bilibili):https://www.bilibili.com/video/BV1k1C9BYEAB/
📘 《Yocto项目实战教程》京东购买链接:Yocto项目实战教程
在 Yocto 中配置 OP-TEE 的工程优势
——以 Jetson AGX Orin(T234)为例的完整解析
一、引言:为什么在 Jetson 项目中必须认真对待 OP-TEE
在 Jetson AGX Orin 平台上,安全体系并不是一个“附加功能”,而是决定系统是否具备产品化、量产化与长期可维护性的基础能力。在 NVIDIA 给出的整体安全架构中,BootROM、MB1、MB2、UEFI、Linux Kernel 与 User Space 共同构成了启动与运行环境,而 OP-TEE(Open Portable Trusted Execution Environment)则是其中唯一运行在 Secure World 的操作系统组件。
如果说 Secure Boot 解决的是“系统是否从可信代码启动”,那么 OP-TEE 解决的则是“系统在运行过程中,敏感资产放在哪里、由谁保护、如何访问”。这一区别决定了 OP-TEE 并非锦上添花,而是 Jetson 安全架构中不可或缺的一环。
在工程实践中,OP-TEE 的引入方式直接影响系统安全边界的清晰度、组件之间的解耦程度以及后期维护成本。本文将以 Jetson AGX Orin(T234)平台为例,系统性分析:
- 为什么在 Yocto 中配置 OP-TEE 是更合理的工程选择
- Yocto 场景下 OP-TEE 的完整组件构成
- 各安全组件在 Jetson 启动链与运行期中的角色分工
- Yocto + OP-TEE 对 Jetson 产品化的实际价值
二、Jetson AGX Orin 的安全体系概览
2.1 Jetson 的启动与安全链条
在 Jetson AGX Orin 上,一个完整的启动与安全链条可以概括为:
BootROM → MB1 → MB2 → UEFI → OP-TEE → Linux Kernel → User Space
其中:
- BootROM:固化在 SoC 内部,构成硬件级 Root of Trust
- MB1 / MB2:完成早期硬件初始化与启动镜像加载
- UEFI:统一的二级引导与设备初始化环境
- OP-TEE:运行于 Secure World 的可信执行环境
- Linux Kernel / User Space:运行于 Normal World
这一结构中,OP-TEE 是 Secure World 与 Normal World 之间的唯一桥梁。
2.2 Secure Boot 与 OP-TEE 的边界划分
在 Jetson 平台上,Secure Boot 主要通过 PKC(非对称签名)与 SBK(对称加密)来保证:
- 启动镜像未被篡改
- 启动镜像内容不可被直接读取
但 Secure Boot 的作用范围止于启动阶段。一旦系统进入 Linux 运行期,若没有 OP-TEE 参与,所有密钥、证书、License 数据最终都只能存放在 Normal World 中,这在工程上存在明显风险。
OP-TEE 的引入,正是为了将安全能力从“启动可信”延伸到“运行可信”。
三、为什么选择 Yocto 来配置 OP-TEE
3.1 JetPack 方式的局限性
在 JetPack(Ubuntu)环境中,OP-TEE 通常以预编译组件的形式存在,其主要特点是:
- 快速可用,适合评估与验证
- 组件版本由 NVIDIA 固定
- 配置与构建过程不完全透明
这种方式在早期验证阶段是可接受的,但在产品化阶段会逐渐暴露问题,例如:
- OP-TEE、Kernel、User Space 组件之间的版本依赖关系难以审计
- TA(Trusted Application)的构建与部署缺乏统一机制
- 难以形成可重复、可追溯的安全构建流程
3.2 Yocto 的工程优势
Yocto 的核心价值在于“系统由元数据描述、由构建系统统一生成”。将 OP-TEE 纳入 Yocto 构建体系后,可以获得以下能力:
- 安全组件的版本锁定与统一管理
- Secure World 与 Normal World 组件的清晰分层
- 构建结果可重复、可审计
- 易于复制到生产线与后续维护环境
对于 Jetson AGX Orin 这类面向长期供货与量产的 SoC 平台,Yocto 是更符合工程实际的选择。
四、Yocto + Jetson AGX Orin 中 OP-TEE 的组件构成
在 Yocto 环境中,一个完整可用的 OP-TEE 系统通常由以下几类组件构成。
4.1 OP-TEE OS(Secure World 操作系统)
4.1.1 组件定位
OP-TEE OS 运行在 ARM TrustZone 的 Secure World,负责:
- Secure Memory 的管理
- Trusted Application 的加载与运行
- Root Key 与派生密钥的保护
- Secure Monitor Call(SMC)接口的处理
4.1.2 Yocto 中的管理方式
在 meta-tegra BSP 中,OP-TEE OS 通常以独立菜谱的形式存在。通过 Yocto:
- 可以明确 OP-TEE OS 的版本来源
- 可以对构建参数进行统一配置
- 可以与 Jetson 的 L4T 版本保持一致
这使得 Secure World 不再是“黑盒组件”,而成为系统中可控的一部分。
4.2 Trusted Applications(TA)
4.2.1 TA 的工程意义
OP-TEE 本身并不直接承载业务逻辑,真正执行安全功能的是 TA。典型的 TA 用途包括:
- 密钥派生与密钥封装
- License 校验
- AI 模型或固件的安全解密
- 安全计数器与防回滚机制
4.2.2 Yocto 对 TA 管理的优势
在 Yocto 中,TA 可以被视为一种特殊的系统组件:
- 独立构建
- 独立安装
- 独立版本管理
这种方式使 TA 的生命周期与系统构建流程紧密绑定,避免了手工拷贝和不可追溯的问题。
4.3 optee-client(libteec)

4.3.1 组件作用
optee-client 提供了符合 GlobalPlatform 规范的 Client API,使 Normal World 的 Client Application(CA)能够通过标准接口访问 Secure World 的 TA。
4.3.2 Yocto 集成的意义
通过 Yocto 管理 optee-client,可以确保:
- API 与 OP-TEE OS 版本匹配
- 头文件与库文件自动进入 SDK
- 应用开发与系统构建流程保持一致
4.4 tee-supplicant
4.4.1 角色说明
tee-supplicant 是运行在 User Space 的辅助进程,主要负责:
- Secure World 请求的文件访问代理
- RPMB 等存储访问
- 系统资源的安全中转
4.4.2 Yocto 管理的必要性
tee-supplicant 直接参与系统启动与运行时安全流程。在 Yocto 中,可以:
- 明确其 systemd 启动顺序
- 与 Kernel 与 OP-TEE OS 保持版本一致
- 作为系统组件统一维护
4.5 Linux Kernel OP-TEE Driver
4.5.1 功能定位
Linux Kernel 中的 OP-TEE 驱动负责:
- 提供 /dev/tee* 设备节点
- 转发 SMC 或 FF-A 调用
- 建立 Normal World 与 Secure World 的通信通道
4.5.2 Yocto 中的统一管理
在 Yocto BSP 中管理 Kernel 配置,可以确保 OP-TEE 驱动:
- 在正确的内核版本中启用
- 与 OP-TEE OS 的 ABI 保持一致
- 随系统整体版本演进
五、Yocto + OP-TEE 在 Jetson 安全体系中的闭环作用
5.1 从“启动可信”到“运行可信”
Secure Boot 解决的是启动阶段的问题,而 OP-TEE 将安全能力延伸至运行阶段,使得:
- Root Key 永不进入 Normal World
- 密钥派生过程完全在 Secure World 中完成
- 即使获得 root 权限,也无法直接访问敏感资产
5.2 对产品化与量产的意义
在 Yocto 环境中引入 OP-TEE,可以形成:
- 可重复构建的安全系统
- 可审计的安全组件版本
- 可复制的生产与部署流程
这对于 Jetson AGX Orin 这类面向工业、医疗、边缘 AI 场景的平台尤为重要。
六、工程视角下的总结
从工程实践角度看:
- OP-TEE 是 Jetson 安全架构中承载运行期安全的核心组件
- Yocto 提供了管理 OP-TEE 所需的结构化能力
- 二者结合,才能真正构建完整、可维护、可量产的安全系统
对于涉及 Secure Boot、密钥保护、License 管理或 AI 模型安全的 Jetson 项目而言,在 Yocto 中配置 OP-TEE 并非“进阶选项”,而是一项基础工程决策。
七、结语
以 Jetson AGX Orin 为代表的新一代 Jetson 平台,在性能和算力层面已经非常成熟。如何将这些能力转化为长期可交付的产品,关键不在于单一功能的实现,而在于系统架构的完整性。
在 Yocto 中系统性地配置 OP-TEE,正是将 Jetson 从“开发板”走向“产品平台”的重要一步。
📺 B站视频讲解(Bilibili):https://www.bilibili.com/video/BV1k1C9BYEAB/
📘 《Yocto项目实战教程》京东购买链接:Yocto项目实战教程
486

被折叠的 条评论
为什么被折叠?



