TrueCryptを使った混成環境におけるファイルシステムの暗号化

大事なファイルを暗号化してパスワードや復号鍵なしには誰もアクセスできないようにする場合、選択肢はいくつか存在する。だが、フリーでクロスプラットフォーム、オープンソースの暗号化アプリケーションということになれば、TrueCryptの出番と言えるだろう。

TrueCryptによる暗号化および復号化は、ファイルの読み込みまたは保存の際にユーザの操作を必要とせずにすぐさま行われる。また、TrueCryptは暗号化したファイルを仮想ディスクとして機能するコンテナファイルに格納するか、パーティション全体またはディスク全体をMicrosoftとLinuxの双方において暗号化されたボリュームに変えることができる。このソフトウェアでは、TrueCryptボリュームの設定時に作成する個人用のパスワードや鍵を利用してファイルを保護する。こうしたパスワードや鍵がなければ、暗号化されたボリューム上のデータは一切参照できなくなっている(オフラインでも同様)。

TrueCryptを使い始める前に、いくつか注意すべき点がある。

  • Windowsの場合はRAM内ではなくページファイル内の開かれたキャッシュファイルに書き込むことがあるため、データや鍵がさらされてしまう可能性がある。
  • TrueCrypt使用時にはハイバネーション機能を使わないこと。ハイバネーション時にはまだ保存されていないデータがハードディスクに書き込まれるためである。
  • マウントされているTrueCryptボリュームの内容は、システムにログオン中のすべてのユーザから参照可能(アクセス可能)になる。

こうした点を了承したうえで、TrueCryptをダウンロードしてもらいたい。TrueCryptのバイナリパッケージはFedora、OpenSUSE、Ubuntuの各ディストリビューション用のものが用意されている。詳しいセットアップ手順はTrueCryptの初心者向けガイドのページにあるので、そちらを参照してほしい。ちなみに今回、私がTrueCryptをテストしたのはUbuntu 6.10の環境だ。

インストールが終わったら、truecryptという簡単なコマンドライン・ツールを使ってTrueCryptボリュームの作成と設定に取りかかるとしよう。オプションを何も指定せずにtruecryptと入力して実行すると、このツールのオプション一覧が表示される。詳しいヘルプについては、--helpオプションを使って表示するか、manページで確認すること。あるいはTrueCryptドキュメントのページを参照してもよい。

ここでは、パスワードで保護されるTrueCryptボリュームをセカンド・ドライブ(/dev/hdb1)の第1パーティションに作成することにする。この設定を行うには、シェルで次のコマンドを実行し、そのなかで8つの簡単な質問に答えることになる。

sudo truecrypt --create /dev/hdb1

まず訊かれるのは普通のパーティションにするか、それとも隠しパーティションにするかだ。隠しパーティションにすれば、何らかの事情で自分のパスワードを公開したり誰かに教えたりしなければならなくなった場合でも、暗号化ボリュームの存在を伏せておくことができる。そこまで被害妄想癖の強くない人は、デフォルトである普通のパーティションを選べばよいだろう。

続いて、ファイルシステムの種類を選択する。デフォルトはFATだが、ファイルシステムはあとで再フォーマットが可能なのでデフォルトのままにしておけばよい。

3つ目は、暗号化に利用するハッシュアルゴリズムの選択に関するものだ。デフォルトの選択肢(RIPEMD-160)で問題ないのだが、敢えて他のものを選んでハッシュアルゴリズムの違いを調べることもできる。

次に、暗号化アルゴリズムを選ぶように求められる。選択肢は豊富で、それも128ビットから256ビットまでのバリエーションが存在する。それぞれの暗号化アルゴリズムの違いを確かめるのもよいが、デフォルトのAESアルゴリズム(256ビットの鍵を使用)を選んでおけば安心だろう。

今度は、暗号化ボリュームへのアクセスに必要となる個人用パスワードを入力する。ただし、あとで忘れてしまうようなパスワードを設定してはならない。さもないと暗号化ボリューム上のデータを取り戻す手立てを失うことになってしまう。

次の手順では、パスワードの代わりに鍵ファイルを使用する場合のために、鍵ファイルの置き場所を指定することができる。ただし、TrueCryptボリュームを個人用途で使うか、自分以外の人には大事なファイルへのアクセスを許可しないつもりなら、パスワードだけで十分である。

最後に、320文字以上のランダム文字列を生成する必要がある。コンピュータにマウスを接続しているなら、マウスを動かすことでこの文字列を生成できるが、マウスをつなげていない場合は、この文字列を手で入力しなければならない。この手順は暗号鍵の質にとって重要である。マウスを長く動かし続けるほど強力な鍵になるのだ。

ここまで済んでようやくTrueCryptによって暗号化ボリュームが作られる。ボリュームのサイズにもよるが、この作成には数分ほどかかる。作成が終わるとその旨が表示され、暗号化ボリュームを利用し始めることができる。

作成したばかりのTrueCryptボリュームに大事なデータをコピーする前に、まずは次のようなコマンドを使ってこのボリュームをマウントする必要がある。

sudo truecrypt /dev/hdb1 /mnt/
Enter password for '/dev/hdb1':

パスワードを入力すると、この新しいボリュームが/mntディレクトリにマウントされる。これで、他のボリュームで行うのと同じように、ファイルのコピー、移動、作成をこのディレクトリ上で行うことができる。大事なファイルのコピーが終わったらすぐ、システムにログオン中の他のユーザから参照できないように暗号化ボリュームをアンマウントしておこう。

sudo truecrypt --dismount

TrueCryptは、WindowsとLinuxの双方をブート可能なサーバまたはノートPC上にあるデータの安全性を確保するために役立てることができる。TrueCryptボリュームを含む特別なパーティションをハードディスク上に設置することが可能であり、大事なデータを収めたこのボリュームは、WindowsとLinuxのどちらからでも参照できるのだ。

NewsForge.com 原文