2008年5月20日火曜日

ubuntuで暗号化ファイルシステム、TrueCryptを試してみた

linux では暗号化ファイルシステムがけっこいいろいろあって、よりどりみどりです。
そのなかでも TrueCrypet は、
  • クロスプラットフォーム
    WindowsでもlinuxでもMacでも使える。
  • 隠し属性の暗号化ボリュームを作れる
といった特徴があり、特にWindowsとUSBメモリでデータのやり取りをしている人には打って付けでしょう。
 隠し属性については、暗号化したボリュームのなかに隠し属性の暗号ボリュームを潜ませることができます。そしてこの隠蔽した暗号ボリュームを検出することは不可能です。
 このことは、例えばこの記事、
米国税関が新制度を近くスタート、入国者が所持するPCのデータを丸ごとコピー
のように暗号化フォルダのパスワードを言わざるをえない場合でも、ダミーのほうを教えて、大事な隠し暗号化フォルダの存在には気づかれずに済むといったメリットがあります。

もちろんメリットばかりでなく、いろいろと使い勝手の悪い部分もあって、
  • linux版では日本語化されていない
    Windows版では日本語ランゲージパックを入れれば、日本語化出来る
  • CUIで使うときは、optionの先頭に -t optionを付けないといけない
  • manドキュメントがなくなった
  • オープンソースだがライセンスが独自
  • 現在のVer5だとlinuxで隠し属性のボリュームが作れない
    Ability to create hidden volumes on Mac OS X and Linux


前書きはこんな感じで実際に使ってみます。

インストール


http://www.truecrypt.org/downloads.php から ubuntu 用のパッケージをダウンロードしてきます。落したら、
tar zxvf truecrypt-5.1a-ubuntu-x86.tar.gz
cd truecrypt-5.1a
sudo dpkg -i truecrypt_5.1a-0_i386.deb
としてインストールします。

使い方


 暗号化ボリュームは、ハードディスクのパーティション丸ごと一つでもいいし、ファイルでもかまいません。ファイルの場合はそのファイルが暗号化ボリュームとしてマウントします。
 ここではお試しに使ってみるので、foobar.tc というファイルを作って、~/crypt にマウントしてみます。
truecrypt -t -c
とすると、
Volume type:
1) Normal
2) Hidden
Select [1]:
ノーマルか隠し属性か聞いてきます。隠しは非対応なので、ノーマルを選択します。
Enter volume path:
ボリュームパスを聞いてきますので、foobar.tc と入れます。
Enter volume size (sizeK/size[M]/sizeG):
ボリュームサイズを聞いてくるので、適当に入れます。
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) RIPEMD-160
2) SHA-512
3) Whirlpool
Select [1]:
ハッシュアルゴリズムを聞いてきます。おなじくデフォルトにします。
Filesystem:
1) FAT
2) None
Select [1]:
ファイルシステムを聞いてきます。あとからフォーマットすることもできます。ここもデフォルトで。
Enter password:
パスワードを聞いてきますので、なにか適当なパスワードを入力します。20文字以下だと警告してきます。
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]:
まあ、テストなので20文字以下でもOKなのでYesと解答します。
再度確認のためにパスワードを聞いてきますので、入力します。
Enter keyfile path [none]:
鍵ファイルの場所を聞いてきます。使いませんのでそのまま空欄でエンター。
Please type at least 320 randomly chosen characters and then press Enter:
鍵を生成するためのランダムな文字列の入力を求められす。320文字も適当にキーボードをがちゃがちゃ叩きます。疲れます・・・
Done: 100.000% Speed: 7.7 MB/s Left: 0 s
The TrueCrypt volume has been successfully created.
無事暗号化ボリュームが作成されました。

マウントしてみる

~/crypt にマウントしてみます。
$ truecrypt -t foobar.tc ~/crypt
  Enter password for /home/yama/foobar.tc:
  Protect hidden volume? (y=Yes/n=No) [No]:
  Enter system administrator password:
foobar.tc のパスワードは? 隠し属性があるかどうか? rootのパスワードは? など聞かれますので、順番に答えていけば無事マウントされます。

作成した暗号化ボリュームは、
~$ truecrypt -t -v -l foobar.tc
Slot: 1
Volume: /home/hoge/foobar.tc
Virtual Device: /dev/loop1
Mount Directory: /home/hoge/crypt
Size: 32.0 MB
Type: Normal
Read-Only: No
Hidden Volume Protected: No
Encryption Algorithm: AES
Key Size: 256 bits
Block Size: 128 bits
Mode of Operation: XTS
PKCS-5 PRF: HMAC-RIPEMD-160
PKCS-5 Iteration Count: 2000
Volume Created: 2008年05月20日 18時57分38秒
Header Last Modified: 2008年05月20日 18時57分38秒
Data Read since Mount: 191 KB
Data Written since Mount: 0 B
としてプロパティが閲覧できます。

アンマウント

truecrypt -t -d foobar.tc
としてアンマウントします。

GUIで使う


 Vre5 からlinuxでもGUIで使えるようになりました。たんに truecrypt を実行するだけで常駐で起動します。
 manページがなくなってしまったみたいで、代わりに、/usr/share/truecrypt/doc/TrueCrypt User Guide.pdf が入っています。いちいちPDFを見ろということですね。面倒くさいですね。
 当然PDFの中身は英語です。ですが、ランゲージパックの中にこのPDFを和訳したものが同梱されていますので、GUIで使いたい方は是非こちらを見ることをお勧めします。

参考

2 件のコメント:

capo さんのコメント...

初めまして。
初めてコメントを書かせていただきます。

この記事が今、私が取り組んでいる内容に類似していることからいくつか質問があります。

USB起動Ubuntu上でTrueCryptが使えることは記事内で説明にありますが、

例えば、
Ubuntu上でWindowsのシステムドライブを暗号化 した場合に
Windowsの起動はパスワード認証がなのでしょうか?

ayukawa さんのコメント...

>>Ubuntu上でWindowsのシステムドライブを暗号化 した場合
これは、Windowsの起動パーティションを丸ごとということでしょうか。
個人的に暗号化はデータ領域のみに行ない、システム領域は暗号化する必要がないと考えています。
 ですがシステム領域丸ごと暗号化できそうですね。
http://www.truecrypt.org/docs/?s=system-encryption
こちらの記事などが参考になりませんか。
http://nanokawa.net/archives/individual/2008/0207072644.php
私個人はもうほとんどWindowsをいじらないのでわかりません><