

# NitroTPM 认证文档内容
<a name="nitrotpm-attestation-document-content"></a>

认证文档由 NitroTPM 生成，并由 Nitro 虚拟机监控器签名。它包括一系列与 Amazon EC2 实例相关的平台配置寄存器（PCR）值。认证文档中包含以下 PCR：

**重要**  
PCR0 和 PCR1 通常用于测量由 AWS 控制的初始启动代码。为允许安全更新早期启动代码，这些 PCR 将始终包含常量值。
+ `PCR0`：核心系统固件可执行代码
+ `PCR1`：核心系统固件数据
+ `PCR2`：扩展或可插拔的可执行代码
+ `PCR3`：扩展或可插拔的固件数据
+ `PCR4`：启动管理器代码
+ `PCR5`：启动管理器代码配置和数据以及 GPT 分区表
+ `PCR6`：主机平台制造商详细信息
+ `PCR7`：安全启动策略
+ `PCR8 - 15`：定义为供静态操作系统使用
+ `PCR16`：调试
+ `PCR23`：应用程序支持

**PCR4**、**PCR7** 和 **PCR12** 专门用于验证实例是否使用可证明的 AMI 启动。PCR4 和 PCR12 可用于标准启动验证，PCR7 可用于安全启动验证。
+ **PCR4（启动管理器代码）**：当实例启动时，NitroTPM 会为其 UEFI 环境执行的所有二进制文件创建加密哈希值。使用可证明的 AMI，这些启动二进制文件会嵌入哈希值，阻止将来加载哈希值不匹配的二进制文件。这样，单个启动二进制文件哈希值就可以准确描述实例将执行的代码。
+ **PCR7（安全启动策略）**：UEFI 启动二进制文件可以使用 UEFI 安全启动签名密钥进行签名。启用 UEFI 安全启动后，UEFI 将阻止执行与配置的策略不匹配的 UEFI 启动二进制文件。PCR7 包含实例 UEFI 安全启动策略的哈希值。

  如果需要维护在实例更新期间持续存在的单一 KMS 策略，您可以创建一个针对 PCR7 进行验证的策略来验证 UEFI 安全启动证书。在创建可证明的 AMI 期间，您可以使用证书对启动二进制文件进行签名，并将其安装为 AMI 的 UEFI 数据中唯一允许的证书。请记住，如果您想阻止从旧的（不可信）AMI 启动的实例传递 KMS 策略，此模型仍要求您生成新证书、将其安装在您的策略中并更新 AMI。
+ **PCR12**：包含传递给 UEFI 启动二进制文件的命令行哈希值。需要与 PCR4 结合使用才能进行标准启动，以验证命令行是否未被修改。