带 TPM 的全盘加密,不受冷启动攻击

gal*_*ets 9 bitlocker disk-encryption tpm

这是维基百科关于BitLocker的一段话

一旦受 BitLocker 保护的机器运行,其密钥就会存储在内存中,在那里它们可能容易受到能够访问物理内存的进程的攻击,例如,通过 1394 DMA 通道。内存中的任何加密材料都面临此攻击的风险,因此,这不是 BitLocker 特有的。

据我了解,据称 BitLocker 使用的可信平台模块 (TPM)专门用于防止此类攻击:

...当从 TPM 获得密钥的软件应用程序使用它来执行加密/解密操作时,密钥仍然容易受到攻击,如冷启动攻击的情况所示。如果 TPM 中使用的密钥无法通过总线或外部程序访问,并且所有加密/解密都在 TPM 中完成,则此问题将被消除

TPM 图暗示密钥存储和加密/解密引擎应该是模块的一部分。那么,为什么没有使用该功能的全盘加密产品呢?例如:为什么没有 FDE 软件,不容易受到冷启动攻击?

Sco*_*tus 3

TPM 图意味着密钥存储和加密/解密引擎应该是模块的一部分。那么,为什么没有使用该功能的全盘加密产品呢?例如:为什么没有FDE软件,不易受到冷启动攻击?

如果您希望密钥不存在于 TPM 之外,则您的 TPM 必须执行所有加密。这是不可行的,因为 TPM 缺少以下内容:

  1. 对称加密

    TPM 本身无法对外部提供的数据执行对称加密(如 AES)。

  2. 表现

    即使能够进行加密,该芯片的性能也无法满足 FDE 的要求。TPM 的设计成本非常非常低。性能不是设计目标。

  3. 带宽

    PC系统中的TPM通过LPC总线连接,最大传输速度为6.67 MB/s。(也没有全双工)

因此,TPM 并不是为执行 FDE 而设计的。

解决方案是让硬盘本身进行加密。如果您想这样做,您应该查看TCG 的数据存储工作组。他们的解决方案基于自加密驱动器 (SED),将密钥存储在 TPM 中。因此,密钥在系统RAM中永远不可见,并且仅在系统总线上短时间可见。

因此,一个 FDE 解决方案,但它需要特殊的硬件(= SED)。