擦除设备时删除磁盘分区有多重要?

信息安全 数据泄露 删除 数据恢复 敏感数据暴露
2021-08-20 18:40:27

该命令lsblk返回列出 4 个分区的以下输出。

sda      8:0    0 931.5G  0 disk 
├─sda1   8:1    0     8M  0 part 
├─sda2   8:2    0    40G  0 part /
├─sda3   8:3    0 883.8G  0 part /home
└─sda4   8:4    0   7.7G  0 part [SWAP]

执行以下一个或多个命令时,是否需要先删除分区?

如果不是,为什么,如果是,为什么?

如果在运行以下命令之前没有删除分区,那么数据残留的风险是什么?

执行以下一项或多项命令时,不会删除分区。

dd if=/dev/urandom of=/dev/sda bs=2MB conv=fsync
hdparm --user-master u --security-erase password /dev/sda
pv /dev/urandom > /dev/sda
2个回答

您看到的是先前分区的缓存视图。

如果即使在擦除后它们似乎仍然存在,这是内核在内存中缓存最后一个已知分区表的结果。它这样做是因为它不希望布局在运行时发生变化,因此不是每次查询分区布局时都重新读取表,而是在启动时读取一次。如果要强制它重新读取分区表,可以运行类似的命令partprobe、重新连接驱动器或重新启动。

分区信息包含在分区表中,它是驱动器的一小部分(64 字节),用于指定每个分区的位置、类型和长度。MBR 分区将此表保留在驱动器的最开头。GPT 分区在驱动器末尾保留额外的备份,并添加对更多功能的支持。当您覆盖整个块设备时,分区表也会被擦除。


正如另一个答案所提到的,分区布局本身并不重要,并且不包含敏感数据。它们基本上只包含将磁盘拆分为多个分区所需的最少信息。您可以准确查看 MBR 和 GPT 表存储的内容:

就数据安全而言,分区几乎毫无意义。如果您试图阻止取证读取您的数据,那么这无关紧要。如果您已经对数据运行了适当的多通道粉碎机,那么只有在您将分区命名为有说服力的情况下,分区才会有意义。

附录:我建议使用多道碎纸机显然是戳中了某人的痛处,所以我会更具体一些。单次随机数据将阻止驱动器本身读取覆盖的数据。除非您要隐藏价值五位数或某人生命的数据,否则您最好停在那里。

有一些开明的论文指出,单次传递随机值将使读取每个字节的效果略好于掷硬币,但这些论文目前处于付费墙后面,因此我无法就其方法的可靠性发表声明。

对于较旧的驱动器,该机制缺乏精度可能会导致单次通过留下昂贵的取证仍然可以读取的痕迹。我建议用大锤纵向敲打并在 350 度烘烤至棕色。