EncFSは、FUSEベースの暗号化ファイルシステムを実装した自由ソフトウェア(LGPL)である。任意のディレクトリを、暗号化したファイルの格納場所とすることができる。

EncFSは、元のディレクトリとマウントポイントの2つのディレクトリを指定し、元のディレクトリをマウントポイントに関連付ける。元のディレクトリではファイル名と内容が暗号化された状態で保存されるが、マウントポイントでは、元のディレクトリのファイルが復号された状態で読み取ることができる。逆に、元のディレクトリに通常のファイルを格納し、マウントポイントで暗号化されたファイルを提供する「リバースモード」も存在する。

ファイルの暗号化キーは、暗号化された状態で元のディレクトリに格納され、パスワードを使用してこのキーを復号できる。したがって、パスワードを用いてファイルを保護することができる。

よくある使用例

  • Linuxにおいて、eCryptfsの代替ソフトウェアとしてホームディレクトリを暗号化する。
  • クラウドストレージ(Dropbox、Google ドライブ、OneDriveなど)に保存するファイルとディレクトリを暗号化する。
  • リムーバブルディスク上のファイルやディレクトリのポータブルな暗号化手段として利用する。
  • クロスプラットフォームなディレクトリの暗号化メカニズムとして利用する。
  • 二段階認証(2FA)を追加してストレージのセキュリティを高める。EncFSボリュームのキーは暗号化した元ディレクトリの外に保存され、実際の暗号化データとは物理的に離れた場所に保管できるため、二段階認証を加えることで安全性が大幅に向上する。たとえば、EncFSはユニークなボリュームキーを実際の暗号化データとは別の場所に保管できるため、USBフラッシュドライブ、ネットマウントディスク、光学ディスク、クラウドストレージなどに保管することができる。さらに、そのボリュームキー自体にパスワードを設定することも可能である。

利点

EncFSは、ファイルの配置やディレクトリ構成をそのままの状態にして暗号化を行うことができるため、ファイルシステム自体を暗号化する他のソフトウェア(TrueCryptやBitLocker等)とは、以下のような異なる利点がある。

  • ファイルシステムが持つ、記憶装置の劣化を検出する機能を利用できる。
  • ファイルサイズの増大、縮小、削除に応じて記憶装置の空きスペースが調整されるので、固定した記憶領域をあらかじめ確保する必要がない。
  • 元のディレクトリの物理的な位置に依存しない。また、元のディレクトリのサブディレクトリもマウントすることができる。
  • fsck等のファイルシステム修復ツールが利用できる。
  • SSDを使用した場合TRIMが有効に機能する。
  • 暗号化されたファイルと平文ファイルが一対一で対応しているため、rsyncによる差分バックアップやDropbox、Google ドライブなどのオンラインストレージとの同期が効率的に行える。

欠点

  • ファイルの数、おおよそのファイルのサイズ、アクセス時刻、パーミッション等のファイルのメタ情報は、復号できなくても分かってしまう。

非常に長いファイル名をサポートしない

暗号化により、EncFSが暗号化したファイルのファイル名は通常は元のファイルより長くなる。そのため、ファイルシステムがサポートするファイル名の長さの制限に近い、長いファイル名のファイルの場合、EncFSはファイルを保存することができない。ほとんどのファイルシステムではファイル名が255バイトに制限されているため、その場合、EncFSは最大で190バイトまでのファイル名しかサポートしない。

安全性

2014年2月にTaylor Hornbyよるセキュリティ監査が行われた。このレポートでは、「EncFSは1つの暗号化データが攻撃者に渡った場合はおそらく安全であろう。しかし、異なる時間の2つ以上の暗号化データが攻撃者に渡った場合は安全ではない。EncFSはファイルの悪意ある改ざんを防ごうとしているが、その機能に重大な問題がある」と報告されている。

暗号化方式

Blowfish(鍵長160ビット、ブロックサイズ512ビット)またはAES(鍵長192または256ビット、ブロックサイズ1024ビット)が利用可能である。

脚注

出典


How To Encrypt Your Dropbox Data With ENCFS [Linux]

EncFS простая программа для шифрования данных

EncFS Semantic Scholar

How to Encrypt Cloud Storage with EncFS on Ubuntu VITUX

GitHub vgough/encfs EncFS an Encrypted Filesystem for FUSE.