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


52

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

如果我的假设不正确,那么我认为这是一个没有实际意义的问题。提前致谢。



1
@JarrodRoberson你的意思是这个问题? superuser.com/questions/39719/... 无论哪种方式,相关的问题都有较差的答案,所以我不会把它们作为那些的骗局
Ivo Flipse

@IvoFlipse了 症结 我标记为重复状态的问题 “...这会有效地将驱动器置于一个完全使用的状态 这将如何影响驱动器的磨损平衡和性能? ......” 这正是同样的问题。
Jarrod Roberson

Answers:


48

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

这是一个(粗略)图形,我把它拼在一起,以显示基本模式:

Schematic demonstrating full—drive-encryption

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

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


24
这个答案在逻辑上是不正确的!它取决于OS一次加密的块数。假设它一次加密4K,那么简单地修改一个字节将导致向SSD写入8个512字节块,而没有加密,OS(如果它很好地优化)只需要写入1 512字节块。因此加密增加了8倍磁盘写入。实际上,操作系统可能会选择适当的块大小进行加密,但答案并没有解决这个问题并对此做出任何断言。所以在实践中这个答案可能是正确的,但逻辑上它是错误的,至少它是不完整的。
icando

21
@icando,这是一种通用的简化。此外,你所说的是一个 流加密 。最常见/最受欢迎的全盘加密程序, TrueCrypt的 ,用途 分组密码 。如果你能指出一个设计不佳的全盘加密系统和/或使用会产生这种影响的流密码,那么请这样做,我很乐意解释答案。
Synetech

1
如果加密模块在驱动器本身,那么您可以确定它考虑了SSD的性质(否则制造商是愚蠢的,你想要退款)。如果模块在BIOS中,则可以根据需要轻松更新以包含更好的算法。
Synetech

1
至于软件,更容易更新。以TrueCrypt为例 更新 根据SSD磨损情况进行分析 [1] [2] 而主要的问题不是磨损,而是它可能 容易受到攻击
Synetech

9
全盘加密的问题是出于安全原因通常禁用DISCARD / TRIM。所有SSD驱动器都具有逻辑4kb块大小,大多数制造商都对这一层下面的实际底层实现保密,即使是显示为8kb页面大小的新驱动器,它们仍然是4kb,固件进行翻译。这些问题都不是固件通过串联连接做出正确的事情,因此加密的断言就是这样 什么 更少的8X写入是对加密和文件系统和固件写入策略的无知。
Jarrod Roberson

20

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

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

汤姆的硬件在英特尔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,这有点容易出错(如果我没记错的话,在写入时可能会发生擦除块的其他部分的位翻转)。为了纠正这个问题,可能会将数据写入多个位置,以便始终可以进行恢复或校正。


加密数据不大,只是加密,加密不会导致数据增长。谁在2012年使用自动压缩文件系统?
Jarrod Roberson

6
@JarrodRoberson:SandForce SSD控制器压缩数据以最小化写入。可能还有其他例子。
John Bartholomew

@JohnBartholomew我说,文件系统,它来自磁盘控制器之前。对于你不相关的观点,SandForce压缩方案应该检测“不可压缩”或“预压缩”数据,并且在尝试消除写入时不会压缩它,这是一个秘密,所以我们永远不会知道。无论哪种方式,它都不会占用更多 空间 ,在这个特定情况下的更多时间。
Jarrod Roberson

1
@JarrodRoberson:关键在于,如果控制器试图压缩所有内容,那么性能(及时) 如果发送到磁盘的所有数据都已加密,则在空间中会更糟。它会在时间上变得更糟,因为控制器将浪费时间检测数据是不可压缩的,并且与给予磁盘未加密(因此,在某些情况下,可压缩)数据相比,它将在空间上更糟糕。
John Bartholomew

4
@JarrodRoberson:没有得到更少写入的好处听起来就像OP所询问的那样,并且是使用加密的直接后果。
Leo

7

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


1

答案取决于“全盘加密”的含义。

如果您只是意味着所有文件和文件系统元数据都在磁盘上加密,那么不,它应该对SSD寿命没有影响。

但是,如果你的意思是更传统的“磁盘的整个内容,包括未使用的空间,都是加密的”,那么是的,它会缩短寿命,也许是显着的。

SSD设备使用“耗损均衡”来在设备上传播写入,以避免过早地磨损一些部分。他们可以这样做,因为现代文件系统驱动程序专门告诉SSD何时不再使用特定扇区中的数据(已被“丢弃”),因此SSD可以将该扇区设置回零并继续使用任何扇区用于下一次写入的用量最少。

使用传统的全盘加密方案,没有一个扇区未被使用。那些不包含您的数据的仍然是加密的。这样一来,攻击者就不知道你的磁盘的哪个部分有你的数据,哪个部分只是随机噪声,从而使解密变得更加困难。

要在SSD上使用此类系统,您有两种选择:

  1. 允许文件系统继续执行丢弃,此时没有数据的扇区将为空,攻击者将能够专注于您的数据。
  2. 禁止文件系统执行丢弃,在这种情况下,您的加密仍然很强,但现在它无法进行显着的损耗均衡,因此磁盘中最常用的部分会耗尽,可能远远超过其余部分。
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.