引流关键词: 中断、同步异常、异步异常、irq、fiq、BL1,BL2,BL3,BL31,BL32,BL33,AP_BL1,AP_BL2,AP_BL3,AP_BL31,AP_BL32,AP_BL33,SCP_BL1,SCP_BL2,BL0,BL30, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表…
快速链接:
.
👉👉👉 个人博客笔记导读目录(全部) 👈👈👈
[专栏目录]-ATF/FF-A/specification学习
Measured Boot 简介
- Measured Boot 是一种引导流程,可在引导链的每个阶段计算并安全记录代码和其他关键数据的哈希值。
- TPM(通常)用于保存测量值。
- 这些测量(记录)可以在以后用于证明或执行安全策略
TPM介绍
- TPM 是一个模块,可以安全地存储用于验证计算平台的组件
- 它提供证明、加密服务和密钥管理。
- 通常作为单独的芯片实现
它也可以在固件中实现(例如在 TrustZone 中) - 保持所有加载的代码和数据的测量(例如哈希)。
信息被记录(扩展)到平台配置寄存器(PCR)中
在 TF-A 上测量引导的基本原理
- Arm 服务器通常实现或包含用于证明和安全启动的 TPM 服务。
- 在某些情况下,TPM 服务只能从 Secure World 访问
- 这通常通过安全分区(或类似的)来完成,该分区在启动过程中相对较晚可用。
一个推荐的启动示例
具体的实现细节–driver
- TF-A 包括 BL2 阶段使用的 Measured Boot 驱动程序。
- BL1 测量BL2 并通过TB_FW_CONFIG DTB 进行测量。
- BL2 测量其余图像和数据,并将所有测量结果记录在安全存储器的事件日志中。
- 支持多种加密散列函数
在当前实现中,算法由 Mbed TLS 库提供。
Bindings–driver
测量的引导驱动程序需要 nt_fw_config 和 tsp_fw_config DTS 文件中的 tpm_event_log 节点
Enablement --Driver
- 自 2.3 版以来,Measured Boot 现在已完全集成到 TF-A 中。
- MEASURED_BOOT=1 构建命令行中的标志以启用它。
- 选择散列算法的 TPM_HASH_ALG 标志
- TRUSTED_BOARD_BOOT 必须为测量启动启用。
- EVENT_LOG_LEVEL 可用于设置将转储事件日志的日志级别。
Testing
- 要验证 Measured Boot 功能,我们需要
能够将事件日志传递给 TPM 服务(或任何其他证明服务)。
TPM 服务必须能够处理和扩展记录。 - 我们不验证散列算法的输出。
- 我们不验证证明机制的输出。