您好,我有一个关于 LUKS 加密的问题。我已经使用 LUKS 加密服务器上的磁盘,但是当我创建文件并向其中添加内容并 cat 该文件时,内容仍然是纯文本。即使我创建文件的备份并将其放在非加密的硬盘驱动器上,数据也是纯文本的。我不确定如何说加密正在发生。我错过了什么吗?这是 LUKS 应该如何工作的吗?
/dev/sdb: UUID="d7f667ed-50a4-4324-8708-6720d390bfd2" TYPE="crypto_LUKS"
[root@host1 ~]# cat /opt/my_encrypted_backup/test12
This is a test
[root@host1 ~]# clear
[root@host1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 8G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 7G 0 part
├─centos-root 253:0 0 6.2G 0 lvm /
└─centos-swap 253:1 0 820M 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk
└─mybackup 253:2 0 1022M 0 crypt /opt/my_encrypted_backup
sr0 11:0 1 1024M 0 rom
[root@host1 ~]#
[root@host1 ~]#
[root@host1 ~]# blkid /dev/sdb
/dev/sdb: UUID="d7f667ed-50a4-4324-8708-6720d390bfd2" TYPE="crypto_LUKS"
[root@host1 ~]#
[root@host1 ~]#
[root@host1 ~]# cat /opt/my_encrypted_backup/test12
This is a test
[root@host1 ~]# cp /opt/my_encrypted_backup/test12 /
[root@host1 ~]# cat /test12
This is a test
[root@host1 ~]#
答案1
LUKS/dm-crypt 在块设备级别工作,而不是在文件系统级别工作,所以是的,这是正确的,这就是它的工作方式。
当您打开加密设备(在您的情况下)时,会在其之上/dev/sdb
创建一个新的虚拟设备映射器设备(在您的情况下)。/dev/mapper/mybackup
所有数据都经过sdb
加密,mybackup
用于以明文方式访问数据——从系统的角度来看,mybackup
包含一个正常的未加密文件系统,并且其上的所有内容都是未加密的,这样系统就可以处理加密数据,而无需额外的加密支持每个从磁盘读取/写入数据的应用程序。
当从 读取数据时mybackup
,设备映射器(内核模块)从 读取数据sdb
并解密,然后以纯文本形式返回。类似地,对于写入,您可以写入纯文本,mybackup
并且在写入之前对其sdb
进行加密。因此,当设备打开时,磁盘上的所有内容都可以纯文本形式访问。
因此,只有在设备未打开的情况下,您的数据才是“安全的”。 LUKS/dm-crypt(或一般的磁盘加密)的主要用例是在磁盘(或整个计算机)被盗时保护数据。它在系统运行和设备打开时不保护数据,因为主密钥存储在内存中,您可以使用dmsetup table --showkeys
.