有时我们要把硬盘或者移动存储设备交给其他人(例如用户或者合作伙伴),很多人以为自己将电脑中的信息删除就没事了,笔者建议您好好审查自己是否真正已经将任何可能暴露您的个人隐私的数据删除了。本文介绍几个 Linux 安全删除工具的使用方法帮助用户彻底删除数据。
Linux 下的数据删除安全吗?
删除和格式化
普通 Linux 用户删除磁盘数据的常规方法主要有:删除和格式化。
- “删除”是删除数据最便捷的方法,如 Linux 用户最经常采用“rm”删除命令。实际上并没有真正的将数据从硬盘上删除,只是将文件的索引删除而已,让操作系统和使用者认为文件已经删除,又可以把腾出空间存储新的数据。这种方法是最不安全的,只能欺骗普通使用者,但也是大家所熟知的。数据恢复极易恢复此类不见的数据,而且也有很多专门进行数据恢复的软件。
- “格式化”有许多不同的含义:物理的或低级格式化、操作系统的格式化、快速格式化、分区格式化等等…大多数情况下,普通用户采用的格式化不会影响到硬盘上的数据。格式化仅仅是为操作系统创建一个全新的空的文件索引,将所有的扇区标记为“未使用”的状态,让操作系统认为硬盘上没有文件。因此,格式化后的硬盘数据也是能够恢复的,也就意味着数据的不安全。
安全删除工具的工作原理
由于磁盘可以重复使用,前面的数据被后面的数据覆盖后,前面的数据被还原的可能性就大大降低了,随着被覆盖次数的增多,能够被还原的可能性就趋于 0,但相应的时间支出也就越多。密级要求的高低对应着不同的标准,低密级要求的就是一次性将磁盘全部覆盖;高密级要求则须进行多次多规则覆盖。 通常有两个参考标准: 美国国防部 DOD 的 5220.22M 标准;北约 NATO 的标准 。参考标准实质就是多次覆盖的标准,规定了覆盖数据的次数,覆盖数据的形式。
覆盖原理(overwriting)
覆盖是指使用预先定义的格式——无意义、无规律的信息来覆盖硬盘上原先存储的数据。这是销毁数据的既有效又可操作的方法。如果数据被“成功”的完全覆盖,即使只覆盖一次,也可以认为数据是不可恢复的。硬盘上的数据都是以二进制的“1”和“0”形式存储的。完全覆盖后也就无法知道原先的数据是“1”还是“0”了,也就达到了清除数据的目的。
覆盖的方法: 根据覆盖时的具体顺序,软件覆盖分为逐位覆盖、跳位覆盖、随机覆盖等模式,根据时间、密级的不同要求,可组合使用上述模式,可靠的专业清除软件应同时支持多种模式。
使用 shred
hared 简介
shred 功能简单的说就是涂鸦,把一个文件用随机的字符码篡改的一塌糊涂。其宗旨就是更安全地帮助删除一个机密文件。shred 命令的功能是重复覆盖文件,使得即使是昂贵的硬件探测仪器也难以将数据复原,这条命令的功能足够适合实现文件粉碎的功效。
shred 使用方法
首先安装:
#apt-get install coreutils
命令格式: shred [ 选项 ]… 文件 …
长选项必须使用的参数对于短选项时也是必需使用的。
-f, –force 必要时修改权限以使目标可写
-n, –iterations=N 覆盖 N 次,而非使用默认的 3 次
–random-source= 文件 从指定文件中取出随机字节
-s, –size=N 粉碎数据为指定字节的碎片
-u, –remove 覆盖后截断并删除文件
-v, –verbose 显示详细信息
-x, –exact 不将文件大小增加至最接近的块大小
-z, –zero 最后一次使用 0 进行覆盖以隐藏覆盖动作
应用实例:
使用方法举例如下:
粉碎一个名为 test.txt 的文件命令是:
$shred –u test.txt
粉碎多个文件的命令是:
$shred –u test1.txt test2.txt
覆盖 IDE 接口的第一个磁盘设备的第一分区
$shred /dev/hda0
覆盖 RAID 分区
$ shred -vfz -n 10 /dev/md1
使用 wipe
wipe 简介
wipe 使用 gutmann 方式,它的理论依据是 1996 年奥克兰大学计算机科学学院皮特 . 古特曼教授在第六届 usenix 安全会议上所作的论文,《安全删除磁固存储器上的数据》 http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html 。这是迄今为止最安全的数据删除方法,覆盖数据 35 次使得任何还原数据的企图都是徒劳的。 wipe 采用了重复写上 34 次以随机数生成数据的 gutmann 方式,清除的对象可以是单一档案、数据夹和整个硬盘。随着硬盘容量愈来愈大,重写时间也会愈来愈长,所以 wipe 也提供了只重复写入 4 次的快速模式。
应用实例
首先安装:
#apt-get install wipe
使用方法举例如下:
删除一个文件,如需对某个机密的文件进行安全删除,您可以执行以下命令:
#wipe file.txt
删除目录, wipe 也支持对目录进行安全删除操作,您只需添加 r 选项即可,例如:
#wipe -r /home/user/test/
删除整个分区, wipe 也支持对分区例如:
# wipe /dev/sdb1
使用 secure-delete 软件包
secure-delete 软件包简介
secure-delete 软件包包含一些安全删除工具,这些工具能够安全清除文件数据、释放磁盘空间、交换分区和内存。 secure-delete 软件包中包含下列命令:
srm(secure remove) – 用于安全删除硬盘上现有的文件或者目录。
sdmem(secure memory wiper) – 用于清除计算机内存 (ram) 的数据痕迹。
sfill(secure free space wiper) – 用于清除磁盘可用空间的数据痕迹。
sswap(secure swap wiper) – 用于删除交换区所有数据痕迹。
安装 secure-delete 软件包
在 Ubuntu 中安装 secure-delete 工具,需要运行下列命令:
#apt-get install secure-delete
使用 srm 命令
srm 通过覆盖、重命名和 unlink 前截断数据来删除指定的文件,这可以防止其他人利用命令恢复或复原文件。
srm 命令格式:srm [-d] [-f] [-l] [-l] [-r] [-v] [-z] 选项 -d 忽略(与 rm 的兼容性) -r, -R, –recursive 递归地移除目录内容 -f 快速模式(即不安全模式) -l 降低安全性模式。 -l -l 再次降低安全性模式。 -v 详细模式 -z, –zero 覆盖文件后,文件使用的 zero 块 应用实例:
使用 rm 删除一个文件:
#rm myfile.txt
使用 srm 删除一个文件:
#srm -r myfiles
使用 sdmem 命令
sdmem ( Secure memory wiper 安全内存擦除器)可以删除以内存的数据,使数据不能被黑客恢复。
smem 命令格式: smem [-f] [-l] [-l] [-v]
选项:
-f 快速模式(即不安全模式)
-l 降低安全性模式。
-l -l 再次降低安全性模式。
-v 详细模式
应用实例:
使用详细模式删除内存的数据
#sdmem –v
图 1.sdmeme 命令执行界面
说明:图 1 是命令执行界面根据内存大小通常持续 5-10 分钟。执行过程可以使用 Ctrl+C 中止。
使用 sfill 命令
sfill ( secure free space wipe )可用空间擦除命令可以删除在所有可用空间上的数据。
sfill 命令格式: sfill [-f] [-i] [-i] [-l] [-l] [-v] [-z] directory/mountpoint
选项
f 快速 ( 和不安全模式 )
-i 仅清除可用 inode 空间,而不是可用磁盘空间
-i 仅清除可用磁盘空间,而不是可用 inode 空间
-l – 降低安全性。
-l -l 再次降低了安全性:
-v – 详细模式
-z – 使用 0 擦除最后的写入,而不是随机数据
directory/mountpoint 是在文件系统中用户所创建的文件的位置,位于用户想写入的分区。
应用实例:
使用详细模式可用空间一个目录的可用空间
#sfill -v /cjh1/
使用 sswap 命令
sswap(secure swap wiper)安全交换分区擦除器可以删除以安全方式存在于 swap 空间的数据。
sswap 命令格式:sswap [-f] [-l] [-l] [-v] [-z] swapdevice
选项
-f 快速模式(即不安全模式)
-l 降低安全性。
-l -l 再次降低了安全性。
-v 详细模式
-z – 使用 0 擦除最后的写入,而不是随机数据
应用实例:
在开始使用 sswap 前,您必须禁用 swap 分区,可以使用下列命令来查看安装的 swap 设备:
#cat /proc/swaps
使用下列命令禁用 swap :
#swapoff /dev/sda3
/dev/sda3 – 这是我的 swap 设备
禁用 swap 设备后,就可以使用下列命令用 sswap 擦除它:
#sswap /dev/sda3
完成上述命令后,需要使用下列命令重新启用 swap :
#swapon /dev/sda3
使用 GUI 工具 bleachbit
bleachbit 是一款开源免费的系统清理工具,功能类似 Windows 平台的 CCleaner 。除了用来删除垃圾文件, BleachBit 还可以用来文件粉碎、文件夹粉碎和擦除空闲空间等功能。这里说的文件粉碎功能其实就是上面介绍的命令的图形化实现。一般一些国家机密文件或公司重要文件都是用文件粉碎机来删除的,如果您的计算机里也有文件不希望被别人恢复,本工具是那些不熟悉命令行操作用户的最好助手。
首先安装软件
#apt-get install bleachbit
用户可以通过点击 “ 文件 ” 菜单展开其下拉菜单选择执行,见图 2 。
图 2.使用 GUI 工具 BleachBit
这三种功能的使用界面见图 3、图 4、图 5 。
图 3.粉碎一个文件的工作界面
图 4.粉碎一个文件夹的工作界面
图 5.擦除空闲空间的工作界面
说明:擦除空闲空间一般比较耗时。
使用 DBAN
DBAN 简介
DBAN 全名为 Darik’s Boot and Nuke ,可支持多种文件系统,包括 Linux 的 Ext3 和 Windows 的 NTFS 。其安全性很高,美国太空总署亦在内部指定,硬盘在弃置前必须要经过它来处理。 DBAN 的工作原理便是反复地在同一磁区上写入无意义的数据,从而把数据还原的可能性减至最低。重写方式支持美国防部标准方式( DoD 5220-22.M 这种方法是美国国防部《清理和消毒标准》中的一部分,这种方法仅仅需要覆盖数据几次安全性没有古特曼方法高,但耗费的时间却相对较少。)和业界最高标准 Gutmann 方式(写入固定值和乱数共 35 次)。对于送往异地修理的故障磁盘,系统安全管理员提出了几项建议,“符合国防部标准的擦除处理(Department of Defense wipe)”就属于其中之一,至少将磁盘格式化并写入数据 7 次(注:其步骤包括完全格式化磁盘,然后写入由 0 和 1 组成的数据流;反转数据流中的 0 和 1 并再 次写入;最后,写入随机的数据流)。这些一来,即使以后有人想办法还原了旧磁盘里的残存数据,也只能得到一些不可读的垃圾信息。
DBAN 使用方法
用户在官方网站(http://www.dban.org/ )下载 ISO 文件刻录光盘,或者 unetbootin 工具把 DBAN 写入 U 盘。使用时,在 BIOS 下设置第一启动为光驱或 USB 盘。启动后工作界面如图 6 。
图 6.DBAN 启动界面
其中 F2 查看帮助信息, F3 是 DBAN 命令列表, F4 读取 RAID 设备,输入 “Enter” 进入交互模式,输入 “autonuke” 就开始进行全盘数据删除。
图 7 是交互模式工作界面选择要删除的硬盘后按 F10 即可开始工作。
图 7.交互模式工作界面
当看到 “DBAN succeeded” 表示硬盘资料删除已经完成见图 8:
图 8.硬盘删除工作完成界面
说明:一般 80G,7200 转的台式机硬盘需要 1 小时 50 分钟, 60G 笔记本电脑硬盘需要 2 小时 45 分钟。操作完毕后,整个硬盘就像新买的硬盘,没有分区,需要重新分区。(警告:请备份硬盘里面需要的资料,否则执行 DBAN 后,硬盘里面的所有资料将不能再恢复)。
功能对比
表 1.Linux 安全删除工具功能对比
工具名称/功能对比 | 工作界面 | 功能简介 |
---|---|---|
wipe | 命令行 | wipe 能够安全删除磁性媒介上的文件,wipe 命令能够向已删除的文件反复写入特殊图案 |
share | 命令行 | shred 功能简单的说就是涂鸦,把一个文件用随机的字符码篡改的一塌糊涂 |
sdmem | 命令行 | sdmem 可以删除以安全方式存在内存的数据,使数据不能被黑客恢复 |
sswap | 命令行 | sswap 可以删除存在于 swap 空间的数据 |
srm | 命令行 | srm 通过覆盖、重命名和 unlink 前截断数据来删除指定的文件,这可以防止其他人利用命令恢复或复原文件 |
sfill | 命令行 | sfill 命令可以删除在所有可用空间上的数据 |
bleachbit | 图形化 | bleachbit 具有来文件粉碎、文件夹粉碎和擦除空闲空间的功能 |
DBAN | 图形化 | DBAN 是一个独立的启动盘,可以安全地擦除大多数计算机的硬盘。 它会自动并彻底的删除任何它能够检测到的硬盘中的内容。它可以自动探测硬盘,这使得它成为批量或紧急销毁数据的理想实用程序 |
总结
很多人以为自己将电脑中的信息删除就没事了,简单的删除文件可能暴露您的个人隐私。以上介绍的几个 Linux 安全删除工具的可以帮助用户彻底删除数据。