Debian インストーラが以前に暗号化されたボリュームのパスワードを変更しました

Debian インストーラが以前に暗号化されたボリュームのパスワードを変更しました

私は私の問題についていくつかの調査を行いました(以下を参照)、これは「取引完了」と同じくらい良いですが、まだこの知識豊富なコミュニティに質問をしたいと思いました。

質問の短いバージョン:partman(Debianインストーラのディスクパーティション)で、以前にdm-crypt / LUKS暗号化ボリュームのパスワードが誤って変更(または追加)されました。このボリュームのデータは次のとおりです。いいえ削除マーク。後でインストールをキャンセルしました。後でボリュームを手動で「復号化」した結果、「新しい」パスワードでのみボリュームを復号化できましたが、データを読み取れないことがわかりました(つまり、ファイルシステムとファイルが見つかりませんでした)。

以前のパスワードに戻すと、ボリュームコンテンツのパスワードを正しく復号できるかどうかを知りたいです。

以前の研究:上記の質問はdebian-bootメーリングリストに提出され、そこから以下を受け取りました(非常に明確です)。回答:

LUKSヘッダーをバックアップしないと、データを回復できないようです。 LUKSの仕組みは、データがパスワードで直接暗号化されるのではなく、一連のパスワードで暗号化されたキーを使用して暗号化されることです。インストーラのUIを介してのみこれを実行すると、LUKSヘッダーが上書きされ、キーデータが失われるため、データを復号化できなくなります。ディスク上の LUKS ヘッダー位置は常に同じ位置にあります。

データの削除は実際には既存のデータをゼロで上書きするため、非常に混乱します。技術的にヘッダーを上書きした後、データは削除されていますが、一部の人々はシステムを本番環境にデプロイする前にディスクにランダムなデータ(または暗号化されていないディスクの場合は0)を書きたいと思っています。

残念ながら、このボリュームのLUKSヘッダーバックアップはありません。上記のように、目的は次のとおりです。以前に暗号化されて何も変更されていないボリューム(したがって、残念ながら適切な予防措置を講じていません)。

質問:ボリュームを暗号化した(既知の)元のパスワードを使用して元のLUKSヘッダを(再)生成する方法はありますか?それともこのデータは永久に失われますか?

あなたの心配と時間に感謝します。

答え1

とにかく回復する方法はありません。 (*)

LUKSを使用すると、暗号化を開くために使用するパスワードと実際に暗号化に使用されるマスターキーはまったく関係ありません。

デフォルトでは、パスワードは完全にランダムなキーで復号化され、そのランダムなキーはLUKSヘッダーに保存されます。 LUKSヘッダーを完全に失うと(またはキーデータの1ビットだけを変更しても)ボリュームのマスターキーを取得できません。

そのため、LUKSを使用すると、8つの異なるパスワードを持つことができ、すべてのデータを再暗号化せずにいつでも各パスワードを変更できます。 LUKSパスワードをどれだけ頻繁に変更しても、マスターキーは同じままです。

マスターキーの回復は明らかにLUKSの概念の一部ではありません。実際にはその逆です。 LUKSは、ユーザー(または他の人)が(部分的に)上書きされたLUKSヘッダーからマスターキーを回復するのを防ぐために多くの手順を実行します。 LUKS文書では、ヘッダーをバックアップしないことをお勧めします。ヘッダーのバックアップは、ユーザーの制御範囲外であるため、以前のパスワードが無効であると宣言する機能を失うことを意味します。古いパスワードはまだ古いヘッダーに保存され使用されるためです。

(*) この規則の唯一の例外は、コンテナがまだ開いている場合です。アクティブな暗号化マップの場合は、を使用してマスターキーを取得できますdmsetup table --showkeys。したがって、実行中のシステムでLUKSヘッダーを終了してすぐに認識したら、既知のマスターキーを使用して新しいLUKSヘッダーを生成できます。

マスターキーがなければ進行できず、暗号化の鍵であるマスターキーを無差別に代入することもできません。まあ、無制限のCPUパフォーマンスや時間でこれを行うことができますので、パズルを子孫に残したい場合は、暗号化されたデータのコピーをアーカイブして渡してください.....;)

関連情報