关于数据,彻底删除数据和恢复数据(转)
本文将讲述如何找回误删除的数据以及如何彻底删除硬盘上的数据
如果仅仅依靠Windows自身所附带的那些工具,你将无法挽回已经从“回收站”中清空的被删除文件。但实际上还有别的办法。即便是数据已经被覆盖、硬盘被重新格式化、引导扇区遭到破坏或是磁盘控制器失灵,只要有专门的硬件和软件,你就能恢复任何文件。
这是一把双刃剑,如果你想要恢复至关重要的文件,这无疑是个好消息,但如果你想防止别人窃取你的私人数据,这将是一条坏消息。不过我们刚才讨论的只是理论上的可能性,实际上的解决方案将取决于你愿意付出多少时间和金钱。
为了理解被删除的数据如何被恢复,你必须首先理解它们是怎样被存储的。硬盘是由一组盘片构成。数据被保存在盘片的同心圆上,这些同心圆被称为“磁道”。硬盘的读写头在盘片表面上方移动从而访问硬盘的不同部分。由于硬盘上任何地方的数据都能够被直接访问到,因此文件中的每一块数据并不一定要按顺序存放,它们可以保存到任何地方。
一般来说,数据在硬盘上是按照簇来进行存放的。簇的大小与操作系统以及逻辑分区的大小有关。如果硬盘的簇大小为4K,那么即便是1K的文件也要占据4K的空间。而那些大文件则将由成百上千的簇来保存,这些簇遍布在整个硬盘中。操作系统中的文件系统组件会管理和跟踪这些分离的簇以保证文件的正确存取。
Microsoft Windows系统使用过的文件系统有三种。第一种是FAT(文件分配表),它早在DOS时代就开始被广泛使用;FAT32是从Windows 95时代开始被采用的,而NTFS则是由Windows NT 4.0引入的。这三种文件系统的基本组织策略是一致的。每个文件夹中存放着若干个文件,每个文件则包含了一个指向文件起始簇的指针。起始簇的FAT字段中包含了指向下一个簇的指针,依此类推,直到最后一个带有文件结束标记的簇。
数据并未消失
如果你使用通常的Windows操作来删除某个文件,实际上这些信息并没有被删除。首先,如果你通过Windows资源管理器删除文件,文件会被转移到“回收站”。即便你清空“回收站”,该文件也只是仅仅被忽略而已。该文件名的第一个字母会被改成特殊字符,该文件原先所占用的簇会被标记为可用簇,但原来的数据并没有马上被删除。直到下一次你保存某个文件时,如果这些簇被用到,才会用新的数据覆盖老的数据。在此之前,数据一直会保持完好无损。如果使用一种工具来绕过操作系统对硬盘直接进行读取就能取回这些数据。在最近一次的数据恢复工具评测中我们考察了四个这样的软件(www.pcmag.com/print_article/0.3048.a=41827.00.asp)。我们把编辑选择奖授予了Kroll Ontrack公司的EasyRecovery Lite 6.0(http://www.ontrack.com/)。
如果你想恢复某个不小心被删除的重要文件,就必须注意不要去覆盖它。你应该立刻停止使用计算机并且不要往硬盘上保存任何数据,也不要试图安装恢复工具,因为任何写入硬盘的操作都有可能覆盖你想要恢复的文件所在的簇。如果原来没有安装过恢复程序,就从软盘或者光盘运行它。
如果数据被覆盖
如果原来文件的数据被覆盖,你就无法通过软件来访问它了。但这并不意味着文件数据完全不能恢复。有两种办法可以用来读取硬盘上被覆盖的数据。
当硬盘读写头在硬盘上写入一位数据时,它使用的信号强度只是用来写入一位数据,并不会影响到相邻位的数据。由于这个写入信号并不是很强,因此你可以通过它写入的数据位的绝对信号强度来判断此前该数据位所保存的是何种数据。换句话说,如果二进制数据0被二进制数据1所覆盖,其信号强度会比二进制数据1被覆盖要弱一些。使用专门的硬件就可以检测出准确的信号强度。把被覆盖区域读出的信号减去所覆盖数据的标准信号强度,你就能获得原先数据的一个副本。更令人吃惊的是,这一恢复过程可以被重复7次!因此如果你想避免别人使用这种方法来窃取你的数据,你至少要覆盖该区域7次,而且每次还应该使用不同的随机数据。
第2种数据恢复技术则是利用了硬盘读写头的另一个特点:读写头每次进行写操作的位置并不一定对得十分精确。这就能让专家们在磁道的边缘侦测到原有的数据(也被称为影子数据)。只有重复地覆写数据才能消除这些磁道边缘的影子数据。
数据消除
了解到能够恢复你的重要数据固然值得欣慰。但如果你希望这些数据永远消失,恐怕就会是另一种心情了。美国国防部在《国家工业安全程序操作手册》中对硬盘数据清除作了专门的描述,这个安全标准被称为DOD 5220.22-M(www.dss.mil/isec/nispom_0195.htm)。该手册建议对所要清除的数据区进行三次覆盖,第一次使用一个8位的字符,第二次使用该字符的互补字符(即将二进制位的0、1互换),最后再使用随机字符进行覆盖。
这种方法能够达到一定的安全级别,但对于极端重要的数据,其安全性仍然是不够的。保存有极端重要数据的硬盘应该被永久消磁或者彻底销毁。对大多数人来说,多次覆盖的方法已经足够安全了,而且很多工具都提供了对这种方法的支持。
隐藏的数据
删除和覆盖文件并不能彻底清除硬盘上所有的敏感数据。你必须清除每一个扇区(用来构成簇的512字节单元),因为数据有可能隐藏在你所没有想到的地方。在大文件的最后一个簇中,常常会保存有随机的数据。因为文件的最后一部分写入硬盘时并不一定能充满整个扇区,因此系统会从内存中随机找出一些数据进行填充,这些数据被称为RAM碎片。
你很难预料这些RAM碎片中到底是何种数据,它可能是电脑最后一次启动后查看、创建或修改过的任何信息。很多安全删除软件都没有正确擦除这些RAM碎片,而这些碎片中恰恰有可能包含了你的隐私信息。
在NTFS系统中(Windows NT 4.0、2000和XP所使用的文件系统),一个文件包含多个数据流。其中一个数据流包含了文件访问权限信息,另一个则包含了实际的文件数据。另外,NTFS系统还支持附加的数据流(Alternative Data Streams,ADS),里面可以保存任何信息。
ADS最常见的用途是保存图像文件的快照。由于很多安全删除程序无法擦除ADS,因此当包含图像文件的数据流被删除之后这些图片快照仍然能够被访问到。如果想了解如何避免保存图像快照,可以参考微软知识库的319300号文章(http://support.microsoft.com/)。
潜在的危险
某些不法分子已经开始利用ADS在硬盘上隐藏某些数据或者病毒。除此之外,硬盘上的另一些区域也可能会隐藏着某些数据。通常硬盘的扇区在工厂进行低级格式化时就已经划分完毕。如果某个扇区被标记为坏扇区,那么硬盘控制器就不会去写入这些区域。由扇区组成的簇是在高级格式化时被定义的。如果在高级格式化期间发现坏扇区,那么整个簇都会被标记为坏簇。由于这个坏簇中并不是所有的扇区都无法读写,因此就给了不法分子可乘之机。
在更古老的硬盘中,数据还可能被隐藏在扇区间隙中。老式硬盘的每个磁道都包含相同数量的扇区,这样一来外圈磁道的扇区显然要比里圈磁道的扇区大很多。因此外圈磁道的扇区之间较大的缝隙就可能被用来保存隐藏的数据。而现代的硬盘都采用了区域存取技术,每个磁道的扇区数量并不相等,从而消除了这部分浪费的硬盘空间。
如果想访问硬盘的这些隐藏区域,你需要使用能够绕过操作系统直接进行硬盘存取操作的工具。专业的软件可能会相当昂贵。Guidance Software公司的EnCase Forensic Edition(http://www.guidancesoftware.com/)的价格高达2495美元。Briggs Softworks的Directory Snoop(www.briggsoft.com/dsnoop.htm)则相当便宜,只需29美元,它能够提供低级磁盘访问功能,但不支持NTFS文件系统。
如何保证安全
你需要记住的关键一点是,恢复数据远比彻底删除它要简单。如果你只是不小心删掉了某个重要的文件,那么你并不需要太过担心,有很多办法可以恢复它。但如果你想转让一台用过的电脑或者硬盘的话,你最好使用安全删除工具来覆盖硬盘的每一个扇区。重新格式化硬盘并不能保证每个扇区都被覆盖,那些隐私信息仍然有可能被访问到。
老式硬盘和现代硬盘的区别
在老式硬盘中,数据可能被隐藏在扇区间隙中。老式硬盘的每个磁道都包含相同数量的扇区,这样一来外圈磁道的扇区显然要比里圈磁道的扇区大很多。因此外圈磁道的扇区之间较大的缝隙就可能被用来保存隐藏的数据。而现代的硬盘都采用了区域存取技术,每个磁道的扇区数量并不相等,从而消除了这部分浪费的硬盘空间。
如果仅仅依靠Windows自身所附带的那些工具,你将无法挽回已经从“回收站”中清空的被删除文件。但实际上还有别的办法。即便是数据已经被覆盖、硬盘被重新格式化、引导扇区遭到破坏或是磁盘控制器失灵,只要有专门的硬件和软件,你就能恢复任何文件。
这是一把双刃剑,如果你想要恢复至关重要的文件,这无疑是个好消息,但如果你想防止别人窃取你的私人数据,这将是一条坏消息。不过我们刚才讨论的只是理论上的可能性,实际上的解决方案将取决于你愿意付出多少时间和金钱。
为了理解被删除的数据如何被恢复,你必须首先理解它们是怎样被存储的。硬盘是由一组盘片构成。数据被保存在盘片的同心圆上,这些同心圆被称为“磁道”。硬盘的读写头在盘片表面上方移动从而访问硬盘的不同部分。由于硬盘上任何地方的数据都能够被直接访问到,因此文件中的每一块数据并不一定要按顺序存放,它们可以保存到任何地方。
一般来说,数据在硬盘上是按照簇来进行存放的。簇的大小与操作系统以及逻辑分区的大小有关。如果硬盘的簇大小为4K,那么即便是1K的文件也要占据4K的空间。而那些大文件则将由成百上千的簇来保存,这些簇遍布在整个硬盘中。操作系统中的文件系统组件会管理和跟踪这些分离的簇以保证文件的正确存取。
Microsoft Windows系统使用过的文件系统有三种。第一种是FAT(文件分配表),它早在DOS时代就开始被广泛使用;FAT32是从Windows 95时代开始被采用的,而NTFS则是由Windows NT 4.0引入的。这三种文件系统的基本组织策略是一致的。每个文件夹中存放着若干个文件,每个文件则包含了一个指向文件起始簇的指针。起始簇的FAT字段中包含了指向下一个簇的指针,依此类推,直到最后一个带有文件结束标记的簇。
数据并未消失
如果你使用通常的Windows操作来删除某个文件,实际上这些信息并没有被删除。首先,如果你通过Windows资源管理器删除文件,文件会被转移到“回收站”。即便你清空“回收站”,该文件也只是仅仅被忽略而已。该文件名的第一个字母会被改成特殊字符,该文件原先所占用的簇会被标记为可用簇,但原来的数据并没有马上被删除。直到下一次你保存某个文件时,如果这些簇被用到,才会用新的数据覆盖老的数据。在此之前,数据一直会保持完好无损。如果使用一种工具来绕过操作系统对硬盘直接进行读取就能取回这些数据。在最近一次的数据恢复工具评测中我们考察了四个这样的软件(www.pcmag.com/print_article/0.3048.a=41827.00.asp)。我们把编辑选择奖授予了Kroll Ontrack公司的EasyRecovery Lite 6.0(http://www.ontrack.com/)。
如果你想恢复某个不小心被删除的重要文件,就必须注意不要去覆盖它。你应该立刻停止使用计算机并且不要往硬盘上保存任何数据,也不要试图安装恢复工具,因为任何写入硬盘的操作都有可能覆盖你想要恢复的文件所在的簇。如果原来没有安装过恢复程序,就从软盘或者光盘运行它。
如果数据被覆盖
如果原来文件的数据被覆盖,你就无法通过软件来访问它了。但这并不意味着文件数据完全不能恢复。有两种办法可以用来读取硬盘上被覆盖的数据。
当硬盘读写头在硬盘上写入一位数据时,它使用的信号强度只是用来写入一位数据,并不会影响到相邻位的数据。由于这个写入信号并不是很强,因此你可以通过它写入的数据位的绝对信号强度来判断此前该数据位所保存的是何种数据。换句话说,如果二进制数据0被二进制数据1所覆盖,其信号强度会比二进制数据1被覆盖要弱一些。使用专门的硬件就可以检测出准确的信号强度。把被覆盖区域读出的信号减去所覆盖数据的标准信号强度,你就能获得原先数据的一个副本。更令人吃惊的是,这一恢复过程可以被重复7次!因此如果你想避免别人使用这种方法来窃取你的数据,你至少要覆盖该区域7次,而且每次还应该使用不同的随机数据。
第2种数据恢复技术则是利用了硬盘读写头的另一个特点:读写头每次进行写操作的位置并不一定对得十分精确。这就能让专家们在磁道的边缘侦测到原有的数据(也被称为影子数据)。只有重复地覆写数据才能消除这些磁道边缘的影子数据。
数据消除
了解到能够恢复你的重要数据固然值得欣慰。但如果你希望这些数据永远消失,恐怕就会是另一种心情了。美国国防部在《国家工业安全程序操作手册》中对硬盘数据清除作了专门的描述,这个安全标准被称为DOD 5220.22-M(www.dss.mil/isec/nispom_0195.htm)。该手册建议对所要清除的数据区进行三次覆盖,第一次使用一个8位的字符,第二次使用该字符的互补字符(即将二进制位的0、1互换),最后再使用随机字符进行覆盖。
这种方法能够达到一定的安全级别,但对于极端重要的数据,其安全性仍然是不够的。保存有极端重要数据的硬盘应该被永久消磁或者彻底销毁。对大多数人来说,多次覆盖的方法已经足够安全了,而且很多工具都提供了对这种方法的支持。
隐藏的数据
删除和覆盖文件并不能彻底清除硬盘上所有的敏感数据。你必须清除每一个扇区(用来构成簇的512字节单元),因为数据有可能隐藏在你所没有想到的地方。在大文件的最后一个簇中,常常会保存有随机的数据。因为文件的最后一部分写入硬盘时并不一定能充满整个扇区,因此系统会从内存中随机找出一些数据进行填充,这些数据被称为RAM碎片。
你很难预料这些RAM碎片中到底是何种数据,它可能是电脑最后一次启动后查看、创建或修改过的任何信息。很多安全删除软件都没有正确擦除这些RAM碎片,而这些碎片中恰恰有可能包含了你的隐私信息。
在NTFS系统中(Windows NT 4.0、2000和XP所使用的文件系统),一个文件包含多个数据流。其中一个数据流包含了文件访问权限信息,另一个则包含了实际的文件数据。另外,NTFS系统还支持附加的数据流(Alternative Data Streams,ADS),里面可以保存任何信息。
ADS最常见的用途是保存图像文件的快照。由于很多安全删除程序无法擦除ADS,因此当包含图像文件的数据流被删除之后这些图片快照仍然能够被访问到。如果想了解如何避免保存图像快照,可以参考微软知识库的319300号文章(http://support.microsoft.com/)。
潜在的危险
某些不法分子已经开始利用ADS在硬盘上隐藏某些数据或者病毒。除此之外,硬盘上的另一些区域也可能会隐藏着某些数据。通常硬盘的扇区在工厂进行低级格式化时就已经划分完毕。如果某个扇区被标记为坏扇区,那么硬盘控制器就不会去写入这些区域。由扇区组成的簇是在高级格式化时被定义的。如果在高级格式化期间发现坏扇区,那么整个簇都会被标记为坏簇。由于这个坏簇中并不是所有的扇区都无法读写,因此就给了不法分子可乘之机。
在更古老的硬盘中,数据还可能被隐藏在扇区间隙中。老式硬盘的每个磁道都包含相同数量的扇区,这样一来外圈磁道的扇区显然要比里圈磁道的扇区大很多。因此外圈磁道的扇区之间较大的缝隙就可能被用来保存隐藏的数据。而现代的硬盘都采用了区域存取技术,每个磁道的扇区数量并不相等,从而消除了这部分浪费的硬盘空间。
如果想访问硬盘的这些隐藏区域,你需要使用能够绕过操作系统直接进行硬盘存取操作的工具。专业的软件可能会相当昂贵。Guidance Software公司的EnCase Forensic Edition(http://www.guidancesoftware.com/)的价格高达2495美元。Briggs Softworks的Directory Snoop(www.briggsoft.com/dsnoop.htm)则相当便宜,只需29美元,它能够提供低级磁盘访问功能,但不支持NTFS文件系统。
如何保证安全
你需要记住的关键一点是,恢复数据远比彻底删除它要简单。如果你只是不小心删掉了某个重要的文件,那么你并不需要太过担心,有很多办法可以恢复它。但如果你想转让一台用过的电脑或者硬盘的话,你最好使用安全删除工具来覆盖硬盘的每一个扇区。重新格式化硬盘并不能保证每个扇区都被覆盖,那些隐私信息仍然有可能被访问到。
老式硬盘和现代硬盘的区别
在老式硬盘中,数据可能被隐藏在扇区间隙中。老式硬盘的每个磁道都包含相同数量的扇区,这样一来外圈磁道的扇区显然要比里圈磁道的扇区大很多。因此外圈磁道的扇区之间较大的缝隙就可能被用来保存隐藏的数据。而现代的硬盘都采用了区域存取技术,每个磁道的扇区数量并不相等,从而消除了这部分浪费的硬盘空间。