如何以無法恢復的方式刪除檔案?

如何以無法恢復的方式刪除檔案?

我在 java 中實作了自己的 aes 密碼版本,以擁有一個獨立於平台的加密應用程序,該應用程式不依賴正在使用的 jvm 中的可用密碼。

該應用程式應使用此密碼來加密檔案並將其儲存在硬碟上。

問題:以無法恢復的方式刪除文件

用戶現在必須能夠安全地刪除其原始文件,因此在不知道加密金鑰的情況下無法恢復該文件。為此,應用程式必須使用隨機資料多次覆蓋該文件,最後將其從系統中刪除。

但 Windows 等系統在保護加密資料方面又有另一個陷阱。從 Windows Server 2003 開始,使用卷影複製技術。因此,Windows 仍然可以隱藏已刪除檔案的舊版本。

我現在的問題是:

  • Mac 或 Linux Mint/Ubuntu 是否使用類似的技術?
  • 是否有某種(獨立於平台的)方法來刪除檔案而無法恢復它們?

答案1

在沒有對磁碟的區級存取和文件系統知識的情況下,可驗證地防止文件取消刪除的唯一方法是開啟一個文件,向其中寫入隨機數據,直到磁碟已滿,然後刪除該文件。如果事情被掩蓋,這可能沒有幫助。

如果使用者無法取得金鑰,那麼檔案中的資料就沒用了,您也不必擔心刪除它。如果文件的長度可能會洩漏訊息,請在寫入之前填充資料。

如果您只希望使用單一金鑰來加密/解密該文件,那麼您需要從上游主金鑰派生唯一的會話金鑰。

請注意,如果您將金鑰或用於派生金鑰的內容儲存在與密文相同的位置,那麼您正在實作一個從根本上被破壞的系統,並且最終總是可以破解的。

答案2

不幸的是,沒有辦法解決這個問題。內建作業系統軟體或第三部分工具的各種實作旨在保留數據,以便被恢復。您在應用程式中無法執行任何操作來覆蓋此設定。文件版本控制、卷影副本、備份等將製作文件的副本。

您唯一能做的就是將檔案儲存在沒有「備份」的裝置或磁碟區上。

相關內容