我将服务器的 webroot 目录安装在受 LUKS 加密保护的分区上。我想知道当该分区被解密时,其中的文件会发生什么情况。做
这些文件的未加密版本的副本将保存到 RAM,或者;
这些文件的未加密版本的副本将保存到临时目录中,或者;
服务器在每次访问文件时根据需要解密文件,或者;
我错过了其他场景吗?
我问这个问题的原因是为了更好地了解解密过程以及它如何影响服务器的 CPU 和 RAM 资源,以及使用 LUKS 进行磁盘加密是否比 eCryptfs 等文件系统加密更有效。
我尝试查看维基百科,但找不到任何此类信息。不确定这是否是问这个问题的最佳地点。如果您不这么认为,请随意迁移。谢谢。
答案1
LUKS 是一个块设备加密层,位于块设备之上,并加密/解密对该设备的所有访问。任何未加密的数据都不会接触到物理设备。
然后,LUKS 提供一个虚拟块设备,系统使用该虚拟块设备来访问文件。因此,它对应用程序是透明的,应用程序不知道加密正在发生。
考虑一个具有单个块设备和根文件系统的简单系统/dev/sda1
。如果我们使用 LUKS 对其进行加密,那么它将处理对该设备的所有直接访问,并将提供其自己的设备,例如/dev/mapper/encrypted-root
系统实际使用的设备。这可能是在/etc/fstab
:
/dev/mapper/encrypted-root / ext4 noatime 0 0
因此,对该文件系统上的文件的每次访问都将通过 LUKS。
另请注意,LUKS 不知道也不关心它正在处理什么数据。因此,您可以在其之上分层任何内容,无论是直接文件系统、软件 RAID 阵列、LVM 卷等。LUKS 也可以放置在其中任何一个之上。
请注意,正常缓存进程缓存在 RAM 中的数据可能未加密。