Linux

用 dd 填充磁碟是否會安全地刪除文件?

  • January 25, 2021

我想安全地刪除我的文件而不用擔心任何人恢復它們,我知道我可以使用 shred 但即使使用 -n 1 也需要很長時間所以我想也許如果我刪除文件並使用 dd 在磁碟上寫入,填滿所有可用空間我不必使用 shred 對嗎?我相信 dd 會比 shred 快,尤其是我的文件幾乎填滿了磁碟中的大部分可用空間

那麼使用 dd 填充磁碟是否保證我的文件將被安全刪除?

這將違背網際網路上的大多數傳統智慧,但我們開始……

如果這是一個現代的旋轉磁碟,一個簡單的 dd 和 /dev/zero 就足以挫敗幾乎所有的數據恢復嘗試,即使是來自專業數據恢復公司的嘗試。使用極其昂貴的專用設備(例如政府實驗室)提取一些數據 是可能的,但幾乎任何不願意在您身上花費數百萬美元的人都無法做到這一點。(請注意,這符合任何官方的政府數據處理標準,但它確實有效。)

你在網際網路上讀到的關於這個話題的大部分智慧的問題在於,它更像是都市傳說而不是事實。如果您尋找有關此主題的實際來源,大多數人會參考1996 年發表的一篇論文,其中提到了 MFM/RLL 驅動器(IDE 之前)。此外,人們提到的大多數政府數據銷毀標準都有幾十年的歷史了。

多次擦除數據背後的邏輯歸結為殘留資訊可以留在碟片扇區之間的空間中的想法。在較舊的驅動器上,扇區的密度相對較低,碟片上有大量空白空間,這些殘留數據可能會滯留。自 1996 年以來,硬碟容量增加了幾個數量級,而碟片大小保持不變。碟片中根本沒有那麼多空白空間可以讓數據流連忘返。 如果碟片中有可用的額外空間,驅動器製造商將使用它並向您出售更高容量的磁碟。

這些安全擦除標準的智慧已被分道揚鑣,並且已經發表的論文說單次通過就足夠了

幾年前,有人發布了Great Zero Challenge,其中有人用 dd 和 /dev/zero 覆蓋了一個驅動器,並發布了一個公開的挑戰,讓某人提取數據。我記得沒有接受者。(免責聲明:此挑戰的原始網站現已消失。)

但是固態硬碟呢? 由於快閃記憶體磨損均衡、壞扇區重新映射和垃圾收集以及額外的“隱藏容量”,傳統的覆蓋方法實際上可能不會覆蓋數據(儘管它會在主機 PC 上看起來被覆蓋)。 帶 /dev/zero 的單次 dd 將阻止臨時使用者從 SSD 讀回任何數據。 但是,具有邏輯分析儀的專用攻擊者可以破解驅動器並從內部的快閃記憶體晶片中提取數據。

這個問題是不久前發現的。因此,一個名為Secure Erase的命令被添加到 ATA 標準中。驅動器中的韌體將安全地擦除所有快閃記憶體單元。大多數現代 SSD 將支持此命令。我相信它也適用於旋轉驅動器。請注意,對於最終使用者而言,此命令有時可能難以訪問。您通常需要一個特殊的實用程序才能使用它,一些 BIOS 實現了可能會妨礙您的“安全凍結”。請與 SSD 製造商聯繫以獲取實用程序。如果他們沒有一個,那麼您有可能工作的第 3 方。

請注意,有些人對驅動器韌體中內置的安全擦除功能的可靠性提出了擔憂。2011年發表的一篇論文顯示,一些驅動器在安全擦除後會留下數據。請注意,從那時起,SSD 韌體已經進步了很多。如果安全擦除對您來說是一項重要功能,我建議您從頂級製造商處購買驅動器,最好是他們的伺服器/數據中心產品線(不太可能容忍有缺陷的韌體)。

如果上述情況讓您對驅動器上剩餘的數據感到緊張,那麼您的下一個最佳選擇是多次用隨機數據填充驅動器,因為這有望覆蓋 SSD 中多餘的隱藏容量,但您不能絕對確定在不了解韌體的內部工作原理的情況下。這也會縮短 SSD 的使用壽命。

你應該從中得到什麼:

  1. 使用 dd 和 /dev/zero 或DBAN中的單通道選項覆蓋驅動器足以阻止大多數人獲取您的數據(SSD 或旋轉)。
  2. 如果您有旋轉驅動器,則可以使用多遍擦除方法。它不會傷害任何東西,但需要更長的時間。
  3. 如果您有信譽良好的製造商提供的最新老式 SSD,則應使用 ATA 安全擦除命令,最好使用製造商提供的實用程序。
  4. 如果您的驅動器不支持 ATA 安全擦除(或已知有問題),多遍擦除是您的下一個最佳選擇。
  5. 如果您需要按照特定標準擦除驅動器(例如,您的契約規定應根據 DoD 5220.22-M 擦除數據),請執行此操作,不要爭論是否有必要。
  6. 沒有什麼比物理破壞更重要了。 如果驅動器上的數據非常敏感,以至於其價值超過了驅動器本身的現金價值,您應該物理銷毀它(使用錘子、虎鉗、鑽床或發揮創意)。如果您真的很偏執,請確保驅動器的殘骸散落在廣闊的區域(例如,城市多個地方的多個公共垃圾桶)。

引用自:https://serverfault.com/questions/571000