技術的に言えば、LUKS2ブレークアウトコネクタを複数のドライブで使用できますか?

技術的に言えば、LUKS2ブレークアウトコネクタを複数のドライブで使用できますか?

まず私は知っています同様の質問にはすでに回答があります。答えは「はい」です。しかし、次の理由で2番目の意見を聞きたいです。

  • 質問は LUKS1 か LUKS2 かを指定しません。
  • ウィキペディアで読んだことの一つに疑問がありました。

したがって、質問は次のようになります。技術的に、LUKS2ブレークアウトコネクタを複数のドライブで使用できますか?私はこれがセキュリティの観点から推奨されていないことを知っていますが(以前に述べた投稿への回答を参照)、ここでは質問の技術的側面にのみ興味があります。

私を混乱させることは何ですか?ウィキペディアの声明LUKS2ヘッダーには、ディスクの暗号化領域を記述するJSON領域のセグメントが含まれています。これは、LUKS2ヘッダーが特定のドライブにバインドされているため、他のドライブに再利用できないことを意味します。

バイナリヘッダーの直後には、オブジェクト構成(構成)、キースロット、ダイジェスト、セグメント(ディスクの暗号化領域の説明)、および追加のメタデータを含むトークンを含むJSON領域があります。

だからあなたはどう思いますか?同じLUKS2ブレークアウトコネクタを複数のドライブに使用できますか?複数の同じドライブとまったく異なる複数のドライブ(HDDやUSBスティックなど)に違いがありますか?

答え1

可能ですが、実際にスタンドアロンデバイスで使用するのはセキュリティの観点から悪い考えです。あなたがリンクした答えはこれを非常によく扱っています。したがって、同じLUKSデバイスのバックアップイメージやスナップショットなどのデータが関連している場合にのみお勧めします。あるいは、展開シナリオでcryptsetup reencrypt最初に実行したときに同じヘッダーを別々のヘッダーに切り替えることもできます。

デバイスが特定のLUKS2ヘッダーを使用できないようにするいくつかの副作用があるかもしれません。

セクタサイズが4096の場合、デバイスサイズは4096バイトの倍数でなければなりません。 dm-cryptは、奇数の512バイトセクタを持つデバイスの使用を拒否します(最後の4Kセクタを直接削除するには、サイズ制限のあるラウンドロビンデバイスを使用する必要があります)。最近、ほとんどの項目は4Kで整列しているため、これはほとんど問題ではありません(LUKSでは512バイトセクタを使用できます)。

LUKS2でdm-integrityなどの高度な機能を使用している場合は、このヘッダーで開いたデバイスを初期化する必要があります。そうしないと、整合性チェックサムがすべて間違って使用できなくなります。したがって、LUKS2+integrity ヘッダーは、このヘッダーで初期化されたデバイスでのみ使用できます。

前述のように、LUKS2ヘッダーは特定のデータセグメント(オフセット、サイズ)を記述して特定のサイズのデバイスに固定することもできます。ただし、実際には「フルデバイス」暗号化にのみ使用され、サイズはヘッダーにも保存されません。

したがって、luksDumpでは次のようになります。

Data segments:
  0: crypt
    offset: 16777216 [bytes]
    length: (whole device)
    cipher: aes-xts-plain64
    sector: 4096 [bytes]

すべてのデバイスが利用可能で、cryptsetupはコンテンツ全体を暗号化します。

外部ヘッダーを使用すると、オフセットを技術的にゼロに設定できますが、これには固有の問題があります。デバイスにUUID / LABELが欠落しており、任意のデータが異なる意味のあるデータとして誤って識別される可能性があります。

関連情報