删除文件或者重新格式化磁盘并不会破坏敏感数据,即使被删除这些数据也可以恢复。彻底删除某些无用数据是好事,但是如果删除的是财务数据、银行帐号密码或者分类公司信息而无法彻底删除就很危险,本文将介绍一些能够在Linux Ubuntu操作系统中安全删除文件的工具。
Shred
虽然shred命令有一些限制,但是shred命令可以很有效地彻底删除文件,使文件很难或者无法恢复。Shred是这样进行彻底删除的:通过使用数据模式对文件进行反复重写以实现最大程度的摧毁,这样即使使用高灵敏度的数据恢复设备也很难恢复数据了。
使用rm命令删除文件实际上并没有毁坏数据,它只是毁坏列有文件位置的索引,使文件的数据块还可以重复使用。因此,使用rm命令删除的文件可以很容易使用特殊设备或者命令进行恢复,前提条件是文件释放的数据库还没有被重复利用。然而,如果在完全是硬盘驱动(HDD)的动态系统,释放的空间只能在几分钟或者几秒钟内进行恢复。
Shred 语句
shred [option(s)] file(s)_or_devices(s)
可用选项
-f, –force – 更改权限允许写入(如有必要)
-n, –iterations=N – 重写N次而不是默认的(25)次
-s, –size=N – 将文件粉碎为很多字节(可使用后缀如K、M、C等)
-u, –remove – 重写后截短和移除文件
-v, –verbose – 显示进程
-x, –exact - do not round file sizes up to the next full block
-z, –zero - add a final overwrite with zeros to hide shredding
-shred 标准输出
–help – 显示帮助并退出
–version – 输出版本信息并退出
Shred示例
1)下列命令能够用于安全删除三个文件夹:file1、file2和file3:
shred file1 file2 file3
2) 下列命令将删除第一个HDD的第七个分区上的数据:
shred /dev/hda7
3)可以利用下列命令来擦除你在第一个盘的软盘中创建的文件系统路径,该命令需要花费20分钟来擦除“1.44MB”(实际为1440KiB)的软盘:
shred –verbose /dev/fd0
4) 要想删除硬盘上所选分区的数据,可以使用下列命令:
shred –verbose /dev/sda5
在Ubuntu的Nautilus菜单中添加shred
首先在终端使用下列命令安装nautilus-actions数据包:
sudo aptitude install nautilus-actions
现在打开Nautilus Actions Configuration:System->Preference->Nautilus Actions Configuration
打开后你会看到类似下图的窗口,点击添加。
现在输入以下信息:
Label: Shred
Tooltip: shred utility to securely erase files
Icon: gtk-dialog-warning
Path: shred
Parameters: -f -u -v -z %M
点击Conditions条目,勾选“Appears if selection contains”上面的“Only files”( 也可以选择文件和文件夹),勾选“Appears if selection has multiple files or folders”,单击确定。
添加后你将看到如下窗口,点击关闭。
打开终端,运行下列程序对nautilus进行更新:
nautilus -q
autilus
这样将打开nautilus窗口,现在右击单击任何文件,就能在菜单中看到shred命令选项。
#P#
wipe
wipe是一种小命令,能够安全删除磁性媒介上的文件,该命令能够在各种unix平台进行汇编,包括Linux 2.*、(Open+Net+Free)BSD、 aix 4.1、 SunOS 5.5.1以及Solaris 2.6等。从磁性媒介上恢复已经被擦除的数据要比人们想象的容易得多,一种称为“Magnetic Force Microscopy (MFM)”的技术能够恢复写入磁盘的最后2层或者3层的数据。而wipe命令能够向已删除的文件反复写入特殊图案,使用fsync() call和/或 O_SYNC bit强迫磁盘访问。
在Ubuntu中安装wipe
sudo aptitude install wipe
wipe语句
wipe [options] path1 path2 … pathn
Wipe示例
擦除/home/berke/plaintext/下的每个文件和每个目录(option -r),常规文件将使用34次passes擦除,它们的大小也将骤减几倍。而特殊文件(字符和块设备、FIFO等)则不会这样。所有目录条目(文件、特殊文件和目录)将被重新命名10次,然后用unlink操作符删除文件。不被允许的操作将进行chmod()处理(option -c).这些都不需要用户确认(option -f):
wipe -rcf /home/berke/plaintext/
假设/dev/hda3是与主要IDE界面的主盘第三区相对应的,则将在快速模式(option -q)下被擦除,例如,使用四种任意passes。Inode不会被重新命名或者unlink,在开始前,系统将要求输入“确认”:
wipe -kq /dev/hda3
wipe从来不会按照symlink进行文件删除,除非用户明确要求使用symlink,如果你想要擦除/dev/floppy,而它正是到/dev/fd0u1440的symlink,则需要明确 –D选项,在开始前,系统将要求输入“确认”:
wipe -kqD /dev/floppy
在这里,wipe将递归式地(option –r)删除/var/log下的数据,而非/var/log之外的数据。这将不再是chmod(),而会变得有点复杂(option –i)。而且因为-f选项,系统不会要求用户输入“确认”:
#P#
Secure-Delete安全删除工具
该软件包包含很多安全删除工具,这些工具能够安全清除文件数据、释放磁盘空间、swap和memory。
Secure-Delete工具利用先进的技术对文件进行永久性删除,是非常实用的工具。想在Ubuntu中安装Secure-Delete工具,需要运行下列命令:
sudo aptitude install secure-delete
Secure-Delete软件包中包含下列命令:
srm(Secure remove) –用于删除硬盘上现有的文件或者目录。
smem(Secure memory wiper) – 用于清除计算机内存(RAM)的数据痕迹。
sfill(Secure free space wiper) – 用于清除磁盘可用空间的数据痕迹。
sswap(Secure swap wiper) – 用于删除swap分区所有数据痕迹。
srm - Secure remove安全移除
srm通过覆盖、重命名和unlink前截断数据来删除指定的文件,这可以防止其他人利用命令恢复或复原文件。
srm,像每一个使用getopt函数解析句法的程序一样,可以让用户使用— option来表明所有句法都是非选项。想要移除当前目录中‘-f’文件,可以输入“srm — -f”或者“srm ./-f”。
srm 语句
srm [OPTION]… FILE…
可用选项
-d, –directory – 忽略(与rm的兼容性)
-f, –force – 忽略不存在的文件,从不提示
-i, –interactive – 在任何清除操作前的提示
-r, -R, –recursive – 递归地移除目录内容
-s, –simple – 仅使用随机数据的单一pass进行覆盖
-m, –medium – 使用7 US DoD兼容 passes(0xF6,0×00,0xFF,random,0×00,0xFF,random)重写文件
-z, –zero – 覆盖文件后,文件使用的zero块
-n, –nounlink – 覆盖文件,但是并不对文件重新命名或者unlink
-v, –verbose – 显示正在进行的操作
–help – 显示帮助并退出
–version – 输出版本信息并退出
Srm示例
使用srm删除文件:
srm myfile.txt
使用srm删除目录
srm -r myfiles
#P#
smem - Secure memory wiper安全内存擦除器
smem旨在删除仍以安全方式存在内存的数据,这些数据不能被黑客、执法人员或者其他威胁恢复的。请注意,有了新的SDRAM芯片,数据不会消亡而将保持静态,很容易被提取必要的信息!这种擦除机制是基于第六次Usenix安全专题讨论会上由Peter Gutmann发表的“从磁性和固态内存安全删除数据” 文件,Peter Gutmann是著名的译解密码专家。
smem 语句
smem [-f] [-l] [-l] [-v]
可用选项
-f – 快速(和不安全模式): no /dev/urandom。
-l – 降低安全性。只写了两个passes:0×00和任意pass
-l -l 再次降低了安全性:只写入了0×00 pass
-v – 详细模式
sfill - secure free space wipe安全可用空间擦除
sfill旨在删除仍以安全方式存在于可用空间媒介上的数据,这些数据不能被黑客、执法人员或者其他威胁恢复的。这种擦除机制是基于第六次Usenix安全专题讨论会上由Peter Gutmann发表的“从磁性和固态内存安全删除数据” 文件,Peter Gutmann是著名的译解密码专家。
Sfill语句
sfill [-f] [-i] [-I] [-l] [-l] [-v] [-z] directory/mountpoint
可用选项
-f -快速(和不安全模式): no /dev/urandom,没有同步模式
-i – 仅清除可用inode空间,而不是可用磁盘空间
-I -仅清除可用磁盘空间,而不是可用inode空间
-l -降低安全性。只写了两个passes:0xff的pass和随机值的最后模式
-l -l再次降低了安全性:只写入了随机pass
-v -详细模式
-z – 使用0擦除最后的写入,而不是随机数据
directory/mountpoint是在文件系统中用户所创建的文件的位置,应该位于用户想写入的分区。
sswap - Secure swap wiper安全swap擦除器
sswap旨在删除仍以安全方式存在于swap空间的数据,这些数据不能被黑客、执法人员或者其他威胁恢复的,这种擦除机制是基于第六次Usenix安全专题讨论会上由Peter Gutmann发表的“从磁性和固态内存安全删除数据” 文件,Peter Gutmann是著名的译解密码专家。
Sswap语句
sswap [-f] [-l] [-l] [-v] [-z] swapdevice
可用选项
-f -快速(和不安全模式): no /dev/urandom,没有同步模式
-l -降低安全性。只写了两个passes:0xff的pass和随机值的最后模式
-l -l 再次降低了安全性:只写入了随机值的pass
-v – 详细模式
-z -使用0擦除最后的写入,而不是随机数据
Sswap示例
在开始使用sswap前,你必须禁用swap分区,可以使用下列命令来查看安装的swap设备:
cat /proc/swaps
使用下列命令禁用swap:
sudo swapoff /dev/sda3
/dev/sda3 – 这是我的swap设备
禁用swap设备后,就可以使用下列命令用sswap擦除它:
sudo sswap /dev/sda3
完成上述命令后,需要使用下列命令重新启用swap:
sudo swapon /dev/sda3
其他工具
DBAN
Darik的Boot和Nuke (“DBAN“)是独立的启动盘,能够安全清除大多数计算机的硬盘数据。DBAN能够自动完全删除它检查到的任何硬盘数据,这也使DBAN成为删除大量数据或者紧急数据删除的实用工具。
【编辑推荐】