monolithic kernel

Dropboxで同期するデータを自動的に暗号化する

最近、Dropboxの暗号化は嘘だとか言われていますね。まあ嘘ではないわけですが、鍵をDropbox側が持っていていつでも復号できてしまうのは不安というのももっともだと思います。

以前からTrueCryptなどのソフトウェアを利用してデータを暗号化した上でDropboxと同期させるということをしている人もいたようですが、使いやすさを少なからず犠牲にする必要がありました。

そこで、今回はDropboxで同期するデータを暗号化することだけに特化したアプリケーションを作ってみました。

このプログラムを利用する場合、My Dropbox以下にファイルを直接置いて編集するのではなく、別に作業ディレクトリを用意してそちらを編集します。作業ディレクトリにあるファイルが編集されると、それらを自動的に暗号化してMy Dropbox以下に配置、そしてDropboxにアップロードされるという流れで処理されるようになります。

仕組み

これにより、手間を増やすこと無くDropboxで同期するデータを暗号化することができます。

インストール

以下のリンクからダウンロードできます。実行には.NET Framework 4.0が必要です。

以下のように暗号化キー、作業を行うディレクトリ、暗号化したファイルを配置するディレクトリを指定すると起動します。ディレクトリパスの末尾には\を付けてください。エラーチェックはろくにやっておらず、間違ったパラメータを指定すると例外を吐いてあっさり落ちます。

SecretSecret.exe 暗号化キー C:\Users\mono\Desktop\Secret\ "C:\Users\mono\Documents\My Dropbox\Secret\\"

無事起動に成功したら、作業用のディレクトリで適当にファイルを編集してみてください。瞬時に暗号化されたデータが生成され、Dropboxと同期されます。

複数のマシンで同期する場合、暗号化キーに共通のものを利用すれば正しく同期することができます。ただし、今のところコンフリクトが起きたときのことを考慮していないので注意してください。

暗号化について

アルゴリズムはAES、鍵はコマンドラインから入力されたもののSHA1を計算したうち先頭128ビットを利用しています。

おわりに

ここまで長々と書いたわけですが、現時点でこのプログラムを重要なファイルに対して使うか?と聞かれたら私はNoと答えます。つまりそういうことです。

あとDropbox関連の記事で恒例のDropbox乞食も貼っておくのでアカウントを作成するのであれば以下のリンクからどうぞ。