有没有办法确保无法恢复已删除的文件?
如您所知,通过按shift键或使用垃圾桶删除文件并不意味着该文件永远消失了。它位于计算机中的某个位置。
在日常生活中,执法人员或小偷使用恢复程序来泄露我们的私人数据或其他内容。
他们可以恢复驻留在硬盘,RAM甚至USB中的所有数据。
为了保护我们免受这些人的侵害,该怎么办?一个应该使用哪个程序?
注意:我不希望像先使用恢复程序然后使用碎纸擦除该文件这样的答案。我只想用一个程序来删除计算机上所有未使用/已删除的文件。
有没有办法确保无法恢复已删除的文件?
如您所知,通过按shift键或使用垃圾桶删除文件并不意味着该文件永远消失了。它位于计算机中的某个位置。
在日常生活中,执法人员或小偷使用恢复程序来泄露我们的私人数据或其他内容。
他们可以恢复驻留在硬盘,RAM甚至USB中的所有数据。
为了保护我们免受这些人的侵害,该怎么办?一个应该使用哪个程序?
注意:我不希望像先使用恢复程序然后使用碎纸擦除该文件这样的答案。我只想用一个程序来删除计算机上所有未使用/已删除的文件。
Answers:
已经从Ubuntu的核心实用程序中安装了此命令行工具,以使用Gutman方法安全地擦除和覆盖单个文件。
shred -vzn 0 /dev/sdc1
通过0
在一次迭代中用s 覆盖所有内容来擦除整个分区。如果没有法律问题,需要另一种方法,这样做是最有可能安全地安全地删除您的私人数据在计算机科学,2008年,克雷格·赖特讲义5352,243-257。
shred -vzn 3 /dev/sdc1
使用带有随机数的3次迭代擦除整个分区。另外(option -z
)会写入零以隐藏最后的切碎过程。这将比快速方法花费4倍的时间。
注意:通过切碎分区,我们将使用0
或随机数覆盖此分区。因此,它可以永久有效地删除该分区上的所有内容,包括文件系统缓存。这也可以用来删除已删除文件的多余部分。我们要保留的文件必须在粉碎之前备份。
此命令行实用程序提供了更多选项,以及删除单个文件之外的目录的可能性。
wipe filename
wipe -r dirname
请阅读链接的联机帮助页中有关删除单个文件时由于日记文件系统中仍可恢复的备份而引起的安全性问题的说明。即使使用日记文件系统,覆盖整个分区而不是单个文件也可以有效擦除所有数据。
擦除固态磁盘(SSD)上的数据只能通过多次迭代覆盖整个驱动器(不仅是单个分区)来完成。某些SSD可能具有删除数据的内置功能,但这可能并不总是有效的(请参阅注释中的链接)。目前,对于安全删除所有可用SSD上的所有数据残留所需的擦除过程或擦除迭代次数,没有普遍的建议。
可以在Nautilus和Thunar的上下文菜单中添加这些选项。
加(加号)
名称“切碎文件”
描述你喜欢的
动作“切细-u%f”
同样适用于wipe
。
选择“外观条件”,然后选择“其他文件”
您没有一个可以运行的命令,可以轻松地为您清除所有已删除的文件。但是,您可以采取许多措施来减少将来遭受此类攻击的可能性。
就像其他人所说的那样,使用shred或srm之类的工具可让您通过实际覆盖特定文件来删除它,而不仅仅是从文件系统中删除它。如果您感觉粗体,可以rm
用shred
或替换命令,srm
以安全地删除以后的文件。这意味着每当您(或另一个程序)尝试使用删除某些内容时rm
,都会运行secure delete命令。
但是,如果您使用的是固态磁盘,甚至是某些较新的机械磁盘,则切碎和其他基于覆盖的方法可能无效,因为磁盘可能实际上并未写入您认为要写入的位置(源)。
更为方便的选择是全磁盘加密。如果使用备用安装程序,Ubuntu可以自动为您设置一个完全加密的磁盘,但是您也可以自己定制和配置设置。一旦安装,加密对您几乎是不可见的:在计算机启动时,输入密码短语(确保选择一个不错的,较长的密码)后,一切看起来和感觉都与普通的Ubuntu相似。
您还可以使用Ubuntu的磁盘工具对外部介质(如USB驱动器)进行加密。设置加密的外部磁盘就像格式化磁盘时选中“加密底层文件系统”框一样简单。您甚至可以将密码短语存储在(加密的)密钥环上,这样就不必在每次将该磁盘插入计算机时都输入该短语。
如果您的整个磁盘以及所有可移动媒体都已加密,则无需担心太多。小偷或警察需要刷卡你的电脑,而它的上(或将其关闭,如果他们的一两分钟内非常好,以访问您的数据)。如果在不使用计算机时使其休眠(而不是挂起),则应该很安全。
如果您需要完全销毁所有数据,则无需对整个磁盘进行Gutmann擦除。只需覆盖磁盘的最开始,即可破坏加密卷的标头。与常规文件系统不同,这实际上将使其无法恢复数据。
那么,如何从当前设置转到安全加密的磁盘?改造当前安装的操作系统以使用加密磁盘是一个很大的挑战。最简单的方法是备份所有数据和设置,然后使用加密磁盘重新安装。备份时,请确保将数据备份到加密的外部驱动器,但不要将密码短语保存在密钥环中。
备份完所有内容之后,您可能需要大刀阔斧地擦拭硬盘驱动器,以确保将来无法恢复任何现有数据。如果您使用的是SSD,则该过程更具挑战性,因此,根据要在该过程中投入多少资金,可能有必要破坏当前的磁盘(具有挑战性的主张)并从新磁盘开始。
重新安装操作系统时,如果尚未主动擦除磁盘,则应确保完全填充新的加密分区,该分区将覆盖所有旧数据。还原备份后,您可能希望积极擦除备份磁盘的开头,以破坏加密头,以便无法再次对其进行恢复。
更新:如果您尚未删除想要不可恢复的文件,请使用已接受的答案。但是,如果您已经删除了文件,那么这是我所知道的下一个最佳方法。
如果我没看错,您想删除所有以前删除的文件。这是一种简单的方法:
$ dd if=/dev/zero of=/path/to/mounted/partition/tmp_file bs=1M count=999999999999
让它运行直到它抱怨直到它得到磁盘写入错误[空间不足]。然后删除文件!这样做只是用000s填充了空磁盘,因此所有以前的文件都将被覆盖。确保立即删除文件,否则将没有任何磁盘。如果您真的很偏执,您可能需要这样做几次。或者,如果您想随机写入磁盘,建议使用替换/dev/zero
为/dev/urandom
。
但是,这将花费更长的时间,因此我将其运行一整夜。另外,如果您要使用进度表,请执行以下操作:
$ free=$( df {PARTITION OR MOUNTPOINT} |awk '{print $3}'|tail -1 )
$ dd if=/dev/zero bs=1M count=999999999999 | pv -s "$free" > /path/to/mounted/partition/tmp_file
首先,使用du,awk和tail获取可用的磁盘空间,然后使用dd获取/ dev / zero,将pv
其表示“管道查看器”的管道传输,将所有内容重定向到,tmp_file
再次删除该文件。 $ rm tmp_file
无论如何,希望有人觉得这有用!:)
overwrite_empty_space /dev/sdb1
?
首先,在终端上使用rm删除文件,或者在nautilus上使用shift-delete删除文件。更重要的是,使用srm
,从安全,删除工具包。
您可以安装安全删除工具,如下所示:
apt-get install secure-delete
其次,使用sfill擦除磁盘上未使用的空间:
sudo sfill -f <directory>
这将花费一些时间,因为它正在使用加密技术来填充磁盘。
警告:这将遍历整个文件系统,并且您是root用户。小心使用!
这将创建一个文件,该文件将清除所有先前存在的数据。该文件将在中创建<directory>
。
一个GUI程序是BleachBit(也在源代码中)。BleachBit Sourceforge页面上的更新版本(deb文件)。
除了简单地删除文件之外,它还包括一些高级功能,例如切碎文件以防止恢复,擦除可用磁盘空间以隐藏其他应用程序删除的文件的痕迹。
“ BleachBit可以快速释放磁盘空间,并不懈地保护您的隐私。释放高速缓存,删除Cookie,清除Internet历史记录,粉碎临时文件,删除日志并丢弃您不知道的垃圾。它专为Linux和Windows系统而设计,可清除干净90个应用程序,包括Firefox(希望使其速度更快),Internet Explorer,Adobe Flash,Google Chrome,Opera,Safari等。” (来自http://bleachbit.sourceforge.net/)
BleachBit具有几种高级清洁器:
有关如何使用Bleachbit删除安全的特定文件和文件夹的详细信息,请参见此答案。
如果您想要一个不受病态困扰的人无法阻止的解决方案,则应考虑以下几种组合(受货币资源的限制):
这些解决方案的成本和精巧程度大相径庭。一些:
SSD和许多其他闪存存储介质使用一种称为“损耗平衡”的技术,该技术会根据未使用的存储单元块之前的写入周期数对其进行重新分配,以延长驱动器的使用寿命。因此,覆盖块范围不能像硬盘驱动器那样有效地(甚至有效)擦除存储内容。另一方面,闪存可以更快,更有效地安全擦除块,块范围或整个驱动器。
您应该使用驱动器的安全擦除功能。
确保驱动器安全性支持安全擦除1且未“冻结”。如果是这样,则可能有助于挂起和恢复计算机。
$ sudo hdparm -I /dev/sdX | grep frozen not frozen
(已过滤的)命令输出表示此驱动器支持安全擦除,“未冻结”,您可以继续。
设置用户密码(
Eins
在此示例中)。该密码也被清除,确切的选择无关紧要。sudo hdparm --user-master u --security-set-pass Eins /dev/sdX
发出ATA安全擦除命令。
sudo hdparm --user-master u --security-erase Eins /dev/sdX
请参阅Linux内核Wiki中的ATA安全擦除文章,以获取包括故障排除在内的完整说明。
(来源)
如果步骤1中的命令输出为空,则驱动器不支持安全擦除,但可能仍支持以下部分要求的TRIM命令。
的2可以安全地擦除块设备,如果驱动器支持1:blkdiscard(8)
sudo blkdiscard --secure /dev/sdXN
其中/dev/sdXN
是指向要擦除的驱动器或分区的块设备节点的路径。
1如果驱动器位于具有USB或FireWire连接的外壳内,则转换芯片组可能会阻止对某些可选功能(如安全擦除和TRIM)的支持,即使随附的驱动器也支持该功能。
2自Ubuntu Xenial Xerus(16.04)起默认可用并已安装。
我将truecrypt文件映像用于此类重要数据。我不方便,免费,跨平台,不需要完整的磁盘,也不需要使用任何其他软件来“真正删除”文件。
只要确保您具有强密码,并备份图像文件即可。我将备份保存在云中。
第一个选项是切碎。关于碎纸的先前答案缺少一些必要的细节。如果在分区上运行shred(如的示例sdc5
),则将无法克服文件系统的缓存,快照和日记等功能,并且数据将保留,其中很多是潜在的。
为使切碎有效,尤其是在现代SSD上,切碎必须在设备而非分区上运行。这将是/dev/sdc
...末尾没有数字(分区号)。
如果您要清洁的驱动器是计算机的主要设备,则需要通过活动USB执行此操作。在这种情况下,最好在创建实时USB时向其添加持久性,以便您可以下载一些额外的工具来正确执行此工作。
运行命令:sudo shred -vfxz /dev/sdc
或sda
任何设备名称。如果不确定名称,请打开“磁盘”或“ GParted”以标识您的设备,或lsblk
在终端中运行Command- 并在此处标识设备的名称。
在命令上添加字母f
和x
很重要,因为f =强制权限和x =文件的确切大小。没有这些,您可能会丢失需要读取或写入权限的数据,或者将文件四舍五入到块大小时会丢失数据。
您可以通过添加-n
(所需的数量)来添加所需数量的写入次数。例:sudo shred -vfxz -n 5 /dev/sdc
这是擦除驱动器的第一个呼叫端口。运行灌木,安全删除和nwipe等类似工具可能会有所帮助。它们都以非常相似的命令以及略有不同的方法和模式以相同的方式工作。转到Linux手册页或Google,以快速熟悉如何使用这些命令。您不太可能需要超过标准的4条切碎通行证,但如果重要的话,您不妨多加努力,因为它可能会有所帮助。
您的RAM上可能有数据。安装安全删除后,为sdmem运行命令。这将擦除您的RAM内存。但是,您曾经用RAM填充的第一个数据,再加上任何长时间保留在RAM中的数据,都可能留下痕迹。
当购买新的RAM(或HD / SSD)时,最好将驱动器填满几次。您可以使用shred,但在这里dd可能更好。命令:
sudo dd if=/dev/urandom of=/dev/ # (insert your device partion name)
如果要提高安全性,最好使用RAM在使用敏感数据之前重复此过程,并在之后尽快从RAM中擦除敏感数据。这次留在原地的原因是它留下痕迹的能力。
剩下要做的就是创建一个分区或安装下一个发行版。
加密 -人们经常将其描述为一种可靠的方法,但是如果您要继续使用硬盘或将其传递给其他人,则这不是一个有效的选择。关于法律麻烦,通常无法选择不对加密设备进行解锁,并且在许多地方可能被认为有罪或构成实际犯罪。它可能会阻止小偷等(仅窃取数据,大声笑)。
还要注意,加密的主文件夹有很大的不同,它不能保护您的计算机免受物理检查,本质上是为了在线/系统安全,可以绕开它。
如果要丢弃设备,请先使用碎纸擦拭,然后使用包含特殊字符(例如*等)的长密码进行加密,以破坏密码的字母和数字,然后再次使用碎纸,但您只需指定驱动器的前10gig (取决于大小,但这是一个很大的安全数字)。示例:sudo shred -vfxzs10G /dev/sdc
在这些情况下,这比切碎整个驱动器更快,更有效。
然后可以确定的是,取出硬盘驱动器和RAM,RAM很容易卡住和破坏,SSD也是如此。您可以发挥创造力并在打破它们的同时释放那种偏执的能量。