我正在尝试破坏我的逻辑卷data 1上的luks头,删除luks头后,我仍然可以读取data 1内的文件。我想这不应该是这样的吧?有人能帮助我理解这种情况吗?
lsblk输出
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 894.2G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 893.8G 0 part
├─vg0-root 251:0 0 758.7G 0 lvm
│ └─luks-45f803e5-3c17-4aaf-a9ad-d66c8b5458de 251:2 0 758.7G 0 crypt /
├─vg0-swap 251:1 0 75G 0 lvm [SWAP]
├─vg0-data3 251:3 0 20G 0 lvm
│ └─luks-6e168d35-26dc-429c-a3d6-8cb4f1c1d39e 251:7 0 20G 0 crypt /data3
├─vg0-data2 251:4 0 20G 0 lvm
│ └─luks-75727dd1-a332-423d-8c37-4cedf9cbe83c 251:8 0 20G 0 crypt /data2
└─vg0-data1 251:5 0 20G 0 lvm
└─luks-cf2d9729-2d1b-48b8-8502-dea937ef602f 251:6 0 20G 0 crypt /data1
检查luks标头是否存在的Luksdump输出:
-130-sapam@test-host:~ $ sudo cryptsetup luksDump /dev/mapper/vg0-data1
LUKS header information for /dev/mapper/vg0-data1
Version: 1
Cipher name: aes
Cipher mode: xts-plain64
Hash spec: sha256
Payload offset: 4096
MK bits: 256
MK digest: 9f e7 1a b3 0e fb 4e bc 6d 1b 9e 46 f8 bd 15 22 ea 04 6e c3
MK salt: 83 5e 90 5b b3 a1 c5 a5 d4 22 a0 3e 23 25 51 50
fc cd a8 ac db 9f d0 a8 8b 81 6e 9a 92 1f d8 d3
MK iterations: 43750
UUID: cf2d9729-2d1b-48b8-8502-dea937ef602f
Key Slot 0: ENABLED
Iterations: 439102
Salt: f1 6d 23 b0 b7 ee fc 09 8c 6b 92 ef b2 17 ef d9
0c 83 64 29 bf bc 98 3f f6 93 4b 45 06 49 a9 21
Key material offset: 8
AF stripes: 4000
Key Slot 1: DISABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED
正在销毁luks标头:
-130-sapam@test-host:~ $ sudo dd bs=512 count=4096 if=/dev/zero of=/dev/mapper/vg0-data1
4096+0 records in
4096+0 records out
2097152 bytes (2.1 MB) copied, 0.00444235 s, 472 MB/s
-0-sapam@test-host:~ $ sudo cryptsetup luksDump /dev/mapper/vg0-data1
-1-sapam@test-host:~ $
我仍然可以读取/data 1/中的文件
-1-sapam@test-host:~ $ cat /data1/foo
james
-0-sapam@test-host:~ $
从我的理解是一旦头文件被破坏,/data 1应该无法读取对吗?
2条答案
按热度按时间inb24sb21#
似乎您正在销毁已挂载的分区。
加密/解密密钥会在挂载分区时保留在内存中。您应该先卸载LUKS分区:
然后删除LUKS头文件。您将无法再次装载它。
请注意,
cryptsetup
实用程序有一个擦除LUKS标题的命令:此操作的优点是,如果您以前执行过LUKS标头还原,则可以从备份中还原它。
从
cryptsetup(8)
开始:1yjd4xko2#
虽然
luksErase
很适合擦除keyslot区域,但请注意,它实际上并没有破坏整个LUKS Header,它保留了完整的元数据。我提交了一个feature request,要求
luksErase
命令也能擦除标头中的纯文本元数据,但开发人员拒绝并关闭了它:(LUKS割台粉碎机
您可以使用以下BASH脚本查找系统上的每个LUKS设备,擦除标头,然后关闭计算机。
免责声明以下脚本包含实验性软件,可能会也可能不会导致损坏或完全永久删除您的部分或全部数据。我不能对由于遵循本指南而发生的任何数据丢失负责。
本解答的内容是公开提供的,并根据CC-BY-SA许可证授权。本指南中包含的软件根据GNU GPLv 3许可证授权。此处的所有内容均符合其各自许可证中概述的责任限制。
我强烈建议使用此答案中包含的脚本进行的任何实验都只能在不包含任何有价值数据的一次性计算机上使用。
如果您担心数据丢失,请立即离开,不要继续。您已收到警告。
来源