典型的數(shù)據(jù)文件通常關聯(lián)著“元數(shù)據(jù)”,其包含這個文件的描述信息,表現(xiàn)為一系列屬性-值的集合。元數(shù)據(jù)一般包括創(chuàng)建者名稱、生成文件的工具、文件創(chuàng)建/修改時期、創(chuàng)建位置和編輯歷史等等。幾種流行的元數(shù)據(jù)標準有 EXIF(圖片)、RDF(web資源)和DOI(數(shù)字文檔)等。
雖然元數(shù)據(jù)在數(shù)據(jù)管理領域有它的優(yōu)點,但事實上它會危害你的隱私。相機圖片中的EXIF格式數(shù)據(jù)會泄露出可識別的個人信息,比如相機型號、拍攝相關的GPS坐標和用戶偏愛的照片編輯軟件等。在文檔和電子表格中的元數(shù)據(jù)包含作者/所屬單位信息和相關的編輯歷史。不一定這么絕對,但諸如metagoofil一類的元數(shù)據(jù)收集工具在信息收集的過程中常最作為入侵測試的一部分被利用。
對那些想要從共享數(shù)據(jù)中擦除一切個人元數(shù)據(jù)的用戶來說,有一些方法從數(shù)據(jù)文件中移除元數(shù)據(jù)。你可以使用已有的文檔或圖片編輯軟件,通常有自帶的元數(shù)據(jù)編輯功能。在這個教程里,我會介紹一種不錯的、單獨的元數(shù)據(jù)清理工具,其目標只有一個:匿名一切私有元數(shù)據(jù)。
MAT(元數(shù)據(jù)匿名工具箱)是一款專業(yè)的元數(shù)據(jù)清理器,使用Python編寫。它屬于Tor旗下的項目,而且是Live 版的隱私增強操作系統(tǒng) Trails 的標配應用。
與諸如exiftool等只能對有限種類的文件類型進行寫入的工具相比,MAT支持從各種各樣的文件中消除元數(shù)據(jù):圖片(png、jpg)、文檔(odt、docx、pptx、xlsx和pdf)、歸檔文件(tar、tar.bz2)和音頻(mp3、ogg、flac)等。
在Linux上安裝MAT
在基于Debian的系統(tǒng)(Ubuntu或Linux Mint)上,已經(jīng)打包好MAT,所以安裝很直接:
$ sudo apt-get install mat
在Fedora上,并沒有預先生成的MAT軟件包,所以你需要從源碼生成。這是我在Fedora上生成MAT的步驟(不成功的話,請查看教程底部):
$ sudo yum install python-devel intltool python-pdfrw perl-Image-ExifTool python-mutagen$ sudo pip install hachoir-core hachoir-parser$ wget https://mat.boum.org/files/mat-0.5.tar.xz$ tar xf mat-0.5.tar.xz$ cd mat-0.5$ python setup.py install
使用MAT-GUI匿名元數(shù)據(jù)
一旦安裝好,通過GUI和命令行都可以使用MAT。輸入這個命令啟動MAT的GUI:
$ mat-gui
嘗試清理一個包含如下內置元數(shù)據(jù)的實例文檔文件(如private.odt)。
點擊“添加”按鈕來添加需要清理的文件到MAT中。一旦載入文件,點擊“確認”按鈕對所有隱藏的元數(shù)據(jù)信息進行掃描。
只要元數(shù)據(jù)被MAT檢測到,“State”狀態(tài)就會被標記成“Dirty”。雙擊文件可以查看檢測到的元數(shù)據(jù)。
點擊“清理”按鈕來清除文件中的元數(shù)據(jù)。MAT會自動清空文件中的所有私有元數(shù)據(jù)字段。
清除后的狀態(tài)中不包含任何私有可辨識的痕跡:
從命令行匿名元數(shù)據(jù)
$ mat -c .
正如前面提到的,另一種調用MAT的方式是從命令行,使用mat命令可達到。
為了檢查任何敏感的元數(shù)據(jù),先前往文件所在的目錄,然后運行:
$ mat -c .
這樣會掃描當前目錄和其子目錄下的所有文件,并報告它們的狀態(tài)(已清理或未清理)。
你可以使用“-d”選項來查看檢測到的真實元數(shù)據(jù):
$ mat -d input_file>
如果不為mat命令提供任何選項,默認操作會移除文件的元數(shù)據(jù)。如果要在清理的過程中保留原始文件的備份,使用“-b”選項。下面命令會清除所有文件的元數(shù)據(jù),并將原始文件存儲為“*.bak”文件。
$ mat -b .
查看所支持的文件類型,請運行:
$ mat -l
故障排除
當前我在Fedora上使用編譯版本的MAT遇到了下列問題。當我嘗試在Fedora清除歸檔/文檔文件的元數(shù)據(jù)時(如.gz、.odt、*.docx),MAT因為下列錯誤失敗。如果你知道如何解決這個問題,請在評論里回復我。
File "/usr/lib64/python2.7/zipfile.py", line 305, in __init__ raise ValueError('ZIP does not support timestamps before 1980')ValueError: ZIP does not support timestamps before 1980
總結
MAT是一款簡單但非常好用的工具,用來預防從元數(shù)據(jù)中無意泄露私人數(shù)據(jù)。請注意如果有必要,文件內容也需要保護。MAT能做的是消除與文件相關的元數(shù)據(jù),但并不會對文件本身進行任何操作。簡而言之,MAT是一名救生員,因為它可以處理大多數(shù)常見的元數(shù)據(jù)移除,但不應該只指望它來保證你的隱私。[譯者注:養(yǎng)成良好的隱私保護意識和習慣才是最好的方法,謝謝閱讀,希望能幫到大家,請繼續(xù)關注腳本之家,我們會努力分享更多優(yōu)秀的文章。