ext4暗号化ファイルのコピー

ext4暗号化ファイルのコピー

ext4暗号化を使用しています。 https://wiki.archlinux.org/index.php/Ext4#Using_file-based_encryption

ディレクトリを復号化する前に、ディレクトリに暗号化されたファイル名がたくさんあることがわかります。

別のコンピュータで復号化できるように、暗号化されたファイルをコピーしたいと思います。

ecryptfsを使用してこれを行うことができます。 ext4暗号化を使用してこれを行う方法。

答え1

暗号化されパディングされたファイル名は表示できますが、ファイルの内容を読み取ることはできません。したがって、暗号化されていないファイルをコピーしようとすると、次のエラーが発生します。

cp: cannot open 'vault/YgI8PdDi8wY33ksRNQJSvB' for reading: Required key not available

だからあなたはこれをほとんどすべきではありません。実際の答えは、復号化してからコピーすることです。暗号化された場所をターゲットディレクトリとして選択すると、コピーは再度暗号化されます。 rsync/ssh によるネットワーク転送も暗号化されます。したがって、動作するほとんどのタスクはクラウドに保存するだけでは不可能です。ファイルシステム固有の暗号化はファイルシステム外では機能しません。

読書障壁を迂回するだけでは十分ではありません。すべてのメタデータが通常のファイル用であるecryptfsとは異なり、ext4暗号化にはファイルシステム自体に隠されてユーザーに見えないメタデータが含まれているため、簡単にコピーできません。

私が見つけた最も近いのは、実際のキーをプレーンテキストとして知らなくても、既存のキーを使用してディレクトリを暗号化できることe4crypt get_policyです。e4crypt set_policyただし、ファイルではなく空のディレクトリでのみ機能します。

Vaultディレクトリを暗号化してファイルで埋め、ファイルをルートディレクトリにハードリンクしてからVaultディレクトリを削除することもできます。ルートディレクトリに暗号化されたファイル(内容)があります(暗号化しないでください)。ファイルシステムは、ファイルが暗号化されたという事実だけを知っています。 (実際にはそうしないことをお勧めします。)


とにかくコピーを作成する必要がある場合は、迂回的な方法で行うことができるようです。

  1. フルファイルシステムの生のddコピーを作成する
  2. ファイルシステムUUIDの変更
  3. 不要なファイルの削除

e4cryptそうでなければ、暗号化されたディレクトリとメタデータをあるext4ファイルシステムから別のファイルシステムにコピーする方法を知る専門的なツールが必要になるでしょうが、ORを使用してこれを行う方法を見つけることができませんでしたdebugfs


debugfsls -r特に暗号化されたファイル名を完全に表示する以外に、ポリシー/暗号化関連の機能が不足しているようです。\x1e\x5c\x8d\xe2\xb7\xb5\xa0N\xee\xfa\xde\xa66\x8axYこれは、一般的に表示されるASCII表現がls印刷可能にエンコードされていることを意味します。

実際のファイル名[ファイルシステムに入力され、実際に保存されています]は任意の16バイトですが、従来はls22文字のASCII文字で表示されます。ランダムバイトで保存する必要がある場合、これらのファイルを既存の方法でコピーすると、ASCII文字表現として保存されるファイルが生成されます。したがって、これは間違いなく多くのレベルで失敗します。


長すぎます。これを行う方法がある場合、私はそれを知りません:-}

関連情報