私のコンピュータに完全なディスク暗号化を設定することに興味があります。つまり、/bootパーティションを暗号化してGRUBに適切にアクセスするように指示できますが、マイコンピュータはUEFIを使用するため、暗号化されていない追加の/boot/efiパーティションが必要です。私が理解したのは、そのパーティションがまだEvil Maidに脆弱であるようです。
このパーティション、つまり整合性を保護する方法はありますか?つまり、コンピュータを起動したときに少なくとも/ bootパーティションが破損しているという警告(チェックサム、署名などを確認)を受け取る方法はありますか?
今日私はSecure Bootについて学びましたが、私が興味を持っているいくつかのLinuxディストリビューションにはこのサポートはありません(つまりDebian)。もしそうなら、少なくともログインしている間に/ boot(/ boot / efi)パーティションの整合性が損なわれたかどうかを確認する方法はありますか?
ありがとうございます!
答え1
Debian は実際にセキュアブートをサポートしています (ユーティリティを使用してカーネルに直接署名できます。唯一の要求は、UEFI 実装に基づいて自己署名キーをインストールすることです)。
答え2
私はセキュアブートを有効にし、自己署名キーを使用してDebian 9を実行しています。システムからデータを取得するために起動可能なUSBドライブを挿入したり、暗号化されていないパーティションにマルウェアをインストールするなど、マイナーなEvil Maidタイプの攻撃から確実に保護します.しかし、これがEvil Maidの制限ではありません。この問題を深刻に考える場合は、システムケースの物理的なセキュリティも考慮する必要があります。
「トラッキング」整合性チェックには、TPMチップと対応するPCRレジスタを活用するブートローダが必要です。このレジスタは任意の値に設定できません。新しいデータがこのレジスタに入力されると、TPMチップ自体はレジスタの古い値+入力データのハッシュ値を計算し、それをレジスタの新しい値として割り当てます。システムファームウェアは、ファームウェア自体のハッシュ、現在のファームウェア設定、および実際に使用されている最初のブートコードフラグメントを使用して、最初のいくつかのPCRレジスタを埋めます。その後、対応する開始コードに制御が移転される。
PCRレジスタに実際にロードされているカーネルファイルとinitramfsファイルのハッシュを同様に記録するブートローダを使用している場合は、暗号化された部分に格納されている「既知の良い」値のセットと比較してPCR値を確認できます。現在の値が既知の定常状態と一致しない場合、警告を表示します。カーネルにはCONFIG_IMAオプションもあります。このオプションが有効になると、カーネルはTPMのPCRレジスタを使用してロードされたすべてのエントリのハッシュハッシュを保持します。 (ハッシュハッシュ、TPMは特に高速ではないため、ハッシュ用にロードされたすべてのデータの完全なコピーをTPMに送信すると、起動プロセスが大幅に遅くなります。)
もちろん、PCRでハッシュされるシステム部分を更新するたびに、既知の良好な値を更新する必要があります。それ以外の場合、誤検出が発生します。システムアップデート(セキュリティパッチを含むカーネルなど)をインストールするときは、新しい「良好な」PCR値が何であるかを事前に予測するのが難しいため、アップデートをインストールして次の起動が実行されることを受け入れる必要があるかもしれません。アラームを送信し、新しい「良い」「状態を記録します。
数年前にTPM PCRを使用しようとしたとき、システムは以前のBIOSファームウェアを使用していました。 TrustedGRUB(デフォルトではGRUB LegacyのTPM対応バージョン)を使用すると、前の段落で説明した検査タイプを実装できました。 TPMをサポートするLinux UEFIブートローダがあるかどうかわからないため、カーネルに組み込まれたUEFIスタブローダから起動しない限り、古いシステムの完全なPCRカバレッジを取得できない可能性があります。実際のカーネルのㅎㅎ)単純なブートローダではなく、ハッシュ値です。