2019年10月9日 星期三

開源磁碟加密軟體:VeraCrypt



在現今網路通訊方式發達,以及多種隨身存裝置的方便性,這些都成為資料外洩的可能管道。那麼在資料保全的方法上,除了檔案加密這種操作方式之外,有沒有更簡單可以一次保護較多檔案與文件安全性的作法?

有的,其中一種方法是採用磁碟加密軟體來做保護。




方案介紹

在開源軟體的世界中,VeraCrypt 是相當多人使用的磁碟加密軟體,它是基於另一套更早已經停止維護的 TrueCrypt 而來,並修正原 TrueCrypt 的相關安全問題。

在資料保護的要求上,VeraCrypt 提供了多種實用的功能讓我們選用:
  • 跨平台支援 Windows、Linux、macOS
  • 可建立實體磁碟上的加密區域
  • 可建立加密虛擬磁碟檔案並掛載使用
  • 自動、即時且透明化的加密
  • 支援 CPU 硬體加速
  • 支援繁體中文介面
  • 可使用 GUI 或是 CLI 操作


它可以提供相當容易又好用的加密保護,對於存放機密資料是很不錯的解決方案。








主要功能

在這篇文章裡,我們以最主要兩個功能做說明:實體加密磁碟與虛擬加密磁碟檔案

建立實體加密磁碟

最基本的用法,是針對一個實體的磁碟做加密,通常我會利用 USB 隨身碟做加密,確保它即便遺失了整支隨身碟的內容仍然是受到保護的。



VeraCrypt 主畫面


按下主畫面的 [建立加密區] 按鈕,進來後的畫面請選擇 [Encrypt a non-system partition/drive],下一步選擇 [標準 VeraCrypt 加密區],再下一步就會來到選擇磁碟機的介面,請記得選擇正確的磁碟,以免發生憾事。



準備選擇預計加密磁碟機



選擇正確加密磁碟機

進入下一步後,請選擇 [Create encrypt volume and format it],讓他整個磁碟重新格式化並予以加密。



選擇加密選項


這個步驟用以選擇要做加密的演算法需要使用到什麼程度,越強力的加密演算法越安全但也多少影響效能。若對於效能有所疑慮,VeraCrypt 也提供了 Benchmark 效能測試工具,可以依據所選的演算法、緩衝區大小等進行測試,依據結果再決定要選用什麼加密演算法。



輸入加密區密碼


接下來請輸入要加密用的密碼,這個密碼非常重要,不要太過簡單也不要讓自己遺失或忘記,一旦遺失了密碼可說是神仙也難救。除了密碼之外,VeraCrypt 也支援多加一道金鑰機制,將密碼與金鑰分別保存,兩支相符方能解鎖,雖較為麻煩,但卻大大增加資料安全的保護能力。

再下一步會要求選擇格式化的檔案系統等選項,在這個畫面多多移動滑鼠可以產生更高強度的加密金鑰,接著請選擇後按下 [格式化] 按鈕即可開始進行製作加密磁碟。


掛載實體加密磁碟

製作完成加密磁碟以後,這個隨身碟是無法直接使用的,需要用 VeraCrypt 掛載並輸入密碼或金鑰檔才能使用。

在主畫面先選取列表中的一個磁碟機代號,再按下 [選擇磁碟機],進入選擇畫面。



選擇要掛載的加密磁碟


選擇完成按下 [確定],回到主畫面再按最下方的 [掛載] 按鈕,他會要求輸入密碼或提供金鑰檔,請依據情況提供上去。



掛載加密磁碟並提供密碼或金鑰檔


經過上面的步驟,即可將這個加密磁碟掛載到範例中的 U: 磁碟機代號並開始使用了,當使用完畢不需再使用時,可以在該磁碟機代號上按滑鼠右鍵,再點選 [卸載] 即可卸除。



掛載加密磁碟成功


建立虛擬加密磁碟檔案

另一種作法,是產生一個虛擬磁碟的檔案,要使用的時候再掛載起來用即可,好處是使用方便,移轉容易,還可以依據不同需求切出不同的虛擬磁碟檔案,我個人也比較喜歡這個作法。

大多數的操作都與 建立實體加密磁碟 差不多,僅說明不同之處。

在第一個步驟時要改成選擇 [Create an encrypted file container],一路來到指定加密區存放位置的畫面,請輸入路徑以及檔案名稱。



準備選擇虛擬密磁碟檔案存放位置


接著來到加密區大小的畫面,可以指定要產生出來的虛擬磁碟容量要多大,請依據實際情況輸入。



準備選擇虛擬密磁碟容量


依照畫面指示完成後,就會在指定的路徑下產生一個虛擬磁碟檔案。


掛載虛擬加密磁碟檔案

同樣的過程,只差別在主畫面操作時選擇 [選擇檔案],選取檔案後再按下 [掛載],依據與實體加密磁碟相同的操作模式即可完成。



準備選擇掛載虛擬加密磁碟檔案







進階使用

如果覺得經常操作掛載與卸載的動作浪費不少時間,也可以考慮使用 VeraCrypt 所提供的 CLI 指令模式,搭配批次檔來使用就會方便許多。

這裡提供我常用的指令與參數,可依據需求自己調整,範例適用於 Windows 作業系統。

掛載虛擬加密磁碟檔案

VeraCrypt.exe /q /a /b /m rm /v "testcryptdiskfile"

若沒有指定 /a 參數後的值,它會自己找一個代號掛載上來。


卸載虛擬加密磁碟檔案

VeraCrypt.exe /q /d /b

若沒有指定 /d 參數後的值,它會把所有已經掛載到系統上的實體與虛擬加密磁碟全部卸載。







結論

過去曾經需要保護某些重要文件檔,使用加密壓縮檔的方式保存,但這種方式在使用壓縮檔內檔案時會造成資料落地的問題 (因為壓縮軟體會先把它解密到暫存資料夾)。

為了解決這個問題,後來採用虛擬加密磁碟檔案的方式掛載起來使用,檔案直接在該虛擬磁碟機裡操作,就解決了當時所面臨的問題。

對於重要的機密檔案,使用 VeraCrypt 可以很好的協助我們提升安全性,當然若想要更進一步,還可以再把裡面的檔案也使用檔案自身的加密機制 (例 Office 或 PDF 文件檔),做到雙層保護的能力。當然,可別把密碼給忘了。





參考資料