web-dev-qa-db-ja.com

UEFIシステムでのシステム暗号化?

私はssdを暗号化することを検討していました(ほとんどの場合、好奇心から外れています)。ルートとホームパーティションを問題なく暗号化できることを知っています。また、各セッションでランダムに生成されたキーを使用してスワップパーティションを暗号化することについて何か読んだ(休止状態を不可能にする)。 しかし、/ bootパーティションについてはどうですか?つまり、攻撃者がディスクに物理的にアクセスし、このパーティションにアクセスした場合、セキュリティ上の脅威になる可能性がありますか?私が知る限り、あなたはできません/ bootパーティションを暗号化するだけで、もうブートできなくなりますよね?

前もって感謝します!

2
twkmz

ここで重要なのは、プライバシーと整合性です。

データボリューム(/ home、/ var/log、その他の機密データを含むもの)が暗号化されている場合は、主にプライバシーを保証するだけですが、/ bootの場合は、悪意のあるコードが配置されていないことを確認する必要があります(整合性)。これは、暗号化する必要があることを意味しないことに注意してください。/bootはプライベート/特権データを格納しないため、実際の暗号化はほとんど必要ありません。外部デバイス(USB)からの起動をロックダウンしたと想定します。

UEFI/BIOSコードの後、制御するシステムで最初に実行されるコードは、構成ファイル(ブートオプションの編集を禁止するなどのセキュリティパラメーターを持つ可能性がある)を読み込むブートローダー(grubなど)であり、次にカーネル+ initrd。これも/ bootに保存されています。次のことを行うには、断固とした敵が必要です。

  • ラップトップに物理的にアクセスする
  • 取り外して交換したことに気付かずにハードドライブを取り外す
  • Grub/Grubのconfig/kernel/initrdを悪意のあるバージョンに置き換えます(たとえば、キープレスをキャプチャしたり、非表示のデーモンをロードしたり、ハイパーバイザーを起動してOS全体をカプセル化したりします)
  • そして、改ざん、パフォーマンスの低下、ランダムなバグ、または欠落していることに気付かずに、それをあなたに送り返します。

それも可能です。ランダムな検索と発作からデータボリュームを単に隠すのではなく、このレベルのパラノイアにいる場合は、完全に信頼できるブートセットアップを調べる必要があります。それは大変な作業です。

単純な緩和策は、システムが起動したら、暗号化されたボリュームに保存されている以前のハッシュのベースラインと比較して、/ boot上のすべてのファイルのハッシュが期待どおりであることを確認することです。これは、/ bootが危険にさらされている場合でも事後対策ですが、少なくともそれについては知っており、/ bootでファイルを更新するたびにベースラインを更新する必要があります(例:新しいカーネルバージョン/新しいgrub)セキュリティオプション)。

これ以上の保証には、さらに多くの作業が必要になります。 Linux/* nixでのTrusted Bootは、非常にトリッキーです。

3
Liam Dennehy