请求更改配置清除计算机的tpm,受信任的执行环境 ACPI 配置文件

本文介绍了TPM 2.0设备在ACPI中的实现,包括背景、要求、使用场景和详细规范。内容涉及与Windows 8的交互,如TPM 2.0设备的初始化、物理状态命令、内存清除、TPM 2.0设备对象的硬件标识符和控制方法。此外,还讨论了TPM 2.0设备在电源管理、S3状态下的行为以及系统在不同状态下的交互。
摘要由CSDN通过智能技术生成

受信任的执行环境 ACPI 配置文件

10/11/2018

本文内容

许可: Microsoft 同意向您授予对合理且非歧视的条款的免费许可,这些条款仅用于做出、使用、出售、销售、导入或分发此规范的任何实施。 "必需的声明" 是 Microsoft 拥有或 Microsoft 控制的专利的声明,在技术上必须实现此规范的必需部分(也包括可选部分的必需元素),其中导致侵权的功能在此规范中详细说明,而不是仅引用。

1.0 背景

此规范为 TPM 2.0 设备定义了 ACPI 设备对象,以及与 Windows 8 所需的 ACPI 设备对象相关联的控制方法。 控制方法实现了等效于 TCG 物理状态 ACPI 接口,相当于平台重置攻击缓解接口,还可以选择使用 ACPI 方法将命令发送到 TPM 2.0 设备。

额外的静态 ACPI 表(TPM2)用于定义 TPM 2.0 设备与 Windows 8 操作系统之间的通信机制。

备注

Microsoft 指的是受信任的计算组的 "TPM"。下一 "术语为" TPM 2.0 "

2.0 要求

此规范假设有一个计算平台,该平台支持操作系统和固件环境之间 [ACPI09] 中指定的基于 ACPI 的通信。

3.0 使用方案(仅例如)

3.1 发送物理状态命令

典型的使用方案如下所示:

在 OS 环境中,应用程序检测到 TPM 2.0 设备未完全设置为用于 Windows 8。 (如果在预配了 TPM 2.0 的上一个 OS 映像之后安装了新的操作系统映像,则可能会发生这种情况的示例。)

应用程序启动操作系统向导来准备 TPM 2.0 设备,以供使用。

向导通过 UI 与计算机管理员交互,并确定管理员需要清除 TPM 2.0 设备来进行预配,因为 TPM 2.0 设备重置锁定授权值不可用。

若要清除 TPM 2.0 设备,操作系统请求(通过对 TPM 2.0 设备对象执行 ACPI 控制方法)固件执行操作以在下一次启动时清除 TPM 2.0 设备,前提是实际存在的用户确认他们批准清除 TPM2.0 设备。

操作系统重启平台。

在启动过程的早期阶段,固件会识别操作系统发出的挂起请求以清除 TPM 2.0 设备。

该固件向实际存在的用户提供 UI,要求他们采取某种措施来确认是否清除 TPM 2.0 设备。

实际存在的用户确认已清除 TPM 2.0 设备。

固件使用平台层次结构授权清除 TPM 2.0 设备。

如有必要,若要保持清除 TPM 2.0 设备,平台将立即重新启动。

操作系统将启动。

操作系统查询(通过 TPM 2.0 设备上的 ACPI 控制方法)如果清除 TPM 2.0 设备的最后一个 OS 请求已成功,则为(b)未由物理上的用户确认,或者(c)存在其他错误。 在以下情况下,我们假定已成功清除 TPM 2.0 设备。

OS 中的 "TPM 2.0 设备预配向导" 执行其他命令,以使设备可供 Windows 使用。

3.2 请求在下一次启动时清除内存

此方案说明了系统的 "内存清除" 功能如何帮助阻止在平台意外重新启动之后为密钥材料收集系统内存的攻击。

在操作系统中,具有 TPM 2.0 设备的系统上的管理员将为 OS 卷启用 BitLocker 功能。

BitLocker 功能调用 TPM 2.0 设备 ACPI 控制方法来设置在 TCG Platform 重置攻击缓解规范中定义的 ClearMemory 位。

BitLocker 功能对 OS 卷进行加密。

当屏幕被锁定时,管理员会使系统无人参与。

恶意用户在运行时将系统盗取。

恶意用户插入一个 USB 驾驶杆,并快速删除系统电池并重新插入。

重新插入电池时系统开始启动。

由于以前设置了 ClearMemory 位,因此固件将在启动平台制造商未提供的任何代码之前清除整个系统内存。

恶意用户会在启动过程中将固件配置为启动到 USB 设备,即使 USB 设备上的代码未正确签名也是如此。

USB 设备上的代码会扫描系统内存中的 BitLocker 卷主密钥,但找不到它。

警告

步骤11到16类似于前面的步骤,但使用 UEFI 接口而不是 ACPI

恶意用户会正常尝试启动系统。

由于已通过 TPM 密钥保护程序启用了 BitLocker,这使得 BootMgr 可以 "解封" OS 卷的卷主密钥,因为在 BootMgr 运行时,TPM 2.0 设备中的正确度量值是正确的。

引导进入操作系统登录屏幕。

恶意人员再次删除,然后重新插入电池并从 USB 设备启动代码。

由于设置了 ClearMemory 位,系统固件将在启动过程中清除整个系统内存。

尽管 USB 设备中的代码会扫描系统内存,但 OS 卷加密密钥不在内存中。

3.3 向 TPM 2.0 设备发出命令

此示例不适用于所有系统体系结构。

Windows TPM 2.0 驱动程序要向 TPM 2.0 设备发出命令。

Windows TPM 2.0 驱动程序将执行的命令写入到前面在 Windows TPM 2.0 驱动程序初始化期间从 ACPI 定义的控制区域读取的物理地址。

Windows TPM 2.0 驱动程序执行 ACPI 控制方法以执行 TPM 2.0 命令。

Windows TPM 2.0 驱动程序会轮询控制区域中的寄存器,直到它们指示 TPM 命令已完成。

Windows TPM 驱动程序从先前在 Windows TPM 驱动程序初始化期间从 ACPI 定义的控制区域读取的物理地址读取命令响应。

4.0 TPM 2.0 系统和设备的常规 ACPI 要求

4.1 电源注意事项

ACPI D1/D2

TPM 2.0 设备可能支持 ACPI D1 和/或 ACPI D2,但其行为必须与在 D1 或 D2 中处于电源状态 ACPI D0 的行为相同。

ACPI S3 (睡眠)

TPM 2.0 可能支持 S3,但必须由系统/平台制造商控制设备的 S3 低功率状态进入和退出。

操作系统(或操作系统环境中运行的其他软件)不得将 TPM 2.0 设备置于 S3 中,或者导致 TPM 2.0 设备退出 S3。 例如,如果 TPM 2.0 设备位于总线上,操作系统必须无法关闭总线,导致 TPM 2.0 设备进入 S3。

Windows 8 TPM 驱动程序将在进入 S3 (睡眠)之前尝试发出 TPM2_Shutdown 命令。

如果硬件平台支持 S3 并且在系统处于 S3 状态时 TPM 不会保留其状态,则在 S3 恢复期间,平台必须发出必需的 TPM2_Init 和 TPM2_启动(TPM_SU_状态)命令。 在进入 S3 之前,OS 可能尚未完成 TPM2_Shutdown 命令。 这可能会导致 TPM2_启动(TPM_SU_状态)的返回结果返回一个错误。 从 S3 恢复的系统固件必须适当地处理 TPM2_启动错误。 例如,通过通过硬件禁用对 TPM 的访问,发出 TPM2_启动(TPM_SU_CLEAR)命令,并通过采取措施(例如将具有错误摘要(0x01)的分隔符扩展到 PCRs 0 到7并锁定 NV 索引)安全配置设备。

系统必须按锁定时间间隔(TPM_PT_锁定_时间间隔)递减系统在 S3 中的时间,从而通过递减 TPM 字典攻击失败计数(TPM PT_锁定_计数器)来考虑 S3 的时间。_ 这可能需要平台实现来提供备用电压,以便在 S3 或平台期间保留 TPM 时钟和/或状态。还可以安全地提供有关系统处于低功耗状态的时间,以便 TPM 能够可靠地更新其字典攻击逻辑的授权失败计数。

连接备用系统的低功率状态

Windows 8 不会执行进入时与 TPM 关联的任何其他操作,并且不会在连接备用系统的低功耗状态下退出。 平台必须执行任何所需的操作,只要系统进入并退出连接备用系统的低功率状态,它就会以 D0 的方式运行。 这可能需要平台实现以提供备用电压以使 TPM 时钟和/或保持状态。 或者,平台可能需要安全地提供系统处于 TPM 低电量状态所用时间的相关信息,因此 TPM 可以可靠地为其字典攻击逻辑更新其授权失败计数。

系统关闭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值