概要
クラウドにファイルをバックアップする場合、できれば暗号化したいのですがVeraCryptなどでは1ファイルを変更しただけでボリューム全てをアップロードし直しになり現実的じゃありません。かといって全て暗号化zipなどにすると、使う上で不便極まりないです。
これらの問題を解決するのがEncFS
という暗号ファイルシステムです。簡単に言うと
- 復号済みフォルダ
- 暗号化済みフォルダ
がリンクされていて、復号済みフォルダにファイルを入れると暗号化済みフォルダに暗号化された状態でファイルが作られます。 なので
- 普段は復号済みフォルダを使う
- 暗号化済みフォルダとクラウドストレージを同期させる
という形で前述の課題を解決できます。
環境
- Ubuntu 14.04
- encfs 1.7.4
インストール
$ sudo apt-get install encfs
設定
フォルダ作成
リンクするフォルダを作成します。encrypted
がクラウドと同期させる暗号化済みフォルダ。decrypted
が普段使用する復号済みフォルダです。
$ mkdir -p ~/encrypted $ mkdir -p ~/decrypted
リンク
$ encfs ~/encrypted ~/decrypted 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. ?>
初回だと暗号化の設定を求められます。簡単に説明すると以下です。
タイプ | 暗号方式 | 鍵長 | 備考 |
---|---|---|---|
standard | AES | 192bit | 通常の設定。個人用途なら十分 |
paranoia | AES | 256bit | standardよりも強度は高いがパフォーマンスは落ちる |
expert | AES/Blowfish | 128 ~ 256bit | 全設定を自分で行う |
詳しくは以下のサイトで非常にわかりやすく説明してあります。
今回はstandardで進めます。なのでそのまま何も入力せずEnter。
パスワード設定
以下の画面になるのでパスワードを入力
Standard configuration selected. Configuration finished. The filesystem to be created has the following properties: Filesystem cipher: "ssl/aes", version 3:0:2 Filename encoding: "nameio/block", version 3:0:1 Key Size: 192 bits 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. New Encfs Password:
するとencrypted
フォルダとdecrypted
フォルダがリンクされます。
またencrypted/.encfs6.xml
という先ほどの暗号化設定のファイルが作成されます。
こちらとパスワードが盗まれると、他の人でも復号できてしまうため、.encfs6.xml
はクラウドに同期させないでください。
動作確認
decrypted
フォルダに、新規ファイルやフォルダを追加します。
$ cd decrypted/ $ echo test > hoge $ mkdir fuga $ touch fuga/piyo
次にencrypted
フォルダを覗きます。
$ cd encrypted $ tree . ├── elEYrTpXZW24eDPJCBkJ,XyW └── X6VMHBzgnPCQmpQtSn0M5A4H └── uuxQKP5fKMlp-qYeSemfsIv1
ファイルが名前ごと暗号化されていますね。中身も
$ cat elEYrTpXZW24eDPJCBkJ,XyW h??3?+?`:??y
と暗号化されてます。
その他
アンマウント
システム的には暗号化したものを保持していて、decrypted
フォルダをアンマウントすれば復号済みのファイルは見えなくなります。
$ fusermount -u ~/decrypted $ tree decrypted/ decrypted/ 0 directories, 0 files
再び見たいときは最初のリンクのコマンドを実行してマウントします。
$ encfs ~/encrypted ~/decrypted EncFS Password:
パスワードの変更
encfsctl
コマンドでパスワードを変更できます。
$ encfsctl passwd ~/encrypted Enter current Encfs password EncFS Password: Enter new Encfs password New Encfs Password: Verify Encfs Password: Volume Key successfully updated.