有時我們要把硬盤或者移動存儲設備交給其他人(例如用戶或者合作伙伴),很多人以為自己將電腦中的信息刪除就沒事了,筆者建議您好好審查自己是否真正已經將任何可能暴露您的個人隱私的數據刪除了。本文介紹幾個 Linux 安全刪除工具的使用方法幫助用戶徹底刪除數據。
普通 Linux 用戶刪除磁盤數據的常規方法主要有:刪除和格式化。
由於磁盤可以重復使用,前面的數據被後面的數據覆蓋後,前面的數據被還原的可能性就大大降低了,隨著被覆蓋次數的增多,能夠被還原的可能性就趨於 0,但相應的時間支出也就越多。密級要求的高低對應著不同的標准,低密級要求的就是一次性將磁盤全部覆蓋;高密級要求則須進行多次多規則覆蓋。 通常有兩個參考標准: 美國國防部 DOD 的 5220.22M 標准;北約 NATO 的標准 。參考標准實質就是多次覆蓋的標准,規定了覆蓋數據的次數,覆蓋數據的形式。
覆蓋是指使用預先定義的格式——無意義、無規律的信息來覆蓋硬盤上原先存儲的數據。這是銷毀數據的既有效又可操作的方法。如果數據被“成功”的完全覆蓋,即使只覆蓋一次,也可以認為數據是不可恢復的。硬盤上的數據都是以二進制的“1”和“0”形式存儲的。完全覆蓋後也就無法知道原先的數據是“1”還是“0”了,也就達到了清除數據的目的。
覆蓋的方法: 根據覆蓋時的具體順序,軟件覆蓋分為逐位覆蓋、跳位覆蓋、隨機覆蓋等模式,根據時間、密級的不同要求,可組合使用上述模式,可靠的專業清除軟件應同時支持多種模式。
shred 功能簡單的說就是塗鴉,把一個文件用隨機的字符碼篡改的一塌糊塗。其宗旨就是更安全地幫助刪除一個機密文件。shred 命令的功能是重復覆蓋文件,使得即使是昂貴的硬件探測儀器也難以將數據復原,這條命令的功能足夠適合實現文件粉碎的功效。
首先安裝:
#apt-get install coreutils
命令格式: shred [ 選項 ]... 文件 ...
長選項必須使用的參數對於短選項時也是必需使用的。
-f, --force 必要時修改權限以使目標可寫
-n, --iterations=N 覆蓋 N 次,而非使用默認的 3 次
--random-source= 文件 從指定文件中取出隨機字節
-s, --size=N 粉碎數據為指定字節的碎片
-u, --remove 覆蓋後截斷並刪除文件
-v, --verbose 顯示詳細信息
-x, --exact 不將文件大小增加至最接近的塊大小
-z, --zero 最後一次使用 0 進行覆蓋以隱藏覆蓋動作
應用實例:
使用方法舉例如下:
粉碎一個名為 test.txt 的文件命令是:
$shred –u test.txt
粉碎多個文件的命令是:
$shred –u test1.txt test2.txt
覆蓋 IDE 接口的第一個磁盤設備的第一分區
$shred /dev/hda0
覆蓋 RAID 分區
$ shred -vfz -n 10 /dev/md1
wipe 使用 gutmann 方式,它的理論依據是 1996 年奧克蘭大學計算機科學學院皮特 . 古特曼教授在第六屆 usenix 安全會議上所作的論文,《安全刪除磁固存儲器上的數據》 http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html 。這是迄今為止最安全的數據刪除方法,覆蓋數據 35 次使得任何還原數據的企圖都是徒勞的。 wipe 采用了重復寫上 34 次以隨機數生成數據的 gutmann 方式,清除的對象可以是單一檔案、數據夾和整個硬盤。隨著硬盤容量愈來愈大,重寫時間也會愈來愈長,所以 wipe 也提供了只重復寫入 4 次的快速模式。
首先安裝:
#apt-get install wipe
使用方法舉例如下:
刪除一個文件,如需對某個機密的文件進行安全刪除,您可以執行以下命令:
#wipe file.txt
刪除目錄, wipe 也支持對目錄進行安全刪除操作,您只需添加 r 選項即可,例如:
#wipe -r /home/user/test/
刪除整個分區, wipe 也支持對分區例如:
# wipe /dev/sdb1