LVM在文件系统下运行,因此无论它做什么,它都是在磁盘级别进行的。所以是的,确实,当 LVM 实现加密时,这就是“全盘加密”(或者更准确地说,是“全分区加密”)。
在创建时应用加密很快:由于分区的初始内容被忽略,它们没有被加密;只有新数据在写入时会被加密。但是,在对现有卷应用加密时(典型的TrueCrypt)需要读取、加密和写回所有使用的数据扇区;这包括以前的部门以前使用过,即使它们现在不使用,因为它们可能包含一些文件的摘录,这些文件后来被复制。因此,这种事后加密应用需要读取和重写整个卷。机械硬盘将以大约 100 MB/s 的速度运行,因此 1 TB 卷将需要 6 小时(读取 3 小时,写入 3 小时)。
加密本身不需要很慢,至少在正确实施的情况下是这样。一台基本的 PC 将能够以超过 100 MB/s 的速度加密数据,使用 AES,使用单核(我动力不足的笔记本电脑达到 120 MB/s);使用提供AES-NI 指令的最新 x86 内核,可以达到 1 GB/s。因此,CPU 可以与磁盘保持同步,并且大多数时候,用户不会注意到任何减速。
当然,如果你做“一些疯狂的事情”,比如级联算法,那么,你已经做了一些疯狂的事情,你将不得不为此付出代价。级联三种算法意味着无论何时读取或写入数据都必须计算所有三种算法。AES 很快;蛇不是这样(大约慢两倍)。无论如何,级联加密算法都不是一个很理性的想法。默认情况下,Linux 中的“加密 LVM 卷”将依赖dm-crypt,它是可配置的(支持多种算法),但不会沉迷于巫毒级联,这是一种祝福。
(这确实显示了安全的一个小悖论:如果它太透明和效率太高,就会让人紧张。同样的道理,药丸一定尝起来很臭。)