我在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的其他功能,就等我哪天有空的時候再說吧

[How To] TrueCrypt使用教學 - 重要資訊的加密保險箱(转)的更多相关文章

  1. [Java] 歐付寶金流串接教學

    前言: 很多接案的人,都會碰到需要接金流的時候.而歐付寶是個台灣的金流平台. 這邊記錄下,串接的心得.我用的語言是Java, 採liferay這個portal平台,不過這份教學當然適合servlet. ...

  2. 【NS2】NS2 教學手冊(转载)

    之前做毕设的时候搜索NS2的相关资料,发现这个里面涵盖很广,特此收藏,感谢原作者的辛勤劳作. NS2 教學手冊 ( NS2 Learning Guide) [快速連結區] My works  中文影音 ...

  3. Nmap 網路診斷工具基本使用技巧與教學

    Nmap 是一個開放原始碼的網路掃描與探測工具,可以讓網路管理者掃描整個子網域或主機的連接埠等,功能非常強大. Nmap(Network Mapper)是一個開放原始碼的網路檢測工具,它的功能非常強大 ...

  4. VPN Gate Client v4.11-免費、無限流量VPN翻牆(跳板)軟體(使用教學)

    VPN Gate Client安裝教學 ▼把下載的檔案壓縮後,開啟安裝檔案. ▼接下來就是一般安裝步驟,下一步>下一步   ▼同意>下一步>下一步   ▼安裝目錄可以用預設的也可以自 ...

  5. 【转】Jollen 的 Android 教學,#12: 如何建立選單 Menu

    原文网址:http://www.jollen.org/blog/2009/06/jollen-android-programming-12.html Android應用程式的UI可以使用XML來定義, ...

  6. .net 程式進階除錯教學 - 使用WinDbg

     https://caryhsu.blogspot.com/2011/11/net-windbg.html         從以前一直研究基金方面的資訊,但由於沒有多於的時間常常觀看,再加上碩士時在我 ...

  7. MQTT教學(一):認識MQTT

    http://swf.com.tw/?p=1002 本系列文章旨在補充<超圖解物聯網IoT實作入門>,採用Arduino.ESP8266和Node.js實作MQTT物聯網通訊實驗. MQT ...

  8. 3D印表機 零件採購資訊

    3D印表機 零件採購資訊 採購資訊僅供參考,零件的品質由店家擔保! 壓克力 螺絲螺帽牙條 高來螺絲 滑套.軸承 五連軸承 掏寶-廣發軸承 光軸 掏寶-廣發軸承 彈簧 雅銅彈簧 鐵氟龍製品 馬達 電源供 ...

  9. [Database][SQL] 取得SQLServer中某一欄位名稱所在的資料表及欄位相關資訊

    取得SQLServer中某一欄位名稱所在的資料表及欄位相關資訊  

随机推荐

  1. Java8实战系列一

    从java7到java8,最主要的变化可以总结为 □Lambda表达式 □ 方法引用 □流和默认方法 让我们通过一个小例子感受一下 情景 1 集合对象排序 (对list中的苹果按照重量排序) Coll ...

  2. vue路径优化之resolve

    通过vue-cli来创建vue+webpack的项目时,已经有很多都配置好了,但是路径方面为了方便开发,还可以优化. 1. resolve.extensions 在webpack.base.conf. ...

  3. mysql中的几种join 及 full join问题

    [注意]:Oracle数据库支持full join,mysql是不支持full join的,但仍然可以同过左外连接+ union+右外连接实现 初始化SQL语句:   /*join 建表语句*/   ...

  4. Innodb引擎下mysql自身配置优化

    1.简单介绍InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎.InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读.这些特色 ...

  5. LeetCode(8):字符串转整数(atoi)

    Medium! 题目描述: 实现 atoi,将字符串转为整数. 在找到第一个非空字符之前,需要移除掉字符串中的空格字符.如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合 ...

  6. List遍历三种方法:1.for 2.增强性for 3.迭代器

    package chapter09; import java.util.ArrayList;import java.util.Iterator;import java.util.List; /* * ...

  7. WaitForMultipleObjects返回0xffffffff

    DWORD ret; ; HANDLE handle[THREAD_NUM]; ; i < THREAD_NUM; i++) handle[i] = (HANDLE)_beginthreadex ...

  8. istringstream、ostringstream、stringstream 类介绍 和 stringstream类 clear函数的真正用途

    istringstream.ostringstream.stringstream 类介绍 和 stringstream类 clear函数的真正用途 来源: http://blog.csdn.net/T ...

  9. 安装 sshpass

    https://www.cnblogs.com/lemon-le/p/6495007.html ssh远程执行命令并自动退出 https://blog.csdn.net/mjj291268154/ar ...

  10. Servlet的多线程和线程安全

    线程安全 首先说明一下对线程安全的讨论,哪种情况我们可以称作线程安全?网上对线程安全有很多描述,我比较喜欢<Java并发编程实战>给出的定义,“当多个线程访问某个类时,不管运行时环境采用何 ...