TPM の基本事項

適用対象

  • Windows 10
  • Windows 11
  • Windows Server 2016以上

IT プロフェッショナル向けこの記事では、トラステッド プラットフォーム モジュール (TPM 1.2 および TPM 2.0) のコンポーネントについて説明し、辞書攻撃を軽減する方法について説明します。

トラステッド プラットフォーム モジュール (TPM) は、主に暗号化キーを含む基本的なセキュリティ関連機能を提供するように設計されたマイクロチップです。 TPM はコンピューターのマザーボードにインストールされ、ハードウェア バスを使用してシステムの残りの部分と通信します。

TPM を組み込んだコンピューターは、暗号化キーを作成して暗号化し、TPM でのみ暗号化解除できます。 このプロセスは、キーの折り返しやバインドと呼ばれることが多く、キーを開示から保護するのに役立ちます。 各 TPM には、ストレージ ルート キーと呼ばれるマスター ラップ キーが含め、TPM 自体に格納されます。 TPM で作成されたストレージ ルート キーまたはサポートキーのプライベート部分は、他のコンポーネント、ソフトウェア、プロセス、またはユーザーには公開されません。

TPM によって作成された暗号化キーを移行できるかどうかを指定できます。 移行可能と指定すると、キーのパブリック部分とプライベート部分を他のコンポーネント、ソフトウェア、プロセス、またはユーザーに公開できます。 暗号化キーを移行できないことを指定した場合、キーのプライベート部分は TPM の外部に公開されません。

TPM を組み込んだコンピューターは、特定のプラットフォーム測定値にラップされ、関連付けされるキーを作成することもできます。 この種類のキーは、プラットフォームの測定値がキーの作成時と同じ値を持つ場合にのみ、ラップを解除できます。 このプロセスは、「TPM へのキーのシール」と呼ばれます。 キーの復号化は、封印解除と呼ばれる。 TPM は、TPM の外部で生成されるデータをシールおよびシール解除できます。 BitLocker Drive Encryption など、このシールされたキーとソフトウェアを使用すると、特定のハードウェアまたはソフトウェアの条件が満たされるまでデータをロックできます。

TPM を使用すると、キーペアのプライベート部分は、オペレーティング システムによって制御されるメモリとは別に保持されます。 キーは TPM にシールできます。また、システムの状態に関する特定の保証 (システムの信頼性を定義する保証) は、キーがシール解除され、使用のために解放される前に行えます。 TPM は、独自の内部ファームウェアとロジック回路を使用して命令を処理します。 したがって、オペレーティング システムに依存しないし、オペレーティング システムまたはアプリケーション ソフトウェアに存在する可能性のある脆弱性にさらされません。

TPM のバージョンをサポートWindowsバージョンについては、「Trusted Platform Module テクノロジの概要」を参照してください。 バージョンで使用できる機能は、トラステッド コンピューティング グループ (TCG) によって仕様で定義されます。 詳細については、「Trusted Computing Group web サイトの [信頼できるプラットフォーム モジュール] ページ:信頼できるプラットフォーム モジュール」を参照してください

以下のセクションでは、TPM をサポートするテクノロジの概要を示します。

次のトピックでは、グループ ポリシー設定を使用して一方的に制御できる TPM サービスについて設定説明します。

構成証明をサポートするメジャー ブート

メジャー ブート機能は、マルウェア対策ソフトウェアに、すべてのブート コンポーネントの信頼できる (スプーフィングや改ざんに対して耐性がある) ログを提供します。 マルウェア対策ソフトウェアは、ログを使用して、信頼できる前に実行されたコンポーネントとマルウェアに感染したコンポーネントを判断できます。 また、評価のためにメジャー ブート ログをリモート サーバーに送信することもできます。 リモート サーバーは、クライアント上のソフトウェアを操作するか、必要に応じて帯域外メカニズムを介して修復アクションを開始できます。

TPM ベースの仮想スマート カード

仮想スマート カードは、従来のスマート カードの機能をエミュレートします。 仮想スマート カードは、個別の物理スマート カードとリーダーを使用するのではなく、組織のコンピューターで使用できる TPM チップを使用します。 これにより、企業のスマート カードの管理コストと展開コストが大幅に削減されます。 エンド ユーザーは、仮想スマート カードを常にコンピューターで使用できます。 ユーザーが複数のコンピューターを使用する必要がある場合は、コンピューターごとに仮想スマート カードをユーザーに発行する必要があります。 複数のユーザー間で共有されるコンピューターは、ユーザーごとに 1 つ、複数の仮想スマート カードをホストできます。

TPM ベースの証明書ストレージ

TPM は証明書と RSA キーを保護します。 TPM キー ストレージ プロバイダー (KSP) は、プライベート キーを強力に保護する方法として、TPM を簡単で便利に使用できます。 TPM KSP は、組織が証明書を登録するときにキーを生成します。 KSP は UI のテンプレートによって管理されます。 TPM は、外部ソースからインポートされる証明書も保護します。 TPM ベースの証明書は標準の証明書です。 証明書は、キーが生成される TPM から離れたことがない。 TPM は、暗号化 API: 次世代 (CNG) を使用して暗号化操作に使用できます。 詳細については 、「Cryptography API: Next Generation」を参照してください

TPM コマンドレット

TPM を管理するには、次のWindows PowerShell。 詳細については、「TPM コマンドレット」を参照Windows PowerShell。

物理プレゼンス インターフェイス

TPM 1.2 の TCG 仕様では、TPM をオンにしたり、オフにしたり、クリアしたりするには、物理的なプレゼンス (通常はキーを押す) が必要です。 通常、これらのアクションは、個々の OEM が提供しない限り、スクリプトや他のオートメーション ツールでは自動化できません。

TPM 1.2 の状態と初期化

TPM 1.2 には複数の状態があります。 Windows自動的に TPM が初期化され、有効、アクティブ化、所有状態になります。

エンドアサメント キー

信頼できるアプリケーションは、TPM に RSA キーのペアであるサポート キーが含まれている場合にのみ TPM を使用できます。 キー ペアの秘密の半分は TPM の内部に保持され、TPM の外部で表示またはアクセス可能になされません。

キー構成証明

TPM キーの構成証明を使用すると、証明機関は、プライベート キーが TPM によって保護され、TPM が証明機関が信頼する 1 つを確認できます。 有効であることが証明された支持キーは、ユーザー ID をデバイスにバインドするために使用されます。 TPM で証明されたキーを持つユーザー証明書は、TPM によって提供されるキーの非エクスポート性、ハンマリング防止、および分離によってバックアップされる、より高いセキュリティ保証を提供します。

アンチハンマリング

TPM がコマンドを処理すると、保護された環境 (ディスクリート チップ上の専用のマイクロコントローラ、メイン CPU の特別なハードウェアで保護されたモードなど) で実行されます。 TPM は、TPM の外部に公開されていない暗号化キーを作成するために使用されます。 これは、正しい承認値が指定された後に TPM で使用されます。

TPM には、キーを使用する認証値を決定しようとするブルート フォース攻撃、またはより複雑な辞書攻撃を防止するように設計された、ハンマリング対策保護があります。 基本的な方法は、TPM がキーとロックを使用する試みを防ぐ前に、制限された数の承認エラーのみを許可する方法です。 個々のキーにエラー数を指定する方法は技術的には実用的ではないので、多すぎる承認エラーが発生した場合、TPM にはグローバル ロックアウトがあります。

多くのエンティティが TPM を使用できるので、1 回の承認が成功すると、TPM のアンチハンマリング保護をリセットできません。 これにより、攻撃者は既知の承認値を持つキーを作成し、それを使用して TPM の保護をリセットすることが防止されます。 TPM は、一時後に承認エラーを忘れ、TPM が不必要にロックアウト状態に入らないよう設計されています。 TPM 所有者パスワードを使用して、TPM のロックアウト ロジックをリセットできます。

TPM 2.0 アンチハンマリング

TPM 2.0 には、ハンマリング防止動作が定義されています。 これは、メーカーによってハンマリング防止保護が実装され、ロジックが業界全体で大きく異なる TPM 1.2 とは対照的です。

TPM 2.0 を使用するシステムの場合、TPM は Windows によって構成され、32 回の承認エラーの後にロックされ、2 時間ごとに 1 つの承認エラーが忘れ出されます。 つまり、ユーザーは間違った承認値を持つキーを 32 回すぐに使用しようとすることができます。 32 回の試行ごとに、認証値が正しいか正しく設定されていないかは TPM が記録されます。 これにより、32 回の試行が失敗した後、TPM がロック状態になります。

次の 2 時間の認証値を持つキーを使用しようとすると、成功または失敗は返されない。代わりに、応答は TPM がロックされた状態を示します。 2 時間後、1 つの承認エラーが忘れられ、TPM によって記憶される承認エラーの数は 31 に低下し、TPM はロックされた状態を離れ、通常の操作に戻ります。 正しい承認値を使用すると、次の 2 時間の間に承認エラーが発生しない場合、キーを通常使用できます。 承認エラーが発生しない期間が 64 時間経過した場合、TPM は承認の失敗を覚えていないので、32 回の試行が再び失敗する可能性があります。

Windows 8認定では、システムの電源が完全にオフになっている場合やシステムが休止状態になっている場合に、TPM 2.0 システムが承認エラーを忘れる必要は一切ない。 Windowsシステムが正常に実行されている場合、スリープ モードで、またはオフ以外の低電力状態の場合、承認エラーが忘れられる必要があります。 TPM 2.0 Windowsシステムがロックされている場合、システムが 2 時間オンの場合、TPM はロックアウト モードを終了します。

TPM 2.0 のハンマリング対策保護は、TPM にリセット ロックアウト コマンドを送信し、TPM 所有者パスワードを提供することで、すぐに完全にリセットできます。 既定では、Windows TPM 2.0 が自動的にプロビジョニングされ、システム管理者が使用する TPM 所有者パスワードが格納されます。

一部のエンタープライズ状況では、TPM 所有者の承認値は Active Directory に一中心に格納するように構成され、ローカル システムには格納されません。 管理者は TPM MMC を起動し、TPM ロックアウト時間のリセットを選択できます。 TPM 所有者のパスワードがローカルに保存されている場合は、ロックアウト時間のリセットに使用されます。 TPM 所有者のパスワードがローカル システムで使用できない場合は、管理者がパスワードを指定する必要があります。 管理者が間違った TPM 所有者パスワードを使用して TPM ロックアウト状態をリセットしようとすると、TPM はロックアウト状態を 24 時間リセットする別の試行を許可しない。

TPM 2.0 では、一部のキーを作成し、認証値を関連付けずに作成できます。 これらのキーは、TPM がロックされている場合に使用できます。 たとえば、既定の TPM のみの構成を持つ BitLocker は、TPM がロックされている場合でも、TPM のキーを使用してWindowsを開始できます。

既定値の背後にある根拠

もともと、BitLocker は PIN に対して 4 文字から 20 文字まで使用できます。 Windows Helloには、4 ~ 127 文字のログオン用の独自の PIN があります。 BitLocker と Windows Hello両方とも、TPM を使用して PIN ブルートフォース攻撃を防止します。

TPM は、辞書攻撃防止パラメーター(ロックアウトのしきい値とロックアウト期間) を使用して、TPM がロックアウトされる前に許可される失敗回数と、別の試行を行う前にどのくらいの時間が経過するかを制御するように構成できます。

辞書攻撃防止パラメーターは、セキュリティニーズと使いやすさのバランスを取る方法を提供します。 たとえば、TPM + PIN 構成で BitLocker を使用する場合、PIN 推測の数は時間の間に制限されます。 この例の TPM 2.0 は、32 の PIN 推測のみをすぐに許可するように構成し、2 時間ごとにさらに 1 つの推測を行うだけで済む可能性があります。 これは、年間最大約 4415 件の推測を合計します。 PIN が 4 桁の場合、9999 の可能性がある PIN の組み合わせはすべて、2 年以上で試行される可能性があります。

PIN の長さを増やすには、攻撃者の推測の数が多く必要です。 その場合、正当なユーザーが同様のレベルの保護を維持しながら、失敗した試行を早く再試行できるよう、各推測間のロックアウト期間を短縮できます。

Windows 10 バージョン 1703 より、BitLocker PIN の最小長は、TPM 2.0 を利用する他の Windows 機能 (Windows Hello を含む) に合わせて 6 文字に増やされました。 2017 年 10 月の累積的な更新プログラムがインストールされている Windows 10 バージョン 1703、Windows 10、バージョン 1709 以上、および Windows 11 の移行を組織が支援するために、BitLocker PIN の長さは既定で 6 文字ですが、4 文字に短縮できます。 PIN の最小長が既定の 6 文字から小さくなると、TPM 2.0 ロックアウト期間が延長されます。

TPM ベースのスマート カード

TPM Windowsスマート カード (仮想スマート カード) は、システムへのサインインを許可するように構成できます。 物理スマート カードとは対照的に、サインイン プロセスでは、認証値を持つ TPM ベースのキーを使用します。 次の一覧は、仮想スマート カードの利点を示しています。

  • 物理スマート カードは、物理的なスマート カード PIN にのみロックアウトを適用できます。また、正しい PIN を入力した後にロックアウトをリセットできます。 仮想スマート カードを使用すると、認証が成功した後、TPM のハンマリング防止保護はリセットされません。 TPM がロックアウトに入る前に許可された承認エラーの数には、多くの要因が含まれます。

  • ハードウェアの製造元とソフトウェア開発者は、TPM のセキュリティ機能を使用して要件を満たします。

  • ロックアウトしきい値として 32 のエラーを選択する目的は、ユーザーが TPM をロックすることはほとんどありません (新しいパスワードの入力を学習する場合や、コンピューターを頻繁にロックおよびロック解除する場合でも)。 ユーザーが TPM をロックする場合は、2 時間待つか、ユーザー名やパスワードなどの他の資格情報を使用してサインインする必要があります。