「VeraCrypt」の版間の差分
en:TrueCryptへの転送ページ |
Kusanaginoturugi (トーク | 投稿記録) カテゴリを削除 |
||
| (3人の利用者による、間の15版が非表示) | |||
| 1行目: | 1行目: | ||
[[Category:保存データ暗号化]] |
|||
#redirect[[en:TrueCrypt]] |
|||
[[de:TrueCrypt]] |
|||
[[en:TrueCrypt]] |
|||
{{Related articles start}} |
|||
{{Related|ディスク暗号化}} |
|||
{{Related|Tcplay}} |
|||
{{Related|Tomb}} |
|||
{{Related articles end}} |
|||
{{Out of date | inspired by [[TrueCrypt]] archives page }} |
|||
[[Wikipedia:Veracrypt|VeraCrypt]] は、無料のオープンソースのオンザフライ暗号化 (OTFE) プログラムである [[Wikipedia:Truecrypt|TrueCrypt]] のフォークです。主な特徴は次のとおりです: |
|||
* ファイル内に仮想暗号化ディスクを作成し、それを実際のディスクとしてマウント可能。 |
|||
* ハードディスクパーティションやストレージデバイス/メディア全体を暗号化。 |
|||
* すべての暗号化アルゴリズムは、ストレージ暗号化のための予測可能な初期化ベクトルを持つ CBC モードよりも安全な LRW モードを使用。 |
|||
* 通常の「外側」の暗号化ボリューム内に「隠しボリューム」を作成可能。隠しボリュームは、パスフレーズやキー ファイルにアクセスしない限り、ランダムデータと区別できません。 |
|||
TrueCrypt が他のディスク暗号化ソリューションとどのように比較されるかについての詳細は、[[ディスク暗号化#比較表]]を参照してください。 |
|||
== インストール == |
|||
{{Note|既存の TrueCrypt コンテナを開いてアクセスしたいときは [[#cryptsetup を使って TrueCrypt コンテナにアクセス|cryptsetup]] を使用することを推奨します。新しい TrueCrypt コンテナは {{ic|truecrypt}} で作成できます。}} |
|||
{{Pkg|truecrypt}} パッケージを[[pacman|インストール]]してください。{{Pkg|linux}} 以外のカーネルを使っている場合は、適当なカーネルモジュールもインストールします。 |
|||
truecrypt を使って仮想ファイルシステム (例: ファイル) を暗号化する場合は、''truecrypt'' コマンドを実行したときに自動でモジュールがロードされます。 |
|||
truecrypt を使って物理デバイス (例: ハードディスクや usb ドライブ) を暗号化する場合は、ブートシーケンスの間にモジュールをロードするようにしてください: |
|||
{{ic|/etc/modules-load.d/}} にモジュールを追加: |
|||
# tee /etc/modules-load.d/truecrypt.conf <<< "truecrypt" |
|||
{{Note| |
|||
* 上記の設定でうまくいかない場合、以下のように "loop" モジュールを追加することで動作します: |
|||
# tee /etc/modules-load.d/truecrypt.conf <<< "loop" |
|||
# modprobe loop |
|||
* Arch の標準カーネルではモジュールのロードは必ずしも手動で行う必要はありません。ただし、カスタムカーネルを使用している場合は '''FUSE''' と '''loop'''、および使用する暗号化アルゴリズム (例: '''AES''', '''XTS''', '''SHA512''') を有効化する必要があります。既存の TrueCrypt コンテナにアクセスするだけなら TrueCrypt のインストールは不要です。 |
|||
}} |
|||
== cryptsetup を使って TrueCrypt コンテナにアクセス == |
|||
バージョン 1.6.7 から、{{Pkg|cryptsetup}} は TrueCrypt と VeraCrypt のコンテナをネイティブで開けるようになっており、{{Pkg|veracrypt}} パッケージを必要としません。cryptsetup でコンテナを開くには、次のコマンドを実行してください: |
|||
# cryptsetup --type tcrypt open container-to-mount container-name |
|||
{{ic|container-to-mount}} を開きたい {{ic|/dev}} 下のデバイスファイルやファイルのパスに置き換えてください。コンテナが開かれると {{ic|/dev/mapper/container-name}} というデバイスが新しく認識され、通常のデバイスと同じように {{ic|mount}} できるようになります。 |
|||
VeraCrypt コンテナをマウントしたいときは、{{ic|--type tcrypt}} に加えて {{ic|--veracrypt}} オプションを使ってください。カスタム Personal Iteration Multiplier (PIM) を使用する場合、{{ic|--veracrypt-query-pim}} オプションを使ってください。 |
|||
キーファイルを使用する場合、{{ic|--key-file}} オプションを使ってファイルを指定してください。隠しボリュームを開く場合は {{ic|--tcrypt-hidden}} オプションを使ってください。システムモードで暗号kパされたパーティションあるいはデバイスを開くには {{ic|--tcrypt-system}} オプションを使ってください。 |
|||
サポートされているオプションなどの詳細は {{man|8|cryptsetup}} を見て下さい。 |
|||
=== /etc/crypttab を使って自動マウント === |
|||
バージョン 206 から、[[systemd]] は {{ic|/etc/crypttab}} を使用して起動時に TrueCrypt コンテナを (自動的に) マウントすることをサポートしています。 |
|||
以下のセットアップでは {{ic|/mnt/truecrypt-volume}} にアクセスしたら systemd によって自動的にシステム暗号化モードで {{ic|/dev/sda2}} がマウントされます。ボリュームを開くためのパスフレーズは {{ic|/etc/volume.password}} に記述します。自動マウントを使用するには {{ic|/etc/fstab}} に指定するデバイスファイルは {{ic|/dev/mapper/}} のものでなくてはなりません。{{ic|/dev/disk/by-uuid/}} などは使えません。以下のように {{ic|/dev/disk/}} のデバイスファイル名を使うことで {{ic|/etc/crypttab}} の中で暗号化ボリュームを問題なく識別できます: |
|||
{{hc|/etc/crypttab|<nowiki> |
|||
truecrypt-volume /dev/sda2 /etc/volume.password tcrypt-system,noauto</nowiki> |
|||
}} |
|||
標準の truecrypt ボリュームの場合、''tcrypt-system'' の代わりに ''tcrypt'' を使ってください。隠しボリュームの場合、''tcrypt-hidden'' を使ってください。 |
|||
{{hc|/etc/fstab|<nowiki> |
|||
/dev/mapper/truecrypt-volume /mnt/truecrypt-volume auto noauto,x-systemd.automount 0 0</nowiki> |
|||
}} |
|||
''auto'' のかわりに直接、ファイルシステムやマウントオプションを指定することもできます。[[NTFS]] を通常ユーザーでマウントする場合などで有用です。 |
|||
サポートされているオプションなどの詳細は {{man|5|crypttab}} を参照してください。 |
|||
== 仮想ボリュームとしてファイルを暗号化する == |
|||
以下の手順に従って、仮想ファイルシステムとして動作するファイルを作成し、そのファイルをマウントして暗号化されたファイル内にデータを保存できます。これは、金融データやパスワードなどの機密情報を Linux、Windows、または Mac からアクセス可能な単一のファイルに保存する便利な方法です。 |
|||
新しい truecrypt ファイルを対話形式で作成するには、ターミナルで次のコマンドを入力します: |
|||
$ veracrypt -t -c |
|||
指示に従い、特別な理由がない限りデフォルト値を選択してください: |
|||
Volume type: |
|||
1) Normal |
|||
2) Hidden |
|||
Select [1]: 1 |
|||
Enter file or device path for new volume: /home/user/''EncryptedFile''.tc |
|||
Enter volume size (bytes - size/sizeK/sizeM/sizeG): 32M |
|||
Encryption algorithm: |
|||
1) AES |
|||
2) Blowfish |
|||
3) CAST5 |
|||
4) Serpent |
|||
5) Triple DES |
|||
6) Twofish |
|||
7) AES-Twofish |
|||
8) AES-Twofish-Serpent |
|||
9) Serpent-AES |
|||
10) Serpent-Twofish-AES |
|||
11) Twofish-Serpent |
|||
Select [1]: 1 |
|||
Hash algorithm: |
|||
1) RIPEMD-160 |
|||
2) SHA-1 |
|||
3) Whirlpool |
|||
Select [1]: 1 |
|||
ファイルシステム: |
|||
1) None |
|||
2) FAT |
|||
3) Linux Ext2 |
|||
4) Linux Ext3 |
|||
5) Linux Ext4 |
|||
選択 [2]: |
|||
Enter password for new volume '/home/user/''EncryptedFile''.tc': ***************************** |
|||
Re-enter password: ***************************** |
|||
Enter keyfile path [none]: |
|||
Please type at least 320 randomly chosen characters and then press Enter: |
|||
Done: 32.00 MB Speed: 10.76 MB/s Left: 0:00:00 |
|||
Volume created. |
|||
新しく作成した暗号化ファイルを、あらかじめ作成しておいたディレクトリにマウントできます: |
|||
$ veracrypt -t /home/user/''EncryptedFile''.tc /home/user/''EncryptedFileFolder'' |
|||
{{Note|Truecrypt は root 権限を必要とするため、上記のコマンドをユーザーとして実行すると、認証のために '''sudo''' が使用されます。通常のユーザーとしてファイルを操作するには、[[#Mount volumes as a normal user|通常のユーザーとしてボリュームをマウントする]] を参照してください。}} |
|||
マウント後は、暗号化されたディレクトリ内で通常のディレクトリのようにファイルをコピーしたり、新しいファイルを作成したりできます。暗号化された内容を再暗号化してディレクトリをアンマウントする準備ができたら、次のコマンドを実行します: |
|||
$ veracrypt -t -d |
|||
これも再び '''sudo''' を使用して管理者権限が必要です。実行後、暗号化されるファイルがディレクトリに残っていないか確認してください。(最初は重要でないデータで試すことをお勧めします)まだ残っている場合、''rm'' ではデータを完全に削除できないことに注意してください。 |
|||
truecrypt についての詳細な情報は、次のコマンドで確認できます: |
|||
$ man veracrypt |
|||
{{Note|バージョン 1:7.1a-1 では man または info ページが見つかりません。}} |
|||
コマンドラインでいくつかのオプションを指定することができ、自動化されたアクセスや作成が簡単に行えます。man ページはぜひ読むことをお勧めします。 |
|||
== 物理ボリュームの暗号化 == |
|||
{{Note|1=グラフィカルインターフェイスで問題が起こる場合、{{ic|-t}} フラグを使って CLI モードで起動してみてください。}} |
|||
キーファイルを使いたい場合は、次のコマンドでファイルを作成します: |
|||
# truecrypt --create-keyfile /etc/disk.key |
|||
デフォルトでは、ボリュームを解錠するにはパスフレーズとキーの両方が必要になります。 |
|||
{{ic|/dev/sda1}} デバイスに新しいボリュームを作成: |
|||
# truecrypt --volume-type=normal -c /dev/sda1 |
|||
ボリュームを {{ic|/dev/mapper/truecrypt1}} にマップ: |
|||
# truecrypt -N 1 /dev/sda1 |
|||
上記のコマンドが使えない場合は次のコマンドでボリュームをマップしてみてください: |
|||
# truecrypt --filesystem=none --slot=1 /dev/sda1 |
|||
お好きな[[ファイルシステム]]を選択して、通常通りにディスクをフォーマットします。ただしパスには {{ic|/dev/mapper/truecrypt1}} を使います。例えば ext4 の場合: |
|||
# mkfs.ext4 /dev/mapper/truecrypt1 |
|||
ボリュームをマウント: |
|||
# mount /dev/mapper/truecrypt1 /media/disk |
|||
ボリュームをマップしてマウント: |
|||
# truecrypt /dev/sda1 /media/disk |
|||
ボリュームをアンマウントしてマップを解除: |
|||
# truecrypt -d /dev/sda1 |
|||
== 隠しボリュームの作成 == |
|||
先に、[[#物理ボリュームの暗号化|物理ボリュームの暗号化]]で説明されているように、通常の外殻ボリュームを作成してください。 |
|||
外殻ボリュームを {{ic|/dev/mapper/truecrypt1}} にマップ: |
|||
# truecrypt -N 1 /dev/sda1 |
|||
外殻ボリュームの空き領域に truecrypt の隠しボリュームを作成: |
|||
# truecrypt --type hidden -c /dev/sda1 |
|||
外殻ボリュームとは異なるパスフレーズまたはキーファイルを使う必要があります。 |
|||
外殻 truecrypt ボリュームをアンマップして隠しボリュームをマップ: |
|||
# truecrypt -d /dev/sda1 |
|||
# truecrypt -N 1 /dev/sda1 |
|||
隠しボリューム用のパスフレーズを使ってください。TrueCrypt は自動的にパスフレーズを選び取ります。 |
|||
ファイルシステムを作成してマウント: |
|||
# mkfs.ext4 /dev/mapper/truecrypt1 |
|||
# mount /dev/mapper/truecrypt1 /media/disk |
|||
書き込み保護を有効にして外殻ボリュームをマップ・マウント: |
|||
# truecrypt -P /dev/sda1 /media/disk |
|||
== 特殊なファイルシステムをマウントする == |
|||
{{Note|現在のバージョンの truecrypt はデフォルトで NTFS 書き込みサポートを有効にしているようなので、{{ic|--filesystem}} フラグはもはや必要ないようです。}} |
|||
次の例では、ntfs ボリュームをマウントしようとしていますが、TrueCrypt はデフォルトで ''ntfs-3g'' を使用しません(そのため、書き込みアクセスができません。バージョン 6.1 で確認済みです)。 |
|||
次のコマンドが機能します: |
|||
veracrypt --filesystem=ntfs-3g --mount /file/you/want/to/mount |
|||
また、すべてのファイルに実行フラグを付けずに ntfs ボリュームをマウントしたい場合は、次のコマンドを使用します: |
|||
veracrypt --filesystem=ntfs-3g --fs-options=users,uid=$(id -u),gid=$(id -g),fmask=0113,dmask=0002 |
|||
== fstab でボリュームをマウント == |
|||
まず最初に、fstab でマウントを処理するスクリプトを書く必要があります。以下を {{ic|/usr/bin/mount.truecrypt}} として保存してください: |
|||
{{bc|<nowiki> |
|||
#!/bin/sh |
|||
DEV="$1" |
|||
MNTPT="$2" |
|||
OPTIONS="" |
|||
TCOPTIONS="" |
|||
shift 3 |
|||
IFS=',' |
|||
for arg in $*; do |
|||
case "$arg" in |
|||
system) TCOPTIONS=(${TCOPTIONS[*]} --m=system);; |
|||
fs*) TCOPTIONS=(${TCOPTIONS[*]} --filesystem=${arg#*=});; |
|||
keyfiles*) TCOPTIONS=(${TCOPTIONS[*]} --keyfiles=${arg#*=});; |
|||
password*) TCOPTIONS=(${TCOPTIONS[*]} --password=${arg#*=}) && echo "password triggered" ;; |
|||
protect-hidden*) TCOPTIONS=(${TCOPTIONS[*]} --protect-hidden=${arg#*=});; |
|||
*) OPTIONS="${OPTIONS}${arg},";; |
|||
esac |
|||
done |
|||
/bin/truecrypt --text --non-interactive ${DEV} ${MNTPT} ${TCOPTIONS[*]} --fs-options="${OPTIONS%,*}" |
|||
</nowiki>}} |
|||
ファイルに実行可能属性を付与してください: |
|||
# chmod +x /usr/bin/mount.truecrypt |
|||
最後に、fstab に以下のようにデバイスを追加してください: |
|||
/dev/sdb3 /mnt truecrypt fs=vfat,defaults 0 0 |
|||
{{Tip|上記のスクリプトは {{AUR|truecrypt-mount}} パッケージでもインストールできます。}} |
|||
== 通常ユーザーでボリュームをマウント == |
|||
TrueCrypt を使うには root 権限が必要です。このセクションでは通常ユーザーにボリュームへの書き込み権限を与えて、通常ユーザーが TrueCrypt を使えるようにする方法を説明します。 |
|||
以下のどちらの方法でも [[sudo]] が必要になります。先に進む前に sudo を設定するようにしてください。 |
|||
=== 方法 1: truecrypt グループを追加 === |
|||
truecrypt という名前の新しいグループを作成して必要な権限を与えます。グループに属しているユーザーは TrueCrypt を使えるようになります。 |
|||
# groupadd truecrypt |
|||
sudo の設定を編集: |
|||
# visudo |
|||
sudo の設定ファイルの末尾に以下の行を追加: |
|||
# Users in the truecrypt group are allowed to run TrueCrypt as root. |
|||
%truecrypt ALL=(root) NOPASSWD:/usr/bin/truecrypt |
|||
使用するユーザーを truecrypt グループに追加: |
|||
# gpasswd -M first_user,second_user,etc truecrypt |
|||
{{Note|上記の変更を適用するには、ユーザーを一度ログアウトさせてから再ログインする必要があります。}} |
|||
その後、以下のコマンドでデバイスをマウントすることができます: |
|||
$ truecrypt --mount ''/path/to/device'' ''/path/to/mountpoint'' |
|||
デフォルトのマウントポイントは {{ic|/media/truecrypt1}} です。通常、{{ic|--filesystem}} フラグを使ってデバイスのファイルシステムを明示的に指定する必要はありません。 |
|||
truecrypt にはパーミッションマスクを指定すると良いでしょう。そうしないと、マウントしたデバイスの全てのファイルが実行可能になってしまいます。例: |
|||
$ truecrypt --fs-options=users,uid=$(id -u),gid=$(id -g),fmask=0113,dmask=0002 --mount /PATH/TO/DEVICE /PATH/TO/MOUNTPOINT |
|||
上記のコマンドは bash の設定ファイル ({{ic|~/.bashrc}}) などにエイリアスとして追加できます: |
|||
alias tc1='truecrypt --fs-options=users,uid=$(id -u),gid=$(id -g),fmask=0113,dmask=0002 --mount ''/path/to/device"" ''/path/to/mountpoint' |
|||
指定したデバイスをマウントするには、通常ユーザーで以下のコマンドを使用します: |
|||
$ tc1 |
|||
=== 方法 2: sudo の簡易化 === |
|||
パスワードを入力せずに truecrypt を実行できるようにしたい場合、以下のコマンドを実行: |
|||
# visudo |
|||
そして以下を追加: |
|||
USERNAME ALL = (root) NOPASSWD:/usr/bin/truecrypt |
|||
もしくは wheel グループを使用する場合: |
|||
%wheel ALL = (root) NOPASSWD:/usr/bin/truecrypt |
|||
通常ユーザーのパーミッションが困る場合、truecrypt のマウントコマンドに {{ic|-u}} フラグを追加してください。例: |
|||
$ truecrypt -u /home/user/''EncryptedFile''.tc /home/user/''EncryptedFileFolder'' |
|||
=== ログイン時に自動マウント === |
|||
スタートアップに以下を追加: |
|||
{{bc| |
|||
truecrypt /home/user/''Encrypted File''.tc /home/user/''Encrypted File Folder'' <<EOF |
|||
''password'' |
|||
EOF |
|||
}} |
|||
{{ic|-p}} スイッチは使わないでください。''ps'' などのツールを使ってプロセスの名前からパスワードを確認できてしまいます [http://thoughtyblog.wordpress.com/2009/07/05/truecrypt-linux-hide-password-from-ps/]。 |
|||
The most recent truecrypt has a couple of followup questions. If you have expect installed, this will work (assuming no keyfile and no desire to protect hidden volume), saved to a file with root-only perms called from /etc/rc.local: |
|||
{{bc|<nowiki> |
|||
#! /bin/bash |
|||
expect << EOF |
|||
spawn /usr/bin/truecrypt ''/path/to/EncryptedFile'' ''/mount/point'' |
|||
expect "Enter password" |
|||
send "volume password\n" |
|||
expect "Enter keyfile" |
|||
send "\n" |
|||
expect "Protect hidden volume" |
|||
send "\n" |
|||
expect eof; |
|||
EOF |
|||
</nowiki>}} |
|||
上記はパスワードを普通に入力するのと比べるとセキュアでありませんが、TrueCrypt のファイルシステムが共有ストレージなどにあるときに、暗号化されないままの状態にするよりはましです。 |
|||
== (シャットダウン時に) ボリュームを安全にアンマウントしてマップを解除 == |
|||
以下のコマンドで指定したデバイスをアンマウントできます: |
|||
# truecrypt -d ''/path/to/mountpoint'' |
|||
全ての truecrypt ボリュームをアンマウントしたい場合はパスを省略してください。 |
|||
シャットダウン時に自動的に truecrypt デバイスをアンマウントさせたい場合、以下を {{ic|/etc/rc.local.shutdown}} ファイルに追加: |
|||
if (/usr/bin/truecrypt --text --list) |
|||
then { |
|||
/usr/bin/truecrypt -d |
|||
sleep 3 |
|||
} |
|||
fi |
|||
''sleep'' コマンドは取り払ってもかまいません。実際にシャットダウンする前にアンマウントする猶予を与えているだけです。 |
|||
== トラブルシューティング== |
|||
=== TrueCrypt is already running === |
|||
TrueCrypt の起動時に ''TrueCrypt is already running'' というメッセージボックスが表示される場合、ホームディレクトリに ''.TrueCrypt-lock-username'' という名前の隠しファイルが存在しないか確認してください (''username'' はあなたのユーザー名に置き換えて下さい)。ファイルを削除して TrueCrypt を再起動してください。 |
|||
=== Deleted stale lockfile === |
|||
Truecrypt の起動後に "Delete stale lockfile [....]" というメッセージが表示される場合、GNOME のログアウト時に ID が一番小さい Truecrypt のプロセスを終了する必要があります。{{ic|/etc/gdm/PostSession/Default}} を編集して exit 0 の前に以下の行を追加してください: |
|||
kill $(ps -ef | grep truecrypt | tr -s ' ' | cut -d ' ' -f 2) |
|||
=== ユニコードのファイル/フォルダ名の問題 === |
|||
==== NTFS ==== |
|||
(暗号化されていない NTFS パーティションは問題なく扱えるのに) 名前にユニコード文字が含まれているファイルやフォルダが TrueCrypt の NTFS ボリュームで表示されない場合、最初に [[NTFS-3G]] ドライバーがインストールされているかどうか確認してください。そして以下のシンボリックリンクを root で作成してください: |
|||
# ln -s /sbin/mount.ntfs-3g /sbin/mount.ntfs |
|||
自動的に NTFS ボリュームで NTFS-3G ドライバーが使われるようになります。コンソールで以下のように指定するのと同じです: |
|||
# truecrypt --filesystem=ntfs-3g /path/to/volume |
|||
TrueCrypt の GUI (''Settings > Preferences > Mount Options'') で以下のオプションを設定できます: |
|||
rw,noatime |
|||
==== FAT ==== |
|||
同じように、Windows で作成した FAT32 ボリュームは ISO 8859-1 ではなく Unicode が使われることがあります。UTF-8 を使用するには、マウントオプションを設定: |
|||
iocharset=utf8 |
|||
もしくは、ボリュームをローカルにマウントする際に以下のように指定: |
|||
--fs-options=iocharset=utf8 |
|||
linux-4.14.4 から [https://bugs.archlinux.org/task/56781]、デフォルトで UTF8 文字セットが有効になっているため、ISO 8859-1 エンコーディングを使ってボリュームをマウントするには以下のオプションが必要です: |
|||
--fs-options=utf8=no |
|||
=== アンマウントエラー (device mapper) === |
|||
truecrypt のボリュームをアンマウントしようとすると "device-mapper: remove ioctl failed: Device or resource busy" とメッセージが表示される場合、解決方法は Setting > Preferences > System Integration > Kernel Service から次のボックスにチェックを入れて下さい: |
|||
Do not use kernel cryptographic services |
|||
=== マウントエラー (device mapper, truecrypt partition) === |
|||
truecrypt ボリュームをマウントしようとすると、以下のようなメッセージが表示される場合: |
|||
Error: device-mapper: create ioctl failed: Device or resource busy |
|||
Command failed |
|||
次を実行してください: |
|||
# cryptsetup remove /dev/mapper/truecrypt1 |
|||
=== Failed to set up a loop device === |
|||
TrueCrypt ボリュームを作成・マウントしようとすると "Failed to set up a loop device" というメッセージが表示される場合、最近カーネルをアップデートしたのに再起動していないのが原因です。再起動を行えばエラーはなくなるでしょう。 |
|||
それでもエラーが消えない場合、''loop'' がカーネルモジュールとしてロードされているか確認してください: |
|||
$ lsmod | grep loop |
|||
loop がロードされていない場合、{{ic|modprobe loop}} を実行した後に TrueCrypt のコマンドを実行してみてください。それで上手くいくときは、{{ic|/etc/modules-load.d}} のモジュールに ''loop'' を追加すると良いでしょう: |
|||
# tee /etc/modules-load.d/truecrypt.conf <<< "loop" |
|||
{{Note|udev 181-5 現在、ループデバイスモジュールは自動ロードされません。上記の設定が必要です。}} |
|||
新しいバージョンのカーネルでは起動時にループデバイスが作成されません。ループデバイスが存在しないと、コンテナファイルのマウントに TrueCrypt が失敗します ("Failed to set up a loop device")。ただし最大数のループデバイス (通常は256個) が作成され、マウントができるようになります。 |
|||
問題を回避するにはファイルをマウントする前にループデバイスを作成してください: |
|||
# mknod -m 0660 /dev/loop8 b 7 8 |
|||
上記のコマンドで {{ic|/dev/loop8}} が作成されます。起動時にループデバイスを作成するには: |
|||
# echo "options loop max_loop=8" > /etc/modprobe.d/eightloop.conf |
|||
{{ic|1=max_loop=8}} は必要なデバイスの数に置き換えてください。 |
|||
=== システムパーティションのパスワードに en_US キーマップが必要 === |
|||
Xorg を使っている場合、以下のコマンドでキーマップを一時的に変更できます: |
|||
# setxkbmap us |
|||
=== NTFS ボリュームで Permission denied === |
|||
パーミッションに問題がないのに、ファイルシステムに変更を加えられない場合、[[NTFS-3G]] がインストールされていないのが原因のことがあります。[[#NTFS|NTFS]] を見て下さい。 |
|||
=== 標準ボリュームファイルシステムの破損 === |
|||
VeraCrypt ボリュームやコンテナにアクセスできなくなった場合は、[[install]] {{Pkg|testdisk}} をインストールしてください。詳細については [https://www.cgsecurity.org/wiki/Recover_a_TrueCrypt_Volume CGSecurity ページ] を参照してください。 |
|||
$ ./truecrypt -t --filesystem=none /data/data_for_testdisk/truecrypt.dd |
|||
パスワードを入力してください /data/data_for_testdisk/truecrypt.dd: |
|||
キーファイルを入力してください [なし]: |
|||
隠しボリュームを保護しますか? (y=Yes/n=No) [No]: |
|||
システム管理者のパスワードを入力してください: |
|||
$ mount |
|||
... |
|||
truecrypt on /tmp/.truecrypt_aux_mnt1 type fuse.truecrypt (rw,nosuid,nodev,allow_other) |
|||
# testdisk /tmp/.truecrypt_aux_mnt1/volume |
|||
== 参照 == |
|||
* [http://www.truecrypt.org/ TrueCrypt ホームページ] |
|||
* [https://www.howtoforge.com/truecrypt_data_encryption HowToForge の Truecrypt チュートリアル] |
|||
* [http://www.privacylover.com/encryption/analysis-is-there-a-backdoor-in-truecrypt-is-truecrypt-a-cia-honeypot/ There is a good chance the CIA has a backdoor?] (via [https://secure.wikimedia.org/wikipedia/en/wiki/Truecrypt wp]) |
|||
{{TranslationStatus|VeraCrypt|2024-09-07|810686}} |
|||
2024年9月7日 (土) 19:15時点における最新版
VeraCrypt は、無料のオープンソースのオンザフライ暗号化 (OTFE) プログラムである TrueCrypt のフォークです。主な特徴は次のとおりです:
- ファイル内に仮想暗号化ディスクを作成し、それを実際のディスクとしてマウント可能。
- ハードディスクパーティションやストレージデバイス/メディア全体を暗号化。
- すべての暗号化アルゴリズムは、ストレージ暗号化のための予測可能な初期化ベクトルを持つ CBC モードよりも安全な LRW モードを使用。
- 通常の「外側」の暗号化ボリューム内に「隠しボリューム」を作成可能。隠しボリュームは、パスフレーズやキー ファイルにアクセスしない限り、ランダムデータと区別できません。
TrueCrypt が他のディスク暗号化ソリューションとどのように比較されるかについての詳細は、ディスク暗号化#比較表を参照してください。
インストール
truecrypt で作成できます。truecrypt パッケージをインストールしてください。linux 以外のカーネルを使っている場合は、適当なカーネルモジュールもインストールします。
truecrypt を使って仮想ファイルシステム (例: ファイル) を暗号化する場合は、truecrypt コマンドを実行したときに自動でモジュールがロードされます。
truecrypt を使って物理デバイス (例: ハードディスクや usb ドライブ) を暗号化する場合は、ブートシーケンスの間にモジュールをロードするようにしてください:
/etc/modules-load.d/ にモジュールを追加:
# tee /etc/modules-load.d/truecrypt.conf <<< "truecrypt"
- 上記の設定でうまくいかない場合、以下のように "loop" モジュールを追加することで動作します:
# tee /etc/modules-load.d/truecrypt.conf <<< "loop" # modprobe loop
- Arch の標準カーネルではモジュールのロードは必ずしも手動で行う必要はありません。ただし、カスタムカーネルを使用している場合は FUSE と loop、および使用する暗号化アルゴリズム (例: AES, XTS, SHA512) を有効化する必要があります。既存の TrueCrypt コンテナにアクセスするだけなら TrueCrypt のインストールは不要です。
cryptsetup を使って TrueCrypt コンテナにアクセス
バージョン 1.6.7 から、cryptsetup は TrueCrypt と VeraCrypt のコンテナをネイティブで開けるようになっており、veracrypt パッケージを必要としません。cryptsetup でコンテナを開くには、次のコマンドを実行してください:
# cryptsetup --type tcrypt open container-to-mount container-name
container-to-mount を開きたい /dev 下のデバイスファイルやファイルのパスに置き換えてください。コンテナが開かれると /dev/mapper/container-name というデバイスが新しく認識され、通常のデバイスと同じように mount できるようになります。
VeraCrypt コンテナをマウントしたいときは、--type tcrypt に加えて --veracrypt オプションを使ってください。カスタム Personal Iteration Multiplier (PIM) を使用する場合、--veracrypt-query-pim オプションを使ってください。
キーファイルを使用する場合、--key-file オプションを使ってファイルを指定してください。隠しボリュームを開く場合は --tcrypt-hidden オプションを使ってください。システムモードで暗号kパされたパーティションあるいはデバイスを開くには --tcrypt-system オプションを使ってください。
サポートされているオプションなどの詳細は cryptsetup(8) を見て下さい。
/etc/crypttab を使って自動マウント
バージョン 206 から、systemd は /etc/crypttab を使用して起動時に TrueCrypt コンテナを (自動的に) マウントすることをサポートしています。
以下のセットアップでは /mnt/truecrypt-volume にアクセスしたら systemd によって自動的にシステム暗号化モードで /dev/sda2 がマウントされます。ボリュームを開くためのパスフレーズは /etc/volume.password に記述します。自動マウントを使用するには /etc/fstab に指定するデバイスファイルは /dev/mapper/ のものでなくてはなりません。/dev/disk/by-uuid/ などは使えません。以下のように /dev/disk/ のデバイスファイル名を使うことで /etc/crypttab の中で暗号化ボリュームを問題なく識別できます:
/etc/crypttab
truecrypt-volume /dev/sda2 /etc/volume.password tcrypt-system,noauto
標準の truecrypt ボリュームの場合、tcrypt-system の代わりに tcrypt を使ってください。隠しボリュームの場合、tcrypt-hidden を使ってください。
/etc/fstab
/dev/mapper/truecrypt-volume /mnt/truecrypt-volume auto noauto,x-systemd.automount 0 0
auto のかわりに直接、ファイルシステムやマウントオプションを指定することもできます。NTFS を通常ユーザーでマウントする場合などで有用です。
サポートされているオプションなどの詳細は crypttab(5) を参照してください。
仮想ボリュームとしてファイルを暗号化する
以下の手順に従って、仮想ファイルシステムとして動作するファイルを作成し、そのファイルをマウントして暗号化されたファイル内にデータを保存できます。これは、金融データやパスワードなどの機密情報を Linux、Windows、または Mac からアクセス可能な単一のファイルに保存する便利な方法です。
新しい truecrypt ファイルを対話形式で作成するには、ターミナルで次のコマンドを入力します:
$ veracrypt -t -c
指示に従い、特別な理由がない限りデフォルト値を選択してください:
Volume type: 1) Normal 2) Hidden Select [1]: 1
Enter file or device path for new volume: /home/user/EncryptedFile.tc
Enter volume size (bytes - size/sizeK/sizeM/sizeG): 32M
Encryption algorithm: 1) AES 2) Blowfish 3) CAST5 4) Serpent 5) Triple DES 6) Twofish 7) AES-Twofish 8) AES-Twofish-Serpent 9) Serpent-AES 10) Serpent-Twofish-AES 11) Twofish-Serpent Select [1]: 1
Hash algorithm: 1) RIPEMD-160 2) SHA-1 3) Whirlpool Select [1]: 1
ファイルシステム:
1) None 2) FAT 3) Linux Ext2 4) Linux Ext3 5) Linux Ext4
選択 [2]:
Enter password for new volume '/home/user/EncryptedFile.tc': ***************************** Re-enter password: *****************************
Enter keyfile path [none]:
Please type at least 320 randomly chosen characters and then press Enter:
Done: 32.00 MB Speed: 10.76 MB/s Left: 0:00:00 Volume created.
新しく作成した暗号化ファイルを、あらかじめ作成しておいたディレクトリにマウントできます:
$ veracrypt -t /home/user/EncryptedFile.tc /home/user/EncryptedFileFolder
マウント後は、暗号化されたディレクトリ内で通常のディレクトリのようにファイルをコピーしたり、新しいファイルを作成したりできます。暗号化された内容を再暗号化してディレクトリをアンマウントする準備ができたら、次のコマンドを実行します:
$ veracrypt -t -d
これも再び sudo を使用して管理者権限が必要です。実行後、暗号化されるファイルがディレクトリに残っていないか確認してください。(最初は重要でないデータで試すことをお勧めします)まだ残っている場合、rm ではデータを完全に削除できないことに注意してください。
truecrypt についての詳細な情報は、次のコマンドで確認できます:
$ man veracrypt
コマンドラインでいくつかのオプションを指定することができ、自動化されたアクセスや作成が簡単に行えます。man ページはぜひ読むことをお勧めします。
物理ボリュームの暗号化
-t フラグを使って CLI モードで起動してみてください。キーファイルを使いたい場合は、次のコマンドでファイルを作成します:
# truecrypt --create-keyfile /etc/disk.key
デフォルトでは、ボリュームを解錠するにはパスフレーズとキーの両方が必要になります。
/dev/sda1 デバイスに新しいボリュームを作成:
# truecrypt --volume-type=normal -c /dev/sda1
ボリュームを /dev/mapper/truecrypt1 にマップ:
# truecrypt -N 1 /dev/sda1
上記のコマンドが使えない場合は次のコマンドでボリュームをマップしてみてください:
# truecrypt --filesystem=none --slot=1 /dev/sda1
お好きなファイルシステムを選択して、通常通りにディスクをフォーマットします。ただしパスには /dev/mapper/truecrypt1 を使います。例えば ext4 の場合:
# mkfs.ext4 /dev/mapper/truecrypt1
ボリュームをマウント:
# mount /dev/mapper/truecrypt1 /media/disk
ボリュームをマップしてマウント:
# truecrypt /dev/sda1 /media/disk
ボリュームをアンマウントしてマップを解除:
# truecrypt -d /dev/sda1
隠しボリュームの作成
先に、物理ボリュームの暗号化で説明されているように、通常の外殻ボリュームを作成してください。
外殻ボリュームを /dev/mapper/truecrypt1 にマップ:
# truecrypt -N 1 /dev/sda1
外殻ボリュームの空き領域に truecrypt の隠しボリュームを作成:
# truecrypt --type hidden -c /dev/sda1
外殻ボリュームとは異なるパスフレーズまたはキーファイルを使う必要があります。
外殻 truecrypt ボリュームをアンマップして隠しボリュームをマップ:
# truecrypt -d /dev/sda1 # truecrypt -N 1 /dev/sda1
隠しボリューム用のパスフレーズを使ってください。TrueCrypt は自動的にパスフレーズを選び取ります。
ファイルシステムを作成してマウント:
# mkfs.ext4 /dev/mapper/truecrypt1 # mount /dev/mapper/truecrypt1 /media/disk
書き込み保護を有効にして外殻ボリュームをマップ・マウント:
# truecrypt -P /dev/sda1 /media/disk
特殊なファイルシステムをマウントする
--filesystem フラグはもはや必要ないようです。次の例では、ntfs ボリュームをマウントしようとしていますが、TrueCrypt はデフォルトで ntfs-3g を使用しません(そのため、書き込みアクセスができません。バージョン 6.1 で確認済みです)。 次のコマンドが機能します:
veracrypt --filesystem=ntfs-3g --mount /file/you/want/to/mount
また、すべてのファイルに実行フラグを付けずに ntfs ボリュームをマウントしたい場合は、次のコマンドを使用します:
veracrypt --filesystem=ntfs-3g --fs-options=users,uid=$(id -u),gid=$(id -g),fmask=0113,dmask=0002
fstab でボリュームをマウント
まず最初に、fstab でマウントを処理するスクリプトを書く必要があります。以下を /usr/bin/mount.truecrypt として保存してください:
#!/bin/sh
DEV="$1"
MNTPT="$2"
OPTIONS=""
TCOPTIONS=""
shift 3
IFS=','
for arg in $*; do
case "$arg" in
system) TCOPTIONS=(${TCOPTIONS[*]} --m=system);;
fs*) TCOPTIONS=(${TCOPTIONS[*]} --filesystem=${arg#*=});;
keyfiles*) TCOPTIONS=(${TCOPTIONS[*]} --keyfiles=${arg#*=});;
password*) TCOPTIONS=(${TCOPTIONS[*]} --password=${arg#*=}) && echo "password triggered" ;;
protect-hidden*) TCOPTIONS=(${TCOPTIONS[*]} --protect-hidden=${arg#*=});;
*) OPTIONS="${OPTIONS}${arg},";;
esac
done
/bin/truecrypt --text --non-interactive ${DEV} ${MNTPT} ${TCOPTIONS[*]} --fs-options="${OPTIONS%,*}"
ファイルに実行可能属性を付与してください:
# chmod +x /usr/bin/mount.truecrypt
最後に、fstab に以下のようにデバイスを追加してください:
/dev/sdb3 /mnt truecrypt fs=vfat,defaults 0 0
通常ユーザーでボリュームをマウント
TrueCrypt を使うには root 権限が必要です。このセクションでは通常ユーザーにボリュームへの書き込み権限を与えて、通常ユーザーが TrueCrypt を使えるようにする方法を説明します。
以下のどちらの方法でも sudo が必要になります。先に進む前に sudo を設定するようにしてください。
方法 1: truecrypt グループを追加
truecrypt という名前の新しいグループを作成して必要な権限を与えます。グループに属しているユーザーは TrueCrypt を使えるようになります。
# groupadd truecrypt
sudo の設定を編集:
# visudo
sudo の設定ファイルの末尾に以下の行を追加:
# Users in the truecrypt group are allowed to run TrueCrypt as root. %truecrypt ALL=(root) NOPASSWD:/usr/bin/truecrypt
使用するユーザーを truecrypt グループに追加:
# gpasswd -M first_user,second_user,etc truecrypt
その後、以下のコマンドでデバイスをマウントすることができます:
$ truecrypt --mount /path/to/device /path/to/mountpoint
デフォルトのマウントポイントは /media/truecrypt1 です。通常、--filesystem フラグを使ってデバイスのファイルシステムを明示的に指定する必要はありません。
truecrypt にはパーミッションマスクを指定すると良いでしょう。そうしないと、マウントしたデバイスの全てのファイルが実行可能になってしまいます。例:
$ truecrypt --fs-options=users,uid=$(id -u),gid=$(id -g),fmask=0113,dmask=0002 --mount /PATH/TO/DEVICE /PATH/TO/MOUNTPOINT
上記のコマンドは bash の設定ファイル (~/.bashrc) などにエイリアスとして追加できます:
alias tc1='truecrypt --fs-options=users,uid=$(id -u),gid=$(id -g),fmask=0113,dmask=0002 --mount /path/to/device"" /path/to/mountpoint'
指定したデバイスをマウントするには、通常ユーザーで以下のコマンドを使用します:
$ tc1
方法 2: sudo の簡易化
パスワードを入力せずに truecrypt を実行できるようにしたい場合、以下のコマンドを実行:
# visudo
そして以下を追加:
USERNAME ALL = (root) NOPASSWD:/usr/bin/truecrypt
もしくは wheel グループを使用する場合:
%wheel ALL = (root) NOPASSWD:/usr/bin/truecrypt
通常ユーザーのパーミッションが困る場合、truecrypt のマウントコマンドに -u フラグを追加してください。例:
$ truecrypt -u /home/user/EncryptedFile.tc /home/user/EncryptedFileFolder
ログイン時に自動マウント
スタートアップに以下を追加:
truecrypt /home/user/Encrypted File.tc /home/user/Encrypted File Folder <<EOF password EOF
-p スイッチは使わないでください。ps などのツールを使ってプロセスの名前からパスワードを確認できてしまいます [1]。
The most recent truecrypt has a couple of followup questions. If you have expect installed, this will work (assuming no keyfile and no desire to protect hidden volume), saved to a file with root-only perms called from /etc/rc.local:
#! /bin/bash expect << EOF spawn /usr/bin/truecrypt ''/path/to/EncryptedFile'' ''/mount/point'' expect "Enter password" send "volume password\n" expect "Enter keyfile" send "\n" expect "Protect hidden volume" send "\n" expect eof; EOF
上記はパスワードを普通に入力するのと比べるとセキュアでありませんが、TrueCrypt のファイルシステムが共有ストレージなどにあるときに、暗号化されないままの状態にするよりはましです。
(シャットダウン時に) ボリュームを安全にアンマウントしてマップを解除
以下のコマンドで指定したデバイスをアンマウントできます:
# truecrypt -d /path/to/mountpoint
全ての truecrypt ボリュームをアンマウントしたい場合はパスを省略してください。
シャットダウン時に自動的に truecrypt デバイスをアンマウントさせたい場合、以下を /etc/rc.local.shutdown ファイルに追加:
if (/usr/bin/truecrypt --text --list)
then {
/usr/bin/truecrypt -d
sleep 3
}
fi
sleep コマンドは取り払ってもかまいません。実際にシャットダウンする前にアンマウントする猶予を与えているだけです。
トラブルシューティング
TrueCrypt is already running
TrueCrypt の起動時に TrueCrypt is already running というメッセージボックスが表示される場合、ホームディレクトリに .TrueCrypt-lock-username という名前の隠しファイルが存在しないか確認してください (username はあなたのユーザー名に置き換えて下さい)。ファイルを削除して TrueCrypt を再起動してください。
Deleted stale lockfile
Truecrypt の起動後に "Delete stale lockfile [....]" というメッセージが表示される場合、GNOME のログアウト時に ID が一番小さい Truecrypt のプロセスを終了する必要があります。/etc/gdm/PostSession/Default を編集して exit 0 の前に以下の行を追加してください:
kill $(ps -ef | grep truecrypt | tr -s ' ' | cut -d ' ' -f 2)
ユニコードのファイル/フォルダ名の問題
NTFS
(暗号化されていない NTFS パーティションは問題なく扱えるのに) 名前にユニコード文字が含まれているファイルやフォルダが TrueCrypt の NTFS ボリュームで表示されない場合、最初に NTFS-3G ドライバーがインストールされているかどうか確認してください。そして以下のシンボリックリンクを root で作成してください:
# ln -s /sbin/mount.ntfs-3g /sbin/mount.ntfs
自動的に NTFS ボリュームで NTFS-3G ドライバーが使われるようになります。コンソールで以下のように指定するのと同じです:
# truecrypt --filesystem=ntfs-3g /path/to/volume
TrueCrypt の GUI (Settings > Preferences > Mount Options) で以下のオプションを設定できます:
rw,noatime
FAT
同じように、Windows で作成した FAT32 ボリュームは ISO 8859-1 ではなく Unicode が使われることがあります。UTF-8 を使用するには、マウントオプションを設定:
iocharset=utf8
もしくは、ボリュームをローカルにマウントする際に以下のように指定:
--fs-options=iocharset=utf8
linux-4.14.4 から [2]、デフォルトで UTF8 文字セットが有効になっているため、ISO 8859-1 エンコーディングを使ってボリュームをマウントするには以下のオプションが必要です:
--fs-options=utf8=no
アンマウントエラー (device mapper)
truecrypt のボリュームをアンマウントしようとすると "device-mapper: remove ioctl failed: Device or resource busy" とメッセージが表示される場合、解決方法は Setting > Preferences > System Integration > Kernel Service から次のボックスにチェックを入れて下さい:
Do not use kernel cryptographic services
マウントエラー (device mapper, truecrypt partition)
truecrypt ボリュームをマウントしようとすると、以下のようなメッセージが表示される場合:
Error: device-mapper: create ioctl failed: Device or resource busy Command failed
次を実行してください:
# cryptsetup remove /dev/mapper/truecrypt1
Failed to set up a loop device
TrueCrypt ボリュームを作成・マウントしようとすると "Failed to set up a loop device" というメッセージが表示される場合、最近カーネルをアップデートしたのに再起動していないのが原因です。再起動を行えばエラーはなくなるでしょう。
それでもエラーが消えない場合、loop がカーネルモジュールとしてロードされているか確認してください:
$ lsmod | grep loop
loop がロードされていない場合、modprobe loop を実行した後に TrueCrypt のコマンドを実行してみてください。それで上手くいくときは、/etc/modules-load.d のモジュールに loop を追加すると良いでしょう:
# tee /etc/modules-load.d/truecrypt.conf <<< "loop"
新しいバージョンのカーネルでは起動時にループデバイスが作成されません。ループデバイスが存在しないと、コンテナファイルのマウントに TrueCrypt が失敗します ("Failed to set up a loop device")。ただし最大数のループデバイス (通常は256個) が作成され、マウントができるようになります。
問題を回避するにはファイルをマウントする前にループデバイスを作成してください:
# mknod -m 0660 /dev/loop8 b 7 8
上記のコマンドで /dev/loop8 が作成されます。起動時にループデバイスを作成するには:
# echo "options loop max_loop=8" > /etc/modprobe.d/eightloop.conf
max_loop=8 は必要なデバイスの数に置き換えてください。
システムパーティションのパスワードに en_US キーマップが必要
Xorg を使っている場合、以下のコマンドでキーマップを一時的に変更できます:
# setxkbmap us
NTFS ボリュームで Permission denied
パーミッションに問題がないのに、ファイルシステムに変更を加えられない場合、NTFS-3G がインストールされていないのが原因のことがあります。NTFS を見て下さい。
標準ボリュームファイルシステムの破損
VeraCrypt ボリュームやコンテナにアクセスできなくなった場合は、install testdisk をインストールしてください。詳細については CGSecurity ページ を参照してください。
$ ./truecrypt -t --filesystem=none /data/data_for_testdisk/truecrypt.dd パスワードを入力してください /data/data_for_testdisk/truecrypt.dd: キーファイルを入力してください [なし]: 隠しボリュームを保護しますか? (y=Yes/n=No) [No]: システム管理者のパスワードを入力してください: $ mount ... truecrypt on /tmp/.truecrypt_aux_mnt1 type fuse.truecrypt (rw,nosuid,nodev,allow_other) # testdisk /tmp/.truecrypt_aux_mnt1/volume
参照
- TrueCrypt ホームページ
- HowToForge の Truecrypt チュートリアル
- There is a good chance the CIA has a backdoor? (via wp)