TPM の基本事項

IT 担当者向けのこのトピックでは、トラステッド プラットフォーム モジュール (TPM 1.2 と TPM 2.0) のコンポーネントとそれらを使って辞書攻撃を緩和する方法について説明します。

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

TPM を組み込んだコンピューターは暗号化キーを作成でき、その暗号化は同じ TPM のみが解除できます。このプロセスはよくキーのラップやバインドと呼ばれ、漏洩からキーを保護できます。各 TPM には、ストレージ ルート キーと呼ばれるマスター ラップ キーが格納されています。TPM で作成されたストレージ ルート キーまたは保証キーの秘密部分は、他のコンポーネント、ソフトウェア、プロセス、またはユーザーに公開されることはありません。

TPM によって作成された暗号化キーを移行できるかどうかを指定できます。それらのキーを移行できるように指定した場合、キーの公開部分および秘密部分は他のコンポーネント、ソフトウェア、プロセス、またはユーザーに公開可能になります。暗号化キーを移行できないように指定した場合、キーの秘密部分が TPM の外部に公開されることはありません。

TPM を組み込んだコンピューターは、ラップされたキーだけでなく、特定のプラットフォーム測定値に関連付けられたキーも作成できます。それらのプラットフォーム測定値がキーの作成時の値と同じ場合にのみ、この種のキーはラップ解除できます。このプロセスは "TPM へのキーのシール" と呼ばれます。キーの暗号化解除はシール解除と呼ばれます。TPM は、TPM の外部で生成されたデータもシール/シール解除できます。このシールされたキーとソフトウェア (BitLocker ドライブ暗号化など) を使うと、特定のハードウェアまたはソフトウェアの条件が満たされるまで、データをロックできます。

TPM では、キー ペアの秘密キーは、オペレーティング システムによって制御されているメモリとは別に保持されます。キーは TPM にシールでき、キーをシール解除して公開する前には、システムの状態について一定の保証 (システムの信頼性を定義する保証) を行えます。TPM は命令を処理するために独自の内部ファームウェアと論理回路を使うため、オペレーティング システムに依存せず、オペレーティング システムやアプリケーション ソフトウェアに潜む脆弱性にさらされません。

Windows のどのバージョンで TPM のどのバージョンがサポートされているかについては、「トラステッド プラットフォーム モジュール テクノロジの概要」をご覧ください。各バージョンで使える機能は Trusted Computing Group (TCG) による仕様で定義されています。詳しくは、Trusted Computing Group の Web サイトでトラステッド プラットフォーム モジュールに関するページをご覧ください。

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

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

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

  • TPM の自動プロビジョニングおよび管理

  • TPM ベースの証明書記憶域

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

  • TPM のコマンドレット

  • TPM 所有者認証値

  • TPM の存在状態

  • 保証キー

  • TPM キーの構成証明

  • TPM が辞書攻撃を緩和する方法

  • TPM の状態を確認する方法

  • 機能制限モードの TPM でできること

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

トラステッド プラットフォーム モジュール サービスのグループ ポリシー設定

TPM の自動プロビジョニングおよび管理

TPM のプロビジョニングは、BitLocker とその他の TPM 依存機能に対応済みのシステムをより簡単に展開できるように、効率化できます。たとえば、TPM の状態モデルは簡素化されて、[TPM は使用する準備ができています][TPM を制限された機能で使用する準備ができました][TPM は使用する準備ができていません] のいずれかの状態がレポートされます。また、[TPM は使用する準備ができています] 状態の TPM を自動プロビジョニング (リモート プロビジョニング) することができるので、初期展開のために技術者が出向く必要がなくなります。さらに、TPM スタックは Windows プレインストール環境 (Windows PE) で使えます。

グループ ポリシーを使った TPM の管理と構成が容易になるように、多数の管理設定が追加されました。主な新しい設定としては、TPM 所有者認証の Active Directory ベースのバックアップ、TPM にローカルに保存すべき所有者認証レベル、標準ユーザー向けのソフトウェア ベースの TPM ロックアウト設定などがあります。Windows Server 2008 R2 の AD DS ドメインへの所有者認証のバックアップについて詳しくは、「TPM バックアップをサポートするための AD DS スキーマ拡張機能」をご覧ください。

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

メジャー ブート機能では、すべてのブート コンポーネントの信頼された (なりすましと改ざんに強い) ログがマルウェア対策ソフトウェアに提供されます。マルウェア対策ソフトウェアでは、このログを使って、以前に動作したコンポーネントが信頼できるかどうか、それらがマルウェアに感染していないかどうかを確認できます。メジャー ブート ログを評価のためにリモート サーバーに送ることもできます。リモート サーバーは必要に応じて、クライアント上のソフトウェアとの連携によって、または帯域外メカニズムによって、修復アクションを開始できます。

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

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

TPM ベースの証明書記憶域

TPM は証明書と RSA キーの保護に使えます。TPM キー記憶域プロバイダー (KSP) は、秘密キーを強固に保護する方法として、簡単に使える TPM を提供しています。TPM KSP を使うと、組織が証明書を登録するときにキーを生成できます。KSP は、UI のテンプレートによって管理されます。TPM を使うと、外部ソースからインポートされた証明書を保護することもできます。TPM ベースの証明書はまさに、機能が追加された標準の証明書として使えます。それらの証明書は、キーが生成された TPM から持ち出されることはありません。TPM は現在、Cryptography API: Next Generation (CNG) による暗号操作に使えます。詳しくは、「Cryptography API: Next Generation」をご覧ください。

TPM 所有者認証値

Windows 8 では、TPM 所有者認証値を AD DS に格納する方法に対する変更が、AD DS スキーマに実装されました。コンピューター オブジェクトにリンクされている別のオブジェクトに、TPM 所有者認証値が格納されるようになりました。この値は、既定の Windows Server 2008 R2 のスキーマのコンピューター オブジェクト自体にプロパティとして格納されていました。Windows Server 2012 のドメイン コントローラーは、別のオブジェクトに TPM 所有者認証情報をバックアップする既定のスキーマを備えています。ドメイン コント ローラーを Windows Server 2012 にアップグレードしない場合は、この変更をサポートするようにスキーマを拡張する必要があります。スキーマを拡張することなく、Windows Server 2008 R2 環境で TPM 所有者認証値の Active Directory バックアップを有効にしている場合、TPM のプロビジョニングは失敗し、TPM は Windows 8 を実行しているコンピューターに対して [TPM は使用する準備ができていません] 状態のままになります。

コンピューターがドメインに参加していない場合、TPM 所有者認証値はローカル コンピューターのレジストリに保存されます。BitLocker を使ってオペレーティング システム ドライブを暗号化すると、所有者認証値はコンピューターの待機時の漏洩から保護されますが、コンピューターのロック解除時に悪意のあるユーザーが TPM 所有者認証値を入手できるというリスクがあります。したがって、このような状況では、コンピューターが非アクティブになって 30 秒後に自動的にロックされるように構成することをお勧めします。自動ロックが使われていない場合は、コンピューターのレジストリから完全な所有者認証を削除することを検討してください。

レジストリ情報

レジストリ キー: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\TPM

DWORD: OSManagedAuthLevel

値データ 設定

0

なし

2

デリゲート

4

完全

 

  

オペレーティング システムの管理対象の TPM 認証設定が [フル] から [デリゲート] に変更された場合、完全な TPM 所有者認証値が生成されるようになり、元の TPM 所有者認証値のコピーはすべて無効になります。AD DS に TPM 所有者認証値をバックアップする場合は、その値が変更されると、新しい値が AD DS に自動的にバックアップされます。

 

TPM のコマンドレット

PowerShell を使ってスクリプトを作成してコンピューターを管理している場合は、Windows PowerShell を使って TPM を管理できるようにもなりました。TPM コマンドレットをインストールするには、次のコマンドを使います。

dism /online /enable-feature /FeatureName:tpm-psh-cmdlets

個々のコマンドレットについて詳しくは、Windows PowerShell の TPM コマンドレットに関するページをご覧ください。

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

TCG による TPM の仕様では、TPM をオン/オフにするなど一部の TPM 管理機能を実行するには、物理プレゼンスが必要です。物理プレゼンスとは、人がシステムおよび TPM インターフェイスを物理的に操作して、TPM の状態の変更を確定/拒否する必要があることです。個々の OEM が供給していない限り、このようなタスクは一般的に、スクリプトやその他の自動化ツールで自動化することはできません。次に示しているのは、物理プレゼンスが必要な TPM 管理タスクの例です。

  • TPM をアクティブ化する
  • 所有者のパスワードを入力せずに TPM から既存の所有者情報を消去する
  • TPM を非アクティブ化する
  • 所有者のパスワードを入力せずに一時的に TPM を無効化する

TPM の存在状態

ここで示している TPM 1.2 の存在状態ごとに、TPM は、別の状態に移行できます (たとえば、無効から有効への移行)。状態は、排他的ではありません。

これらの存在状態は、トラステッド プラットフォーム モジュール 2.0 には適用されません。TPM 2.0 はオペレーティング システム環境内からオフにすることができないためです。

状態 説明

有効

TPM のほとんどの機能を利用可能です。

所有権が取得されている場合、ブート期間内に TPM を複数回、有効および無効にすることができます。

無効

TPM のほとんどの操作が制限されます。例外として、TPM 機能をレポートする機能、プラットフォーム構成レジスタ (PCR) を拡張およびリセットする機能、ハッシュおよび基本的な初期化を実行する機能があります。

起動期間内に TPM を複数回、有効および無効にすることができます。

アクティブ化

TPM のほとんどの機能を利用可能です。TPM は、物理プレゼンスによってのみアクティブ化または非アクティブ化できますが、これには再起動が必要です。

非アクティブ化

[無効] 状態と同様ですが、TPM の非アクティブ化/有効化時に所有権を取得できる点は異なります。TPM は、物理プレゼンスによってのみアクティブ化または非アクティブ化できますが、これには再起動が必要です。

所有

TPM のほとんどの機能を利用可能です。TPM には保証キーとストレージ ルート キーがあり、所有者は所有者認証データについての情報を知っています。

未所有

TPM にストレージ ルート キーがありません。また、保証キーがある、または保証キーがない可能性があります。

 

重要  

状態が [有効]、[アクティブ化]、[所有] のいずれかになるまで、アプリケーションは TPM を使えません。TPM がこの状態にあるときにのみ、すべての操作が可能です。

 

TPM の状態はコンピューターのオペレーティング システムとは独立しています。TPM が [有効]、[アクティブ化]、または [所有] の状態になると、オペレーティング システムが再インストールされても、TPM の状態が保持されます。

保証キー

TPM を信頼されたアプリケーションで使えるようにするには、TPM に RSA キー ペアである保証キーが格納されている必要があります。キー ペアの秘密キーは TPM 内に保持され、公開されることも、TPM の外部からアクセス可能になることもありません。TPM に保証キーが格納されていない場合、アプリケーションのセットアップの一部として TPM によって保証キーが自動生成されることがあります。

保証キーは TPM のライフサイクルのさまざまな時点で作成できますが、TPM の有効期間中に 1 回のみ作成する必要があります。TPM の所有権を取得するには、保証キーが必要になります。

キーの構成証明

TPM キーの構成証明により、証明機関は、秘密キーが実際に TPM によって保護されていて、その TPM が証明機関によって信頼されていることを確認できます。有効であると証明された保証キーは、ユーザー識別情報をデバイスにバインドするために使えます。 また、ユーザー証明書と TPM 保証キーを組み合わせて使うことで、TPM によって提供されるキーのエクスポート防止、ハンマリング対策、分離が可能になり、セキュリティ保証が強化されます。

TPM が辞書攻撃を緩和する方法

TPM がコマンドを処理するときは、保護された環境で、たとえば、ディスクリート チップ上の専用のマイクロ コントローラーや、メイン CPU 上の特別なハードウェア プロテクト モードで、その処理を行います。TPM によって作成される暗号化キーは、TPM の外部に公開されませんが、TPM に正しい認証値が渡された後は TPM の内部で使えます。

TPM の辞書攻撃ロジックは、キーを使うための認証値を調べようとするブルートフォース攻撃を防ぐように設計されています。TPM の基本的なアプローチは、キーとロックを使おうとする動作を禁止するまでの認証失敗の回数を制限することです。キーごとに認証失敗の回数を指定するのは技術上実用的ではないため、認証失敗があまりにも多いときに、TPM はグローバル ロックアウトを行います。

多くの組織が TPM を使えるため、1 回の認証成功では TPM の辞書攻撃ロジックをリセットすることはできません。これにより、攻撃者は、既知の認証値を使ってキーを作成し、そのキーを使って、TPM の辞書攻撃ロジックをリセットできなくなります。一般的に TPM は、不必要にロックアウト状態にならないように、一定期間後に認証失敗を忘れるように設計されています。TPM 所有者パスワードを使って、TPM のロックアウト ロジックをリセットできます。

TPM 2.0 での辞書攻撃に対する動作

TPM 2.0 では、辞書攻撃ロジックの動作が明確に定義されています。この点は、辞書攻撃ロジックがメーカーによって設定されていて業界全体で実にさまざまであった、TPM 1.2 とは対照的です。

警告  

このトピックの目的上、Windows 8 認定ハードウェアは Windows 8.1 システムにも該当します。"Windows" は以降、これらのサポートされている Windows のバージョンを指します。

 

TPM 2.0 を搭載した Windows 8 認定ハードウェア システムでは、32 回の認証失敗後にロックして 2 時間ごとに認証失敗を忘れるように、TPM は Windows で構成されています。つまりユーザーは、間違った認証値が関連付けられたキーの使用を 32 回すぐに試みる可能性があります。32 回の試行のそれぞれについて、TPM は、認証値が正しかったかどうかを記録します。これにより、32 回の試行失敗の後、TPM が間違ってロック状態になります。

次の 2 時間に、認証値が関連付けられたキーの使用を試みると、成功も失敗も返されず、代わりに、TPM がロックされているという応答が返されます。さらに 2 時間後、1 回の認証失敗が忘れられると、TPM によって記憶されている認証失敗の回数は 31 に減るため、TPM はロック状態から出て、正常動作に戻ります。認証値が正しいと、次の 2 時間に認証が失敗しないなら、キーは正常に使えます。認証が失敗せずに 64 時間が経過すれば、TPM は認証失敗を記憶しておらず、試行失敗が 32 回再び起こることがあります。

Windows 8 の証明では、システムの電源が完全にオフになっているとき、またはシステムが休止状態にあるとき、TPM 2.0 システムは認証失敗を忘れる必要はありません。システムが正常に動作しているか、スリープ モードになっているか、電源オフ以外の低電力状態になっているときは、認証失敗を忘れる必要があります。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 を起動できます。

Windows 8.1 と Windows 8 の既定値の根拠

Windows では、TPM 2.0 での辞書攻撃からの保護を複数の機能で使っています。Windows 8 の既定値はさまざまなシナリオでバランスが取れるように選ばれています。

たとえば、BitLocker が TPM + PIN 構成で使われている場合、PIN の推測回数は経時的に制限される必要があります。コンピューターが紛失した場合、だれかが PIN の推測を 32 回すぐに行い、その後 2 時間ごとに 1 回だけさらに推測を行います。その結果、推測回数は合計で約 4,415 回/年になります。これは、システム管理者が BitLocker の展開に使う PIN の文字数を決めるための良い基準となります。

Windows TPM ベースのスマート カードは、仮想スマート カードであり、システムへのサインインを許可するように構成できます。 物理スマート カードとは対照的に、サインイン プロセスでは、認証値が関連付けられた TPM ベースのキーを使います。次に示しているのは、仮想スマート カードの利点です。

物理スマート カードでは、物理スマート カードの PIN にのみロックアウトを適用でき、正しい PIN が入力された後にロックアウトをリセットできます。仮想スマート カードでは、TPM の辞書攻撃ロジックは認証成功後にリセットされません。TPM がロックアウト モードに入るまでの認証失敗の許容回数は、多数の要因によって決まります。

ハードウェア メーカーとソフトウェア開発者は、自らの要件を満たすために、TPM のセキュリティ機能を使うこともできます。

ロックアウトのしきい値となる失敗回数として 32 回を選ぶと、ユーザーはほとんど TPM をロックしなくなります (新しいパスワードを入力するようになっても、自分のコンピューターを頻繁にロック/ロック解除する場合でも)。ユーザーは TPM をロックする場合、2 時間待つか、ユーザー名やパスワードなど他の何らかの資格情報を使ってサインインする必要があります。

TPM の状態を確認する方法

トラステッド プラットフォーム モジュール スナップイン (tpm.msc) を実行することで、PC の TPM の状態を確認できます。 [状態] 見出しに TPM の状態が示されます。 TPM は [TPM は使用する準備ができています][TPM を制限された機能で使用する準備ができました][TPM は使用する準備ができていません] のいずれかの状態になります。 Windows 10 で TPM のほとんどの機能を利用するには、TPM は [TPM は使用する準備ができています] 状態になっている必要があります。

機能制限モードの TPM でできること

TPM が機能制限モードになっている場合は、TPM に依存する一部の機能が正しく動作しません。 この問題の原因は、ほとんどの場合、Windows 8.1、Windows 8、または Windows 7 が以前にインストールされていた同じデバイスに Windows 10 のクリーン インストールを実行したことです。 TPM が機能制限モードになっている場合、トラステッド プラットフォーム モジュール スナップインの [状態] 見出しには、[TPM を制限された機能で使用する準備ができました] と示されます。 TPM をクリアすることで、この問題を解決できます。

Mt431890.wedge(ja-jp,VS.85).gifTPM をクリアするには

  1. トラステッド プラットフォーム モジュール スナップイン (tpm.msc) を開きます。

  2. [TPM のクリア] をクリックしてから、[再起動] をクリックします。

  3. PC の再起動時、TPM をクリアするにはキーボードのボタンを押すように求められる場合があります。

  4. PC の再起動後、TPM では Windows 10 で使うための準備が自動的に行われます。

  

TPM をクリアすると、すべての TPM キーとそれらのキーによって保護されていたデータ (仮想スマート カードなど) が失われます。 仕事や学校の PC など自らが所有していないデバイスでは、IT 管理者による指示のない限り、この手順を実行しないでください。

 

その他の情報

トラステッド プラットフォーム モジュール テクノロジの概要

トラステッド プラットフォーム モジュール サービスのグループ ポリシー設定

Windows PowerShell の TPM コマンドレット

Windows 8 クライアントの TPM 情報の AD DS バックアップをサポートするための Windows Server 2008 R2 用スキーマ拡張機能

TPM WMI プロバイダー

BitLocker に向けた組織の準備: 計画とポリシー - TPM の構成