「すでにデータを含むドライブをどのように暗号化しますか?」

「すでにデータを含むドライブをどのように暗号化しますか?」

現在暗号化されている(LUKSを使用)ホストのバックアップとして使用される暗号化されていない外付けハードドライブがあります。バックアップを更新するには、ホストシステムにログインして外付けハードドライブに再同期します。明らかに、本質的に暗号化する価値のあるデータを暗号化されていないバックアップとして保持することは良い考えではありません。ただし、時間制約のため、rsyncなどのツールの助けを借りずに定期的にバックアップを更新することはできません。したがって、外付けドライブで使用されるすべての暗号化方法はrsyncと互換性がなければなりません。ただし、次の問題が発生します。

  1. EncFS や eCryptfs などのユーザー空間スタック可能暗号化方式は、すべて多くのスペースを占めるように見え、rsync とうまく機能しません。暗号化を担当する隠しファイルは、rsyncがあまりにも多くのファイルをコピーする必要があるため、rsyncを使用する価値がほとんどないほど頻繁に変更されるようです。
  2. luksipcはオプションですが、最新のドキュメントでは代わりにdm-cryptのcryptsetup-reencryptツールを使用するように指示されています。残念ながら、Arch Wikiでcryptsetup-reencryptに関するドキュメントを見つけるたびに何をすべきか、rsyncで動作するかどうかはわかりません。 cryptsetup-reencryptツールも非常に新しいようで、私のレベルの誰かが読める文書を見つけるのは難しいです。
  3. 通常のLUKSまたは同様のものは、前述の時間制約のためにドライブを消去し、バックアップを最初から再開できないため、オプションではありません。
  4. 冗長性はオプションですが、外付けハードドライブ(コピーした場所など)にある暗号化されていないファイルは暗号化できないようです。

全体的に、#2は外部ドライブを暗号化し、rsyncを介してそのドライブを最新の状態に保つという目標を達成するための最良の選択肢であるように見えますが、実際にどこから始めるべきかわかりません。ドライブを暗号化する前にドライブを消去する必要がある可能性を喜んで受け入れます。私は何か役に立つものを見逃しましたか?

答え1

これでcryptsetup、暗号化されていないパーティションを暗号化されたLUKSデバイスに非破壊的に変換する機能がサポートされます。サブコマンドの再暗号化

外部ドライブにアクセスでき、ファイル/dev/sdXシステムが現在あると仮定する/dev/sdXYと、まずファイルシステムを縮小して、LUKSヘッダー用のスペースと暗号化操作用のいくつかのスクラッチスペース(32MiB有効)を確保する必要があります。正確なコマンドはファイルシステムによって異なります(例:ext4の場合)。

e2fsck -f /dev/sdXY
resize2fs /dev/sdXY NEWSIZE

(XFSは縮小をサポートしていないため、fstransformまず縮小が必要です...)

トリガー暗号化:

cryptsetup reencrypt --encrypt /dev/sdXY --reduce-device-size 32M

ファイルシステムを再拡張します。

cryptsetup open /dev/sdXY backup
resize2fs /dev/mapper/backup
cryptsetup close backup

(サイズパラメータがない場合、resize2fsは利用可能なすべてのスペースを使用します)

既存のファイルシステムの内容を変更しないため、rsync を引き続き使用できます。そうではなく

mount /dev/sdXY /mnt/backup
rsync -a /home /mnt/backup
umount /mnt/backup

これで、次のことを行う必要があります。

cryptsetup open /dev/sdXY backup
mount /dev/mapper/backup /mnt/backup
rsync -a /home /mnt/backup
umount /mnt/backup

時間制限について言及したので、cryptsetup reencrypt必ずしもcryptsetup luksFormat新しいrsyncほど速くはありません。


上記のアプローチに代わるものは、次に切り替えることです。レスティックバックアップ要件を満たしてください。 Resticはすべてのバックアップを暗号化し、増分バックアップをサポートし、非常に高速です。

外付けドライブが十分に大きい場合は、新しいサブディレクトリからResticリポジトリを初期化してResticの使用を開始できます。最初のResticバックアップが完了したら、暗号化されていない古いバックアップファイルを削除できます。最後に、あなたはしなければなりません空きスペースをクリア暗号化されていない古いバックアップファイルのすべてのトレースを破棄します。

答え2

今最大の問題は次のとおりです。

「すでにデータを含むドライブをどのように暗号化しますか?」

LUKS、eCryptFS、EncFS、またはデフォルトで他のものを使用しても、安全な答えは1つだけです。

  1. 他の場所へのデータのバックアップ
  2. ドライブ暗号化(現在バックアップされている既存のデータを削除/上書き)
  3. 暗号化されたドライブにデータをコピーする
  4. ドライブの復号化(ロック解除)が可能で、データが変更されていないことを確認してください。

あなたの場合、バックアップドライブでLUKSを使用したい場合バックアップドライブが半分未満で満たされている場合、次のことができます。

  1. ドライブの半分に空きパーティションを作成します。
  2. LUKSを使用した空きパーティションの暗号化
  3. 暗号化されていないパーティションのデータをLUKSパーティションにコピーする
  4. 暗号化されていないパーティションの削除
  5. その後、LUKSパーティションをドライブ全体に拡張します。

ただし、これらのパーティションの縮小および拡張操作の1つでは、データを移動する必要がある可能性が高く、安全のために最初にバックアップを実行する必要があるため、とにかく以前の「データバックアップ」ステップのみを実行できます。

LUKS内部暗号化ソリューション(lukspicまたはcryptsetup-reencrypt)の使用を検討している場合も同様です。重要なデータの場合は、まずバックアップを作成してください。

  • これはすでにバックアップドライブなので、ソースドライブを擬似バックアップとして使用し、ドライブ全体を消去し、LUKSを使用してから、ソースドライブから新しいバックアップを作成できます。

あるいは、データが削除されても問題がない場合は、内部暗号化ソリューションを試してみるか、パーティションを前後に移動して問題が発生し、すべてが削除されても驚かないでください。

関連情報