PSE の使用方法の詳細
どのコンポーネントが PSE インテル® Software Guard Extensionsインテル® SGXに使用されるかが特定できません。
テスト インテル® Software Guard Extensions (インテル® SGX) リモート構成のエンドツーエンドの例では、プラットフォーム・サービス・エンclave (PSE) の目的を説明しています。
「PSE は、信頼性の高い時間と単調なカウンターのためにサービスを提供する インテル SGX ソフトウェア・パッケージに含まれているアーキテクチャのエンサーバーです。これらは、nonce 世代の間にリプレイ保護に使用され、秘密が有効で必要な時間の長さを安全に計算するために使用できます。」
PSE は主に 2 つのシナリオで使用されます。
-
リモート構成証明:リモート構成証明フローの詳細については、Windows*インテル SGX デベロッパー・リファレンス・ガイド およびインテル® Software Guard Extensionsリモート証明のエンドツーエンドの例 のリモート構成と保護されたセッション確立セクションを参照してください。PSE はエンクレイブによってのみ起動できます。この ISV アプリケーションは、リコードされたアプリとも呼ばれるが、エンclave に対し、可変コードを通じて PSEをb_pseします。エンclave はその後、b_pseをsgx_ra_initを取得するために使用されます。リモート構成証明のコンテキストを生成するために使用されます。この可変値が設定されている場合、Msg3 は、クライアントからサービス・プロバイダーまで、プラットフォーム・サービス情報を含みます。Msg3 を受信すると、サービス・プロバイダーがインテル認証サービス (IAS) に送信するペイロードには、PSE マニフェストと nonce が含まれます。 PSE マニフェストと nonce の定義については、インテル SGXテストAPI仕様の証明証拠ペイロード セクションを参照してください。IAS がサービス・プロバイダーに送信する認証検証レポートにはpseManifestStatus というフィールドが含まれています。pseManifestStatus は、インテル SGXプラットフォーム・サービスのセキュリティー・プロパティーが検証され、最新である場合にサービス・プロバイダーに通知されます。
プラットフォーム・サービスをリクエストするには、PSE セッションを確立する必要があります。sgx-ra-sampleのエンclave実装は、sgx_create_pse_sessionの値に基づいてsgx_create_pse_sessionの使い方をb_pse。
- スリンクデータ: PSE が提供するモノトニック・カウンターとトラステッド・タイム・サービスが、ディスク上などエンclave外部に格納されているエンクリーブ・秘密鍵を保護するためにどのように使用されるのかについては、Windowsの開発者リファレンス・ガイドの インテル SGX 開発者リファレンス・ガイドの封印されたデータセクションを参照してください。 実装の詳細については、Sdk for Windows のインテル SGX SealedData のサンプルを参照してください。
サーバー・ハードウェア上で実行するエンクレイブにはプラットフォーム・サービス・エンクレイブがインストールされていないので、クライアント固有の機能を利用することはできません。
インテル® Software Guard Extensions (インテル® SGX) プラットフォーム・サービスのサポートは、Linux 2.9 用の インテル SGX SDK で始まり、クライアント・プラットフォームを含むすべての Linux* ベースのプラットフォームから削除されました。
単調なカウンター用 インテル SGX API は、Windows* 用 インテル® Software Guard Extensions (インテル® SGX) SDK の一部であり、Windows* インテル SGX プラットフォーム・ソフトウェアを通じて Windows® 10 プラットフォームでサポートされています。Windows インテル SGXオペレーティング・プラットフォーム・ソフトウェアは、通常、プラットフォーム製造元の Windows Update を通じてインストールされます。