Microsoft Azure Attestation は、プラットフォームの信頼性とその内部で実行されているバイナリの整合性をリモートで検証するための統合ソリューションです。 このサービスでは、トラステッド プラットフォーム モジュール (TPM) によってサポートされるプラットフォームの構成証明と共に、Intel® Software Guard Extensions (SGX) エンクレーブ、仮想化ベースのセキュリティ (VBS) エンクレーブ、トラステッド プラットフォーム モジュール (TPM)、Azure VM の信頼された起動、Azure機密 VM などのトラステッド実行環境 (TEEs) の状態を証明する機能がサポートされています。
構成証明は、ソフトウェア バイナリが信頼できるプラットフォームで適切にインスタンス化されたことを示すためのプロセスです。 リモートの証明書利用者は、信頼できるハードウェアで上で実行されているのがこのような意図されたソフトウェアのみであるという確信を得ることができます。 Azure Attestation は、構成証明を目的とした、統合された顧客向けのサービスとフレームワークです。
Azure Attestation により、Azure Confidential Computing やインテリジェント エッジ保護などの最先端のセキュリティ パラダイムが実現されます。 このサービスは、コンピューティング エンティティから証拠を受け取り、それらを一連の要求に変換し、構成可能なポリシーに対して検証し、クレームベースのアプリケーション (証明書利用者や監査機関など) の暗号化証明を生成します。
Azure Attestation では、AMD SEV-SNP ベースの機密 VM (CVM) のプラットフォームとゲストの構成証明の両方がサポートされます。 Azure Attestation ベースのプラットフォーム構成証明は、CVM のクリティカル ブート パス中に自動的に行われ、顧客の操作は必要ありません。 ゲスト構成証明の詳細については、「機密 VM のゲスト構成証明の一般提供の発表」を参照してください。
使用事例
Azure Attestation は、複数の環境と特徴的なユース ケースに対して包括的な構成証明サービスを提供します。
機密 VM での 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 が起動されるようになります。
機密コンテナーでの AMD SEV-SNP 構成証明
Azure 機密コンテナーは、SEV-SNP テクノロジを使用する AMD プロセッサに基づいています。 Azure Container InstancesおよびAzure Kubernetes Service (プレビュー段階) でホストされる機密コンテナーは、コンテナー管理コントロール プレーンやその他の実行中のコンテナーからコンテナーのグループを分離する、SEV-SNP 保護された信頼された実行環境でコンテナーのグループを実行する機能を提供します。 機密コンテナーでの証明書取得には、AMD ハードウェア証明書をプロセッサから直接取得する必要があります。 このタスクは 、SKR サイドカー コンテナー を使用して実行することも、アプリケーション ロジックに直接コンパイルすることもできます。 その後、ハードウェア レポートを Azure Attestation およびマネージド HSM または Premium Azure Key Vault (AKV) と交換してシークレットを取得できます。 必要に応じて、ハードウェア レポートを独自のキー ボールト システムに提供することもできます。
トラステッド起動の構成証明
Azure のお客様は、仮想マシン (VM) でトラステッド起動を有効にすることで、ブートキットとルートキットの感染を防ぐことができます。 VM がセキュア ブートで、ゲスト構成証明拡張機能がインストールされた vTPM が有効になっている場合、vTPM 測定は、ブート整合性の監視のために定期的に Azure Attestation に送信されます。 証明失敗は潜在的なマルウェアを示し、それはアラートと推奨事項を通して Microsoft Defender for Cloud 経由で顧客に通知されます。
TPM の構成証明
プラットフォームの状態を証明するためには、トラステッド プラットフォーム モジュール (TPM) ベースの構成証明が不可欠です。 TPM は、測定結果 (証拠) に暗号の有効性を提供するセキュリティ コプロセッサおよび信頼のルートとしての役割を果たします。 TPM が搭載されたデバイスは、構成証明を利用してブートの整合性が損なわれていないことを証明し、ブート中に要求を使用して機能の状態の有効性を検出できます。
クライアント アプリケーションは TPM 構成証明を利用するように設計できます。プラットフォームが安全であることが確認された後にのみ機密性の高いタスクが実行されるよう委任します。 このようなアプリケーションでは、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 の非常に適した証明コンシューマーと見なされます。
Azure Attestation は TEE で動作する
Azure Attestation は、次のアクションを実行するため、コンフィデンシャル コンピューティングのシナリオに不可欠です。
- エンクレーブ証拠が有効かどうかを検証する。
- 顧客が定義したポリシーと照らし合わせてエンクレーブ証拠を評価する。
- テナント固有のポリシーを管理および格納する。
- 依存するパーティがエンクレーブと相互作用するために使用するトークンを生成して署名する。
Microsoft をトラステッド コンピューティング ベース (TCB) の運用上の関与対象外に保つため、クオートの検証、トークン生成、ポリシー評価、トークン署名といった Azure Attestation の重要な処理は、AMD SEV-SNP ベースのコンフィデンシャル コンテナーに移されています。
Azure Attestation を使用する理由
Azure Attestation には以下のベネフィットがあるため、TEE を証明するうえで推奨される選択肢となっています。
- TPM、SGX エンクレーブ、VBS エンクレーブなどの複数の環境を構成証明するための統合フレームワーク。
- カスタム構成証明プロバイダーを作成し、トークンの生成を制限するようにポリシーを構成することができます。
- TEE の実装で使用中にデータを保護します。
- 高可用性サービス。
Azure Attestation との信頼を確立する方法
- 構成証明トークンが Azure 構成証明によって生成されるかどうかを確認 する - Azure 構成証明によって生成された構成証明トークンは、自己署名証明書を使用して署名されます。 署名証明書の URL は、OpenID メタデータ エンドポイント経由で公開されます。 証明書利用者は、署名証明書を取得し、アテステーション トークンの署名検証を実行できます。 詳細については、 コード サンプルを参照してください。
- Azure Attestationが SEV-SNP コンテナー内で実行されているかどうかを確認します。トークン署名証明書には、Azure Attestationが実行される TEE に関する情報が含まれます。 この TEE 関連データは、SEV-SNP のレポートです。 証明書利用者は、レポートをローカルで検証することで、Azure Attestationが有効な TEE 内で実行されているかどうかを確認できます。 コード サンプルについては、 SEV-SNP を参照してください。
- Azure Attestation TEE レポートと、構成証明トークンに署名したキーとのバインドを検証する - 依拠当事者は、構成証明トークンに署名した公開キーのハッシュが Azure Attestation TEE レポートの report data フィールドと一致するかどうかを検証できます。 詳細については、 コード サンプルを参照してください。
- Azure 構成証明コードの測定値が Azure 公開値と一致するかどうかを検証 します。構成証明トークン署名証明書に埋め込まれている TEE の資料には、Azure Attestation の TEE コード測定値が含まれます。 証明書利用者は、構成証明トークン署名証明書の TEE 資料から取得した特定の値と、Azure Attestation チームが提供する値を比較することで、レポートがAzure Attestationに属していることを検証できます。 SEV-SNP の場合は、HOST_DATAを検証する必要があります。 詳細については、 コード サンプルを参照してください。 この検証の実行に関心がある場合は、Azure サポート ページで要求を送信します。 これらの特定の値がローテーション用にスケジュールされると、Azure Attestation チームから連絡があります。
- ビルド来歴の信頼性を確保 - Azure Attestation は、Microsoft の Signing Transparency(MST)と統合されています。 MST は、変更できない改ざん防止台帳にコード署名を記録します。 MST サービスは、暗号で検証可能な SCITT 準拠のレシートを提供し、Azure Attestationのデプロイを明確に把握し、信頼、監査可能性、規制コンプライアンスを強化します。 MST の詳細とビルド成果物を検証する方法については、「署名の透明性台帳Microsoftについて」を参照してください。
有効な Azure 構成証明インスタンスを識別する値は、コード署名証明書がローテーションされたとき、またはセキュリティ更新プログラムに新しいポリシー バージョンが必要な場合に変更されることが予想されます。 Azure Attestation チームは、計画されているすべてのローテーションについて、このロールアウト スケジュールに従います。
- Azure Attestation チームは、関連するコード変更を実装するために、2 か月の猶予期間で新しい値をコンシューマーに通知します。
- 2 か月の猶予期間の後、Azure Attestation は新しい値の使用を開始します。
- 通知日から 3 か月後に、Azure Attestation は古い値の使用を停止します。
計画外のローテーション (セキュリティ更新プログラムに必要なものも含む) の場合、Azure 構成証明チームは 1 か月の猶予期間で新しい値を伝達します。
ビジネス継続性とディザスター リカバリー (BCDR) のサポート
Azure Attestation のビジネス継続性とディザスター リカバリー (BCDR) を使用すると、リージョン内の重大な可用性の問題や災害イベントによって生じるサービスの中断を軽減できます。
2 つのリージョンにデプロイされたクラスターは、通常の状況下では独立して動作します。 一方のリージョンで障害または停止が発生した場合、次の処理が行われます。
- Azure Attestation BCDR により、シームレスなフェールオーバーが提供されます。お客様は、回復のための手順を別途実行する必要はありません
- リージョンのAzure Traffic Managerは、正常性プローブが低下していることを検出し、エンドポイントをペアリージョンに切り替えます。
- 既存の接続が機能せず、内部サーバー エラーまたはタイムアウトの問題を受け取ります。
- すべてのコントロールプレーン操作は禁止されます。 お客様は、プライマリ リージョンに構成証明プロバイダーを作成できません。
- 構成証明呼び出しやポリシー構成を含むすべてのデータ プレーン操作は、セカンダリ リージョンによって処理されます。 お客様は、プライマリ リージョンに対応する元の URI を使用して、引き続きデータ プレーン操作に取り組むことができます。