采用TPM全盘加密,不受冷启动攻击

采用TPM全盘加密,不受冷启动攻击

以下是维基百科的一段话BitLocker

一旦受 BitLocker 保护的计算机开始运行,其密钥就会存储在内存中,而这些密钥可能容易受到能够访问物理内存(例如通过 1394 DMA 通道)的进程的攻击。内存中的任何加密材料都可能受到这种攻击,因此,这种攻击并非 BitLocker 所独有。

我的理解是可信平台模块 (TPM)据称,BitLocker所使用的技术专门用于防范此类攻击:

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

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

答案1

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

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

  1. 对称加密

    TPM 本身无法对外部提供的数据执行像 AES 这样的对称加密。

  2. 表现

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

  3. 带宽

    PC 系统中的 TPM 通过LPC总线最高传输速度为 6.67 MB/s。(非全双工)

所以 TPM 不是设计来执行 FDE 的。

解决方案是让 HDD 本身进行加密。如果你想这样做,你应该研究一下TCG 的数据存储工作组。他们的解决方案基于自加密驱动器 (SED),将密钥存储在 TPM 中。因此密钥应该绝不在系统中可见内存并且只针对短时间在系统的公共汽车

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

答案2

来自维基百科上有关 TPM 的文章中,TPM 规范详细说明了“可以存储保护信息的加密密钥的安全加密处理器”——换句话说,是一种为用户执行加密操作的通用硬件。

TPM 通常可从操作系统和后续软件中访问,因此由于其设计原因,其安全性本身就受到限制 - 程序必须从某处,因此必须加载到 RAM 中。其他几个程序使用 TPM 模块进行身份验证(例如某些企业安全网络)或防止未经授权的计算机访问特定网络。


这是不是仅限于 BitLocker,其他使用 TPM 的解决方案也必须小心减轻冷启动/RAM 复制攻击的风险。

理论上,可以拥有一个自我加密的硬盘,其方式类似于自封闭的 TPM 模块。然而,这带来了一个非常严重的限制:最终用户无法知道解密密钥(否则病毒或其他软件也可以确定它),因此不可能恢复如果需要,您无法获取解密的密钥。

这张纸说明几乎所有全盘加密方案的冷启动攻击可能有用:

在默认的“基本模式”下,BitLocker 仅使用许多现代 PC 上的可信平台模块 (TPM) 来保护磁盘的主密钥。此配置 [...] 特别容易受到我们的攻击,因为即使计算机长时间关闭,我们的攻击也可以提取磁盘加密密钥。当机器启动时,密钥将自动加载到 RAM 中(在登录屏幕之前),而无需输入任何机密。

微软似乎意识到了这一点,并建议将 BitLocker 配置为“高级模式”,在该模式下,它使用 TPM 以及密码或可移动 USB 设备上的密钥来保护磁盘密钥。但是,即使采取了这些措施,如果攻击者在屏幕锁定或计算机处于睡眠状态时(尽管在休眠或关闭电源时不会出现这种情况)进入系统,BitLocker 仍然容易受到攻击。

相关内容