为了安全起见,我们需要在即将到来的服务器安装上实施完整的文件系统encryption。 我们使用CentOS 7附带的默认encryption设置。
我的问题是:由于我们的服务器使用SSD驱动器,我应该担心encryption/解密系统会给标准I / O访问额外读/写带来额外的驱动力吗? 我有一个预感,如果有的话,它应该拉扯CPU而不是固态硬盘,但我想详细了解它。
答案取决于encryption是如何devise的。 大多数块级encryption在逻辑和物理扇区之间具有1:1映射。 这意味着从逻辑设备读取一个纯文本扇区转换为从物理设备读取一个密文扇区。 将一个明文扇区写入逻辑设备意味着将一个密文扇区写入物理设备。 我预计CentOS上的默认属于这个类。
这是效率和安全性之间的妥协。 这种方法有一些泄漏,但解决这些增加了很多的复杂性和相当的开销。 对于任何密码学家来说,显而易见的是,由于明文和密文具有完全相同的大小,所以不能获得语义安全性。
起初听起来这种方法意味着encryption层根本不会改变I / O效率。 但是你确实失去了使用TRIM命令的能力。 缺lessTRIM支持可能会降低SSD的效率和使用寿命。 如果您正在使用不支持TRIM的文件系统,那么使用encryption技术将不会损失I / O。
没有任何东西阻止encryption层将TRIM命令传递到物理层,但是这样做会泄露文件系统上数据结构的一些信息。 在这里你可以看到支持这个的实现的一些文档 ,但是默认情况下不启用它。
更高级的存储encryptionscheme是可能的,其具有I / O和存储容量方面的成本,但是具有更less的数据泄漏机会。 这样的scheme甚至可以在不泄漏数据的情况下支持TRIM。