SSD 驱动器上的全盘加密是否会缩短其使用寿命?

Bil*_* VB 59 encryption ssd

假设每次启动和关闭计算机时,全盘加密部署都会引入额外的写入。鉴于固态磁盘被认为在故障前具有较低的平均写入容量,全盘加密解决方案能否降低部署它的磁盘的预期寿命?

如果我的假设不正确,那么我认为这是一个有争议的问题。提前致谢。

Syn*_*ech 52

将加密视为适配器。数据在写入之前简单地编码或在读取之前解码。唯一的区别是在某个时间点(通常是在驱动器/驱动程序初始化时)传递密钥以用于加密/解密。

这是我拼凑在一起以显示基本模式的(粗略)图形:

演示完整驱动器加密的示意图

如您所见,无需执行额外的读取或写入,因为加密模块会在将数据写入盘片之前对数据进行加密,并在将其发送到执行读取的进程之前对其进行解密。

加密模块的实际位置可能有所不同;它可以是软件驱动程序,也可以是系统中的硬件模块(例如,控制器、BIOS、TPM 模块),甚至是驱动器本身。在任何情况下,该模块都位于执行文件操作的软件和驱动器盘片上的实际数据之间的“线路中间”。

  • 这个答案在逻辑上是错误的!这取决于操作系统一次加密多少块。假设它一次加密4K,那么简单地修改一个字节就会导致写入8 512-byte-blocks到SSD,而没有加密,OS(如果优化得好)只需要写入1 512-byte-block。因此,加密增加了 8 倍的磁盘写入。在实践中,操作系统可能会为加密选择合适的块大小,但答案并没有解决这个问题,也没有对此做出任何断言。所以在实践中这个答案可能是正确的,但逻辑上它是错误的,至少它是不完整的。 (26认同)
  • @icando,这是一个通用的简化。此外,您所说的是[流密码](http://en.wikipedia.org/wiki/Stream_cipher)。最常见/流行的全盘加密程序 [TrueCrypt](http://en.wikipedia.org/wiki/Truecrypt) 使用 [块密码](http://en.wikipedia.org/wiki/Block_cipher) )。如果您可以指出一个设计不佳的全盘加密系统和/或使用会产生这种影响的流密码,那么请这样做,我将很高兴地阐述答案。 (22认同)
  • 全盘加密的问题是出于安全原因通常禁用 DISCARD/TRIM。所有 SSD 驱动器都有一个逻辑 4kb 块大小,该层下的实际底层实现被大多数制造商保密,即使显示为 8kb 页面大小的较新驱动器,它们仍然是 4kb 的掩码,固件进行转换。这一切都不是问题,固件通过写入串联来做正确的事情,因此声称加密增加了**任何东西**更少 8X 写入的断言是对加密以及文件系统和固件写入策略的无知。 (9认同)

Leo*_*Leo 25

简短回答:
如果磁盘控制器不使用压缩,那么 Synetech 的答案是正确的,加密不会改变任何东西。如果控制器使用压缩,那么加密可能会缩短磁盘的使用寿命(与未使用加密的相同磁盘相比)。

长答案:
一些 SSD 控制器使用压缩来最大程度地减少写入实际闪存芯片的数据量并提高读取性能(SandForce 控制器是一个很好的例子,可能还有其他的)。如果写入磁盘的数据很容易压缩,这将最有效。文本文件、可执行文件、未压缩的图像(例如 BMP)和类似文件通常可以压缩很多,而已经压缩或加密的文件几乎不可能压缩,因为控制器中的压缩算法看起来几乎完全随机数据.

Tom's Hardware 在英特尔 SSD 520 上对此进行了很好的测试,可以在http://www.tomshardware.com/reviews/ssd-520-sandforce-review-benchmark,3124-11.html上找到

他们基本上做的是测量驱动器在写入完全可压缩数据和完全随机数据时的写入放大率(写入闪存的数据量与发送到驱动器的数据量的比率)。对于完全随机的数据,写入放大倍数为 2.9*,这意味着对于发送到磁盘的每 GB 数据,将有 2.9 GB 写入闪存。文章指出,这似乎与在不使用压缩的驱动器上测得的数字大致相同。对于完全可压缩的数据,该比率为 0.17,这要低得多。

除非数据被加密,否则正常使用可能会介于两者之间。文章中的寿命预测有些学术性,但表明加密肯定会影响带有 SandForce 控制器的 SSD 的寿命。解决这个问题的唯一方法是控制器本身可以在压缩发生后进行加密。

*文章没有具体说明为什么 2.9 被认为是正常值,我也没有真正研究过。一个合乎逻辑的解释可能是大多数 SSD 使用 MLC NAND,这有点容易出错(如果我没记错的话,在写入时可能会发生擦除块其他部分的位翻转)。为了对此进行更正,数据可能会写入多个位置,以便始终可以进行恢复或更正。

  • @JarrodRoberson:SandForce SSD 控制器压缩数据以最大程度地减少写入。很可能还有其他例子。 (7认同)
  • @JarrodRoberson:没有获得较少写入的好处听起来与 OP 所要求的完全一样,并且是使用加密的直接结果。 (4认同)

Mic*_*ton 7

除了加密层需要与文件系统一起存储的任何元数据(可以忽略不计)之外,全盘加密不会增加写入磁盘的数据量。如果加密 4096 个字节,则写入 4096 个字节。