启动时间安全 - 2023.2 简体中文

Bootgen 用户指南 (UG1283)

Document ID
UG1283
Release Date
2023-10-18
Version
2023.2 简体中文

AMD 支持在所有器件上使用最新身份验证方法来保障安全启动,防止在 AMD 器件上运行未经授权的代码或经修改的代码。AMD 支持各种加密技巧,以确保只有经授权的程序才能访问镜像。对于器件的硬件安全性功能,请参阅如下各章节。

Zynq 7000 SoC 器件中的安全模式和非安全模式

出于安全考量,在 PS 中的所有主模块中,CPU 0 始终为成功解复位的首个器件。CPU 1 置于 WFE 状态。运行 BootROM 时,JTAG 始终处于禁用状态以确保安全,与复位类型无关。BootROM 运行完成后,如果启动模式为非安全模式,则会启用 JTAG。

BootROM 代码还负责加载 FSBL/用户代码。当 BootROM 释放控制权并转至阶段 1 时,您的软件即可获得对整个系统的完整控制权。重新执行 BootROM 的唯一途径是生成任一系统复位。FSBL/用户代码大小限制为 192 KB,无论是否加密都是如此。此限制不适用于非安全就地执行选项。

PS 启动源是使用 BOOT_MODE 捆绑管脚(以弱上拉或下拉电阻来表示)选择的,这些管脚在上电复位 (POR) 期间进行采样。采样的值存储在 slcr.BOOT_MODE 寄存器中。

BootROM 支持将已加密/已验证镜像和未加密镜像分别称为安全启动镜像和非安全启动镜像。BootROM 支持使用就地执行 (xip_mode) 选项时直接从 NOR 或 QSPI 执行阶段 1 镜像,但这仅限于非安全启动镜像。就地执行仅适用于 NOR 和 QSPI 启动模式。

  • 在安全启动模式下,运行 BootROM 代码的 CPU 会对启动器件上的用户 PS 镜像进行解密和身份验证、将其存储在 OCM 中,然后建立指向该镜像的分支。
  • 在非安全模式下,运行 BootROM 代码的 CPU 会禁用包括 PL 内的 AES 单元在内的所有安全启动功能,然后再建立指向 OCM 内存或闪存器件(前提是使用就地执行 (XIP))中的用户镜像的分支。

PS 或 PL 的任何后续启动阶段均由您负责,控制权归您所有。您无权访问 BootROM 代码。完成阶段 1 安全启动后,后续可执行安全或非安全启动阶段。以非安全模式下完成第一阶段启动后,后续只能执行非安全启动阶段。

Zynq UltraScale+ MPSoC 器件安全性

AMD Zynq™ UltraScale+™ MPSoC 器件中,安全启动是使用可信启动机制的硬件根完成的,这种方法也可用于加密所有启动文件或配置文件。此架构可提供用于托管最安全的应用所需的保密性、完整性和身份验证机制。

请访问此链接以参阅《Zynq UltraScale+ 器件技术参考手册》(UG1085) 中的相应内容,了解更多信息。

Versal 自适应 SoC 安全

AMD Versal™ 自适应 SoC 上,安全启动可确保加载到器件上的固件和软件的保密性、完整性和身份验证机制。信任根随 PMC ROM 启动,后者可用于对 PLM 软件进行身份验证和/或解密。鉴于 PLM 软件可信,PLM 能以安全的方式来处理其余固件和软件的加载操作。此外,如果不需要安全启动,那么至少可采用简单的校验和来对软件加以确认。

如需了解更多信息,请参阅 Versal 自适应 SoC 技术参考手册(AM011)。另请参阅 Versal 自适应 SoC 安全手册(UG1508)。本手册需要从“设计安全性专区”下载有效的 NDA。