VeraCryptは、オープンソースで無償のオンザフライ
暗号化
ユーティリティソフトウェアです。ファイル、
パーティション、またはストレージデバイス全体の
暗号化に対応しており、ブート前の認証を必要とする仮想
暗号化ディスクを作成できます。これは、開発が終了した
TrueCryptから派生したもので、セキュリティ上の脆弱性に対処し、機能強化を目的としています。
暗号化の仕組み
VeraCryptは、以下の
暗号化アルゴリズムをサポートしています。
AES
Serpent
Twofish
Camellia
Kuznyechik
これらのアルゴリズムを組み合わせた、10種類のカスケード
暗号化も利用可能です。
AES–
Twofish
AES–
Twofish–Serpent
Camellia–Kuznyechik
Camellia–Serpent
Kuznyechik–AES
Kuznyechik–Serpent–Camellia
Kuznyechik–
Twofish
Serpent–AES
Serpent–
Twofish–AES
Twofish–Serpent
ハッシュ関数としては、以下のものが利用可能です。
RIPEMD-160
SHA-256
SHA-512
Streebog
Whirlpool
暗号化モードとしては、XTSモードを採用しています。鍵の生成には、
PBKDF2アルゴリズムを使用し、ソルトを用いて複数回の反復処理を行います。これにより、ブルートフォース攻撃に対する耐性を高めています。ヘッダキーとセカンダリヘッダキー(XTSモード)は512
ビットのソルトを使用し、327,661回から655,331回の反復で生成されます。
セキュリティの改善
VeraCryptは、
TrueCryptよりもセキュリティが大幅に向上しています。特に、
PBKDF2アルゴリズムの反復回数を増やしたことで、総当たり攻撃に対する耐性が強化されています。
TrueCryptでは、システム
パーティションに対して
PBKDF2-
RIPEMD160アルゴリズムで1000回の反復処理を行っていましたが、VeraCryptでは327,661回に増加しています。標準コンテナや他の
パーティションでは、
RIPEMD160で655,331回、SHA-2やWhirlpoolで500,000回の反復処理を実施します。
この強化により、
暗号化された
パーティションの開封には若干時間がかかるものの、総当たり攻撃に対する強度は大幅に向上しています。Windows版では、ブートローダーの脆弱性が修正され、各種最適化も施されています。また、システムブートの
暗号化にはSHA-256のサポートが追加されました。
LinuxとmacOSユーザーは、512バイトを超えるセクタサイズのサポートが利用可能です。
Linux版ではNTFSフォーマットもサポートされています。
重要な点として、これらのセキュリティ強化により、VeraCryptのフォーマットは
TrueCryptと非互換となっています。ただし、VeraCrypt 1.0f以降では、
TrueCryptフォーマットの読み込みと、VeraCryptフォーマットへの変換が可能になりました。しかし、
TrueCryptモードのサポートはバージョン1.26.4 BETA (正式版では1.26.7) で削除されました。
TrueCryptフォーマットに対応する最後のバージョン1.25.9は、VeraCrypt公式サイトから入手可能です。
もっともらしい否認(plausible deniability)
VeraCryptは、
もっともらしい否認をサポートしています。これは、隠しボリュームを別のボリュームの中に作成する機能です。Windows版では、隠し
暗号化
オペレーティングシステムを作成し、実行することもできます。これにより、
暗号化されたデータの存在を隠すことが可能になります。
パフォーマンス
VeraCryptは、
暗号化と復号化のパフォーマンスを向上させるため、マルチコアシステムでの並列処理、Windows上でのパイプライン処理を利用した非同期読み書きによる
暗号化に対応しています。また、AES-NI命令セットをサポートしたプロセッサでは、
ハードウェアアクセラレーションを利用して大幅なパフォーマンス向上が見込まれます。
セキュリティ監査
VeraCryptは、中立的なコード監査を受けています。初期段階の監査では、バックドアや悪意のあるコードの証拠は見つかりませんでした。その後、詳細な監査により、意図的なバックドアや、セキュリティを損なう重大な設計上の欠陥がないことが確認されています。
VeraCryptは、Apache License 2.0の
ライセンスで提供されています。以前はMicrosoft Public Licenseでリリースされていました。VeraCryptのコードの大部分は
TrueCryptから引き継がれているため、
TrueCrypt独自の
ライセンス「
TrueCrypt License 3.0」にも準拠しています。この
ライセンスは、改変と再配布に対して制限があり、オープンソースイニシアティブ(OSI)が定める「
オープンソースの定義」には合致していません。
その他
ドライブ全体の
暗号化を行う際、EFIシステム
パーティションが存在する場合、システム
パーティションまたはシステムドライブ全体の
暗号化は選択できません。これを可能にするには、EFIシステム
パーティションを設定しないクリーンインストールによるWindowsのインストールが必要です。
関連項目
en:Disk encryption software
en:Comparison of disk encryption software
外部リンク
VeraCrypt website
VeraCrypt 1.18 Security Assessment