web-dev-qa-db-ja.com

LUKSはどのように機能しますか?

LUKSのようなシステムが完全なディスク暗号化(別名)でどのように機能するかについて、高レベルの概要を誰かが持っているかどうかに興味がありました。キーの保存方法とキーの検証方法、およびすべての標準I/Oのラッパーによってデータが復号化されるかどうか。ここで、LUKSがinitプロセスにフックする方法の簡単な説明を見つけました 方法

4
fritz

Luksはブロックデバイスの暗号化レイヤーであるため、特定のブロックデバイスで動作し、復号化されたバージョンである新しいブロックデバイスを公開します。このデバイスにアクセスすると、使用中に透過的な暗号化/復号化がトリガーされます。

通常、ディスクパーティション、または同じ暗号化されたコンテナ内の複数のパーティションを許可するLVM物理ボリュームのいずれかで使用されます。

LUKは、デバイスの開始時に一連のメタデータを保存します。複数のパスフレーズ用のスロットがあります。各スロットには256ビットのソルトがあり、暗号化されたメッセージとともに平文で表示されます。パスフレーズを入力すると、LUKSはそれを各ソルトと順番に組み合わせ、結果をハッシュし、その結果をキーとして使用して、各スロットで暗号化されたメッセージを復号化します。このメッセージは、既知のテキストとマスターキーのコピーで構成されています。既知のテキストが一致するため、いずれかのスロットで機能する場合、マスターキーは既知であり、コンテナー全体を復号化できます。コンテナが使用されている間、マスターキーはRAMで暗号化されていない必要があります。

マスターキーを知っていると、コンテナ内のすべてのデータにアクセスできますが、パスワードスロットのパスワードは公開されないため、1人のユーザーは他のユーザーのパスワードを見ることができません。

システムは、ユーザーが操作中にマスターキーを表示できるように設計されていません。このキーは、再暗号化せずに変更できません。ただし、パスワードスロットを使用すると、コンテナ全体を再暗号化せずにパスワードを変更でき、複数のパスワードを使用できます。

8
thomasrutter