VeraCrypt

VeraCrypt是一款開放源代碼的on-the-fly encryption（OTFE）。它可以創建一個虛擬加密磁盤文件或加密分區，或Pre-boot authentication整個存儲設備（除非使用了UEFI或GPT）。
VeraCrypt是已經停止開發的TrueCrypt項目的一個分支。據其開發者聲稱，安全方面的改進已經落實，最初TrueCrypt的代碼審計問題已得到解決。

**加密方式**

**算法**
與TrueCrypt相同，VeraCrypt支持的加密算法有AES、Camellia、Kuzenyechik、Serpent及Twofish。此外，另有十種Multiple encryption方式：AES-Twofish，AES-Twofish-Serpent，Serpent-AES，Serpent-Twofish-AES，Twofish-Serpent，Camellia-Kuzenyechik，Kuzenyechik-Twofish，Camellia-Serpent，Kuzenyechik-AES及Kuzenyechik-Serpent-Camellia。 可使用的密碼散列函數有RIPEMD-160，SHA-256，SHA-512，Whirlpool和Streebog。

**操作模式**
VeraCrypt使用Disk_encryption_theory#XEX-based_tweaked-codebook_mode_with_ciphertext_stealing_.28XTS.29操作模式。

**密匙**
軟件頭密匙（header key）和第二頭密匙（the secondary header key）是使用512-位鹽和327,661至655,331迭代的PBKDF2產生的，這取決於其使用的底層散列函數。

**安全性改進**
據其開發者聲稱，VeraCrypt對TrueCrypt提出了一些安全方面的改進。
雖然TrueCrypt使用1000次迭代的PBKDF2-RIPEMD160算法的系統分區，然而VeraCrypt使用的是327,661次迭代。對於標準儲存器和其他分區，VeraCrypt使用655331次迭代的RIPEMD160和500,000次迭代SHA-2和Whirlpool。雖然這使得VeraCrypt在打開被加密分區時稍慢，但它可以讓密碼破解增加最少10倍和最多約300倍的的難度。“事實上，如果破解TrueCrypt的加密分區需要一個月，那麼破解VeraCrypt可能需要一年。”
Windows在引導程序中的漏洞也是如此。開發人員增加了對SHA-256的系統啟動加密選項，還修正了Shell的安全問題。Linux和Mac OS X用戶受益於硬盤驅動器扇區大小大於512的支持，並且Linux得到了NTFS格式加密扇區的支持。
由於安全性改進，因此VeraCrypt存儲格式是與TrueCrypt不兼容的。VeraCrypt開發團隊認為，TrueCrypt的舊格式容易受到美國國家安全局的攻擊，因此它必須被拋棄。這是和VeraCrypt的競爭對手——CipherShed之間的主要區別之一，CipherShed繼續使用了TrueCrypt加密格式。自版本1.0F開始，VeraCrypt開始支持打開及轉換TrueCrypt的舊格式加密卷。

**似是而非的否認**
VeraCrypt支持一種名為“似是而非的否認”的功能，允許在卷內創建另一個“隱藏驅動卷”。此外，Windows版本的VeraCrypt可以創建並運行一個隱藏的加密操作系統，其存在可以被否認。該功能使用戶在受到脅迫時通過展示無關緊要的外層卷，而使內層隱藏卷矇混過關。
VeraCrypt幫助文檔中列出多種方式寫明當該功能受到影響時（例如第三方軟件可能通過臨時文件、縮略圖等向未加密的磁盤分區洩露信息），幾種可能的方法來避免這種情況。

**性能**
VeraCrypt支持多元處理並行63加密，在Windows系統中，流水線型讀寫操作（異步處理的一種形式）63以提高加密解密的性能效率。該軟件在較新的處理器支持AES-NI指令集，亦支持AES硬件加速以進一步提高性能。64 磁盤加密對性能的影響在使用直接內存訪問（Direct Memory Access，DMA）操作中尤其明顯，因為所有數據必須通過CPU進行解密，而不是直接從磁盤複製到內存。

**安全問題**
VeraCrypt很容易受到各種已知的攻擊，也影響到其他基於軟件的磁盤加密軟件，如BitLocker。為了緩解這些攻擊，VeraCrypt的幫助文檔要求用戶遵守各種安全防範措施。一些安全問題詳述如下：

**內存中的加密密匙**
VeraCrypt存儲其在內存中的密匙。普通個人計算機上對動態內存斷電後的幾秒鐘（或更長，如降低溫度）之後可能仍然保留著數據。即使在內存中的數據已經嚴重丟失，仍有各種算法可以恢復密鑰。這種方法被稱為冷啟動攻擊，特別適用於在接入電源時，閒置或鎖屏模式下的筆記本電腦，現已成功地用於攻擊由TrueCrypt加密保護的文件系統。

**物理安全性**
VeraCrypt幫助文檔指出，如果攻擊者物理攻擊計算機中的數據，或者在受感染的電腦上使用該軟件，VeraCrypt也無法保全其加密數據的完整性。當然電腦被盜，遺失或被沒收這樣的情況自然無能為力。當攻擊者通過物理訪問電腦，例如，安裝一個硬件或軟件的鍵盤記錄器或一個Bus mastering裝置捕獲內存信息，或安裝任何其他Hardware Trojan或軟件的攻擊，讓攻擊者捕捉到未加密的數據（包括加密密鑰和密碼），然後以這些非法得到的加密密匙及密碼進行解密。因此，物理安全是一個完善安全系統的基本前提。這種攻擊方式也一般稱之為“邪惡女傭攻擊”（Evil Maid attack）。

**惡意軟件**
VeraCrypt幫助文檔指出，VeraCrypt無法保護被感染某些惡意軟件類型的電腦上的數據。某些類型的惡意軟件被設計用來記錄鍵盤輸入，包括鍵入的密碼，攻擊者也可以通過互聯網上傳或保存到未加密的本地驅動器後讀取它，或者直接物理訪問計算機時。

**可信平臺模塊**
VeraCrypt網站上的FAQ指出，可信平臺模塊（Trusted Platform Module，TPM） 的安全性並不可靠。因為如果攻擊者具有對計算機的物理管理訪問權限時，電腦可能被攻擊者植入惡意程序，如一個簡單的鍵盤按鍵記錄器等，可以被用來捕捉密碼或其他敏感信息。——TPM並非殺毒軟件，並不會防止攻擊者惡意修改計算機，因此VeraCrypt將不支持TPM。

**安全審計**
VeraCrypt正在進行一次獨立的代碼審核，目前正處於初期規劃階段。
VeraCrypt是基於TrueCrypt開發的，通過獨立的安全審計。審計的第一階段已於2014年4月14日完成，結果為“沒有證據證明該軟件有後門或惡意代碼”。審計的第二階段完成於2015年4月2日，結果為“沒有證據表明該軟件有故意後門，或在大多數情況下將使軟件不安全的嚴重設計缺陷”。

**許可證**
VeraCrypt從2015年6月28日起採用Apache 2.0許可證授權。在此之前，它是以微軟公共許可證（Microsoft Public License）發佈的。VeraCrypt使用了大量從其前身TrueCrypt得到的代碼，也是唯一一款使用 TrueCrypt License 3.0 的加密軟件。然而這並不是一個廣泛使用的開源軟件許可證，也不是自由軟件基金會定義的自由軟件許可證，因為它包含分銷和版權責任的限制等。

**參見**
 TrueCrypt- Disk encryption software- Comparison of disk encryption software

**參考文獻**

**外部鏈接**
  VeraCrypt網站date=20170904215551 -  TrueCrypt網站