| 開発者 | ヴァリアント・ゴフ |
|---|---|
| 安定リリース | 1.9.5 / 2018年4月27日[1] |
| リポジトリ |
|
| オペレーティング·システム | Linux、FreeBSD、macOS、[2] Windows("encfs4win"ポート)[3](Safe、代替macOS、Windowsポート)およびAndroidアプリ |
| タイプ | ファイルシステム、暗号化 |
| ライセンス | LGPL |
| Webサイト | EncFS ホーム |
EncFSは無料(LGPL)のFUSEベースの暗号化ファイルシステムです。任意のディレクトリを暗号化ファイルの保存場所として使用し、ファイルを透過的に暗号化します。 [4] [5]
EncFS ファイルシステムのマウントには、ソース ディレクトリとマウント ポイントの 2 つのディレクトリが関係します。マウント ポイント内の各ファイルには、それに対応するソース ディレクトリ内の特定のファイルがあります。マウント ポイント内のファイルは、ソース ディレクトリ内のファイルの暗号化されていないビューを提供します。ファイル名はソース ディレクトリ内で暗号化されます。
ファイルはボリュームキーを使用して暗号化され、ボリュームキーは暗号化されたソースディレクトリ内または外部に保存されます。[6]このキーを復号化するにはパスワードが使用されます。
EncFS は、開発元の Valient Gough によって 2024 年 5 月に Github ページで休止状態となり、今後更新されないことが宣言されました。
一般的な用途
- Linux では、 eCryptfsの代替としてホーム フォルダーの暗号化を許可します。
- クラウド ストレージ( Dropbox、Google Drive、OneDriveなど)に保存されたファイルとフォルダーの暗号化を可能にします。
- リムーバブル ディスク上のファイル フォルダーのポータブル暗号化を可能にします。
- クロスプラットフォームのフォルダー暗号化メカニズムとして利用できます。
- 2要素認証(2FA)を追加することでストレージのセキュリティを強化します。EncFSボリュームキーを暗号化されたソースディレクトリの外部、実際の暗号化データとは物理的に分離された場所に保存すると、2要素認証(2FA)を追加することでセキュリティが大幅に強化されます。たとえば、EncFSは、 USBフラッシュドライブ、ネットワークマウント、光ディスク、クラウドなど、実際の暗号化データ以外の場所に各固有のボリュームキーを保存できます。[6]さらに、このボリュームキーを復号化するにはパスワードが必要になる場合があります。
利点
EncFS は、各ファイルがホストのディレクトリ ツリー内の別の場所に暗号化されたファイルとして個別に保存されるため、 他のディスク暗号化ソフトウェアに比べていくつかの利点があります。
クロスプラットフォーム
EncFSは複数のプラットフォームで利用可能であるが、eCryptfsはLinuxカーネル に結び付けられている。
ビットロット検出
EncFSは、基盤となるファイルシステム上で ビットロット検出を実装します。
スケーラブルなストレージ
EncFSには固定サイズを占める「ボリューム」はありません。暗号化されたディレクトリは、マウントポイントにファイルが追加されたり、マウントポイントからファイルが削除されたりすると、拡大したり縮小したりします。
通常のファイルサーバー
EncFSの暗号化されたディレクトリは、通常のファイルサーバー(NFS、SSHFSなど)上に配置でき、 Rsyncなどの通常のファイルシステムツールを使用して効率的にミラーリングおよびバックアップできます。
異なる物理デバイス
ファイルシステムがソースディレクトリのサブディレクトリの1つにマウントされている場合、マウントポイント上のいくつかのディレクトリが異なる物理デバイス上に存在する可能性があります。
より高速なバックアップ
バックアップユーティリティは、ソースディレクトリで変更されたファイルのみをバックアップできます(ファイル同期、クラウドストレージ)
汚職の減少
データの破損はより隔離されます。ファイルデータの破損は単一のファイルにローカルであり、ファイルシステムのデータ破損は、fsckなどの信頼性の高いファイルシステム修復ユーティリティを使用して修正できます。一部のディスク全体の暗号化システムには、これらの属性の 1 つまたは両方が欠けています。
最適化
ファイルの変更は基盤となるファイル システムに反映されるため、フルディスク暗号化とは異なり、オペレーティング システムによるさまざまな最適化が可能です。たとえば、解放された領域に関する情報 ( TRIM ) を渡すと、 SSDドライブのパフォーマンスが向上します。ただし、これはdm-cryptでもサポートされています。
ランダムファイルアクセス
ファイルにはランダムにアクセスできます。たとえば、ファイル全体を復号化せずに、非常に大きな暗号化されたビデオの途中までスキップできます。
デメリット
EncFS の使用にはいくつかの欠点があります。
互換性
マウントされた EncFS ディレクトリは、ソース ディレクトリを含むファイル システムと同じ機能と制限を共有します。
非常に長いファイル名はサポートされていません
暗号化のため、EncFS で作成された暗号化ファイルのファイル名は元のファイル名よりも長くなります。したがって、ファイルシステムでサポートされている最大長に近いファイル名は、暗号化後に長さ制限を超えてしまうため、EncFS で保存できません。ほとんどのファイルシステムではファイル名が 255 バイトに制限されていますが、その場合、EncFS は 190 バイトまでのファイル名のみをサポートします。[7] [8]
一般的なセキュリティ上の懸念
ソースディレクトリにアクセスできる人なら誰でも、ファイル名とファイルデータは暗号化されているものの、暗号化されたファイルシステム内のファイルの数、ファイルの権限、おおよそのサイズ、最後にアクセスまたは変更された日時を確認できます。[9]
EncFS 1.7 のセキュリティ上の懸念
2014年2月に有料のセキュリティ監査が実施され、いくつかの潜在的な脆弱性が明らかになりました。その結果は次のように結論づけられています。[10]
EncFS は、攻撃者が暗号文のコピーを 1 つだけ取得し、それ以上取得しない限り、おそらく安全です。攻撃者が暗号文のスナップショットを異なる時間に 2 つ以上見る機会がある場合、EncFS は安全ではありません。EncFS は、悪意のある変更からファイルを保護しようとしますが、この機能には重大な問題があります。
EncFS 1.8 のセキュリティ上の懸念
EncFS 1.8の発表には、前回の監査で提起されたセキュリティ上の懸念を考慮したいくつかの基本的な設計変更が含まれていました。しかし、これらの脆弱性に関する懸念は依然として残っています。[11]
ファイルシステムオプション
新しい EncFS ボリュームを作成する場合、さまざまなニーズに合わせてファイルシステムをカスタマイズするためのさまざまなオプションが利用できます。
暗号アルゴリズム
EncFS は、システム上のさまざまな暗号化ライブラリで見つけることができる暗号をすべて使用します。通常はBlowfishとAES が利用できます。
可変長のキーをサポートする暗号では、暗号キーの長さ (keySize) を選択できます。
ブロックサイズ
各ファイルはブロック単位で暗号化され、このオプションはブロックのサイズを制御します。1 バイトが読み取られるたびに、そのバイトが含まれるブロック全体を復号化する必要があります。同様に、書き込みごとにブロックを復号化し、変更し、再暗号化する必要があります。
デフォルトのブロック サイズ 1024 は、ほとんどの目的には十分です。
ファイル名のエンコード
ソース ディレクトリ内のファイル名は、ブロック モードまたはストリーム モードでプレーンまたは暗号化できます。ブロック モードではファイル名の長さが多少隠されますが、ストリーム モードではファイル名が可能な限り短く保たれるため、そのファイル システムがディレクトリ ツリーを管理する方法によっては、ソース ディレクトリのファイル システムのスペースを節約できる可能性があります。
ファイル名IV連鎖
有効にすると、ファイル名の暗号化の初期化ベクトルはファイルの親ディレクトリから取得され、異なるディレクトリにある同じ名前の 2 つのファイルに異なる暗号化ファイル名が付けられます。
ディレクトリの名前を変更すると、そこに含まれるすべてのファイルとディレクトリの暗号化されたファイル名を再度暗号化する必要があり、これはコストのかかる操作になる可能性があります。大量のデータを含むディレクトリの名前を頻繁に変更する場合は、このオプションを無効にする必要があります。
ファイルごとのIV初期化ベクトル
有効にすると、各ファイルはランダムな 8 バイトの初期化ベクトルで暗号化され、ソース ディレクトリ内の暗号化ファイル内に保存されます。このオプションを無効にすると、各ファイルは同じ初期化ベクトルで暗号化されるため、ボリューム キーが解読されやすくなります。
このオプションを有効にすると、ファイルごとに 8 バイト追加されますが、ファイルシステムのセキュリティが強化されます。
外部IV連鎖
ファイル データ初期化ベクトルがファイル名の初期化ベクトル チェーンから派生されるようにします。ファイル名またはディレクトリが異なると、同じデータでも異なる方法で暗号化されます。
したがって、このモードが有効になっているときにファイルの名前を変更するには、ファイルのランダム初期化ベクトルをファイル名初期化ベクトル チェーンの変更によってオフセットするか、データを再エンコードする必要があります。EncFS の作成者は、特に大きなファイルの場合、かなり高速であるため、前者の方法を選択しました。
ファイル名からIVヘッダーへの連鎖
エンコードは完全なパス名に依存します。したがって、名前の変更や移動は再エンコードを意味します。ハードリンクはサポートされていません。
MACヘッダーをブロックする
暗号化された各ブロックにチェックサムを保存し、暗号化されたファイルの破損や変更が EncFS によって検出されるようにします。チェックサム (blockMACBytes) は 8 バイトで、オプションで最大 8 バイトのランダム データ (blockMACRandBytes) を各ブロックに追加して、同じ暗号化されていないデータを持つ 2 つのブロックが同じチェックサムを持つことを防止できます。このオプションでは、データの読み取り (整合性の検証) または書き込み (チェックサムの更新) 時に各ブロックのチェックサムを計算する必要があるため、 CPU のオーバーヘッドが大きくなります。
参照
参考文献
- ^ 「リリース - vgough/encfs」 。 2018年6月11日閲覧– GitHub経由。
- ^ 「Valient Gough」。Valient Gough 。 2018年4月23日閲覧。
- ^ 「encfs4win - encfs を Windows の世界に移植する実験的なプロジェクト」。2011 年 7 月 4 日時点のオリジナルよりアーカイブ。2013年11 月 29 日閲覧。
- ^ Falko, Timme (2017-01-14). 「Debian 8 (Jessie) で EncFS を使用してデータを暗号化する方法」. The Linux Foundation . 2017-04-13閲覧。
- ^ Falko, Timme (2016-05-06). 「Ubuntu 16.04 で EncFS を使用してデータを暗号化する」. The Linux Foundation . 2017-04-13閲覧。
- ^ ab Gough, Valient (2016-12-26). 「環境変数」. GitHub . 2017-05-07に取得。
- ^ 「問題 #7 - 非常に長いファイル名の代替ファイル名ストレージ」。github.com。2014年 8 月 22 日。2016年 1 月 27 日取得。長い
ファイル名は、暗号化とエンコード後にファイルシステムの制限を超える可能性があります。
- ^ "Manpage for enfs.1". manpages.ubuntu.com . Ubuntu. 2016-02-03 にオリジナルからアーカイブ。2016-01-27に取得。
基盤となるファイルシステムでファイル名の文字数が N 文字に制限されている場合、EncFS では約 3*(N-2)/4 に制限されます。 たとえば、ホスト ファイルシステムが 256 文字に制限されている場合、EncFS ではファイル名が 190 文字に制限されます。 これは、暗号化されたファイル名がプレーンテキストのファイル名よりも常に長くなるためです。
- ^ 「EncFS ディレクトリ暗号化ノート」。2016 年 10 月 3 日時点のオリジナルよりアーカイブ。2015 年 6 月 8 日閲覧。
- ^ 「EncFS セキュリティ監査」。
- ^ 「EncFS 1.8 のお知らせ」.
外部リンク
- プロジェクト終了のお知らせ(Github)
- Encfs マニュアルページ
- Safe: Windows および Mac OS X 用のファイルごとの実装。カーネル モード ドライバー (低速) はありませんが、完全にオープン ソースです。
- Boxcryptor: Windows、Android、iOS 用の EncFS ベースの独自ソフトウェア。2017 年 2 月 16 日にWayback Machineにアーカイブされました。
- EncFSMP: Windows および Mac OS X で動作する実装
