Windows でトラステッド プラットフォーム モジュールを使用する方法

Windows オペレーティング システムでは、ハードウェア ベースのセキュリティが多くの機能の内部に深く配置され、プラットフォームのセキュリティが最大化され、使いやすさが向上します。 これらのセキュリティ強化の多くを実現するために、Windows ではトラステッド プラットフォーム モジュール (TPM) を広範に使用しています。 この記事では、TPM の概要、機能について説明し、TPM が Windows に与える利点と、TPM を使用したデバイスでの Windows の実行による累積的なセキュリティへの影響について説明します。

TPM の概要

TPM は、コンピューターのセキュリティとプライバシーを強化する暗号化モジュールです。 コンピューター セキュリティに関連する基本的な機能には、暗号化と暗号化解除によるデータの保護、認証資格情報の保護、システムで実行されているソフトウェアの列挙があります。 TPM は、これらのすべてのシナリオを含むさまざまな状況に役立ちます。

これまで、TPM はディスクリート チップをコンピューターのマザーボードにはんだ付けしてきました。 このような実装により、コンピューターの元の機器メーカー (OEM) は、システムの残りの部分とは別に TPM を評価および認定できます。 ディスクリート TPM はまだ一般的な実装ですが、サイズの小さいまたは電力消費が低い統合デバイスでは問題が生じる場合があります。 最近は、TPM 機能を他のプラットフォーム コンポーネントと同じチップセット内に統合し、ディスクリート TPM チップと同じような分離を論理的に提供する新しい TPM 実装も登場しています。

TPM は受動的なデバイスであり、コマンドを受信して応答を返します。 TPM のメリットを最大限に活用するには、OEM はシステムのハードウェアおよびファームウェアと TPM を慎重に統合して、TMP にコマンドを送信し、返される応答に対応する必要があります。 TPM はもともと、プラットフォームの所有者とユーザーにセキュリティとプライバシーの利点を提供するように設計されていましたが、新しいバージョンでは、システム ハードウェア自体にセキュリティとプライバシーの利点を提供できます。 ただし、TPM を高度なシナリオに使用する前に、TPM をプロビジョニングする必要があります。 Windows では TPM が自動的にプロビジョニングされますが、オペレーティング システムが再インストールされた場合は、TPM のすべての機能を使用する前に、TPM を明示的に再プロビジョニングする必要がある場合があります。

Trusted Computing Group (TCG) は、TPM の仕様を公開し管理している非営利組織です。 TCGは、相互運用可能な信頼されたコンピューティング プラットフォームについて、ハードウェアベースの信頼のルートをサポートするために、ベンダーに依存しないグローバルな業界標準を策定、定義、推進しています。 TCGは、国際標準化機構 (ISO) と国際電気標準会議 (IEC) の合同の委員会である JTC 1 が定義する公開仕様書提出プロセスを通じて、TPM 仕様を国際標準 ISO/IEC 11889 としても公開しています。

OEM は、PC、タブレット、携帯電話などの信頼されたコンピューティング プラットフォームに TPM をコンポーネントとして実装します。 トラステッド コンピューティング プラットフォームでは、TPM を使用して、ソフトウェアだけでは実現できないプライバシーとセキュリティのシナリオをサポートします。 たとえば、ソフトウェアだけでは、システムの起動プロセス中にマルウェアが存在するかどうかを確実に報告することはできません。 TPM とプラットフォームの密接な統合により、起動プロセスの透明性が高まり、デバイスを起動するソフトウェアの測定と報告の信頼できる結果に基づいて、デバイスの正常性を評価できるようになります。 トラステッド コンピューティング プラットフォームの一部としての TPM の実装は、信頼のハードウェア ルートを提供します。つまり、信頼された方法で動作します。 たとえば、TPM に格納されているキーに、キーのエクスポートを禁止するプロパティがある場合、そのキー は TPM を本当に残すことはできません

TCG は、さまざまな顧客セグメントの要件に対応する低コストのマスマーケット用セキュリティ ソリューションとして TPM を設計しています。 顧客セグメントや規制機関ごとにセキュリティ要件が異なるように、TPM の実装ごとにセキュリティ プロパティは異なります。 たとえば、公共部門の調達では、TPM のセキュリティ要件が明確に定義されている政府もあれば、明確に定義されていない政府もあります。

イノベーションのスピードが高まるにつれて、TPM とテクノロジの認定プログラムは一般的に進化し続けています。 TPM を持つことは TPM を持たないよりも明らかに優れていますが、Microsoft の最善のアドバイスは、organizationのセキュリティニーズを判断し、業界の調達に関連する規制要件を調査することです。 結論を導くには、適用されるシナリオ、保証レベル、コスト、可用性のバランスを考慮する必要があります。

Windows の TPM

Windows のセキュリティ機能と TPM の利点を組み合わせることで、実用的なセキュリティとプライバシーの利点が提供されます。 以降のセクションでは、Windows の主要な TPM 関連のセキュリティ機能から始まり、キー テクノロジが TPM を使用してセキュリティを有効または強化する方法について説明します。

プラットフォーム暗号化プロバイダー

Windows には、Cryptographic API: Next Generation (CNG) と呼ばれる暗号化フレームワークが搭載されています。このフレームワークの基本的な方針は、共通のアプリケーション プログラミング インターフェイス (API) を使って、複数の方法で暗号アルゴリズムを実装することです。 暗号化を利用するアプリケーションは、アルゴリズムの実装方法を知らなくても、さらにはアルゴリズムそのものを理解していなくても、共通 API を使うことができます。

CNG はごく一般的な出発点ですが、TPM によって提供されるいくつかの利点を表しています。 CNG インターフェイスの下で、Windows またはサード パーティは、ソフトウェア ライブラリとして単独で、またはソフトウェアと使用可能なシステム ハードウェアまたは Microsoft 以外のハードウェアの組み合わせで実装された暗号化プロバイダー (つまり、アルゴリズムの実装) を提供します。 ハードウェアを通じて実装された場合、暗号化プロバイダーは CNG のソフトウェア インターフェイスの背後にあるハードウェアと通信します。

Windows 8で導入されたプラットフォーム暗号化プロバイダーでは、次の特別な TPM プロパティが公開されています。これは、ソフトウェアのみの CNG プロバイダーが提供できない、または効果的に提供できない TPM プロパティです。

  • キー保護。 プラットフォーム暗号化プロバイダーは、TPM 内にキーを作成し、その使用を制限できます。 オペレーティング システムは、キーをシステム メモリにコピーせずに TPM のキーを読み込んで使用できます。このキーはマルウェアに対して脆弱です。 プラットフォーム暗号化プロバイダーは、TPM がリムーバブルでないように保護するキーを構成することもできます。 TPM でキーが作成された場合、そのキーは一意であり、その TPM にのみ存在します。 TPM がキーをインポートする場合、プラットフォーム暗号化プロバイダーはその TPM のキーを使用できますが、その TPM はキーのコピーを増やしたり、他の場所でコピーを使用したりするためのソースではありません。 これとは対照的に、キーをコピーから保護するソフトウェア ソリューションは、リバース エンジニアリング攻撃の対象となることがあります。その結果、ソリューションがどのようにキーを格納しているかが特定されたり、キーがメモリ内で使われている間にコピーが作成されたりする可能性があります。

  • 辞書攻撃の保護。 TPM で保護されるキーは、PIN などの認証値を要求する場合があります。 辞書攻撃からの保護により、TPM は、大量の推測値を送信して PIN を特定しようとする攻撃を防ぐことができます。 推測回数が多くなりすぎた場合、TPM は、一定期間が経過するまでそれ以上の推測は許容されないというエラーを返します。 ソフトウェア ソリューションでも同様の機能が提供される場合がありますが、特にシステムの再起動、システム クロックの変更、または失敗した推測数をカウントするハード ディスク上のファイルがロールバックされた場合、同じレベルの保護を提供することはできません。 また、辞書攻撃の保護では、PIN などの認証値を短くして覚えやすくすることを許容しながら、ソフトウェア ソリューションで使われる複雑な値と同等の保護を実現します。

これらの TPM 機能により、プラットフォーム暗号化プロバイダーには、ソフトウェア ベースのソリューションにはない明確な利点がもたらされます。 これらの利点を実際に確認する実用的な方法は、Windows デバイスで証明書を使用する場合です。 プラットフォームに TPM が搭載されている場合、Windows は、プラットフォーム暗号化プロバイダーを使って証明書記憶域を提供できます。 証明書テンプレートでは、証明書に関連付けられたキーを保護するために、TPM でプラットフォーム暗号化プロバイダーを使うように指定できます。 一部のコンピューターに TPM がない可能性がある混合環境では、証明書テンプレートは、標準の Windows ソフトウェア プロバイダーよりもプラットフォーム暗号化プロバイダーを好む可能性があります。 証明書がエクスポートできないように構成されている場合、証明書の秘密キーは制限され、TPM からエクスポートすることはできません。 証明書に PIN が必要な場合、PIN は TPM のディクショナリ攻撃保護を自動的に取得します。

仮想スマート カード

Warning

Windows Hello for Businessおよび FIDO2 セキュリティ キーは、Windows 用の最新の 2 要素認証方法です。 仮想スマート カードを使用しているお客様は、Windows Hello for Businessまたは FIDO2 に移行することをお勧めします。 新しい Windows インストールの場合は、Windows Hello for Businessまたは FIDO2 セキュリティ キーをお勧めします。

スマート カードは、通常、1 つの証明書と対応する秘密キーを格納する物理デバイスです。 ユーザーは、内蔵または USB 接続のカード リーダーにスマート カードを挿入し、PIN を入力してロックを解除します。 Windows は、カードの証明書にアクセスし、認証または BitLocker で保護されたデータ ボリュームのロックを解除するために秘密キーを使用できます。 スマート カードがよく使われる理由は、2 要素認証を利用できるためです。2 要素認証では、ユーザーが所有しているもの (つまりスマート カード) と、ユーザーが知っている情報 (スマート カードの PIN など) の両方が要求されます。 ただし、スマート カードは、スマート カードとスマート カード リーダーの両方の購入と展開を必要とするため、コストがかかる場合があります。

Windows では、仮想スマート カード機能を利用することで、常に挿入された状態のスマート カードを TPM で模倣できます。 TPM は ユーザーが持っているもの になりますが、引き続き PIN が必要です。 物理スマート カードは、カードをロックしてリセットを要求する前の PIN 試行の数を制限しますが、仮想スマート カードは TPM の辞書攻撃保護に依存して、PIN の推測が多すぎるのを防ぎます。

TPM ベースの仮想スマート カードの場合、TPM は証明書秘密キーの使用とストレージを保護するため、使用中の場合や他の場所で保存して使用するときにコピーできないようにします。 別の物理スマート カードではなく、システムの一部であるコンポーネントを使用すると、総所有コストを削減できます。 失われたカードまたは自宅に残カードシナリオは適用されず、スマート カード ベースの多要素認証の利点は維持されます。 PIN だけでロックを解除できる仮想スマート カードは、ユーザーにとって簡単に使用できるものとなっています。 仮想スマート カードでは、Windows へのサインインやリソース アクセスの認証など、物理スマート カードでサポートされるシナリオと同じシナリオがサポートされます。

Windows Hello for Business

Windows Hello for Business は、パスワードの代わりとなる認証方法を提供します。パスワードは忘れやすいだけでなく、破られやすいという問題があります。 さらに、認証用のユーザー名/パスワード ソリューションでは、多くの場合、複数のデバイスとサービスで同じ資格情報の組み合わせを再利用します。 これらの資格情報が侵害された場合、複数の場所で侵害されます。 Windows Hello for Businessは、各デバイスでプロビジョニングされた情報 (つまり、暗号化キー) と追加情報を組み合わせてユーザーを認証します。 TPM が搭載されたシステムでは、TPM によってキーを保護できます。 システムに TPM が搭載されていない場合は、ソフトウェア ベースの手法でキーを保護します。 ユーザーが提供する追加情報には PIN の値があります。または、必要なハードウェアがシステムに存在すれば、指紋や顔認証などの生体認証情報を使うこともできます。 プライバシーを保護するため、生体認証情報は、プロビジョニングされたデバイスでプロビジョニングされたキーにアクセスするときにのみ使われ、デバイス間で共有されることはありません。

新しい認証テクノロジを導入するには、そのテクノロジを ID プロバイダーと組織に展開して利用する必要があります。 Windows Hello for Businessを使用すると、ユーザーは既存の Microsoft アカウント、Active Directory アカウント、Microsoft Entra アカウント、または高速 ID Online V2.0 認証をサポートする Microsoft 以外の ID プロバイダー サービスまたは証明書利用者サービスで認証できます。

ID プロバイダーは、クライアント デバイスの資格情報のプロビジョニングを柔軟な方法で行うことができます。 たとえば、組織では、資格情報が TPM によって保護されていることがわかるように、TPM が搭載されたデバイスだけをプロビジョニングできます。 TPM と TPM を偽装するマルウェアを見分けるには、次の TPM 機能が必要になります (図 1 を参照)。

  • 保証キー。 TPM の製造元は、"保証キー" と呼ばれる特別なキーを TPM 内に作成できます。 製造元によって署名された保証キー証明書は、製造元が作成した TPM に保証キーが存在することを示しています。 ソリューションでは、保証キーを含む TPM と共に証明書を使用して、(マルウェアが TPM のように動作するのではなく) 特定の TPM 製造元の TPM が実際に関与していることを確認できます。

  • 構成証明 ID キー。 プライバシーを保護するため、ほとんどの TPM シナリオでは、実際の保証キーが直接使われることはありません。 代わりに使われるのが構成証明識別キーです。ID 証明機関 (CA) は、保証キーとその証明書を使って、1 つ以上の構成証明識別キーが本物の TPM に実際に存在することを証明します。 ID CA は構成証明識別キー証明書を発行します。 通常、TPM を一意に識別する保証キー証明書は 1 つであり、同じ保証キー証明書が 1 つ以上の ID CA で確認されます。一方、構成証明識別キー証明書は、他のシナリオで共有される情報を制限するためにいくつでも作成できます。

TPM 機能。図 1: TPM 暗号化キーの管理

Windows Hello for Business では、ID CA の役割を Microsoft が担うことができます。 各デバイス、ユーザー、ID プロバイダーに対して、Microsoft サービスで構成証明識別キー証明書を発行できます。これにより、プライバシーが確実に保護されると共に、Windows Hello for Business の資格情報をプロビジョニングする前に、デバイスの TPM 要件が満たされていることを ID プロバイダーで確認できます。

BitLocker ドライブ暗号化

BitLocker は、保存データを保護するボリューム全体の暗号化を提供します。 最も一般的なデバイス構成では、ハード ドライブを複数のボリュームに分割します。 オペレーティング システムとユーザー データは、機密情報を保持する 1 つのボリュームに配置します。その他のボリュームには、ブート コンポーネント、システム情報、回復ツールなどの公共の情報を格納します (これらの他のボリュームは、ユーザーに表示する必要がないように、使用頻度の低い方法で使用されます)。保護を強化せずに、オペレーティング システムとユーザー データを含むボリュームが暗号化されていない場合、別のオペレーティング システムを起動し、目的のオペレーティング システムによるファイルアクセス許可の適用を簡単にバイパスしてユーザー データを読み取ることができます。

最も一般的な構成として、BitLocker でオペレーティング システム ボリュームを暗号化すると、電源の入っていないコンピューターやハード ディスクが紛失または盗難に遭った場合でも、ボリューム上のデータの機密性を保つことができます。 コンピューターの電源をオンにすると、コンピューターは通常どおりに起動し、Windows のログオン プロンプトが表示されます。後は、ユーザーが自分の資格情報を使ってログオンするだけです。すると、オペレーティング システムによって通常のファイル アクセス許可が適用されます。 ただし、ブート プロセスに関する何かが変更された場合、たとえば、別のオペレーティング システムが USB デバイスから起動され、オペレーティング システムボリュームとユーザー データを読み取ることができず、アクセスできません。 TPM とシステム ファームウェアは、互いに連携してシステムの起動時の測定値を記録します。これには、ハード ドライブと USB ドライブのどちらから起動したかなど、読み込まれたソフトウェアと構成の詳細が含まれます。 BitLocker は TPM を利用して、想定どおりに起動が行われた場合にのみキーの使用を許可します。 システム ファームウェアと TPM は、連携して次の機能を提供するように慎重に設計されています。

  • 測定のための信頼のハードウェア ルート。 TPM では、ソフトウェアから TPM に対して、ソフトウェアや構成情報の測定値を記録するコマンドを送信することができます。 この情報は、大量のデータを統計的に一意な小さいハッシュ値に変換するハッシュ アルゴリズムを使って計算できます。 システム ハードウェアには、Core Root of Trust for Measurement (CRTM) という暗黙的に信頼されるコンポーネントがあります。 CRTM は、次に読み込まれるソフトウェア コンポーネントを無条件でハッシュ化し、TPM にコマンドを送信して測定値を記録します。 このプロセスは後続のコンポーネントでも継続されます。後続のコンポーネントがシステム ファームウェアでもオペレーティング システム ローダーでも、そこから読み込まれるソフトウェア コンポーネントはすべて実行前に測定されます。 各コンポーネントの測定値は実行前に TPM に送信されるため、コンポーネントは TPM から測定を消去できません。 (ただし、測定値はシステムを再起動すると消去されます)。この結果、TPM には、システムの起動プロセスのステップごとに、ブート ソフトウェアと構成情報の測定値が保持されます。 ブート ソフトウェアまたは構成に変更があると、そのステップと以降のステップの TPM 測定値に相違が生じます。 システム ファームウェアは無条件に測定チェーンを開始するため、TPM 測定に対してハードウェア ベースの信頼の基点が提供されます。 スタートアップ プロセスのいずれかの時点で、読み込まれたすべてのソフトウェアと構成情報の記録値は減少し、測定チェーンは停止します。 TPM では、測定値を保持するプラットフォーム構成レジスタが特定の値を持つ場合にのみ使用できるキーを作成することが可能です。

  • ブート測定値が正確な場合にのみ使用されるキー。 BitLocker は、ブート測定値が想定値と一致する場合にのみ使用できるキーを TPM 内に作成します。 この想定値は、システム ハード ドライブのオペレーティング システム ボリュームから Windows ブート マネージャーが実行されるときに、スタートアップ プロセスのステップに対して計算されます。 暗号化されずにブート ボリュームに格納される Windows ブート マネージャーでは、オペレーティング システム ボリュームからメモリに読み取られたデータを暗号化解除し、暗号化されたオペレーティング システム ボリュームを使ってスタートアップを続行するために、TPM キーを使用する必要があります。 別のオペレーティング システムが起動されている場合、または構成が変更された場合、TPM 内の測定値は異なります。TPM では Windows ブート マネージャーでキーを使用できなくなります。また、オペレーティング システム上のデータを復号化できないため、スタートアップ プロセスを正常に続行できません。 別のオペレーティング システムや別のデバイスからシステムを起動しようとすると、TPM 内のソフトウェア測定値または構成測定値が無効になり、オペレーティング システム ボリュームの暗号化解除に必要なキーの使用は TPM によって拒否されます。 フェイルセーフとして、測定値が予期せず変更された場合は、BitLocker 回復キーを使うことでいつでもボリューム データにアクセスできます。 組織は、回復キーイン Active Directory Domain Services (AD DS) を格納するように BitLocker を構成できます。

BitLocker とそのデータ保護機能にとって、デバイスのハードウェア特性は重要な意味を持っています。 考慮事項の 1 つとして、システムがログオン画面を表示しているときに、デバイスに攻撃経路となり得る要素がないかどうかという点があります。 たとえば、Windows デバイスに直接メモリ アクセスを許可するポートがあり、ハードウェアを接続してメモリを読み取ることができる場合、攻撃者は Windows ログオン画面でオペレーティング システム ボリュームの復号化キーをメモリから読み取ることができます。 このリスクを軽減するために、組織では、TPM キーで正しいソフトウェア測定値と認証値の両方が要求されるように BitLocker を構成できます。 この場合、システムのスタートアップ プロセスは Windows ブート マネージャーで停止し、ユーザーは TPM キーの認証値を入力するか、認証値が格納された USB デバイスを挿入するように求められます。 このプロセスは、脆弱性となり得るメモリに BitLocker によってキーが自動的に読み込まれることを防ぎますが、ユーザー エクスペリエンスは望ましいものではありません。

新しいハードウェアと Windows は連携して、ポートを介した直接メモリ アクセスを無効にし、攻撃ベクトルを減らします。 これにより組織では、スタートアップ プロセスでユーザーに追加の認証情報の入力を要求することなく、より多くのシステムを展開できます。 適切なハードウェアを使用すると、BitLocker を "TPM 専用" 構成で使用できるため、起動時に PIN キーや USB キーを入力することなく、ユーザーにシングル サインオン エクスペリエンスを提供できます。

デバイスの暗号化

デバイスの暗号化は、BitLocker のコンシューマー向けのバージョンであり、基盤となるテクノロジは同じです。 お客様が Microsoft アカウントでログオンし、システムがモダン スタンバイ ハードウェア要件を満たしている場合、Windows では BitLocker ドライブ暗号化が自動的に有効になります。 回復キーは Microsoft クラウドにバックアップされ、ユーザーの Microsoft アカウントを通じてアクセスできます。 モダン スタンバイ ハードウェア要件は、ハードウェアがデバイス暗号化の展開に適していることを Windows に通知し、単純なコンシューマー エクスペリエンスに対して "TPM 専用" 構成を使用できるようにします。 また、モダン スタンバイ ハードウェアは、測定値が変化してユーザーに回復キーを求める状況が発生する可能性を抑えるように設計されています。

ソフトウェアの測定値については、デバイスの暗号化では、ソフトウェア コンポーネント自体の正確なハッシュではなく、ソフトウェア コンポーネントを提供する機関の測定値が利用されます (OEM や Microsoft などの製造元によるコード署名に基づきます)。 これにより、結果の測定値を変えずにコンポーネントのサービス提供を許可できます。 構成の測定値については、起動時に記録される多数の構成設定ではなく、ブート セキュリティ ポリシーに基づいた値が使われます。 この値も頻繁に変更されるものではありません。 結果として、適切なハードウェアでは、ユーザーにとって使い勝手のよい形でデバイスの暗号化が有効になり、データの保護が実現されます。

メジャー ブート

メジャー ブートは、Windows オペレーティング システムの初期化中、オペレーティング システムがソフトウェア コンポーネントと構成情報の一連の測定値を TPM に記録する手段として、Windows 8 で導入されました。 以前のバージョンの Windows では、測定チェーンは Windows ブート マネージャー コンポーネントで停止していたため、TPM 内の測定値は Windows の起動状態を理解する助けにはなりませんでした。

Windows ブート プロセスは段階的に実行され、多くの場合、Microsoft 以外のドライバーがベンダー固有のハードウェアと通信したり、マルウェア対策ソリューションを実装したりする必要があります。 メジャー ブートは、ソフトウェアについて、Windows カーネル、起動時マルウェア対策ドライバー、ブート ドライバーの測定値を TPM に記録します。 構成設定については、マルウェア対策ドライバーで使われる署名データや、Windows セキュリティ機能に関する構成データ (たとえば BitLocker がオンかオフか) など、セキュリティ関連の情報がメジャー ブートによって記録されます。

メジャー ブートは、TPM 測定値が Windows ソフトウェアと構成設定の起動状態を完全に反映していることを保証します。 セキュリティ設定とその他の保護が正しくセットアップされていれば、それらを信頼して、その後も実行中のオペレーティング システムのセキュリティを維持できます。 その他のシナリオでは、オペレーティング システムの起動状態を使用して、実行中のオペレーティング システムを信頼する必要があるかどうかを判断できます。

TPM 測定は、プライバシーにかかわる機密情報を測定値として記録しないように設計されています。 追加のプライバシー保護として、メジャー ブートは、Windows の初期の起動状態で測定チェーンを停止します。 したがって、使用中のアプリケーションや Windows の使用状況に関する詳細が測定値のセットに含まれることはありません。 測定情報は、デバイスに適切なセキュリティ ポリシーが適用され、マルウェアに感染していないことを示すために、外部のエンティティと共有することができます。

TPM のシナリオでは、ブート中に TPM に記録された測定値が次のように使われます。

  • リモート構成証明。 TPM では、構成証明識別キーを使って、TPM に含まれている現在の測定値のステートメント ("クォート") を生成し、暗号で署名することができます。 Windows では、さまざまなシナリオで一意の構成証明 ID キーを作成して、別のエバリュエーターが共同作業して同じデバイスを追跡できないようにすることができます。 情報の共有を制限し、プライバシーの保護を強化するために、クォート内の追加情報には暗号でスクランブルがかけられます。 デバイスは、クォートをリモート エンティティに送信することで、そのデバイスのブートとオペレーティング システムの初期化に使われたソフトウェアと構成設定を証明できます。 さらに、構成証明識別キー証明書により、クォートが本物の TPM に由来することを保証できます。 リモート構成証明とは、TPM に測定値を記録し、クォートを生成し、測定値を評価する別のシステムにクォート情報を送信して、デバイスの信頼を確立するプロセスです。 このプロセスを図 2 に示します。

Windows に新しいセキュリティ機能が追加されると、メジャー ブートは、TPM に記録されている測定値にセキュリティ関連の構成情報を追加します。 メジャー ブートにより、システム ファームウェアと Windows の初期化状態を反映したリモート構成証明のシナリオが有効になります。

TPM を使用してブート ソフトウェアと構成の証拠を作成するプロセス。図 2: TPM を使用してブート ソフトウェアと構成の証拠を作成するために使用されるプロセス

正常性構成証明

一部の Windows の機能強化は、セキュリティ ソリューションがリモート構成証明シナリオを実装するのに役立ちます。 Microsoft では、さまざまな製造元から TPM 用の構成証明識別キー証明書を作成できる正常性構成証明サービスを提供しています。このサービスを使うと、メジャー ブート情報を解析して、BitLocker がオンかオフかなどを示すシンプル セキュリティ アサーションを抽出することもできます。 このシンプル セキュリティ アサーションは、デバイスの正常性を評価するために使用できます。

モバイル デバイス管理 (MDM) ソリューションでは、クォートや詳細な TPM 測定値に関する複雑な処理を行わなくても、Microsoft 正常性構成証明サービスからデバイスに対するシンプル セキュリティ アサーションを受け取ることができます。 MDM ソリューションは、セキュリティ情報に応じて、正常でないデバイスを検疫したり、Microsoft Office 365 などのクラウド サービスへのアクセスをブロックしたりできます。

Credential Guard

Credential Guard は、AD DS を展開した組織の Windows 資格情報を保護するのに役立つ Windows の新機能です。 これまでは、ユーザーの資格情報 (ログオン パスワードなど) がハッシュされ、承認トークンが生成されていました。 ユーザーは、使用を許可されているリソースにトークンを使ってアクセスします。 トークン モデルの 1 つの弱点は、オペレーティング システム カーネルにアクセスしていたマルウェアがコンピューターのメモリを調べたり、現在使用されているすべてのアクセス トークンを収集したりできることです。 攻撃者は、取得したトークンを使って他のコンピューターにログオンし、さらに多くの資格情報を収集できる可能性があります。 この種の攻撃は、"ハッシュを渡す" 攻撃と呼ばれ、1 台のコンピューターに感染して、organization全体で多くのマシンに感染させるマルウェア手法です。

Microsoft Hyper-Vが仮想マシン (VM) を互いに分離する方法と同様に、Credential Guard は仮想化を使用して、オペレーティング システム カーネルがアクセスできないメモリ領域で資格情報をハッシュするプロセスを分離します。 この分離メモリ領域は、起動プロセス中に初期化および保護されるため、大規模なオペレーティング システム環境のコンポーネントが改ざんされないようにします。 Credential Guard は、TPM を使って TPM 測定のキーを保護します。したがって、これらのキーにアクセスできるのは、ブート プロセス中の分離領域が初期化されるステップの間に限られます。通常のオペレーティング システム カーネルでこれらのキーを利用することはできません。 Windows カーネル内のローカル セキュリティ機関のコードでは、分離されたメモリ領域とやり取りするときに資格情報を渡し、1 回限りの認証トークンを応答として受け取ります。

結果として得られるソリューションは、オペレーティング システム カーネルでマルウェアが実行されている場合でも、承認トークンを実際に生成する分離メモリ領域内のシークレットにアクセスできないため、多層防御を提供します。 このソリューションではキー ロガーの問題は解決されません。このようなロガー キャプチャのパスワードは、実際には通常の Windows カーネルを通過しますが、認証用のスマート カードなどの他のソリューションと組み合わせると、Credential Guard によって Windows での資格情報の保護が大幅に強化されます。

まとめ

TPM は、ハードウェア ベースのセキュリティ上の利点を Windows に追加します。 TPM を含むハードウェアにインストールすると、Window によってセキュリティ上の利点が大幅に向上します。 次の表は、TPM の主な機能の主な利点をまとめたものです。


機能 TPM が搭載されたシステムで使う場合の利点
プラットフォーム暗号化プロバイダー - マシンが侵害された場合、証明書に関連付けられている秘密キーをデバイスからコピーすることはできません。
- TPM のディクショナリ攻撃メカニズムは、PIN 値を保護して証明書を使用します。
仮想スマート カード 物理スマート カードやカードリーダーを展開せずに、物理スマート カードと同様のセキュリティを実現します。
Windows Hello for Business - デバイスにプロビジョニングされた資格情報を他の場所にコピーすることはできません。
- 資格情報がプロビジョニングされる前に、デバイスの TPM を確認します。
BitLocker ドライブ暗号化 企業が保存データを保護しながら、セキュリティ要件をさまざまなデバイス ハードウェアとバランスを取るために、複数のオプションを使用できます。
デバイスの暗号化 Microsoft アカウントと適切なハードウェアを使用すると、コンシューマーのデバイスは保存データ保護の恩恵をシームレスに受けることができます。
メジャー ブート 信頼のハードウェア ルートには、リモート構成証明中にマルウェアを検出するのに役立つブート測定値が含まれています。
正常性構成証明 MDM ソリューションは、Office 365などのリソースやクラウド サービスへのアクセスを許可する前に、リモート構成証明を簡単に実行し、クライアントの正常性を評価できます。
Credential Guard マルウェアが 1 台のコンピューターに管理者権限を持っている場合でも、organization内の追加のマシンを侵害することが大幅に困難になるように、多層防御が強化されます。

前述の機能の一部には、追加のハードウェア要件 (仮想化サポートなど) がありますが、TPM は Windows セキュリティの基礎です。 Microsoft と他の業界関係者は、TPM に関連する国際標準の改善を進め、TPM を使ってユーザーに実際的な利点をもたらす応用事例をさらに多く提供できるように努めています。 Microsoft では、Windows IoT Core と呼ばれるモノのインターネット (IoT) 用の Windows のバージョンで、ほとんどの TPM 機能のサポートが含まれています。 安全でない場所に物理的に展開され、管理のために Azure IoT Hub などのクラウド サービスに接続される IoT デバイスでは、TPM を革新的な方法で利用して、新たに生じるセキュリティ要件に対処することができます。