Microsoft Azure Attestation

Microsoft Azure Attestation は、プラットフォームの信頼性とその内部で実行されているバイナリの整合性をリモートで検証するための統合ソリューションです。 このサービスでは、Intel® Software Guard Extensions (SGX) エンクレーブ、仮想化ベースのセキュリティ (VBS) エンクレーブ、トラステッド プラットフォーム モジュール (TPM)Azure VM のトラステッド起動Azure コンフィデンシャル VM などの高信頼実行環境 (TEE) の状態を証明する機能と共に、トラステッド プラットフォーム モジュール (TPM) によって裏付けられたプラットフォームの構成証明がサポートされています。

構成証明は、ソフトウェア バイナリが信頼できるプラットフォームで適切にインスタンス化されたことを示すためのプロセスです。 リモートの証明書利用者は、信頼できるハードウェアで上で実行されているのがこのような意図されたソフトウェアのみであるという確信を得ることができます。 Azure Attestation は、構成証明を目的とした、統合された顧客向けのサービスとフレームワークです。

Azure Attestation により、Azure Confidential Computing やインテリジェント エッジ保護などの最先端のセキュリティ パラダイムが実現されます。 これまで、マシンの場所、そのマシン上の仮想マシン (VM) の状況、その VM 上でエンクレーブが実行されている環境を個別に検証する機能がお客様から求められてきました。 Azure Attestation は、こうしたお客様や、それ以外の多くのお客様からの要望に応えるものです。

Azure Attestation は、コンピューティング エンティティから証拠を受け取り、それらを要求のセットに変換します。さらに、構成可能なポリシーに照らして検証し、要求ベースのアプリケーション (証明書利用者や監査機関など) のための暗号的証明を生成します。

ユース ケース

Azure Attestation は、複数の環境と特徴的なユース ケースに対して包括的な構成証明サービスを提供します。

SGX エンクレーブ構成証明

Intel® Software Guard Extensions (SGX) とは、特定の Intel CPU モデルでサポートされているハードウェアグレードの分離を指します。 SGX を使用すると、SGX エンクレーブと呼ばれるサニタイズされたコンパートメントでコードを実行できます。 その後、アクセスとメモリのアクセス許可はハードウェアによって管理され、攻撃対象領域は適切に分離された最小限のものになります。

クライアント アプリケーションは、機密性の高いタスクがそれらのエンクレーブ内で実行されるように委任することで、SGX エンクレーブを利用するように設計できます。 このようなアプリケーションでは、Azure Attestation を利用して定期的にエンクレーブ内で信頼を確立し、その機能を使用して機密データにアクセスすることができます。

Intel® Xeon® スケーラブル プロセッサでは、SGX エンクレーブのリモート構成証明に対して、ECDSA ベースの構成証明ソリューションのみがサポートされています。 Azure Attestation により、ECDSA ベースの構成証明モデルを利用して、Intel® Xeon® E3 プロセッサおよび Intel® Xeon® スケーラブル プロセッサ ベースのサーバー プラットフォームの検証がサポートされています。

注意

Azure Attestation を使用して Intel® Xeon® スケーラブル プロセッサ ベースのサーバー プラットフォームの構成証明を実行するには、ユーザーは Azure DCAP バージョン 1.10.0 以降をインストールする必要があります。

Open Enclave 構成証明

Open Enclave (OE) は、開発者が TEE ベースのアプリケーションの構築に利用する、単一の統合エンクレーブ抽象化の作成を目的としたライブラリのコレクションです。 これは、プラットフォームの特異性を最小限に抑える、セキュリティ保護されたユニバーサルなアプリ モデルを提供します。 Microsoft では、これを、SGX などのハードウェアベースのエンクレーブ テクノロジをだれもが使えるようにし、Azure での利用を拡大するための重要な手段と考えています。

OE は、エンクレーブ証拠の検証に関する特定の要件を標準化します。 これにより、OE は Azure Attestation の非常に適切な構成証明コンシューマーと見なされます。

TPM の構成証明

プラットフォームの状態を証明するためには、トラステッド プラットフォーム モジュール (TPM) ベースの構成証明が不可欠です。 TPM は、測定結果 (証拠) に暗号の有効性を提供するセキュリティ コプロセッサおよび信頼のルートとしての役割を果たします。 TPM が搭載されたデバイスは、構成証明を利用してブートの整合性が損なわれていないことを証明し、ブート中に要求を使用して機能の状態の有効性を検出できます。

クライアント アプリケーションは TPM 構成証明を利用するように設計できます。プラットフォームが安全であることが確認された後にのみ機密性の高いタスクが実行されるよう委任します。 このようなアプリケーションでは、Azure Attestation を利用して定期的にプラットフォーム内で信頼を確立し、その機能を使用して機密データにアクセスすることができます。

AMD SEV-SNP 構成証明

Azure 機密 VM (CVM) は、SEV-SNP テクノロジを使用する AMD プロセッサに基づいています。 CVM はプラットフォーム マネージド キーまたはカスタマー マネージド キーを使用した VM OS ディスク暗号化オプションを提供し、ディスク暗号化キーを仮想マシンの TPM にバインドします。 CVM が起動すると、ゲスト VM ファームウェアの測定値を含んだ SNP レポートが Azure Attestation に送信されます。 このサービスは測定値を検証し、Managed-HSM または Azure Key Vault からキーを解放するために使用される構成証明トークンを発行します。 これらのキーは、ゲスト VM の vTPM 状態を復号化し、OS ディスクのロックを解除して CVM を起動するために使用されます。 構成証明とキー解放プロセスは、CVM の起動ごとに自動的に実行されます。このプロセスによって、ハードウェアの構成証明が成功した場合にのみ、CVM が起動されるようになります。

トラステッド起動の構成証明

Azure のお客様は、仮想マシン (VM) でトラステッド起動を有効にすることで、ブートキットとルートキットの感染を防ぐことができます。 VM がセキュア ブートで、ゲスト構成証明拡張機能がインストールされた vTPM が有効になっている場合、vTPM 測定は、ブート整合性の監視のために定期的に Azure Attestation に送信されます。 構成証明エラーは、アラートと推奨事項によって Microsoft Defender for Cloud を通じて顧客に提示される潜在的なマルウェアを示します。

Azure Attestation は TEE で動作する

Azure Attestation は、次のアクションを実行するため、コンフィデンシャル コンピューティングのシナリオに不可欠です。

  • エンクレーブ証拠が有効かどうかを検証する。
  • 顧客が定義したポリシーと照らし合わせてエンクレーブ証拠を評価する。
  • テナント固有のポリシーを管理および格納する。
  • 証明書利用者がエンクレーブと対話するために使用するトークンを生成して署名する。

Trusted Computing Base (TCB) から Microsoft を運用上、排除するために、見積もりの検証、トークンの生成、ポリシー評価、トークンの署名など Azure Attestation の重要な操作は SGX エンクレーブに移動されます。

Azure Attestation を使用する理由

Azure Attestation には以下のベネフィットがあるため、TEE を証明するうえで推奨される選択肢となっています。

  • TPM、SGX エンクレーブ、VBS エンクレーブなどの複数の環境を証明するための統合フレームワーク
  • カスタム構成証明プロバイダーを作成し、トークンの生成を制限するようにポリシーを構成することができます
  • SGX エンクレーブ内での実装により、使用中のデータを保護
  • 高可用性サービス

Azure Attestation との信頼を確立する方法

  1. 構成証明トークンが Azure Attestation によって生成されているかどうかを確認する - Azure Attestation によって生成された構成証明トークンは、自己署名証明書を使用して署名されます。 署名証明書の URL は、OpenID メタデータ エンドポイント経由で公開されます。 証明書利用者は、署名証明書を取得し、構成証明トークンの署名の検証を実行できます。 詳細については、コード サンプルに関するページを参照してください

  2. Azure Attestation が SGX エンクレーブ内で実行されているかどうかを確認する - トークン署名証明書には、Azure Attestation が実行される TEE の SGX クォートが含まれます。 Azure Attestation が有効な SGX エンクレーブ内で実行されているかどうかを証明書利用者が確認したいと考えている場合は、署名証明書から SGX クォートを取得し、ローカルで検証することができます。 詳細については、コード サンプルに関するページを参照してください

  3. 構成証明トークンに署名したキー Azure Attestation SGX 引用符のバインドを検証する – 証明書利用者は、構成証明トークンに署名した公開キーのハッシュが、Azure Attestation SGX 引用符のレポート データ フィールドと一致するかどうかを確認できます。 詳細については、コード サンプルに関するページを参照してください

  4. Azure Attestation コード測定が Azure の公開値と一致するかどうかを検証する - 構成証明トークン署名証明書に埋め込まれた SGX 引用符には、mrsigner などの Azure Attestation のコード測定が含まれます。 証明書利用者が、SGX 引用符が Azure 内で実行されている Azure Attestation に属しているかどうかを検証することに関心がある場合は、構成証明トークン署名証明書の SGX 引用符から mrsigner 値を取得し、Azure Attestation チームが提供する値と比較できます。 この検証を実行する場合、Azure サポート ページで要求を送信します。 Mrsigner のローテーションを計画している場合、Azure Attestation チームから連絡があります。

コード署名証明書がローテーションされるときに、Azure Attestation の Mrsigner が変更されることが予想されます。 Azure Attestation チームは、mrsigner ローテーションごとに次のロールアウト スケジュールに従います。

i. Azure Attestation チームは、関連するコード変更を行う 2 か月の猶予期間を使用し、今後の MRSIGNER 値に通知する

ii. 2 か月の猶予期間を過ぎると、Azure Attestation は新しい MRSIGNER 値の使用を開始する

iii. 通知日の 3 か月後、Azure Attestation は古い MRSIGNER 値の使用を停止する

事業継続とディザスター リカバリー (BCDR) のサポート

Azure Attestation のビジネス継続性とディザスター リカバリー (BCDR) を使用すると、リージョン内の重大な可用性の問題や災害イベントによって生じるサービスの中断を軽減できます。

2 つのリージョンにデプロイされたクラスターは、通常の状況下では独立して動作します。 一方のリージョンで障害または停止が発生した場合、次の処理が行われます。

  • Azure Attestation BCDR により、シームレスなフェールオーバーが提供されます。お客様は、回復のための手順を別途実行する必要はありません
  • 当該リージョンの Azure Traffic Manager が正常性プローブの機能低下を検出し、エンドポイントをペアのリージョンに切り替えます
  • 既存の接続は機能せず、内部サーバー エラーまたはタイムアウトの問題が発生します
  • すべてのコントロール プレーン操作がブロックされます。 お客様は、プライマリ リージョンで構成証明プロバイダーを作成できなくなります
  • 証明呼び出しやポリシーの構成を含む、すべてのデータ プレーン操作は、セカンダリ リージョンによって提供されます。 お客様は、プライマリ リージョンに対応する元の URI でデータ プレーン操作を続行できます

次のステップ