TrueCrypt 可以在没有性能问题的情况下加密 SSD 吗?

信息安全 真加密
2021-08-23 04:40:56

我在 SSD (mSATA) 上运行 Windows 7 prof。我的 CPU i7-3610QM 支持 AES-NI。我想用带有 AES 的 truecrypt 加密我的 SSD。但我真的不确定这是否是一个好主意,因为(a)性能和(b)我的 ssd 的生命周期。

关于 (a) 我认为,由于 AES-NI,加密可以使用 3 gb/s。所以这对于 SSD 加密来说应该足够快了,对吧?

我听说,使用 SSD 的全部空间是个坏主意。尽管如此,我还是这样做了。完整的 120 GB 目前已格式化为我的系统文件系统。我是否使用完整的系统加密“销毁”我的 SSD(因此需要预展位验证)?

磁盘管理中标记为“系统保留”的前 100 MB 会发生什么情况?

4个回答

硬盘加密不应该改变 SSD 的使用寿命:“加密”位并不比“正常”位更难读写,并且(正确完成)加密不会扩大数据。实际上,SSD 设备不知道它被要求读取或写入的内容是否被加密。一兆字节就是一兆字节。

编辑:关于“加密空白空间”:这意味着整个磁盘区域只写一次;这不需要定期执行,只需一次。闪存在失败之前可以重写大约 10000 次,所以这种额外的加密不应该缩短SSD 寿命超过 0.01% - 不足以被检测到。)

TrueCrypt 的现状就是这样(“官方”软件几乎消失了),很难得到明确的答案,甚至现在推荐 TrueCrypt 也可能是一件小事。因此,声称 TrueCrypt 将使用或不会使用AES 操作码可能过于粗暴。这篇文章说,早在 2011 年,TrueCrypt 7.0a 就支持 AES-NI,并且可以追随 SSD(至少是他们用于基准测试的 SSD)的速度。

一般来说,绩效是一个衡量问题应该以基准衡量而不是讨论;从人类用户的角度来看,特别是对于像“一般计算机性能”这样模糊的东西:用户的感受与原始数据一样重要。SSD的主要感知提升来自于延迟大大降低,而不是来自单文件 I/O 的原始吞吐量。我们仍然可以推测 AES-NI 在 2 GHz CPU 上允许超过 1 Gbyte/s 的原始加密速度;因此,半个核心的 CPU 应该足以跟上一个像样的 SSD 的吞吐量(我的 SSD 以 500 MB/s 的速度运行,我觉得它足够好)。

当然,安装全盘加密系统有可能在与您的操作系统和/或 BIOS 引导系统不兼容的情况下,使您的机器无法启动。做好备份!并准备一张“恢复盘”。

使用磁盘加密时,数据在写入之前进行编码,在读取之前进行解码。加密/解密发生在 RAM 而不是 SSD 本身上,因此实际上除了用于加密层的元数据之外没有额外的读/写,这是可以忽略不计的。

Synetech在 Super User 上做了一张图来说明这一点:

在此处输入图像描述

*注意:如果由于任何原因,操作系统或软件导致数据被大块加密,上述说法不再正确。假设它一次加密 4K,那么简单地修改一个字节将导致写入 8 512 字节块到 SSD,而没有加密,操作系统(如果优化良好)只需要写入 1 512 字节块。为了解决这个问题,我建议(如果可能的话)将软件配置为使用最适合您的数据的数据块大小。

此外,如果磁盘控制器使用数据压缩(某些 SSD 控制器如 SandForce 使用此方法来提高读取性能),则启用加密将缩短磁盘的使用寿命。

加密对实时性能的影响会因磁盘类型、磁盘上存储的文件的平均大小以及用于加密的算法而异。然而,基于http://anthonyvance.com/blog/security/ssd_encryption/上的基准测试,性能影响肯定是显着的。在现实生活中你会注意到多少是另一回事。

这是来自 MediaAddicted 的基准

在此处输入图像描述

有些人猜测这些结果是由于 TrueCrypt 处理对 SSD 的写入的方式造成的,这完全阻止了 TRIM 命令到达 SSD 控制器,因此随着时间的推移对驱动器性能下降没有(积极的)影响;虽然我还没有看到这个理论的实际证据。

我认为 SSD 的一个大问题是它们无法覆盖一个块,因此每次写入都会导致一次erase + write操作。为了提高性能,SSD 控制器只会写入一个空块并稍后擦除旧块。但如果 SSD 已满,这将是不可能的并且性能下降。

这在这里讨论:https ://superuser.com/questions/162155/does-low-disk-space-affect-ssd-performance

如果你用 Truecrypt 解密一个卷,从控制器的角度来看,你有一个充满垃圾的完整分区,填满了整个空间。您通过一个知道读取(解密)数据的虚拟卷来访问您的数据。

在没有对此进行基准测试的情况下,我认为使用 Truecrypt 解密的整个 SSD 会影响性能,最好留出 15% 的空间空置。但是,这完全取决于您的 SSD 控制器以及它处理完整磁盘的能力。

假设您还没有开始,您可以使用 gparted live-cd http://gparted.sourceforge.net/livecd.php缩小启动量

为了使 TRIM 功能正常运行,并允许编程到 SSD 中的垃圾清理有效运行,您希望可用空间对驱动器透明。我不相信 TrueCrypt 在没有正确配置的情况下会允许这样做,此时您需要优化您的操作系统以禁用经典硬盘维护。如果不启用 TRIM 支持,SSD 会将空白空间视为已用空间并且无法使用它可以延长磨损均衡的寿命,并且将使用备用扇区。当这些开始磨损时,您的驱动器将开始出现故障。

Linux 有一种非常相似的全驱动器加密方法,称为 sd_crypt。该软件维护良好,并允许诸如“允许丢弃”之类的选项,这些选项将提供可用空间的透明度,并允许 TRIM 和垃圾收集以降低安全性为代价正常工作。不幸的是 sd_crypt 适用于 *nix 操作系统。