LoginSignup
4
2

More than 1 year has passed since last update.

VeraCryptをLinuxでコマンドラインから使う方法

Last updated at Posted at 2022-08-14

VeraCryptをLinuxでコマンドラインから使う方法についてのメモです。
Arch Linux環境で動作することを確認しています。

説明の前提

デスクトップ環境の端末から操作する場合、コマンド実行時に-tまたは--textをつけないとGUIで動作してしまいます。
GUIが動作しない環境ならこのオプションは不要です。

veracrypt --text
# ↑または↓
veracrypt -t

加えて大抵の操作にはroot権限が必要なので、sudoが必要なケースも多いです。
以後の説明はこれらを省略しているので、予めご了承ください。

暗号化ボリューム作成する

ファイルコンテナを作る場合

いくつか具体的なオプションパラメータを指定しているので、実際の利用時は適切なものに置き換えてください。

veracrypt --create --size 64M --keyfiles='' --encryption=AES --hash=SHA-512 --random-source=/dev/random --volume-type=normal --filesystem=none /path/to/container
  • -c, --create
    ボリュームを作成する場合につけるオプション
  • --size
    例えば64Mだと64メガバイトサイズのファイルコンテナを作成する
    単位としてK, KiB, M, MiB, G, GiB, T, TiBが指定できる
    単位指定無しだとバイト単位になる
  • --keyfiles
    パスワードとは別に鍵ファイルも使いたい場合にパスを指定する
    不要なら空文字列を指定する
  • --encryption
    暗号化アルゴリズムを指定する
    例えばAESSerpentCamellia-Kuznyechikなど
    指定できるパラメータは公式ドキュメントのEncryption Algorithmsの表のAlgorithmの列を参照
  • --hash
    ハッシュアルゴリズムを指定する
    例えばSHA-256Whirlpoolなど
    指定できるパラメータは公式ドキュメントのHash Algorithmsを参照
  • --random-source
    乱数源にするファイルのパスを指定する
    指定がない場合はユーザがキーボードから適当なランダム文字列を入力するハメになるので結構大変
    /dev/randomで動作が固まる場合は/dev/urandomを使えばよいが、その場合は予測可能な擬似乱数が混ざるかも知れないので気にする人は注意
  • --volume-type=normal
    normal(通常ボリューム)またはhidden(隠しボリューム)を指定する
    隠しボリュームを作る場合も通常ボリュームは必要なので、まずはnormalでOK
  • --filesystem
    ボリュームのファイルシステムを指定する
    後で別途ファイルシステムを指定してフォーマットするので、ここではnoneを指定して何もしない

最後の/path/to/containerはファイルコンテナを生成するパスを指定してください。
またコマンド実行時にパスワードとPIMの設定を求められるので、適宜設定してください。

この後、ボリューム全体の暗号化が始まります。
サイズによってはかなり待たされます。

ブロックデバイスを直接暗号化する場合

各オプションの意味はファイルコンテナと同様。
/path/to/device は自分の環境に合わせたものに置き換えてください。
例えば/dev/sdb2/dev/nvme1n1p2などです。

veracrypt --create --keyfiles='' --encryption=AES --hash=SHA-512 --random-source=/dev/random --volume-type=normal --filesystem=none /path/to/device

暗号化ボリュームを利用する

まず暗号化ボリュームをマウントします。
/path/to/volume は自分の環境に合わせたものに置き換えてください。
例えば/home/hoge/file_container.vc/dev/sdb2などです。

veracrypt --filesystem=none /path/to/volume

どこにマウントされたかは以下のコマンドで確認できます。
おそらく/dev/mapper/veracrypt1のように/dev/mapper/下にマウントされます。

veracrypt -l

続いてマウントしたデバイスをフォーマットします。
少なくともEXT4とXFSで動作することを確認していますが、ここではEXT4を例にあげます。
フォーマット時に設定しているオプションの意味は以下の通り。

  • -E lazy_itable_init=0,lazy_journal_init=0により高速フォーマットを無効化し、バックグラウンドでのストレージ書き込みを防ぐ
  • -m 1によりrootの予約領域サイズを全体の1%に設定
mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 -m 1 /path/to/device

フォーマット完了後は一旦アンマウントします。
/path/to/volumeはファイルコンテナや元々のブロックデバイスのパスを指定してください。
面倒ならveracrypt -dで全てのボリュームをアンマウントできます。

veracrypt -d /path/to/volume

その後、以下の操作でボリュームをマウントすれば早速利用可能になります。
マウント直後は所有者がrootになっていると思われるので、適宜設定を変更してください。

veracrypt /path/to/volume /where/to/mount

隠しボリュームを作る

まず隠しボリュームを隠す通常の暗号化ボリュームを作成しておきます。
続いて以下の操作を実行します。
各種オプションは適宜変更してください。

veracrypt --create --keyfiles='' --encryption=Camellia-Kuznyechik --hash=Streebog --random-source=/dev/urandom --volume-type=hidden --filesystem=none --size=32M /path/to/normal/volume

ほとんどのオプションは通常ボリューム作成時と同じですが、以下のオプションが異なります。

  • --volume-type=hidden
    隠しボリューム作成時はhiddenを指定する(通常ボリュームはnormal
  • --size
    必須オプション
    通常ボリュームのサイズより小さい値を設定すること

/path/to/normal/volumeは隠しボリュームを隠す通常ボリュームです。
コマンド実行後にパスワードなどが求められるので、隠しボリューム用のものを入力してください。

なお隠しボリューム作成時はボリューム全体の暗号化は行われないので、この操作はすぐ終わります。

隠しボリュームを利用する

通常ボリュームを利用する場合と同じ操作をすればよいですが、ボリュームマウント時のパスワードは隠しボリュームのものを入力する点には気をつけてください。

ボリュームをアンマウントする

ボリュームを使用しているプロセスがあるとアンマウント出来ないので、それらのプロセスを落としてください。
fuser -mvlsofでボリュームが使用中かどうか確認できます。

まずは以下の操作でどのボリュームがどこにマウントされているか確認します。

veracrypt -l

アンマウントしたいボリュームまたはマウントポイントを指定します。

veracrypt -d /path/to/volume
# または
veracrypt -d /path/to/mount/point

ボリュームまたはマウントポイントを指定しないと、アンマウント可能な全てのVeraCryptボリュームをアンマウントするので注意してください。

Tips

  • HDDを丸々1台暗号化する場合、半日は見ておいたほうがよい
  • あまり複雑な暗号化アルゴリズムを採用すると、ディスクI/OよりCPUパワーがボトルネックになってパフォーマンスが落ちる場合がある
  • AES-NI拡張命令に対応したIntel/AMD CPUを使うと、AES暗号化のスループットがよくなる
  • GUIで利用可能なベンチマーク機能はコマンドラインでは利用できない
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2