リモートサーバーがそのファイルシステム(またはその中のサイズ変更可能なコンテナファイル)を共有し、ローカルで暗号化およびマウントされているスキームを実装することは可能ですか?そして、何が最善ですか実用的メソッド? (Linuxの場合。)
使用例は、あまり信頼されていないサーバー上のバックアップストレージです。
あなたが探しているものは 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それはそれらをサポートしていません。
はい。暗号化されたコンテナファイルを使用する場合は、NFS、CIFS、またはSSHFSプロトコルを使用してリモートファイルシステムにアクセスできます。ブロックデバイスへのリモートアクセスには、iSCSI、NBDまたはAoEを使用できます。個人的には、暗号化されたコンテナーファイルを使用してCIFSおよびNFS経由でアクセスをベンチマークし、最速のファイルを使用します私のために。