Ubuntu Linux 将在硬盘上的哪个位置保存加密密钥?

nic*_*way 5 hard-drive data-recovery

我的加密硬盘,运行 Ubuntu 14.04的Western Digital WD5000BPVT崩溃了,对其进行数据恢复的人询问加密密钥在硬盘上的存储位置,以便他可以专注于该区域的维修。他还询问它是哪种加密以及其他信息,但我想我可以在其他问题中找到。

他还告诉我应该尝试找到原始设备,因为它可能使用笔记本电脑的序列号加密。对我来说非常重要的是,这个人没有发现这个硬盘驱动器上的内容,因为它是一个加密货币钱包,他可以不留痕迹地窃取它。

我要求他只是制作磁盘映像是不合理的吗?我应该找一个新的康复师吗?

Del*_*tik 4

如果您在Ubiquity安装过程中使用了 Ubuntu 的内置加密,则您的磁盘已使用LUKS进行加密。

\n\n

在 LUKS 分区中,标头最多为前两个兆字节 ( 2MiB)。如果无法恢复标头,则无法恢复数据,因为标头包含解密分区其余部分的密钥。

\n\n

要获取该密钥,您需要一个有效的密码或密钥文件来匹配八个密钥槽之一。

\n\n

我建议您自行保管密码,尤其是因为您似乎不信任数据恢复技术人员。他似乎对加密也一无所知:它不是用笔记本电脑的序列号加密的;您使用密码来解密

\n\n

备份LUKS标头和分区

\n\n

您应该对磁盘进行尽可能多的映像,并保留 LUKS 标头的额外副本。您可以使用以下命令轻松备份 LUKS 标头:

\n\n
cryptsetup luksHeaderBackup /dev/sda2 --header-backup-file /media/sda2.luksHeaderBackup\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xe2\x80\xa6/dev/sda2是 LUKS 分区,/media/sda2.luksHeaderBackup也是您要保存标头备份的位置。

\n\n

要挽救 LUKS 分区,您可以使用gddrescue

\n\n
ddrescue -Svv /dev/sda2 /somewhere/else/rescue.img /somewhere/else/ddrescue.log\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xe2\x80\xa6 其中/somewhere/else是具有比 的大小更多的可用空间的安装的路径/dev/sda2

\n\n

gddrescue\ 的映射文件/somewhere/else/ddrescue.log还可以帮助您识别硬盘驱动器的哪些区域不可读。

\n\n

读取复制的图像

\n\n

要解锁/somewhere/else/rescue.img,请使用以下命令:

\n\n
cryptsetup luksOpen /somewhere/else/rescue.img rescue\n
Run Code Online (Sandbox Code Playgroud)\n\n

输入您的密码,并将cryptsetup解锁的分区映射到/dev/mapper/rescue.

\n\n

您现在可以安装/dev/mapper/rescue

\n\n
mount /dev/mapper/rescue /mnt\n
Run Code Online (Sandbox Code Playgroud)\n\n

您的文件将位于/mnt.

\n\n
\n\n

需要考虑的边缘情况:完整磁盘映像而不是分区映像

\n\n

如果您决定制作完整磁盘的映像而不仅仅是分区,则需要将分区映射到完整磁盘映像内。

\n\n

您可以使用以下选项之一来执行此操作(尽管确实存在其他选项):

\n\n
# Option 1\nkpartx -av /somewhere/else/rescue.img\n\n# Option 2\nLODEVICE="$(losetup -f)"\nlosetup -P "$LODEVICE" /somewhere/else/rescue.img\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后您可以使用以下命令找到您的 LUKS 分区:

\n\n
blkid /dev/loop* | grep crypto_LUKS\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果/dev/loop0p2是您的 LUKS 分区,您将解锁/dev/loop0p2而不是/somewhere/else/rescue.img.

\n