「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>認証基盤]]

* 目次 [#iaff72f7]
#contents

*概要 [#q026e1cf]
-マザーボードに搭載するセキュリティチップ
-リソースの限られたパッシブ コンポーネント

-[[FIDO]]などで使用される。

**構成 [#p428df68]
-以下を 1 つのコンポーネントにまとめたもの。
--RSA 2048 ビット キー ジェネレーター
--乱数ジェネレーター
--[[EK>#k149fce1]]、[[SRK>#kd5f06b4]]、[[AIK>#e8431d17]]を格納する不揮発性メモリ
--暗号化、暗号化解除、署名を行う暗号化エンジン
--[[PCR>#l83eabd0]]とRSA キーを格納する不揮発性メモリ

-ハードウェア ベースのセキュリティ関連の関数を提供する。
--セキュリティで保護された暗号化プロセッサが暗号化の操作を実行するために用意されている。
--複数の物理的なセキュリティ メカニズム、改ざんされ難くすることが含まれている。
--処理に独自の内部ファームウェアおよび論理回路を使用するため、~
OSに依存せず、OSやAPPに存在する可能性がある脆弱性にさらされることが無い。

**機能 [#mc6e5a47]
Trusted Computing Group (TCG)による仕様を満たす制御が実装される。~
※ TCG : コンピュータの信頼性と安全性を向上させるための標準技術を策定する団体

-暗号化キーの生成、格納、使用制限。
-[[EK(保証キー)>#k149fce1]]を使うことで、TPM テクノロジを使ってプラットフォーム デバイスを認証。
-セキュリティ対策を取得して格納することで、プラットフォームの整合性を保つ。

-TPM は受動的なデバイスで、コマンドを受信して応答を返す。

**Ver [#wa6326ad]

***TPM 1.2 [#of3bb69f]
-最初の TPM の仕様
--TCG によって 2005 年 2 月に公開
--ISO/IEC 11889 標準で標準化

-RSA と SHA-1 ハッシュ アルゴリズムの使用のみが許可。~
セキュリティ上の理由から、一部のエンティティは SHA-1 の使用を避け始めている。

-マザーボード上にはんだ付けされたディスクリートなシリコン コンポーネント
-ディスクリートとファームウェアでポリシー設定に違いがある。
-ロックアウトのポリシーが異なるため、サポートの問題が生じることがある。

***TPM 2.0 [#hf30c9ea]
-最新の TPM の仕様
--2014 年 4 月に公開
--ISO/IEC Joint Technical Committee (JTC) によって、~
ISO 標準 (ISO/IEC 11889:2015) として承認

-暗号化アルゴリズムをより柔軟にすることで、より高速な暗号化を実現。
--SHA-256 と ECC をサポート
--ECC は、署名とキー生成のパフォーマンスを高める場合に重要。

-最新のセキュリティ ニーズを満たす暗号強度の更新
--[[PCR>#l83eabd0]] に対する SHA-256 のサポート
--HMAC コマンドのサポート

-政府のニーズをサポートする暗号アルゴリズムの柔軟性
--TPM 1.2 では、サポートできるアルゴリズムが制限されています
--TPM 2.0 では、TCG の仕様ドキュメントに小規模な更新を加えた任意のアルゴリズムをサポート

-実装全体の整合性
--TPM 1.2 では、ベンダーが実装の詳細を自由に選ぶことができる。
--TPM 2.0 では、この点が大幅に標準化されている。

-OEM において、特定の国や地域のために標準構成に例外を設ける必要をなくすために役立つ
--異なる実装間でより一貫性のあるエクスペリエンスを実現。
--デバイス間で一貫したロックアウト エクスペリエンスを確立。

**ディスクリートとファームウェア [#v102d9ba]
-ディスクリート TPM、ファームウェア TPM、統合 TPMがある。

-ディスクリートとファームウェアの特性は同じ
--ハードウェア ベースのセキュリティで保護された実行を使用。
--TPM 機能の一部にファームウェアを使う。
--改ざんに対して抵抗する機能が備わっている。
--セキュリティに関する固有の制限事項/リスクがある。

***ディスクリート TPM [#h8b2a86e]
-ディスクリート (dTPM) なシリコン コンポーネント
-TPM 独自の半導体パッケージ内にある個別のコンポーネント

***ファームウェア TPM [#pe2deafa]
-ファームウェア上で TPM を汎用の計算装置の信頼された実行モードで実行

-システムのメイン SoC 上の信頼された[[実行環境 (TEE)>#eecfcae5]]で動作する、~
ファームウェア (fTPM) ベースのコンポーネントとして提供。

-Intel
--Intel Management Engine (ME) 
--Converged Security Engine (CSE) 

-AMD~
AMD Security Processor

-ARM~
Trustzone Trusted Application (TA) 

-デスクトップ Windows システム用のファームウェア TPM~
チップ ベンダーは、ファームウェア TPM の実装を~
他のチップ ファームウェアと共に OEM に提供。

***統合 TPM [#h4ae39ee]
1 つ以上の半導体パッケージに他のコンポーネントと共に統合された専用のハードウェアを使用

**TPMとWindows [#v63d4074]
-TPM は、将来的に、主要なセキュリティ機能のコンポーネントとなる可能性がある。

-Windows 10
--TCG によるバージョン 1.2 と 2.0 の TPM の仕様を認識
--最新のセキュリティ機能については、TPM 2.0 のみをサポート。
--2016 年 7 月 28 日以降に出荷されるすべての Windows 10 デバイスは、~
TPM 2.0 ディスクリートまたはファームウェアを使用している。

--[[デバイスの正常性の認証>#le4807b0]]には、TPM 2.0 が必要。
---脅威への対抗~
ハードウェア依存型のセキュリティ防御
---情報の保護~
アクセス制御ソリューションの提供
---ID の保護~
Microsoftは[[FIDO]] Alliance に参加している。

--[[Windows Hello や Windows Hello for Business>Windows Hello]]で使用されている。

*正常性認証サービス [#le4807b0]
マイクロソフトが運営する信頼されたクラウド サービス
-一連の[[正常性チェック>#p339c34c]]を実行(TPM 2.0 が必要)し、
-有効なセキュリティ機能を [[MDM>#l41e85bc]] にレポートする。

**正常性チェック [#p339c34c]
ハードウェア ベースの方法で、一連の正常性チェックを実行する。

***正常性の認証プロセス [#sfc9d97b]
-HWのブート コンポーネントが測定される。
--ファームウェア
--UEFI ドライバー
--CPU のマイクロコード

-OSのブート コンポーネントが測定される。
-[[Device Guard>#t1fa4d7a]]ポリシーが測定される。
-Windows カーネルが測定される。
-ウイルス対策ソフトウェアが開始される。
-ブート開始ドライバが測定される。

-MDM サーバーが、[[正常性認証構成サービス プロバイダ(CSP)>#jf8f6618]]を利用し、~
MDM エージェントを介して正常性チェック コマンドを発行。
--[[正常性暗号化 BLOB>#c3f9f0c2]]を送ることで、デバイスの正常性状態を伝える。
--未処理の測定値はTPM [[PCR>#l83eabd0]]レジスタに格納される。

-TCGログと[[PCR>#l83eabd0]]値がリモートの Microsoft クラウド サービスに送られる。
--正常性認証サービスが正常性アサーションを評価し、~
デバイスが正常であるかどうかを決定する。
--すべてのイベントの詳細は TCG ログで確認できる。

***Device Guard [#t1fa4d7a]
-Windows 10 Enterprise の新機能
--デバイスをロックダウンする
--信頼されていないソフトウェアを実行できないようにする

-次の 3 つから構成される。

--以下を組み合わせた一連のハードウェア セキュリティ機能~
システムの起動時に実行されるデバイスを制御できる。
---TPM
---UEFI
---セキュア ブート

--コード整合性エンジン
---コード整合性が完全に構成
---分離ユーザー モード (仮想化ベースのセキュリティで保護されるメモリの一部)に存在。

--管理機能~
以下を介して公開される。
---特定のグループ ポリシー オブジェクト
---PowerShell コマンドレット
---MDM 構成サービス プロバイダー (CSP) 

-ソフトウェアの信頼性の判断
--Hyper-V 保護コンテナーで実行される Hyper-V コード整合性を使って実行される。
--Hyper-V コード整合性は、ドライバーやシステム ファイルがメモリに読み込まれるたびに、その整合性を検証する機能。
--以下を検出する。
---未署名のドライバーやシステム ファイルがカーネルに読み込まれるかどうか
---管理者特権アカウントで実行されている悪意のあるソフトウェアによってシステム ファイルが変更されているかどうか

--x64 の Windows 10 では、カーネル モード ドライバにデジタル署名が必要になる。
--Windows ストア インフラストラクチャを利用
---ユニバーサル Windows アプリと従来の Windows アプリに署名して配布。
---組織のメンバーが基幹業務 (LOB) アプリは、プライベート ストアを使用して配布。

***正常性認証構成サービス プロバイダ(CSP) [#jf8f6618]
CSPへのアクセスをマルウェア対策や MDM エージェントなどのアプリケーションに許可して、~
アプリケーションが正常性認証トークンを要求できるようにすることで、正常性の認証シナリオをサポートする。

***正常性暗号化 BLOB [#c3f9f0c2]

**MDM ソリューション [#l41e85bc]
Microsoft Intuneやサード パーティの MDM ソリューション

***セキュリティ ベースラインを定義 [#ucedca98]
-コード整合性ポリシー
--ドライバー
--システム ファイル
--従来のデスクトップ アプリケーション
--スクリプト

***デバイスの準拠レベルを定期的に調査 [#zf89e96b]
-インストールされているソフトウェア
-適用されている構成
-デバイスの正常性状態

***リモート デバイスの正常性の認証 [#g798fcc1]

-デバイスが正常~
IdP([[AzureAD>Microsoft Azure Active Directory]])にアクセスを許可できるように通知する。
-デバイスが異常~

*TPM キー [#b3bd2f7c]

**キーの作成 [#uf2e393b]

***"ラッピング" / "バインディング" [#s97a28b5]
TPM が組み込まれたコンピューターは、~
TPM だけが暗号化を解除できるように、~
暗号化キーを作成して、キーを暗号化できる。

***"封印" / "開封" [#g1a0c76d]
-封印~
特定のプラットフォーム測定値に関連付けられたキーを作成。

-開封~
プラットフォーム測定値がキー作成時の値と一致する場合にのみラップ解除。

**キーの組のプライベート部分 [#nfb2110d]
-キーの組のプライベート部分は、OSで制御されるメモリとは別に保持される。
-署名と、TPM によって定義された限られた操作にだけ使うことができる。
-キーを 封印できるので、キーを使用するために開封するまでは、~
システムの状態に関して一定の保証 (システムの "信頼性" を規定する保証)できる。

*構成証明 [#s7dac846]
-TPM キーの構成証明は、キーが TPM にバインドされていることを暗号で証明するプロトコル。
-構成証明を使うことで、特定の暗号化操作が特定のコンピューターのTPMで行われたことを保証できる。

**仕組み [#ha92f8c8]
-CAは、[[EKPub>#v59abd9e]]または[[EKCert>#r7fc03b4]]経由でTPMの信頼を確立。
-[[構成証明情報>#u5b29714]]を要求したサーバに送信、これを検証する。

**構成証明情報 [#u5b29714]
***検証対象 [#tf3cfa96]
生成された 
-RSA キー
-[[AIK(認証IDキー)証明書>#v29ad5c2]]
-構成証明ステートメント

***検証項目 [#w304c3d1]
[[上記>#tf3cfa96]]をサーバーが受け取った場合、サーバーは次の項目を確認する。

-[[AIK(認証IDキー)証明書>#v29ad5c2]]
--署名が有効であること。
--期間が有効であること。
--チェーン
---信頼されたルートに到達できること。
---EKU OID "2.23.133.8.3" (フレンドリ名は "認証 ID キーの証明書") に対して有効になっていること。
---発行元の CA の証明書がすべて有効期間内にあり、失効していないこと。

-構成証明ステートメント
--KeyAttestation BLOB の署名は、AIK 公開キーを使います。
--KeyAttestation BLOB に含まれる公開キーは、~
クライアントが構成証明ステートメントと共に送信した公開 RSA キーと一致します。

*EK(保証キー)  [#k149fce1]
-TPM には、保証キーと呼ばれる非対称キーのペア (RSA サイズ 2048 ビット)が(製造時から)埋め込まれている。

-保証キーは、TPM の身分証明書として機能する。
--すべての TPM を識別できる。
--変更、削除したりすることはできない。

-保証キーには、多くの場合、[[1 つまたは 2 つのデジタル証明書>#he3620a8]]が付属する。

**キーペア [#vaafff18]
***EKPub [#v59abd9e]
-保証キーと呼ばれる非対称キーのペア (RSA サイズ 2048 ビット)の公開キー
-所有者パスワードの定義ハッシュを含む TPM の所有権を得る場合など、機密性の高いパラメタを安全に送るために使われる。

***EKPriv [#a1ed087b]
-保証キーと呼ばれる非対称キーのペア (RSA サイズ 2048 ビット)の秘密キー
-[[AIK(認証IDキー)>#e8431d17]]などのセカンダリ キーを作成する際に使われる。

**証明書 [#he3620a8]
***EKCert: EK(保証キー)証明書 [#r7fc03b4]
-EKPubの製造元から発行されたEK証明書(TPM を初めて初期化するときに作成される)
--TPMの製造時
--オンライン サービスと通信時

-ローカル プロセス、アプリケーション、クラウド サービスに対して TPM の信頼性~
(例えば、特定のメーカによって製造された本物の TPM であること)を証明するために使われる。

-[[このTPM で生成されるその他のすべてのキー>#b3bd2f7c]]のルート信頼が作成される。

***プラットフォーム証明書 [#r7e3dfa3]
特定の TPM が特定のデバイスに統合されていることを示す。

*所有 [#k5aeeca8]
**SRK(ストレージ ルート キー) [#kd5f06b4]
-ストレージ ルート キーはユーザが TPM の所有権を取得するときに作成される。
-都度、作成される [[TPM キー>#b3bd2f7c]]がTPM 無しで使用されることがないようにキーを保護する事が目的。

**所有者パスワード [#x79da219]
-TPM の所有者が誰であるかを定義する。

-所有者パスワードを設定できるユーザが TPM を所有していることになる。
--1 つの TPM に設定できる所有者パスワードは 1 つだけ。
--パスワードを知っているすべてのユーザーが事実上の TPM 所有者になる。

*AIK(認証IDキー) [#e8431d17]
非対称キーのペア (RSA サイズ 2048 ビット)

**用途 [#c6269d38]
-TPM 2.0 の認証機能を使ってデバイスの正常性をレポートする。
-しかし、[[EK(保証キー)証明書>#r7fc03b4]]ではプライバシーに関する問題が発生する可能性がある。
-この問題を防ぐため、TPM の ID として代替される。
-これにより、暗号証明 (TPM キーの構成証明) などの機能を提供する。

**AIK(認証IDキー)証明書 [#v29ad5c2]
-AIK(認証IDキー)に対応する証明書は、AIK(認証IDキー)証明書

***用途 [#y6463043]
-TPM 内に AIK(認証IDキー)が存在すること証明する。
-特定の TPM の AIK(認証IDキー)によって認証された他のキーを証明する。

***Windows 10 では、 [#d0c998c0]
-[[EK(保証キー)証明書>#r7fc03b4]]が有る場合
--Microsoft Cloud CAサービスなどのサードパーティサービスと連携してAIK(認証IDキー)証明書をプロビジョニングする。
--発行された AIK(認証IDキー)証明書には、[[EK(保証キー)証明書>#r7fc03b4]]が使われたことを証明するために特別な OID が追加される。

-[[EK(保証キー)証明書>#r7fc03b4]]が無い場合
--AIK(認証IDキー)証明書を発行できる(これは、Microsoft Cloud CAサービスによって発行されたものではない)。
--この証明書は、製造時にデバイスに書き込まれた[[EK(保証キー)証明書>#r7fc03b4]]ほどの信頼性はないが、~
TPM がない場合の [[Microsoft Passport]] などの高度なシナリオとの互換性は確保される。
---デバイスを拒否するか承諾するかを決めることができる。
---価値の高い資産へのアクセスを許可しないこともできる。

*PCR(プラットフォーム構成レジスタ) [#l83eabd0]
-TPM 内で一意のプロパティを格納したメモリ ロケーション
-システム構成データを含む

*参考 [#a7ddf65c]
-Windows 10 ベースのデバイスの正常性の制御 (Windows)~
https://technet.microsoft.com/ja-jp/library/mt592023.aspx
--Control the health of Windows 10-based devices (Windows 10) | Microsoft Docs~
https://docs.microsoft.com/ja-jp/windows/device-security/protect-high-value-assets-by-controlling-the-health-of-windows-10-based-devices

-トラステッド プラットフォーム モジュール テクノロジの概要 (Windows)~
https://technet.microsoft.com/ja-jp/library/mt431893.aspx
--TPM の基本事項~
https://technet.microsoft.com/ja-jp/library/mt431890.aspx
--TPM の推奨事項~
https://technet.microsoft.com/ja-jp/library/mt604232.aspx

--TPM 所有者パスワードの変更
--TPM の所有権の初期化と構成
--TPM ロックアウトの管理
--TPM コマンドの管理
--TPM 2.0 デバイスでの PCR バンクの切り替え

--TPM グループ ポリシー設定
--TPM バックアップをサポートするための AD DS スキーマ拡張機能
--AD DS への TPM 回復情報のバックアップ

-TPM 管理~
https://technet.microsoft.com/ja-jp/library/cc755108.aspx
--TPM 管理の概要~
https://technet.microsoft.com/ja-jp/library/cc730635.aspx
--TPM 管理スナップインを使用する
--トラステッド プラットフォーム モジュールを管理する
--初めて使用するために TPM をセットアップする
--TPM で使用されるキーおよびパスワードとは
--TPM 管理のトラブルシューティング
--TPM 管理に関する参照情報

-TPM キーの構成証明~
https://technet.microsoft.com/ja-jp/library/dn581921.aspx
--TPM キーの構成証明 | Microsoft Docs~
https://docs.microsoft.com/ja-jp/windows-server/identity/ad-ds/manage/component-updates/tpm-key-attestation

**その他の端末のセキュリティ [#kb6b6d70]
***TEE(Trusted Execution Environment) [#eecfcae5]
-次世代モバイルセキュリティ | NTTデータ~
http://www.nttdata.com/jp/ja/insights/trend_keyword/2012060701.html

***SE(Secure Element) [#m0fdca07]

***USBドングル [#we5cc997]
挿さないとPCが動かないハードウエア型の鍵デバイス

----
Tags: Tags: [[:インフラストラクチャ]], [[:Windows]], [[:認証基盤]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS