VeraCrypt 1.17 on Windows 10 | |
開発元 | IDRIX |
---|---|
初版 | 2013年6月22日 |
最新版 | 1.26.7 - 2023年10月1日[1] [±] |
リポジトリ | |
プログラミング 言語 | C、C++、アセンブリ言語 |
対応OS | |
対応言語 | 37言語[2] |
サポート状況 | 継続中 |
種別 | 暗号ソフトウェア/ディスクドライブ仮想化ソフト |
ライセンス | Apache License 2.0およびTrueCrypt License version 3.0[3] |
公式サイト |
www |
VeraCrypt は オープンソースでフリーウェアのオンザフライ暗号化に使われるユーティリティソフトウェアである[4]。VeraCryptはファイルやパーティション[5]の暗号化や、ストレージ全体の暗号化が成されたブート前認証付き仮想暗号化ディスクを作成することができる。
VeraCryptは開発が終了したTrueCryptのフォークである[6]。初版のリリースは 2013年6月22日で、2015年9月には10度目のリリース(バージョン 1.15)がなされた[7]。開発者によると、セキュリティの改善がなされ、初期のTrueCryptのソフトウェア監査において提起された問題が対処されている[8]。
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である[9]。VeraCryptで利用可能なハッシュ関数はRIPEMD-160、SHA-256、SHA-512、Streebog、Whirlpoolである[10]。
VeraCryptは暗号モードとしてXTSを利用する[11]。
ヘッダキーとセカンダリヘッダキー(XTSモード)は512ビットのソルトのPBKDF2を用いて、327,661回から655,331の反復で生成される[12]。
開発者により、VeraCryptはおおむねTrueCryptよりもセキュリティが改善された。
TrueCryptはシステムパーティションに対し、PBKDF2-RIPEMD160アルゴリズムで1000回の反復を行うが、VeraCryptは327,661回の反復を行う。標準コンテナとその他のパーティションに関してはRIPEMD160で655,331回、SHA-2とWhirlpoolでは500,000回の反復を行う。これによりVeraCryptで暗号化パーティションを開く際にわずかに遅くなるが、総当たり攻撃に対して最低10倍から最大300倍強くなる[6]。
Windowsでのブートローダーの脆弱性は修正されたほか、さまざまな最適化が行われた。開発者はシステムブートの暗号化にSHA-256のサポートを追加し、ShellExecuteのセキュリティ問題も修正された。LinuxとmacOSユーザーは512超のセクタサイズのサポートで恩恵を受けられる。Linux版もNTFSフォーマットをサポートしている。
セキュリティ改善により、VeraCryptフォーマットはTrueCryptとは非互換である。VeraCryptの競合、CipherShedとの違いはCipherShedはTrueCryptフォーマットを使っていることである。VeraCryptのバージョン1.0fから、TrueCryptフォーマットを開いたり、TrueCryptフォーマットをVeraCryptフォーマットへ変換したりすることができるようになった[13][14][15]。しかし、TrueCryptモードのサポートはバージョン1.26.4 BETA (正式版では1.26.7) で削除された。その後もVeraCryptフォーマットへ変換できるように、TrueCryptフォーマットに対応した最後のバージョン1.25.9が公式サイト上に残されている。
VeraCryptはもっともらしい否認(plausible deniability)と呼ばれる構想をサポートしている[16]。これはひとつの「隠されたボリューム」をもう一つのボリュームの中に作成できるものである[17]。さらに、Windowsバージョンでは、否認可能暗号化された隠しオペレーティングシステムを作成し実行することができる[18]。
VeraCryptは暗号化と復号による性能への影響を減らすため、マルチコアシステムで並列化[19]処理、Windows上でパイプラインを利用した読み書き(非同期処理方式)による暗号化をサポートしている。AES-NI命令セットをサポートした新しいプロセッサでは、VeraCryptはハードウェアアクセラレーションを利用して大きく性能が向上する。
VeraCryptの中立なコード監査は初期の計画段階である[20]。
VeraCryptは中立なセキュリティ監査を通過したTrueCryptのソースコードに基づいている。監査の第一段階は2014年4月14日に完了し、"no evidence of backdoors or malicious code."[21](バックドアあるいは悪意のあるコードの証拠はない)とされた。監査の第二段階は2015年4月2日に終了し、"no evidence of deliberate backdoors, or any severe design flaws that will make the software insecure in most instances."[22][23](故意のバックドアや、セキュリティが失われる重大な設計上の欠陥の根拠はない)とされた。
VeraCryptは2015年6月28日からApache License 2.0でライセンスされている[24]。以前はMicrosoft Public Licenseでリリースされていた[25]。VeraCryptは大部分のコードをTrueCryptから引き継いでいるためTrueCrypt独自の「TrueCrypt License 3.0」の支配下にある[26][27]。このライセンスは改変と再配布に対して制限があり、オープンソース・イニシアティブ(OSI)が定める「オープンソースの定義」に合致しない、非オープンソース・ソフトウェア・ライセンスである。[28]。
ドライブ全体の暗号化に関しては、「EFIシステムパーティション領域」が存在する場合、「システムパーティションあるいはシステムドライブ全体を暗号化」は選択できない。
上記の選択をできるようにしたい場合には「EFIシステムパーティション領域」を設定しないクリアインストールによるWindowsのインストールが必要になる。