Dropboxをここしばらく使っているのですが、ほとんど手間いらず、同期の速度が相当に高速、安定と非常に素晴らしいサービスです。Windows/Mac/Linux/iPhoneとクロスプラットフォーム対応もばっちりで現状ベストのオンラインストレージかもしれません。
しかし、いくらサーバ側でAESを使ってファイルを暗号化してくれているといっても、やはり大事なファイルを他人のストレージにゆだねるというのはどうも安心できません。
かといってTrueCryptのような暗号化ディスクイメージを使うタイプを同期させると、転送にどれくらい時間がかかるのか今ひとつ判然としません。もし外出先で大きなディスクイメージがごっそり同期になったりすると余りうれしくありません。
というわけで、なにか手はないものかと考えた末(というほどでもありませんが)、encfsの暗号化されたディレクトリを共有してもちゃんといけるかどうか試してみました。テストはMacOSX LeopardとUbuntu 8.04の間で行いました。Windowsにencfsがあるのかどうかは知りません。。。
セットアップ
Ubuntu側
sudo apt-get install encfs
sudo addgroup <user> fuse
mkdir ~/Dropbox/Private
encfs ~/Dropbox/Private ~/Private
- 注意:このときなにか聞かれるのだが、standardではなく必ずparanoiaを指定すること。standardにするとmac側でblowfishが削除されているためマウント出来なくなります。次の版では復活するかもだそうです。
- 注意2: encfsは~かフルパス指定
cd ~/Private
ファイルを適当に操作
Mac側
Google CodeからMacFuseを入れる
同じくGoogle CodeのEncFsを入れる
encfs ~/Dropbox/Private ~/Private
以上で暗号化されたファイルの同期が無事出来ました。
結果と感想
まだ小さなファイルでしか試していませんが、バックグラウンドで暗号化されたディレクトリのファイルが同期されても相互に問題なさそうです。同時に同じファイルを編集したりするのはさすがにコワいので止めた方が良さそうですが。
せっかく便利なDropboxに一手間増えてしまいますが、これでDropbox側で問題が起きたり、アカウントが破られてしまってもすぐにファイルの中身がバレることは無くなり少しは安心です。まあセキュリティに100%はないのでご利用は個人のご判断で。
また、Dropboxに保存される時にはファイル名まで暗号化されているので、webから履歴とかを見てもどのファイルがアップデートされたのかぱっと見では全くわからなくなります。これはこれで微妙ですが安心は安心です。
もうちょい便利にするには
Linux側ではcryptkeepr等のGnome用アプレットを使うとGUI操作で暗号化フォルダの操作ができて楽できます。
Mac側ではMacFusion (macfuseのGUIフロントエンド)用のEncFsプラグインがあったのですが、なんだか上手く動かなかったのが残念です。
その他
Dropboxの同期速度は相当なもので、面白いことに、例えばLinux側でviでファイルを開いてすぐにKVMスイッチで画面を切り替えて、同じファイルをMac側のviで開けようとするとviのロックファイルが見つかったとのたまいます。キー操作と画面の切り替わる数秒で同期されているというオンラインストレージとは思えぬ速度です。
Dropboxのデータは各マシンのローカルにコピーが保存されているため、MacのTimeMachineを使っていれば自動でバックアップされますし、仮にDropboxのサービス側に問題が起きてもオフラインにしておくかDropboxを動かなくしておけばデータの救出も出来そうです。また複数のマシンにコピーを持つことになるのでデータ的にはかなり安全と思われます。
これと同等なオープンソースのサーバ&クライアントソフトが欲しいと思う今日この頃。inotify-utilsで監視したり定期的にrsyncをするとかを組み合わせれば似たようなことが出来るスクリプトはさほど難しくなく作れそうですが、バージョン管理やwebインターフェースも含めるとtracとsvnとかになってちょっと面倒そうです。