Tuesday, February 10, 2015

[How To] TrueCrypt使用教學 - 重要資訊的加密保險箱

更新說明


我在2013年八月的時候寫了這篇關於TrueCrypt的使用教學,但從去年(2014)五月下旬開始,TrueCrypt的首頁出現了"Using TrueCrypt is not secure as it may contain unfixed security issues"這項警告,作者解釋道,隨著微軟的Windows XP於2014年5月停止支援,且Vista之後的Windows作業系統已經整合了夠好的加密解密功能BitLocker(但這該死的玩意只有旗艦版企業版的使用者能夠使用),因此原作者David將終止TrueCrypt這十年來的開發與維護。

這件事情在當時引起了社群的軒然大波,一開始有人質疑是遭到駭客惡意攻擊,但稍後透過數位簽章的比對,以及Steven Barnhart (@stevebarnhart)Matthew Green (@matthew_d_green)透過原本開發者所使用的電子郵件信箱與開發者"David"取得聯絡,證實了這則訊息應是由Truecrypt的開發者所發布,對這來龍去脈感興趣的使用者可以參考這篇文章:"True Goodbye: ‘Using TrueCrypt Is Not Secure"。

然而,除了TrueCrypt不再繼續開發維護之外,開發者也將原本存在sourceforge.net上頭的歷史檔案砍得一乾二淨,除了最後發布的7.2版之外使用者無法抓到其他版本,但7.2版基本上只留下解密功能,因此公認的TrueCrypt最後版本為2012年八月發布的7.1a版,想要下載7.1a版的使用者可以到GRC架設的"TrueCrypt Final Version Repository page"(此網站與我電腦內保留的檔案Hash值相同)或是到FileHippo(但FileHippo只提供Windows的版本)下載。

不過值得慶幸的是,目前已經有其他開發者出來建立TrueCrypt的新分支:VeraCrypt。這個後起之秀修正了一些安全性問題,並且在輸入密碼解密時加入延遲的功能,當使用者輸入錯誤的密碼時,必須要等待一段時間才能輸入,這項新功能提高了VeraCrypt被暴力破解的難度,而且由於是fork自TrueCrypt,因此能相容由TrueCrypt產生的檔案,而且操作模式目前也沒什麼太大的變化,因此我建議使用者可以從TrueCrypt轉換到VeraCrypt了,這是VeraCrypt的版本資訊頁面

基本資訊

建立資料加密區(Volume)

  1. 到truecrypt.org下載最新版的TrueCrypt並安裝。

  2. 打開TrueCrypt之後,會在Volume區塊上方看到一個叫做Create Volume,點擊他開始創建資料加密區(Volume)

  3. TrueCrypt支援三種不同的Volume:獨立檔案、非系統切割區、將系統切割區或整個系統加密。這裡我們選擇第一項,"Create an encrypted file container"。未來電腦若需要重灌,獨立加密檔案的作法會比較方便使用者備份。

  4. 接下來會詢問是要用Standard TrueCrypt volume或Hidden TrueCrypt volume兩種,Hidden TrueCrypt Volume在安全性上比較強,但對第一次使用的人來說先用Standard TrueCrypt Volume就好,未來還有更進一步的需要再創新的TrueCrypt Volume

    ◎補充,我看到有人對Hidden Volume做出簡單易懂的描述:

    用一個大箱子(加密容器)裝東西(需要加密的文件)這時候就是標準模式。如果大箱子(加密容器)裡面還有一個小箱子(隱藏的加密容器)來區別裝的東西,那就是隱藏式的。但是兩者從外表看都只是一個箱子。

    出處:進階檔案加密之TrueCrypt術 — 設定篇

  5. 創建Volume的時候,建議除了檔案名稱之外,最好也給Volume一個副檔名,譬如 .dat,.cfg,,.sav 諸如此類的副檔名,可以降低被猜出是TrueCrypt檔案的可能性。

  6. TrueCrypt提供三種基本的演算法,AES、Serpent、TwoFish。這三種演算法都是當年美國國家標準技術研究所招標高階加密演算法時的候選人,因此這三個演算法都有一定的強度,只選其中一個演算法來進行加密強度也足夠,如果要提升加密強度,則可以選擇兩種以上的演算法組合,但請考慮到電腦本身的運算速度,"Benchmark"提供的數據可以讓使用者作為參考。

    至於雜湊演算法,提供RIPEMD-160、SHA-512、Whirlpool三種方法,任選一種即可。

    如果想要稍微了解這些演算法的基本概念可以參照:
    讓你的資料連 FBI 都無法解開!TrueCrypt 加密軟體原理介紹(1/3)

  7. 接下來的步驟是選擇Volume的大小。如果是個人使用TrueCrypt Volume的大小最大設512MB就綽綽有餘,個人用來儲存私密資料的Volume大小僅50M,但如果是工作上有另外的需要,再依照需要建立比較大的Volume。

    ※Volume容量要設比自己預期大小稍大,否則會因為Cluster大小不同而有所損失。

  8. 終於到了設定密碼的部分,TrueCrypt下面對於密碼的建議寫的落落長,像是盡可能不要含有字典中找得到的單字(避免密碼遭到字典檔攻擊)、不要包含姓名或者出生年月日、然後密碼最好區分大小寫、並且包含!@#$%^...等特殊字元、最後密碼長度要大於20個字元,字元越多則密碼強度越強,TrueCrypt最多支援到64個字元。

    不過除了用密碼保護之外,TrueCrypt還支援用keyfile。簡單來講,如果有設定keyfiles,其他使用者若沒有掛載正確的keyfile(s),取得密碼也無法開啟加密資料區(Volume)

    按下Keyfiles按鈕之後,會看到這樣的對話視窗,TrueCrypt支援三種keyfiles:Files、Path、Token Files。Token Files是利用Secuirty Token和Smart Card來作為keyfiles,建議需要比較高安全性的使用者再使用這個選項,一般使用者用Files與Path的方式即可。

    KeyFiles視窗的右下角有一個:Generate Random Keyfile,點下去會跳出一個視窗用來產生新的keyFile。使用者只要在這個視窗的範圍內不斷的移動你的滑鼠即可,移動的時間越長,則加密的強度也越高。完成以後按下Generate and Save Keyfile的按鈕就會跳出令存檔案的視窗,記得檔案在命名的時候要賦予檔案一個副檔名,理由在方才建立Volume的時候就解釋過,這裡不多加贅述。

    然而TrueCrypt並非一次只能使用一個keyfile,而是支援同時存在數個keyfile,除了隨機建立的keyfile之外,建議也拿其他現有的檔案(*.pdf, *.avi, *.dll...etc.)作為keyfile,但記得不要不小心把作為Keyfile的檔案給砍了,那可是神仙難救無命客。

  9. 最後的步驟要將Volume格式化,檔案系統我建議選用NTFS,叢集(Cluster)大小則依建立的Volume大小而定,如果只有數10MB,那Default即可,設大了反而使得可用空間變小。但如果Volume容量GB以上,Cluster設大一點可以增加檔案傳輸的效率。

    至於中間的Random Pool Block跟方才製作Random Keyfile的時候一樣,在這個視窗的範圍內移動滑鼠,移動的越多,則Random的效果會越好,接下來只要按下Format的按鈕就大功告成。

掛載資料加密區

  1. 打開TrueCrypt主視窗,選擇要掛載的磁碟機代號,這裡我選擇Q磁碟機作為範例。

  2. 選擇好要掛載的Volume Files之後,點選Mount(掛載)

  3. 接下來跳出輸入密碼的視窗,如果先前有設定keyfiles,記得要點選Keyfiles的按鈕然後掛載Keyfiles。

  4. 掛載好之後會在我的電腦的清單中看到磁碟機Q,這就是新掛載上去的TrueCrypt Volume

基本設定解說

主視窗→Setting→Perferences

Default Mount Option

Mount Volumes as Read-only
-將Volume掛載為唯獨磁區,如果是不希望掛載的資料被修改,則可以將Volume掛載為唯獨磁區如果是不希望掛載的資料被修改,則可以將Volume掛載為唯獨磁區

Mount Volumes as Removable media
-將Volume掛載為可拆式媒體

TrueCrypt Background Task

Enable
-勾選此項會讓TrueCrypt作為背景工作。

Exit when there are no Mounted Volumes
-當沒有掛載Volume時會關閉TrueCrypt主視窗。若前一個選項沒勾選,TrueCrypt卸載最後一個Volume等同關閉TrueCrypt,前一個選項若勾選則是縮小到系統圖示(TrayIcons)

Actions to perform up logon to Windows

這個部分則是決定TrueCrypt是否隨Windows登入後開始運作

Start TrueCrypt Background Task
-當Windows登入的時候啟動TrueCrypt於背景工作

Mount all device-hosted TrueCrypt Volumes
-掛載所有以裝置主端的資料加密區(Volume),裝置主端指的是將切割區作為Volume。

Auto-Dismount

User logo off
-當使用者登出時自動卸除掛載

Screen Saver is launched
-螢幕保護程式啟動時自動卸除掛載

Entering power saving mode
-省電模式時自動卸載,使用筆電的時候要特別注意這項,如果勾選可能會影響正常使用。

Auto dismount volume after no data have been read/written to if for ___ Minutes
-當一段時間Volume沒有資料的寫入或讀取時自動卸載Volume

Force auto-dismount even if volume contains open files or directories
-強制卸除,即使Volume仍然在開啟特定檔案或資料夾,如果要使用自動卸載的功能,那這必須啟用這個功能,否則自動卸載會被中斷。

Windows

Open Explorer windows for successfully mounted volume
-成功掛載Volume時開啟該Volume在檔案總管

Use a different taskbar icon when there are mounted volumes
-掛載Volume時顯示的工作列Icon會與平時不同。

Preserve modification timestamp of file containers
-不更動Volume的"最後修改時間",由於TrueCrypt的預設並不會改變Volume的大小,因此如果使用軟體進行差異備份,則TrueCrypt的Volume會被認定為未經修改,若要解決這個問題就不能勾選這個項目。

Password Cache

Cache password in driver memory
-將密碼快取在驅動程式記憶體中

Wipe Cached passwords on exit
-TrueCrypt主視窗關閉時抹除快取密碼

Wiped cached passwords on auto-dismount
-自動卸載時抹除快取密碼

更換密碼、keyfiles

話說在前頭,雖然TrueCrypt本身有提供更換Volume密碼與keyfiles的功能,但遇到需要更換密碼或keyfile時,最好還是重新做一個Volume,這也是選擇獨立檔案作為Volume最大的優點。

  1. 打開TrueCrypt主視窗,先選擇好要改變密碼/Keyfiles的Volume。

  2. 接著點選位置在主視窗中間的Volume Tools,選擇Change Volume Password或add/remove Keyfiles to/from Volume。這兩個叫出的功能其實一模一樣  ̄▽ ̄||

  3. 開啟"Change Password or Keyfiles"視窗之後,視窗上半部是輸入現在的密碼與Keyfiles,下面則是未來要使用的密碼與Keyfiles。總而言之,可以一口氣修改密碼或Keyfiles,如果下面只輸入密碼,那未來掛載Volume就會只需要輸入密碼,切記。

後記:基本的使用方式這篇應該都有介紹到。至於TrueCrypt的其他功能,就等我哪天有空的時候再說吧

本著作依據Creative Commons 姓名標示-非商業性-相同方式分享授權條款釋出

2 comments :

黄先生 said...

学习了,谢谢,有浅有深呀

Lin John said...

謝謝島兄的詳細說明.
個人最欣賞truecrypt的地方.是他設計哲學.把一切安全問題都在後台完成.不會把安全問題丟給使用者.
VeraCrypt密碼錯誤.必須要等待一段時間才能輸入.這把"安全問題丟給使用者的設計"。truecrypt是絕對不會這樣做的.
truecrypt大編副推薦bitlocker.讓人有點懷疑是被ms收買.畢竟ms不是第一次搞這把戲.所以我還是選擇相信truecrypt是安全的.所以繼續留在truecrypt7.1a