如何在 Linux 上使用 DM-Crypt LUKS 加密分区
TrueCrypt 已不复存在,这篇文章的目的是向您展示使用 dm-crypt luks 进行的简单分区加密。
DM-Crypt 是透明的驱动器加密,它是内核模块和设备映射器框架的一部分,用于将物理块设备映射到更高级别的虚拟块设备,它使用来自内核加密 api 的加密例程。长话短说,内核“linux”crypto api 提供的设备映射加密。
确保您至少有一个没有数据的分区。如果您没有任何可用的分区,请使用 parted、gparted 或您喜欢的任何程序来缩小一些现有分区并创建一个新分区。
我将使用名为 /dev/sda3
的分区,我们的首要任务是用随机数据覆盖该分区 3 次,这足以保护您免受取证调查。 20GB的分区被覆盖3次,我用了将近30分钟。
shred --verbose --random-source=/dev/urandom --iterations=3 /dev/sda3
在 LUKS 加密模式下创建加密设备映射器设备:
cryptsetup --verbose --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random luksFormat /dev/sda3
你会被问到以下问题:
WARNING!
========
This will overwrite data on /dev/sda3 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:
Command successful
解锁分区,这里的“root”是设备映射器名称,将其视为标签。
cryptsetup open --type luks /dev/sda3 root
我们必须创建文件系统才能写入可通过设备映射器名称(标签)访问的加密数据。
mkfs.ext4 /dev/mapper/root
安装设备并传输所有数据:
mount -t ext4 /dev/mapper/root /mnt
完成后卸载并关闭设备:
umount /mnt
cryptsetup 关闭根目录
最后但同样重要的是,清除复制和缓存缓冲区:
sysctl --write vm.drop_caches=3
就是这样,简单明了的加密。从现在开始,您所要做的就是:解锁、挂载、传输数据、卸载和关闭设备。
如果您有几个小时的空闲时间进行实验,请随时阅读这些页面:
链接 7
如果您想要全盘加密,请保护您的 /boot 分区。在上面的链接中,一切都写得很详细。
后期编辑:事情变得更好了,因为我刚刚了解到可以刻录 LUKS 加密的 CD 和 DVD 光盘。
我们将通过 dd 和内核随机数生成器 /dev/urandom 创建一个文件,而不是使用驱动器分区,该文件将用假熵填充初始文件。
创建将用作单个文件中的文件系统的 500MB 文件。
dd if=/dev/urandom of=encrypted.volume bs=1MB count=500
只需将本文中的第一个命令 (shred) 替换为 dd,然后按原样键入其余命令。
现在您可以确定,没有人会知道您的数据是在单个文件中刻录的,该文件是 LUKS 加密的整个文件系统,只需确保在将其刻录到光盘之前卸载并关闭 encrypted.volume。