EncFS ってのがあるの知った

恥ずかしながら EncFS なる暗号ファイルシステムがあることを昨日知ったとこ。以前、僕が参加していた Momonga Linux にも fuse-encfs という名前でパッケージがあり、今まで気が付かなかったのが不思議だ。

FUSE を用いて実装されていて、なるほどなあと思った。というか、あって当然ともいえる機能だろうと感じた。

ただ使うだけであればとても簡単で、ヘルプメッセージに出てくる通りに encfs コマンドを実行すればいい。

$ encfs
ビルド: encfs バージョン 1.7.4


使い方: encfs [オプション] <ルートディレクトリ> <マウントポイント> [-- [FUSE マ ウントオプション]]

共通のオプション:
  -H                    FUSE マウントオプションを表示する
  -s                    マルチスレッドを無効にする
  -f                    フォアグラウンドで動作する(デーモン化しない)。
                        エラーメッセージはsyslogではなく
                        標準エラー出力に出力される。
  -v, --verbose         冗長モード: encfsのデバッグメッセージを出力する
  -i, --idle=MINUTES    一定時間使用されなかったら自動でマウントを解除する
  --anykey              正しい鍵が使用されているかどうか確認しない
  --forcedecode         エラーが検出された場合でもデータを復号する
                        (MAC ブロックヘッダを使用するファイルシステム用)
  -- public             通常のマルチユーザファイルシステムとして動作する
                        (root 権限で encfs を実行する必要がある)
  --reverse             reverse encryption
  --extpass=program     パスワードプロンプトに外部プログラムを使用する

例えば、~/.crypt にあるrawストレージを ~/crypt にマウントするには :
    encfs ~/.crypt ~/crypt

より詳しい情報は man ページ encfs(1) を参照してください

こんなふうに。~/.crypt に暗号化されたデータが入る。

$ mkdir ~/.crypt ~/crypt
$ encfs ~/.crypt ~/crypt
新しい暗号化ボリュームを作成します。
Please choose from one of the following options:
 enter "x" for expert configuration mode,
 enter "p" for pre-configured paranoia mode,
 anything else, or an empty line will select standard mode.
?>

Standard configuration selected.

設定が完了しました。以下のプロパティのファイルシステムが
作成されます:
ファイルシステム暗号アルゴリズム: "ssl/aes", バージョン 3:0:2
Filename encoding: "nameio/block", version 3:0:1
鍵サイズ: 192 ビット
Block Size: 1024 bytes
Each file contains 8 byte header with unique IV data.
Filenames encoded using IV chaining mode.
File holes passed through to ciphertext.

Now you will need to enter a password for your filesystem.
You will need to remember this password, as there is absolutely
no recovery mechanism.  However, the password can be changed
later using encfsctl.

新しい Encfs パスワード:
Encfs パスワードの確認:

ちなみに、たとえば上の例でいうと ~/crypt が空でないとマウントのときにエラーになるのが僕は嫌なので、nonempty オプションを渡すようにしている。

$ encfs ~/.crypt ~/crypt -- -o nonempty

アンマウントは sshfs とかと同じで fusermount コマンドで行う。

$ fusermount -u ~/crypt

まあ、とりあえず面白いなと思っただけです。