web-dev-qa-db-ja.com

Intel TXTブートローダーが悪意を持って変更されるのを防ぐのは何ですか?

インテルTXTについての私の理解から、このテクノロジーを使用して、測定を実行できる信頼できる状態にプロセッサーを置くことができます。私の理解はこのようなもので、TBootは通常SINITの起動に使用されていると思います。Intel TXT ただし、SINITが呼び出されず、OSがその他の状態で起動するような場合はどうでしょうか。これは本当のセキュリティ脅威ですか?

10
Nark

簡単に言えば、いいえ。

この図には多くの問題があるので、質問について話す前に、まず明確にすることから始めます。

SRTM〜図の左側

この図は、ACモジュールが正しくないプロセッサを測定することを提案しています。 BIOS CRTM(Bios Boot Block)はCPUによって実行され、BIOSファームウェアの測定に使用されます。次に、測定結果(SHA1ハッシュ)をBIOSではなくTPMに返します。その後、実行はBIOSファームウェアに渡されます。ブートプロセスの次の要素についても同じことが行われます。詳細は this を参照してください。

DRTM〜図の正しい部分

繰り返しますが、同じコメントが適用されます。 SINIT ACモジュールはプロセッサーを測定しません。 安全なCPUを含む環境が作成されると、モジュールの署名が検証され、そのIDがTPM(PCR 17)に送信され、測定されたものが測定されますLaunch Environment(MLE)とその結果をTPM(PCR 18)に送信します。

どちらも同じことを提供しています。つまり、実行環境を測定できる手段(つまり、測定の信頼のルート)です。技術的に言えば、これはTPMのプラットフォーム構成レジスタ(PCR)で測定値を送信することを意味します-主にSRTMのPCR0およびDRTMのPCR17。それでも、これらの測定では何もしていません。

では、質問です。

簡単に言うと、悪意のあるユーザーは常に後期起動/ DRTM(TXTの送信者操作)をトリガーしないことを選択できますが、全体の要点は、TPMのPCRが適切な値を持たないため、一部の要素(キーなど)にアクセスできないことです。説明させてください:

tbootブートローダー の場合、起動制御ポリシー(TPM NVRAM内に格納)は、ロードできるMLEおよびSINITモジュール(およびオプションでBIOS、つまりPCONF)を定義します。 A TXTリセットは、ポリシーが満たされない場合にトリガーされます。このリセットの結果、システムが再起動されるまで遅延起動を実行できません。遅延起動を実行できませんt誰かがシステムを使用できないようにする-ブートプロセスやシステム自体は停止しません。ただし、TPMのローカリティ2にアクセスすることはできません。ローカリティ2はPCR 19-22(およびすべてのキー、TPM NVRAM、およびローカリティに関連するその他のリソース2)。

ここで理解しておくべき重要なことは、後発射は何も強制しないということです。それは単に測定が行われ、TPMに保存される手段を提供しているだけです。そのときだけ、異なるアクションを実行できます。例えば。目標がディスク暗号化を構築することである場合、オペレーティングシステムは、目的の/信頼できるオペレーティングシステムと一致する特定のPCR(17-22)にSEALされたキーで暗号化できます。ここで重要な部分です。適切な環境が読み込まれていない場合(悪意のあるユーザーがブートローダーを変更した、遅延起動をトリガーしなかったなど)は、PCR値が一致しないため、オペレーティングシステムを復号化するためのキーにアクセスできません( UNSEALは機能しません)。

つまり、PCR値は実行環境を反映しています。 SEAL操作では、これらの値をキーとして使用してデータを暗号化します。適切な環境がロードされていない場合(PCRが異なる場合)、TPMはデータを復号化できません(UNSEAL)。

ITLのAnti-Evil-Mail を確認することをお勧めします。

これがより明確になることを願っています。

9
northox