web-dev-qa-db-ja.com

ネットワーク化+暗号化されたファイルシステムの可能な実装

リモートサーバーがそのファイルシステム(またはその中のサイズ変更可能なコンテナファイル)を共有し、ローカルで暗号化およびマウントされているスキームを実装することは可能ですか?そして、何が最善ですか実用的メソッド? (Linuxの場合。)

使用例は、あまり信頼されていないサーバー上のバックアップストレージです。

6
catpnosis

あなたが探しているものは encfs です。これは、既存のすべてのFSの上にあるFuseレイヤーであり、オンザフライで暗号化および復号化し、基礎となるファイルシステムに暗号化されたバージョンを保存します。問題は、そのファイルのメタデータ(所有権、サイズ、時間)です。は表示されますが、コンテンツと名前は表示されません。

--reverseを使用して、逆の方法で暗号化されていないfsの暗号化されたビューを作成することもできます。rsync対応の暗号化されたバックアップを作成するのに便利です。

追加して編集
Æsahættrが指摘したように、別の使用可能なオプションは eCryptfs です。これはカーネル内のFSドライバです。つまり、ルート権限が必要です。しかし、これはパフォーマンスのオーバーヘッドが非常に低く、自分のテストのencfよりもはるかに高速です。実装はかなり異なりますが、 2つは、使用方法がほとんど同じです。

encfs /base_dir/ /view_dir/
# or
mount -t ecryptfs /base_dir/ /view_dir/

デフォルトでは、encfsはファイル名をスクランブルしますが、ecryptfsはそうしませんが、これらのオプションは構成可能です。また、ecryptfsはメタデータをファイル自体に格納するので、encfsは非表示のxmlファイルに格納するため、encfsよりもファイルごとのオーバーヘッドが大幅に増加します。また、encfsが持っている--reverseオプションは、実際にはecryptfsにうまく変換できません。 ecryptfsにはecryptfs_encrypted_viewがありますが、おそらく期待どおりに動作しません。おそらくこれは進行中の作業です。

どちらもベースとして任意のファイルシステムを使用できます。たとえば、sshfsなど。ただし、ファイルの所有権と権限はそのままベースファイルシステムに保存されるため、正しく一致しないとアクセス拒否エラーが発生したり、FSそれはそれらをサポートしていません。

6
tylerl

はい。暗号化されたコンテナファイルを使用する場合は、NFS、CIFS、またはSSHFSプロトコルを使用してリモートファイルシステムにアクセスできます。ブロックデバイスへのリモートアクセスには、iSCSI、NBDまたはAoEを使用できます。個人的には、暗号化されたコンテナーファイルを使用してCIFSおよびNFS経由でアクセスをベンチマークし、最速のファイルを使用します私のために。

3
Matrix