用winhex把硬碟的所有扇區全部填0 數據還能恢復嗎?如何徹底清除硬碟數據

用winhex把硬碟的所有扇區全部填0 數據還能恢復嗎?如何徹底清除硬碟數據,不硬體銷毀。如何防範用專業的設備來恢復!


看很多人還是有疑問我重寫一下這個答案,基本上是對答案中幾個鏈接中內容的翻譯和整理 閱讀英文沒有困難的同學建議直接去看原文,不用忍受我的渣翻譯……


結論:完整擦除(Wipe)1 次就足夠做到讓數據不會被恢復了,並不存在什麼「專業軟體」能夠恢復已經被覆蓋的數據。使用所謂的「專業設備」從這樣擦除過的硬碟中恢復出想要的數據也是基本上不可能的。


坊間相傳,由於傳統的機械硬碟(HDD)是通過磁性記錄數據的,即使你對硬碟進行了一次擦除(比如全盤填 0)也是可以通過特殊的設備恢復其中數據的,需要重複使用 0、1 以及隨機數據填充才能確保安全刪除。甚至還有「硬碟數據需要 35 次反覆擦除才不能被恢復」這種說法。

然而事實是這樣嗎?


Gutmann 35 pass - the Gutmann method


先說這個 Gutmann method ,Peter Gutmann 本人就已經闢謠過:

In the time since this paper was published, some people have treated the 35-pass overwrite technique described in it more as a kind of voodoo incantation to banish evil spirits than the result of a technical analysis of drive encoding techniques. As a result, they advocate applying the voodoo to PRML and EPRML drives even though it will have no more effect than a simple scrubbing with random data.In fact performing the full 35-pass overwrite is pointless for any drive since it targets a blend of scenarios involving all types of (normally-used) encoding technology, which covers everything back to 30+-year-old MFM methods (if you don"t understand that statement, re-read the paper). If you"re using a drive which uses encoding technology X, you only need to perform the passes specific to X, and you never need to perform all 35 passes. For any modern PRML/EPRML drive, a few passes of random scrubbing is the best you can do. As the paper says, "A good scrubbing with random data will do about as well as can be expected". This was true in 1996, and is still true now.

— Peter Gutmann, Secure Deletion of Data from Magnetic and Solid-State Memory, University of Auckland Department of Computer Science.

Peter Gutmann 本人都聲明了這種重複 35 次複寫的操作不會比一次單純的用隨機數據擾亂更加有效。事實上,對任何儲存設備來說,進行完整的 35 次複寫都是沒有意義的。


(翻譯到此為止,以下是我自己在胡扯)


填 0,填 1,還是隨機數據?


可能有人會揪著上面 Peter Gutmann 說的 random data 不放,說「你填 0 或者 1 是不行的,可能通過磁性殘留來讀出原來的數據」然而我還是堅持,填 0 / 1 / 隨機數據的效果不會有什麼差別。

設想一下實際的使用場景 —— 你想要擦除一塊使用過一段時間的硬碟。在你使用的過程中,刪除過的文件曾佔用過的空間會被操作系統標記為空,再有新的數據的時候如果能夠塞進這個空間里那麼這段空間就會被覆蓋掉。如果你有用過數據恢復軟體的經歷就會知道,在這種情況下已經是不能完整恢復原始的文件了,即使能夠恢復也只是沒有被覆蓋的部分。


極端點說,一塊全新的硬碟寫入單次數據之後填 0,此時在知道想要讀取的文件長度和位置的前提下試圖通過殘留磁性去恢復原有數據都是相當之困難的(我原答案裡面的鏈接,可能需要代理訪問)更不要提你是一塊使用過一段時間,在你寫入想要恢復的文件之前這個區域已經被寫入過不知多少次(極可能是被軟體的臨時文件覆蓋)的情況下再填 0 —— 我很懷疑此時的殘留磁性能提供什麼十分有價值的線索。


如果你實際對整塊硬碟進行過這種擦除動作你就會知道擦除一次會有多慢,更不要提 35 次了。當然如果只是針對單個小文件所佔的空間來說這個過程並不會太慢,如果你實在是偏執得不行就按照你堅信的那樣去複寫 35 次吧。


你能證明不存在能夠恢復被覆蓋數據的「專業軟體」嗎?


呃……我還真做不到。硬要說的話,這是惡魔的證明啊。

起碼市面上我使用過的工具沒有一款能做到這樣的魔法 —— 說到底一款軟體是否有能力讀取到硬碟上某個扇區的確切磁性我都持保留態度。即使有,我也很難相信硬碟在讀取磁性強弱的過程中會一丁點的誤差也不存在。只要有誤差 —— 你還跟我扯什麼通過殘留磁性來倒推原來的數據呢?


PS:以上內容是針對傳統的機械硬碟(HDD)來討論的,固態硬碟(SSD)因為擦除壽命有限,往往需要使用廠家提供的專用工具才能做到對每個區塊都進行擦除操作,這點還需注意。


擴展閱讀 (English):


http://superuser.com/questions/215852/is-using-multiple-passes-for-wiping-a-disk-really-necessary

ELI5:Why does it take multiple passes to completely wipe a hard drive? Surely writing the entire drive once with all 0s would be enough? from explainlikeimfive


http://www.howtogeek.com/115573/htg-explains-why-you-only-have-to-wipe-a-disk-once-to-erase-it/


—— 原答案 ——


「填完了 0 還能通過專業手段恢複數據」這種以訛傳訛的說法在今天還被人不加驗證的當作真理傳播,我也是醉了。

不管你用再專業的軟體或是硬體,從使用過一段時間後全盤填0(或者1,或者隨機數據)的硬碟上恢復出任何可用數據都是不現實的。

有興趣的話可以自己找更多的資料,我這裡就提供一個鏈接:


http://digital-forensics.sans.org/blog/2009/01/15/overwriting-hard-drive-data/ (English)


  1. 只填一遍 0 可以利用專門的工具來恢複數據,因為磁性是有殘留的
  2. 安全數據刪除我介紹過很多次了,著名的 Gutmann 方法,覆寫 35 次不同的數據來保證無法恢復

一遍0,一遍1,重複三遍。勉強恢復不了了。硬碟存儲是有磁極的。0和1好比兩個相反的方向,來回多覆蓋幾次才好


民用層面上,填零一次就無人能恢復。


不要相信電影里演的,什麼情況都可以恢復。現實中沒那麼容易的。只要清零一遍,用任何恢復軟體都恢復不了的,專業做數據恢復的人員也恢復不了。


剛好前段時間有對外網電腦進行檢查,根據我實踐填充1和0, 15次以後市面上的工具都無法恢復!


來回7遍,應該夠了。


推薦閱讀:

固態硬碟發明之前太空梭上電腦的硬碟是否在起飛時需要停轉?
聯想收購 IBM PC 業務用了 12.5 億美元,日立收購 IBM 硬碟業務用了 20 億美元,為什麼硬碟業務這麼值錢?
固態硬碟真的不需要整理碎片嗎?

TAG:網路安全 | 黑客Hacker | 信息安全 | 硬碟 | 數據恢復 |