概要
マルチプラットフォーム対応の暗号化ツールであるTrueCryptがどういうわけか開発停止になったので、その後継となるVeraCryptを使うことにします。
環境
- Ubuntu 14.04
- VeraCrypte 1.0f-1
インストール
以下のwget
のURLが使えない時はSourceForgeから直接取得してください。
$ mkdir veracrypt $ cd veracrypt $ wget "http://downloads.sourceforge.net/project/veracrypt/VeraCrypt%201.0f-1/veracrypt-1.0f-1-setup.tar.bz2"
解凍してインストールします。
$ tar xvjf veracrypt-1.0f-1-setup.tar.bz2 $ ./veracrypt-1.0f-1-setup-console-x64
以下の様な選択画面が出るので1
を選択。
VeraCrypt 1.0f-1 Setup ____________________ Installation options: 1) Install veracrypt_1.0f-1_console_amd64.tar.gz 2) Extract package file veracrypt_1.0f-1_console_amd64.tar.gz and place it to /tmp To select, enter 1 or 2: 1
Enterを押すと同意書が表示されるので、q
で抜けてyes
を入力します。
以上で完了です。
使い方
暗号化ボリュームの作成
$ veracrypt -t -c --random-source=/dev/urandom
random-source
オプションを指定しないと320字を自分でランダムに入力する必要があるので必ずつけましょう。
対話的に進めるので、一度でもTrueCryptのGUI版を使ったことがあればすんなりできると思います。
Volume type: 1) Normal 2) Hidden Select [1]:
通常ボリュームか隠しボリュームかの選択です。
Enter volume path: volume.tc
暗号化ボリュームのパスです。既存のドライブでなく、新しく作る場合は適当な名前を入力します。
Enter volume size (sizeK/size[M]/sizeG): 10
次は作成する暗号化ボリュームのサイズです。単位はデフォルトだとMです。
Encryption algorithm: 1) AES 2) Serpent 3) Twofish 4) AES(Twofish) 5) AES(Twofish(Serpent)) 6) Serpent(AES) 7) Serpent(Twofish(AES)) 8) Twofish(Serpent) Select [1]:
暗号化アルゴリズムの選択
Hash algorithm: 1) SHA-512 2) Whirlpool 3) SHA-256 4) RIPEMD-160 Select [1]:
ハッシュアルゴリズムの選択
Filesystem: 1) None 2) FAT 3) Linux Ext2 4) Linux Ext3 5) Linux Ext4 6) NTFS Select [2]:
ファイルシステムの選択
Enter password: WARNING: Short passwords are easy to crack using brute force techniques! We recommend choosing a password consisting of more than 20 characters. Are you sure you want to use a short password? (y=Yes/n=No) [No]: y Re-enter password:
パスワードを入力します。20字以下だと上記のように怒られますが今回は気にせず進めます。
Enter keyfile path [none]:
キーファイルの選択です。よくあるのは画像とかです。今回はなしで。
完了すれば以下のようにファイルを作成します。
Done: 100.000% Speed: 1.2 MB/s Left: 0 s The VeraCrypt volume has been successfully created.
マウント
先ほど入力したパスワードを使います。マウント先は適当に。今回は/media/veracrypt1
にします。
$ veracrypt volume.tc /media/veracrypt1 Enter password for /home/vagrant/volume.tc: Enter keyfile [none]: Protect hidden volume (if any)? (y=Yes/n=No) [No]:
問題なければマウント後の場所でファイル操作ができます。
$ cd /media/veracrypt1/ $ touch hoge.txt $ echo "veracrypt" >> hoge.txt
Read-Onlyでマウント
$ veracrypt -m ro volume.tc /media/veracrypt1
アンマウント
$ veracrypt -d volume.tc
全ボリュームをアンマウント
$ veracrypt -d
暗号化ドライブの作成
ドライブ全体を暗号化することもできます。
まずはパーティションを作成して、
$ sudo parted /dev/sda (parted) mklabel gpt (parted) mkpart primary 1 -0 (parted) quit
実行時に指定すればOKです。
$ veracrypt --random-source=/dev/urandom --quick -c /dev/sda1
まっさらなHDDならquick
オプションを付けましょう。じゃないとフォーマットが長いです。
デフォルトのパーミッションを指定してマウント
マウント時の権限の変更です。デフォルトだと700
になってます。
例えば755
にしたい場合は
777 - 755 = 022
なので、umask
を022
に指定します。慣例的に最初に0
をつけて4桁にするっぽいです。
$ veracrypt --fs-options="umask=0022" volume.tc /media/veracrypt1
確認すると全部rwx
になってます。
$ ls -la /media/veracrypt1/ total 21 drwxr-xr-x 2 vagrant vagrant 16384 Jan 1 1970 . drwxr-xr-x 3 root root 4096 Feb 15 10:05 ..
所有者を指定してマウント
デフォルトでは所有権は以下となってます。
key | id |
---|---|
uid | 1000 |
gid | 1000 |
これを例えばrootユーザ(uid:0, gid:0)にしたいときは以下のようにします。
$ veracrypt --fs-options="uid=0,gid=0" volume.tc /media/veracrypt1
通常ユーザだと怒られるようになります。
$ ls -la /media/veracrypt1/ ls: cannot open directory /media/veracrypt1/: Permission denied
rootユーザとしてみるとOKです。
# ls -la /media/veracrypt1/ total 21 drwx------ 2 root root 16384 Jan 1 1970 . drwxr-xr-x 3 root root 4096 Feb 15 10:09 ..