我使用 Truecrypt 对计算机驱动器进行全盘加密。将计算机置于睡眠状态或锁定状态是否安全?或者这是否会允许某人绕过磁盘加密并访问驱动器上的数据,就像驱动器未加密一样?
答案1
全盘加密必然需要RAM中的密钥来实时加密/解密数据。
所以 -
Firewire 具有类似 DMA 的模式,基本上允许扫描系统的整个 RAM。如果目标系统通过 Firewire 连接到运行正确软件的主机,并且目标系统具有支持此功能的 Firewire 驱动程序,则可以从目标系统的 RAM 中恢复完整的磁盘密钥。如果您的系统被锁定,则容易受到此攻击。我不确定在 RAM 处于睡眠状态时是否可以用 Firewire 读取它。
如果您的系统处于休眠状态,则在关闭电源之前,所有 RAM 都会转储到休眠文件中。我相信 Truecrypt 会以某种方式标记其驱动程序的页面以防止这种情况发生,但只要您将休眠文件保存在加密卷上,您就应该是安全的。
断电后,DRAM 需要一段时间才能衰减。理论上,攻击者可以从系统中移除 RAM,可能用罐装空气喷洒它以降低温度并延长衰减速度,然后将其放入扫描 RAM 并从中提取密钥的系统或工具中。还可以关闭系统的电源循环,从实时 CD 启动,然后通过这种方式从 RAM 中恢复密钥。
如果 RAM 已关闭且已严重衰减,则无法从中获取密钥,在这种情况下您的加密数据是安全的。
当然,第一项和第三项是锡箔帽级别的东西,但为了防止这种情况,您应该在不使用系统时完全关闭系统,并运行 Memtest86+ 或系统诊断程序来清除 RAM。至少有一个以安全为重点的 Linux 发行版在关机前会这样做,我想不起它的名字了。
全盘加密确实可以保护您免受某人将硬盘从系统中取出并尝试在另一个处于睡眠状态的系统中读取它(如果他们没有直接从 RAM 中提取密钥)的侵害,这是一种高级操作。
答案2
我发布了一个类似问题的答案这里:
虽然磁盘内容已加密,但操作系统会即时解密磁盘内容才能访问。计算机运行时,屏幕锁几乎无法保护磁盘内容。
屏幕锁定的作用只是防止有人在您离开时运行程序/读取您的屏幕。只要计算机正在运行且安装了加密磁盘,您的数据就很容易受到攻击。当然,大多数窃贼拿到计算机后都会关闭/重新启动计算机。
但是,如果你对自己的数据很担心,那么每次离开一段时间后都要关闭/打开电源的不便在我看来只是一个小小的代价。
事实上,大多数当前的全盘加密方法都使用 RAM 来存储密钥,这使得它们在系统运行时只能部分安全。在系统运行时,通过 Firewire 或 PCI 总线进行 DMA 访问是可能的,而且并不像某些人所说的那样简单。有一个很棒的在 Defcon 21 上的演讲关于问题以及为缓解问题而开展的工作(演示文稿的幻灯片可能会显示在档案很快,但)。
答案3
不,正如其他人指出的那样,拥有机器物理访问权限的对手几乎可以对内存中的数据做任何事。
当您将计算机休眠时,它会将活动 RAM 缓存到您的硬盘中。由于密钥位于活动 RAM 中,因此您将密钥放在硬盘上的文件中,而该文件实际上永远不会消失。有一些工具专门用于破解 Truecrypt 卷,它们会从 RAM 中抓取您的密钥,如果您的卷未安装,它将返回到 Windows 上检查您的 hiberfil.sys,以查看它是否在上次休眠期间缓存到磁盘中。
FDE 是一个问题,因为你的密钥将始终存在于 RAM 中,并且出于同样的原因,它将始终在挂起/休眠时被复制到 hiberfill.sys。
请参阅此线程以获取实际攻击的示例和更完整的解释: 几分钟内破解 truecrypt 文件?或者几分钟内破解 truecrypt 硬盘?