刪除文件或者重新格式化磁盤並不會破壞敏感數據,即使被刪除這些數據也可以恢復。徹底刪除某些無用數據是好事,但是如果刪除的是財務數據、銀行帳號密碼或者分類公司信息而無法徹底刪除就很危險,本文將介紹一些能夠在Linux Ubuntu操作系統中安全刪除文件的工具。
Shred
雖然shred命令有一些限制,但是shred命令可以很有效地徹底刪除文件,使文件很難或者無法恢復。Shred是這樣進行徹底刪除的:通過使用數據模式對文件進行反復重寫以實現最大程度的摧毀,這樣即使使用高靈敏度的數據恢復設備也很難恢復數據了。
使用rm命令刪除文件實際上並沒有毀壞數據,它只是毀壞列有文件位置的索引,使文件的數據塊還可以重復使用。因此,使用rm命令刪除的文件可以很容易使用特殊設備或者命令進行恢復,前提條件是文件釋放的數據庫還沒有被重復利用。然而,如果在完全是硬盤驅動(HDD)的動態系統,釋放的空間只能在幾分鐘或者幾秒鐘內進行恢復。
Shred 語句
shred[option(s)]file(s)_or_devices(s)
可用選項
-f, –force – 更改權限允許寫入(如有必要)
-n, –iterations=N – 重寫N次而不是默認的(25)次
-s, –size=N – 將文件粉碎為很多字節(可使用後綴如K、M、C等)
-u, –remove – 重寫後截短和移除文件
-v, –verbose – 顯示進程
-x, –exact - do not round file sizes up to the next full block
-z, –zero - add a final overwrite with zeros to hide shredding
-shred 標准輸出
–help – 顯示幫助並退出
–version – 輸出版本信息並退出
Shred示例
1)下列命令能夠用於安全刪除三個文件夾:file1、file2和file3:
shredfile1file2file3
2) 下列命令將刪除第一個HDD的第七個分區上的數據:
shred/dev/hda7
3)可以利用下列命令來擦除你在第一個盤的軟盤中創建的文件系統路徑,該命令需要花費20分鐘來擦除“1.44MB”(實際為1440KiB)的軟盤:
shred–verbose/dev/fd0
4) 要想刪除硬盤上所選分區的數據,可以使用下列命令:
shred–verbose/dev/sda5
在Ubuntu的Nautilus菜單中添加shred
首先在終端使用下列命令安裝nautilus-actions數據包:
sudoaptitudeinstallnautilus-actions
現在打開Nautilus Actions Configuration:System->Preference->Nautilus Actions Configuration
打開後你會看到類似下圖的窗口,點擊添加。
現在輸入以下信息:
Label:Shred
Tooltip:shredutilitytosecurelyerasefiles
Icon:gtk-dialog-warning
Path:shred
Parameters:-f-u-v-z%M
點擊Conditions條目,勾選“Appears if selection contains”上面的“Only files”( 也可以選擇文件和文件夾),勾選“Appears if selection has multiple files or folders”,單擊確定。
添加後你將看到如下窗口,點擊關閉。
打開終端,運行下列程序對nautilus進行更新:
nautilus-q
nautilus
這樣將打開nautilus窗口,現在右擊單擊任何文件,就能在菜單中看到shred命令選項。
wipe
wipe是一種小命令,能夠安全刪除磁性媒介上的文件,該命令能夠在各種unix平台進行匯編,包括Linux 2.*、(Open+Net+Free)BSD、 aix 4.1、 SunOS 5.5.1以及Solaris 2.6等。從磁性媒介上恢復已經被擦除的數據要比人們想象的容易得多,一種稱為“Magnetic Force Microscopy (MFM)”的技術能夠恢復寫入磁盤的最後2層或者3層的數據。而wipe命令能夠向已刪除的文件反復寫入特殊圖案,使用fsync() call和/或 O_SYNC bit強迫磁盤訪問。
在Ubuntu中安裝wipe
sudoaptitudeinstallwipe
wipe語句
wipe[options]path1path2…pathn
Wipe示例
擦除/home/berke/plaintext/下的每個文件和每個目錄(option -r),常規文件將使用34次passes擦除,它們的大小也將驟減幾倍。而特殊文件(字符和塊設備、FIFO等)則不會這樣。所有目錄條目(文件、特殊文件和目錄)將被重新命名10次,然後用unlink操作符刪除文件。不被允許的操作將進行chmod()處理(option -c).這些都不需要用戶確認(option -f):
wipe-rcf/home/berke/plaintext/
假設/dev/hda3是與主要IDE界面的主盤第三區相對應的,則將在快速模式(option -q)下被擦除,例如,使用四種任意passes。Inode不會被重新命名或者unlink,在開始前,系統將要求輸入“確認”:
wipe-kq/dev/hda3
wipe從來不會按照symlink進行文件刪除,除非用戶明確要求使用symlink,如果你想要擦除/dev/floppy,而它正是到/dev/fd0u1440的symlink,則需要明確 –D選項,在開始前,系統將要求輸入“確認”:
wipe-kqD/dev/floppy
在這裡,wipe將遞歸式地(option –r)刪除/var/log下的數據,而非/var/log之外的數據。這將不再是chmod(),而會變得有點復雜(option –i)。而且因為-f選項,系統不會要求用戶輸入“確認”:
wipe-rfi>wipe.log/var/log/*
根據操作系統的不同特質,要想獲取特定設備可能包含的byte數量並不是易事(事實上,這個數字是變化的)。這就是為什麼有時候需要告訴wipe擦除byte數量的原因,也是-l option的目的。另外,也可以使用b,K,M和G作為乘法器,分別對應2^9 (512)、2^10 (1024或者Kilo)、2^20 (Mage)以及2^30 (Giga)bytes。甚至還可以聯合兩個乘法器,這樣1M416K = 1474560 bytes:
wipe-Kq-l1440k/dev/fd0
在Ubuntu的Nautilus菜單中添加Wipe
首先在終端使用下列命令安裝nautilus-actions數據包:
sudoaptitudeinstallnautilus-actions
現在打開Nautilus Actions Configuration:System->Preference->Nautilus Actions Configuration
輸入以下信息:
Label:Wipe
Tooltip:Wipeutilitytosecurelyerasefiles
Icon:gtk-dialog-warning
Path:wipe
Parameters:-rf%M
點擊Conditions條目,勾選“Appears if selection contains”上面的“both”
勾選“Appears if selection has multiple files or folders”,單擊確定。
打開終端,運行下列程序對nautilus進行更新:
nautilus-q
nautilus
這樣將打開nautilus窗口,現在右擊單擊任何文件,就能在菜單中看到wipe命令選項。
Secure-Delete安全刪除工具
該軟件包包含很多安全刪除工具,這些工具能夠安全清除文件數據、釋放磁盤空間、swap和memory。
Secure-Delete工具利用先進的技術對文件進行永久性刪除,是非常實用的工具。想在Ubuntu中安裝Secure-Delete工具,需要運行下列命令:
sudoaptitudeinstallsecure-delete
Secure-Delete軟件包中包含下列命令:
srm(Secure remove) –用於刪除硬盤上現有的文件或者目錄。
smem(Secure memory wiper) – 用於清除計算機內存(RAM)的數據痕跡。
sfill(Secure free space wiper) – 用於清除磁盤可用空間的數據痕跡。
sswap(Secure swap wiper) – 用於刪除swap分區所有數據痕跡。
srm - Secure remove安全移除
srm通過覆蓋、重命名和unlink前截斷數據來刪除指定的文件,這可以防止其他人利用命令恢復或復原文件。
srm,像每一個使用getopt函數解析句法的程序一樣,可以讓用戶使用— option來表明所有句法都是非選項。想要移除當前目錄中‘-f’文件,可以輸入“srm — -f”或者“srm ./-f”。
srm 語句
srm[OPTION]…FILE…
可用選項
-d, –directory – 忽略(與rm的兼容性)
-f, –force – 忽略不存在的文件,從不提示
-i, –interactive – 在任何清除操作前的提示
-r, -R, –recursive – 遞歸地移除目錄內容
-s, –simple – 僅使用隨機數據的單一pass進行覆蓋
-m, –medium – 使用7 US DoD兼容 passes(0xF6,0×00,0xFF,random,0×00,0xFF,random)重寫文件
-z, –zero – 覆蓋文件後,文件使用的zero塊
-n, –nounlink – 覆蓋文件,但是並不對文件重新命名或者unlink
-v, –verbose – 顯示正在進行的操作
–help – 顯示幫助並退出
–version – 輸出版本信息並退出
Srm示例
使用srm刪除文件:
srmmyfile.txt
使用srm刪除目錄
srm-rmyfiles
smem - Secure memory wiper安全內存擦除器
smem旨在刪除仍以安全方式存在內存的數據,這些數據不能被黑客、執法人員或者其他威脅恢復的。請注意,有了新的SDRAM芯片,數據不會消亡而將保持靜態,很容易被提取必要的信息!這種擦除機制是基於第六次Usenix安全專題討論會上由Peter Gutmann發表的“從磁性和固態內存安全刪除數據” 文件,Peter Gutmann是著名的譯解密碼專家。
smem 語句
smem[-f][-l][-l][-v]
可用選項
-f – 快速(和不安全模式): no /dev/urandom。
-l – 降低安全性。只寫了兩個passes:0×00和任意pass
-l -l 再次降低了安全性:只寫入了0×00 pass
-v – 詳細模式
sfill - secure free space wipe安全可用空間擦除
sfill旨在刪除仍以安全方式存在於可用空間媒介上的數據,這些數據不能被黑客、執法人員或者其他威脅恢復的。這種擦除機制是基於第六次Usenix安全專題討論會上由Peter Gutmann發表的“從磁性和固態內存安全刪除數據” 文件,Peter Gutmann是著名的譯解密碼專家。
Sfill語句
sfill[-f][-i][-I][-l][-l][-v][-z]directory/mountpoint
可用選項
-f -快速(和不安全模式): no /dev/urandom,沒有同步模式
-i – 僅清除可用inode空間,而不是可用磁盤空間
-I -僅清除可用磁盤空間,而不是可用inode空間
-l -降低安全性。只寫了兩個passes:0xff的pass和隨機值的最後模式
-l -l再次降低了安全性:只寫入了隨機pass
-v -詳細模式
-z – 使用0擦除最後的寫入,而不是隨機數據
directory/mountpoint是在文件系統中用戶所創建的文件的位置,應該位於用戶想寫入的分區。
sswap - Secure swap wiper安全swap擦除器
sswap旨在刪除仍以安全方式存在於swap空間的數據,這些數據不能被黑客、執法人員或者其他威脅恢復的,這種擦除機制是基於第六次Usenix安全專題討論會上由Peter Gutmann發表的“從磁性和固態內存安全刪除數據” 文件,Peter Gutmann是著名的譯解密碼專家。
Sswap語句
sswap [-f] [-l] [-l] [-v] [-z] swapdevice
可用選項
-f -快速(和不安全模式): no /dev/urandom,沒有同步模式
-l -降低安全性。只寫了兩個passes:0xff的pass和隨機值的最後模式
-l -l 再次降低了安全性:只寫入了隨機值的pass
-v – 詳細模式
-z -使用0擦除最後的寫入,而不是隨機數據
Sswap示例
在開始使用sswap前,你必須禁用swap分區,可以使用下列命令來查看安裝的swap設備:
cat/proc/swaps
使用下列命令禁用swap:
sudoswapoff/dev/sda3
/dev/sda3 – 這是我的swap設備
禁用swap設備後,就可以使用下列命令用sswap擦除它:
sudosswap/dev/sda3
完成上述命令後,需要使用下列命令重新啟用swap:
sudoswapon/dev/sda3
其他工具
DBAN
Darik的Boot和Nuke (“DBAN“)是獨立的啟動盤,能夠安全清除大多數計算機的硬盤數據。DBAN能夠自動完全刪除它檢查到的任何硬盤數據,這也使DBAN成為刪除大量數據或者緊急數據刪除的實用工具。