Google DriveやDropboxを暗号化して使う方法


長いこと噂されていたGoogle Driveがついにはじまったとか、SkyDrive がデスクトップ用のクライアントができたとか、にわかに賑やかになってきたオンラインストレージ。そこで気になるのがこれらに機密性の高いファイルをいれていいものだろうか?という問題。

例えば Google Drive では、Google にアップロードされたコンテンツはユーザーのみでなく、Google にも利用権利を与えたことになるという説がある。

参考リンク:『Google Drive』のファイルは誰のもの? (from WIRED.jp)

また、この分野の老舗である Dropbox では、以前認証システムのバグにより、事実上パスワードが設定されていないという状態になってしまったことがある。

参考リンク:Dropbox侵入事件:被害者は100人未満、ただし侵入者は1人だけ (from TechCrunch JP)

そんなわけで、仕事やプライバシーに関わるようなデータは入れない方が良さそうだが、もし仮に入れるとしたらば、自分以外は読めない状態で暗号化しておく必要がありそうだ。

例えばパスワード付きの zip 圧縮ファイルでおいておくというのも1つの手であるけれども、使うときにいちいち解凍しなければならないというのも面倒くさい。できることならフツーのディスクやフォルダのように読み書きしたら、勝手に暗号化されるような仕組みがあればベストだ。

というわけで、以下では暗号化ファイルシステム EncFS を Dropbox 上に導入する手順を説明する。この方法は Google Drive、SkyDrive でも同じように利用することができる。

以下、各プラットフォーム別に説明する。

Linux の場合

いちばんユーザーが少ない気はするけれど、基礎っちゃあ基礎なのでまず Linux で説明する。
まずは Fedora なり Ubuntu なりで普通に Dropbox を使えるように設定しよう。

EncFS はイマドキふつーにパッケージ化されているようなので、Fedora だったら「sudo yum install fuse-encfs」(CentOS の場合は EPEL に同名パッケージがある)、Ubuntu であれば「sudo apt-get install encfs」とすれば必要パッケージがインストールされる。

さて、自分の Dropbox フォルダが「/home/hoge/Dropbox」だとして、そこに「work」という暗号化された作業ディレクトリを作りたい。そしてそれを「/home/hoge/mnt」にマウントしよう。以下のように実行する。

$ encfs /home/hoge/Dropbox/work /home/hoge/mnt

(一般権限でOK)

ディレクトリパスはフルパスで指定する必要があるようだ。
初回実行時はそれぞれのディレクトリが存在していない場合には作って良いか?ということをきかれる。それから、次のような問も出る。

Creating new encrypted volume.
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.

これは細かいオプションが指定できるようなんだけれども、まあなにも入力しないで Return (Enter) で充分のようだ。
さらに、このディレクトリを暗号化するためのパスフレーズ (パスワード) を聞かれるので、同じ物を2回入力する。

この状態で、/home/hoge/mnt に暗号化ファイルシステムがマウントしているので、てきとーにディレクトリやファイルをを作ってやれば良い。もとの /home/hoge/Dropbox/work にはファイル名も滅茶苦茶でなんだかわからないファイルができている。

アンマウントするには、以下のように実行する。

$ fusermount -u /home/hoge/mnt

(一般権限でOK)

同じディレクトリを2度目以降にマウントするときはパスフレーズのみ聞かれるので、初回に指定したものを入力すれば良い。

Windows の場合

まずこちらのサイトにアクセスし、encfs.zip 及びリンク先から Dokan Library 0.6 のインストーラーをダウンロードする。

encfs4win

Dokan Library をインストールした後、encfs.zip を任意のディレクトリに解凍し (例えば C:\encfs4win)、環境変数 PATH を設定しておく。面倒なので詳しくは説明しないので、ぐぐっていちばん最初に出てきたこのあたりを参考にされたい。

参考リンク:Windows 環境変数 Path の設定方法

コマンドラインでの使い方は Linux 版と同じである (ただし、アンマウントのコマンドがついてこないので、Ctrl-C で強制終了させる必要がある)。
以下では GUI 版の使い方を説明する。

encfs.zip を解凍した中に、「encfsw.exe」という実行ファイルがあるので実行しよう。タスクトレイに次のようなアイコンが表示される (画面は WIndows XP での例)。

これをクリックし、メニューから「Preference」を選択し、「Launch at startup」をチェックしておくと次から起動時に自動的に実行されて便利かもしれない。
次に、同じくタスクトレイアイコンをクリックし、メニューから「Open/Create」を選択する。
初回の場合は以下のようなダイアログが表示されるので、Dropbox 上のディレクトリを指定する。上の Linux での例と合わせるなら「work」ディレクトリだ。
「Drive」でマウントしたいドライブレターと、「Password」「Verify」にパスフレーズ (パスワード) を同じ物を入力する。

2度目以降はパスフレーズの入力ダイアログとドライブの選択ダイアログが表示されるので、それぞれ適切に入力する。

利用が終わったら、タスクトレイアイコンをクリックし、メニューに「Unmount C:\?Dropbox\work」というような項目があるので、それを選択すれば良い。

Mac の場合

2013/1/6:全面的に書きなおし

Mac の場合、いくつか手段はあるみたいだけれども、日本語ファイル名を使うのであればコマンドラインから操作する必要がある。
僕は Mac Homebrew というパッケージ管理機構でコマンドラインツールを管理しているので、それを前提に説明する。MacPorts にも EncFS はあるみたいだけれども、僕は使ってみたことないし、まあ自力で MacPorts をお使いの方にわざわざ僕が細かい説明をするのは釈迦に説法だろう。

まず、Mac Homebrew なんていれてねーぞという方は下記サイトの説明でたぶんインストールできると思う。

参考リンク:[Mac] Mountain Lionへパッケージ管理「Homebrew」をインストールする手順のメモ | Tools 4 Hack

さて、それができたら、ターミナルのコマンドラインで以下のように実行する。

$ brew install encfs

実行時にいろいろ説明がでるが、その説明にしたがって次のように実行する。 折り返しちゃってるかもしれないけど、2つの sudo コマンドだ。

$ sudo cp -rfX /usr/local/Cellar/fuse4x-kext/0.9.2/Library/Extensions/fuse4x.kext /Library/Extensions/

$ sudo chmod +s /Library/Extensions/fuse4x.kext/Support/load_fuse4x

「0.9.2」のところはインストール時のバージョンによって変わるのでご注意。

使い方はコマンドラインなので Linux で説明したのと基本的には同じ。
マウントする際に、マウントポイントは /Volums 以下の任意の名前をつけるとふつーのディスクのようにデスクトップに現れるので良いだろう。

$ encfs /Users/hoge/Dropbox/work /Volumes/disk

アンマウントするには普通のディスクと同じようにゴミ箱へのマウスドラッグでイジェクトすれば良い。

さて、Mac のHFS拡張ファイルシステムでは濁点を含むひらがな・カタカナ文字は、濁点を別に扱う「UTF-8-MAC」もしくは「UTF-8-HFS」と呼ばれるエンコーディングで管理されているそうである。

参考リンク:Mac OS X上のUnicode

そんなわけで、Mac と Windows 間では濁点を含む文字をディレクトリ名やファイル名に含めるとうまく動かない。これは Subversion や Git などでも問題になっているようである。

これを解消するため、マウント時にすこしオプションを追加してやる必要がある。こんなカンジ。

$ encfs -omodules=iconv,to_code=UTF-8,from_code=UTF-8-MAC /Users/hoge/Dropbox/work /Volumes/disk

これで文字コードが自動的に変換されるので、他の OS と共有することができる。
参考リンク:Secure your Dropbox ? widerin.org

(2013/1/18)補足:BoxCryptor について

EncFS を使った GUI フロントエンド「BoxCryptor」というものがあるらしい。

参考リンク:BoxCryptor | On-the-fly Encryption for cloud storage

ただしこれは商用商品で、無料版もあるけれども、ファイル名の暗号化というかスクランブルは有料版でないとできないそうだ。

ダウンロードのページにそれぞれの版の比較が出ている。

その他だいたいこんなカンジ

  • Windows / Mac 用
  • iOS 版もある。無料版 (ファイル名スクランブル非対応) のみみたい?
  • Chrome 拡張もある。ただし、encfs で作ったフォルダを読めなかったのと、Chrome 拡張で作ったフォルダを encfs でマウントしても中身が見えなかった

(2014/4/1)訂正:Mac での to_code / from_code

どうも最近調子悪いなと思ったら to_code と from_code の指定が逆だったみたいです。上記は修正済みです。失礼しました…


コメントを残す