這個問題已經被問與過去不同程度的成功刪除文件...安全地從ext3的Linux的
是否有工具或C/C++ UNIX調用的函數,這將使我的檢索位置文件的磁盤?不是文件的某個虛擬地址,而是文件駐留的磁盤/扇區/塊?
此處的目標是啓用覆蓋磁盤上存在的實際位。我可能需要一種方法來繞過內核的地址疊加。我願意考慮基於x86 asm的解決方案...
但是,我覺得有一些工具可以很好地完成這項工作。
感謝您對此的任何意見。
這個問題已經被問與過去不同程度的成功刪除文件...安全地從ext3的Linux的
是否有工具或C/C++ UNIX調用的函數,這將使我的檢索位置文件的磁盤?不是文件的某個虛擬地址,而是文件駐留的磁盤/扇區/塊?
此處的目標是啓用覆蓋磁盤上存在的實際位。我可能需要一種方法來繞過內核的地址疊加。我願意考慮基於x86 asm的解決方案...
但是,我覺得有一些工具可以很好地完成這項工作。
感謝您對此的任何意見。
安全地刪除文件,只能在非常特殊的情況:
有操作系統和實際存儲介質之間的間接沒有不受控制層。
在不能再假定的現代系統上。帶有固件耗損均衡代碼的SSD驅動器不能像這樣工作;他們可能會隨意移動或複製數據而無需日誌記錄或外部控制的可能性。即使磁盤驅動器也會經常將現有數據保留在發生故障後重新映射的扇區中。混合驅動器同時執行...
ATA規範確實支持SECURE ERASE命令,該命令擦除整個驅動器,但我不知道現有實現有多徹底。
文件系統驅動程序始終具有穩定且唯一的文件到物理塊的映射。
我相信ext2fs
確實有這個功能。我也認爲ext3fs
和ext4fs
在默認日誌記錄模式下也可以這樣工作,但在使用data=journal
選項裝載時不能使用此選項,該選項允許將文件數據存儲在日記中,而不僅僅是元數據。
另一方面,reiserfs
的工作方式不同,因爲它存儲少量數據以及元數據,除非使用notail
選項進行安裝。
如果這兩個條件都滿足,那麼程序如shred
可以能夠通過重寫其內容多次以安全地刪除文件的內容。
這種方法仍然沒有考慮到:
備份
虛擬化存儲
遺留下來的交換空間
數據...
底線:
可以不再認爲安全的刪除是可能的。最好假設這是不可能的,並使用加密;無論如何,如果您正在處理敏感數據,您應該可以使用它。
有一個原因,關於敏感數據的協議要求對存儲介質進行物理破壞。有一些公司,實際上他們的消磁硬盤驅動器,然後焚燒遺體前撕碎他們...
謝謝你提供一個非常翔實的文章。一種'安全'刪除一個文件的方法可能是將所有已知的好文件(目標文件除外)複製到外部磁盤上,擦除包含目標文件的磁盤(將原始垃圾寫入整個文件),然後移動將你拷貝的文件放回到目標磁盤上......假設目標磁盤完全被擦除,我覺得這會起作用。 我絕對同意在處理敏感數據時使用加密是必要的。我更多的是出於好奇而問,而不是因爲我自己需要這樣做。 – 2012-08-10 02:57:01
@DeshBanks:只要你的文件沒有出現在重新映射的扇區中,你提議的方法* *可能*工作,在這種情況下,你會依賴於ATA SECURE ERASE徹底,這是我不願意承擔的。 。 – thkala 2012-08-10 06:32:28
這些問題即使包括關於編程的API函數,詢問意見,重量似乎是工具,就是爲什麼我投票把它移到http://superuser.com/。 – 2012-08-04 12:40:18
[shred](http://unixhelp.ed.ac.uk/CGI/man-cgi?shred+1)已經這樣做了,我相信。 – 2012-08-04 12:43:22
如果考慮到數據在某些媒體上可能沒有固定位置這一事實,並且並非所有媒體都有扇區和塊的概念(最接近通用位置描述符將是在一維比特流中偏移)。現在,如果你願意把你的問題的範圍限制在標準的機械硬盤驅動器上...... – Thomas 2012-08-04 12:44:30