使用TPM进行全磁盘加密,不受冷启动攻击


9

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

受BitLocker保护的计算机一旦运行,其密钥就会存储在内存中,在此位置,它们可能会受到能够通过例如1394 DMA通道访问物理内存的进程的攻击。内存中的任何加密材料都可能受到此攻击的威胁,因此,它不是BitLocker所特有的。

据我了解,据称BitLocker使用的受信任平台模块(TPM)专门用于抵御此类攻击:

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

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

Answers:


3

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中。因此,密钥永远不会在系统的RAM中可见,而只能在系统总线短暂可见。

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


这样做是否仍不使系统容易受到总线(无论是PCI还是USB)(如果是外部的)嗅探?解密密钥需要沿着该路径传输到驱动器,并且数据总是会以明文形式传输回-并存储在PC内存中。
deitch

@deitch是的,但这是另一种攻击。如果您想防御能够嗅探您的PCIe总线的人-祝您好运。
Scolytus '16

得到它了。换句话说,如果我想防御未加密数据(而不是密钥)的攻击,那么我需要保护物理总线。
deitch

但是,那么,使驱动器的密钥永远不会在RAM中可见的价值是什么?毕竟,未加密的数据将在那里。
deitch

哦,是的(对不起,有很多评论)。我见过很多SED;您是否知道本机将其密钥存储在TPM中的任何代码?
deitch

4

TPM上Wikipedia文章中可知,TPM规范详细介绍了“可以存储保护信息的加密密钥的安全加密处理器”,换句话说,就是为用户执行加密操作的通用硬件。

TPM通常可以从OS和后续软件中进行访问,因此由于其设计的原因,其固有的安全性受到限制-程序必须从某个地方运行,因此必须加载到RAM中。其他几个程序将TPM模块用于身份验证目的(例如某些公司安全网络)或防止未授权的计算机访问特定的网络。


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

从理论上讲,将有可能采用一种与自封闭TPM模块类似的方式进行自加密的硬盘。但是,这构成了一个非常严格的限制:最终用户不知道解密密钥(否则,病毒或其他软件也可以确定该解密密钥),因此,如果需要,将无法恢复数据,因为您无法获得解密密钥的方法。

本文说明了对几乎所有全盘加密方案的冷启动攻击都可能有用:

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.