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

EncFS
開発元 Valient Gough
最新版
1.9.5 / 2018年4月28日 (5年前) (2018-04-28)
リポジトリ ウィキデータを編集
対応OS Linux, FreeBSD, Mac OS X[1] Microsoft Windows (EncFS4Winy)[2], Android[3]
種別 暗号ソフトウェア/ディスクドライブ仮想化ソフト
ライセンス LGPL
公式サイト EncFS home
テンプレートを表示

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

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

よくある使用例 編集

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

利点 編集

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

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

欠点 編集

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

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

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

安全性 編集

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

暗号化方式 編集

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

脚注 編集

出典 編集

  1. ^ http://www.arg0.net/
  2. ^ encfs4winy - EncFS4Winy ファイル暗号化”. 2015年9月20日閲覧。
  3. ^ Cryptonite”. 2015年9月21日閲覧。
  4. ^ Gough, Valient (2016年12月26日). “ENVIRONMENT VARIABLES” (英語). GitHub. 2017年5月7日閲覧。
  5. ^ Issue #7 - alternative filename storage for very long filenames”. github.com (2014年8月22日). 2016年1月27日閲覧。 “Long filenames can exceed the filesystem limits after encryption & encoding.”
  6. ^ Manpage for enfs.1”. manpages.ubuntu.com. Ubuntu. 2016年1月27日閲覧。 “If your underlying filesystem limits you to N characters in a filename, then EncFS will limit you to approximately 3*(N-2)/4. For example if the host filesystem limits to 256 characters, then EncFS will be limited to 190 character filenames. This is because encrypted filenames are always longer than plaintext filenames.”
  7. ^ EncFS Security Audit”. 2015年9月20日閲覧。