分页: 1 / 1

《NetBSD指南-14.3.2.清空磁盘数据》

发表于 : 2010-03-02 21:40
leo
我们只是删除了磁盘分区表信息, 但是现有的文件系统和数据还保存在磁盘上。 即使在我们创建了一个 cgd 设备, 再创建文件系统, 和恢复了数据后, 一些这个磁盘上的数据块可能仍未被重写,也就是还保存着原有的未加密数据(译者注:这里说的步骤类似Windows下的分区快速格式化,实际上并未格式化所有的数据块). 这特别是在文件系统内数据很少的情况下。我们要在进行下一步之前彻底清空这些原有数据。

我们使用 dd 命令用 /dev/zero 覆盖这个新的 wd0e 分区的所有数据, 这会让分区内的数据全是0, 除了后面我们将写入的加密数据. 因为我们不想向攻击者提供有关哪些数据块包含了真实数据、哪些是未用空间的任何线索, 因此我们向所有的磁盘块写入"干扰数据". 所以我们将创建一个空的 cgd, 用一个随机的未知的key来配置。

首先, 我们用一个随机的key配置一个 cgd :

代码: 全选

# cgdconfig -s cgd0 /dev/wd0e aes-cbc 128 < /dev/urandom 

现在我们将0写入 cgd原始分区 (在i386上是/dev/rcgd0d , 在多数其它平台上是/dev/rcgd0c ):

代码: 全选

# dd if=/dev/zero of=/dev/rcgd0d bs=32k

在磁盘上这些被加密过的0将看起来像是随机数据。如果你有一个大硬盘这将花费一定的时间。一旦完成, 取消配置的随机key cgd:

代码: 全选

# cgdconfig -u cgd0