web-dev-qa-db-ja.com

LUKS(または他の暗号化)パスフレーズまたはキーをTPMに保存できますか?

仕様はかなり複雑です。ソフトウェアはかなり機密性が高いので、暗号化されたボリュームに保存します。私の想定は、署名されたブートローダーのみが実行されるようにし、プライマリディスク(またはソフトウェアを含むデータのみ)を暗号化しておくために、独自のプラットフォームキーを使用したSecureBootでした。

もちろん、問題は復号化キーです。 TPMに保存(バインドまたはシール)して、このプラットフォームで復号化可能にすることはできますかのみ

SecureBootを使用すると、変更されていないブートのみが実行され、ブートがTPMから復号化キーを読み取り、開いたときにファームウェアがワイプ(またはTPMがリセット)される何らかのセンサーがあれば、適度に安全なボックスが必要です。これは政府関係者を止めることはありませんが、偶然のひび割れを止めるはずです。

これにTPMを使用できますか?どうすればいいですか?

2
deitch

簡単な答えはイエスです。これが私のデザインです。

  • SecureBootが有効
  • PKと他のすべてのキーが自分のキーに置き換えられましたのみ
  • 不正な変更を防ぐために、信じられないほど長いパスワードで保護されたUEFI
  • ブートディスクには、暗号化されていない小さなgrubブートローダーパーティションがあります
  • ブート.uefiファイルは私の秘密鍵によってデジタル署名されています
  • Boot .uefiは、ディスク上のLUKSで暗号化された他のパーティションを復号化し、TPMからキーを取得するように構成されています
  • キーがTPMにロードされ、ROM + UEFI +ブートパーティション+シャーシクローズアラートがオフに設定されていない+周辺機器+ grubの現在の状態と正確に一致します

このように、私のOSのみがロードされます。少しでも変更を加えると、復号化キーを取得できません(ハッシュが一致しないため)。

1
deitch