暗号化FS EncFS Windows 移植版の EncFS4Winy を試す

以前のエントリの 「暗号化ファイルシステム EncFS の Reverse mode を試す | matoken’s meme」のコメントで EncFS の Windows移植版の EncFS4Winy というものを教えてもらいました．

EncFS4Winy ファイル暗号化 « 座間ソフト

Release EncFS4Winy latest · miyabe/encfs4winy

EncFS の移植 & GUI で簡単にマウントしたりできるもののようです．

今回は VirtualBox 内の Windows 8.1 Professional 64bit 版に検証時の最新版の EncFS4WinyInstall_1.7.5_2.exe を試しました．手元で計算した HASH は以下の通り．

% sha256sum EncFS4WinyInstall_1.7.5_2.exe

fd8c5109876730eb1a0395e9d85a81007655fc0ae135f63adc30e3b34da84315  EncFS4WinyInstall_1.7.5_2.exe

% sha512sum EncFS4WinyInstall_1.7.5_2.exe

c722c41d99944ccc247ac8b3859a2a3f3cfc2e467c814b865adda57d767837ec0561c23725b5d3f79a03babcce8137b3553291aa498a20eedcd46fb00504cc15  EncFS4WinyInstall_1.7.5_2.exe

実行するとインストーラが起動してよきに計らってくれます．
早速起動してみると，「コンピューターに LIBEAY32.dll がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみて下さい。」 と言われて起動出来ませんでした．

LIBEAY32.dll は何者だろうと検索すると OpenSSL のもののようです．OpenSSL 本家ではバイナリを配布してないので Vector/窓の杜などで探しますが見当たりません．ReadMe_Windows.txt にも書かれている以下があちこちから参照されているし最新のバージョンに追従しているようですが，個人の人の運用しているページのようで配布物のハッシュや署名なども見当たらず．Announcement ML も登録できずでちょっと不安．皆さん自分でビルドされてるんですかね?(それとも他にいい配布元がある?)

Shining Light Productions – Win32 OpenSSL

仮想マシン環境なのでスナップショットを取ってあるので後で巻き戻すことにしてひとまずここから OpenSSL を導入しました．
すると EncFS は動作するようになりました．

＜追記＞
OpenSSL ライブラリが同梱された EncFS4Winy 1.7.5_3 がリリースされました．この辺りの手順は必要なくなったはずです．

Release EncFS4Winy 1.7.5_3 · miyabe/encfs4winy

＜／追記＞

C:\Program Files (x86)\EncFS\EncFS4Winy>.\encfs.exe --version

encfs version 1.7.4

C:\Program Files (x86)\EncFS\EncFS4Winy>.\encfs.exe -h

.\encfs.exe: invalid option -- h

05:57:06 (..\encfs\main.cpp:354) Missing one or more arguments, aborting.

Build: encfs version 1.7.4

Usage: .\encfs.exe [options] rootDir mountPoint [-- [FUSE Mount Options]]

Common Options:

-H                    show optional FUSE Mount Options

-s                    disable multithreaded operation

-f                    run in foreground (don't spawn daemon).

Error messages will be sent to stderr

instead of syslog.

-v, --verbose         verbose: output encfs debug messages

-i, --idle=MINUTES    Auto unmount after period of inactivity

--anykey              Do not verify correct key is being used

--forcedecode         decode data even if an error is detected

(for filesystems using MAC block headers)

--public              act as a typical multi-user filesystem

(encfs must be run as root)

--reverse             reverse encryption

Example, to mount at c:\plain with raw storage in c:\crypt :

encfs c:\crypt c:\plain

For more information, see the man page encfs(1)

早速 Linux で作った暗号化ファイルシステムをマウントしてみると以下のようにエラーとなってしまいました．

C:\Program Files (x86)\EncFS\EncFS4Winy>.\encfs.exe F:\tmp\encfs_c I: EncFS Password:

06:53:02 (..\encfs\FileUtils.cpp:1694) Unable to find nameio interface nameio/block, version 4:0:0

The requested filename coding interface is not available

ちょっと調べると，EncFS 領域作成時のファイル名エンコードのオプションで Blick32 を指定しているとこうなるようです．EncFS4Winy で利用している EncFS 1.7.4 にはこのオプションがありません．

The following filename encoding algorithms are available:

1. Block : Block encoding, hides file name size somewhat

2. Null : No encryption of filenames

3. Stream : Stream encoding, keeps filenames as short as possible

Enter the number corresponding to your choice:

Linux 側で暗号化ファイルシステム作成時に Block を指定してみたところ EncFS4Winy でマウントできました．Windows 側で作成した領域の Linux でのマウントもOK でした．EncFS4Winy の EncFS バージョンが追従するまでは Linux 側で注意する必要があるようです．
ファイル名については UTF-8 であれば相互問題ありませんでした．

ということで，今度は GUI を試してみます．マウント元の暗号化フォルダと，マウント先のドライブレター，パスワードと入力していくとマウントできました．(コマンドプロンプトからの実行時にはマウント先はドライブレターだけでなくパスも指定可能)

マウント元の暗号化フォルダに空のものを指定すると新しい EncFS の暗号化領域が作成できます．オプションで paranoia mode が指定できます．

動作は Linux の Cryptkeeper とほぼ同じですね．違いは EncFS4Winy では暗号化FS 作成時のオプションに paranoia mode があって，Cryptkeeper のマウントオプションに自動アンマウントオプションがあるくらいでしょうか．

Tom Morton’s beloved Website!

GitHUB などで検索してみると Mac版の EncFS も複数出てきました．何年も更新されていないものとかもありますが GUI のあるものもあるようです．今手元に環境がないので試していませんがうまく動くようならマルチプラットホームで利用できるかもしれませんね．