TPM2.0如何用于平台完整性

wen 网络安全 7

本文目录导读:

TPM2.0如何用于平台完整性

  1. 核心概念
  2. 具体工作流程(信任链建立)
  3. 实际应用方式
  4. TPM 2.0 相比 TPM 1.2 的改进
  5. 局限性

TPM 2.0(可信平台模块 2.0)用于平台完整性的核心机制,是通过信任链度量来确保系统从启动到运行的过程中,没有被篡改或植入恶意代码。

TPM 2.0 就像平台的“黑匣子”或“良心”,它只记录事实(度量值),不判断好坏,而是将判断权交给外部,以下是具体的工作流程和原理:

核心概念

  1. 信任根: 通常是平台固件(BIOS/UEFI) 中的一个不可更改的代码块(CRTM,Core Root of Trust for Measurement),它是整个信任链的起点,被认为是绝对可信的。
  2. 度量: 在启动过程中,每一个组件(如BIOS、引导加载器、操作系统内核)在将控制权传递给下一个组件之前,会先计算下一个组件的哈希值(Hash)。
  3. 存储与报告: TPM 2.0 通过 平台配置寄存器(PCR,Platform Configuration Registers) 来安全地存储这些度量值,由于 PCR 具有扩展特性,任何后续的度量值都会与之前的混合,使得 PCR 值能够唯一地反映整个启动历史。
  4. 远程证明: 当需要验证平台完整性时,TPM 2.0 会签署当前 PCR 值,并发送给远程验证方,验证方通过比对这份受签名的 PCR 值与预期的“黄金值”,来判断平台是否处于健康、未被篡改的状态。

具体工作流程(信任链建立)

这是 TPM 2.0 用于完整性的核心过程,通常分为以下几步:

  1. BIOS/UEFI 阶段

    • 度量: BIOS 固件(CRTM)首先度量自身,它度量下一个组件(如 Option ROM、主引导记录 MBR 或 UEFI 引导加载器)的代码。
    • 扩展: 将度量得到的哈希值扩展到特定的 PCR 中(PCR-0 通常用于 BIOS 固件,PCR-2 用于 Option ROM)。
    • 记录: 度量结果被安全地记录在 TPM 芯片的 PCR 寄存器中,这些寄存器只能通过扩展来更新,无法被覆盖或清零(除非系统复位)。
  2. 引导加载器阶段

    • 度量: 引导加载器(如 GRUB2、Windows Boot Manager)在加载操作系统内核之前,会度量内核文件(如 vmlinuz、ntoskrnl.exe)及其驱动、初始 RAM 磁盘(initrd)等。
    • 扩展: 这些度量值被扩展到对应的 PCR(PCR-4 用于引导加载器,PCR-8 用于内核)。
  3. 操作系统阶段

    • 度量: 操作系统内核在启动过程中,会度量关键系统文件、安全策略、加载的内核模块等。
    • 扩展: 这些度量值进入更高级别的 PCR(PCR-10、PCR-11 等,具体分配由 TCG(Trusted Computing Group)规范和操作系统定义)。

关键点: 在整个信任链中,如果任何一个环节的代码被篡改,其哈希值就会改变,最终导致对应 PCR 的值与预期值不符。

实际应用方式

TPM 2.0 的平台完整性功能主要通过以下两种方式实现其价值:

本地验证:系统健康状态检查

  • Windows 示例: Windows 的 BitLocker 驱动器加密 依赖于 TPM 2.0,在系统启动时,BitLocker 会检查 PCR 值(通常包含 BIOS、MBR、引导加载器的度量)是否与加密时记录的“黄金值”一致。
    • 匹配: 系统正常,TPM 释放用于解密的密钥,用户正常进入桌面。
    • 不匹配: 系统被篡改(如引导扇区感染病毒),PCR 值变化,TPM 拒绝释放密钥,系统会提示输入恢复密钥,防止数据被未授权访问。
  • Linux 示例: 使用 dm-verityIMA(Integrity Measurement Architecture) 结合 TPM 2.0,可以验证根文件系统的完整性,防止 rootkit 篡改系统核心文件。

远程验证:网络访问控制

这是 TPM 在云计算、物联网和企业办公环境中最重要的应用。

  • 场景: 一台企业笔记本需要接入公司内网。
  • 流程:
    1. 请求: 笔记本向认证服务器(如 VPN 网关或 NAC(Network Access Control,网络访问控制)设备)发起连接请求。
    2. 挑战: 服务器发送一个随机数(Nonce)给笔记本,防止重放攻击。
    3. 证明: 笔记本的 TPM 2.0 生成一个受平台认证的 PCR 报告,这份报告包含:当前特定 PCR 的值(度量了整个启动过程的哈希)、一个使用 TPM 中私钥(该私钥永远不会离开 TPM 芯片)对(PCR值 + 随机数)的签名。
    4. 验证: 服务器使用已知的公钥验证签名,确认报告确实来自这台笔记本的 TPM 2.0,服务器将报告中的 PCR 值与一个预先配置的、被认为是“健康”的“黄金镜像”的 PCR 值进行比对。
    5. 决策:
      • 一致: 笔记本电脑的启动固件、引导加载器、内核等所有度量组件与预期完全一致,允许接入网络
      • 不一致: 系统可能被篡改或运行了未经授权的软件,拒绝接入,并将其隔离到修复网络。

TPM 2.0 相比 TPM 1.2 的改进

  • 更强的算法支持: 不再局限于 SHA-1/RSA,原生支持 SHA-256、ECC、SM2/SM3(国密)等现代算法,安全性更高。
  • 更灵活的 PCR 策略: TPM 2.0 允许使用策略会话(Policy)来定义更复杂的授权和撤销条件,可以设定“只有 PCR 值为 X 且用户提供了 PIN 码时,才释放密钥”。
  • 更细粒度的控制: 支持更多的 PCR(通常至少 24 个),并能更精确地控制哪些度量进入哪些PCR。

局限性

  • 度量不等于安全: TPM 只度量“是什么”,不判断“是否安全”,如果度量了恶意签名的原始代码(这本身是不安全的),TPM 也会忠实地记录。
  • 防篡改而非防远程攻击: TPM 主要防御物理篡改启动阶段的恶意软件,对于系统运行后的网络漏洞(如 RCE(远程代码执行)漏洞),TPM 无法直接防御。
  • 需要生态支持: 需要 OS、固件、应用、服务端(如证明服务器)全面支持才能发挥效果。

TPM 2.0 用于平台完整性的本质是:从信任根开始,逐一度量并记录引导链上的每一个组件,将度量值安全地存储在无法篡改的硬件 PCR 中。 通过本地(如 BitLocker)或远程(如网络证明)的方式,将这些受保护的度量值与已知的、可信的“黄金值”进行比对,从而判断平台的完整性状态,它提供的是基础设施级的、对引导过程的硬件级信任保障。

抱歉,评论功能暂时关闭!