冒頭
こんにちは、Acompanyの近藤です。
本記事では、近年注目を集めるハードウェア型秘密計算(Confidential Computing)について、技術概要と現状のクラウドインフラでの実装状況をシュッと理解できるような内容を書いていきます。なるべく平易な表現を心がけますが、多少の技術的知識は必要となる点はご了承ください。
また、本記事はAcompany😎 Advent Calendar 2025 Part2の22日目の記事です。
アドカレの関連記事として、以下の記事は技術的な詳細を理解したい方向けに非常におすすめです。
この記事の超要約
- ハードウェア型秘密計算(Confidential Computing)によって、従来は保護することができなかったメモリで処理中のデータの保護を実現することが可能になり、安全なアプリケーション実行環境を構築することが可能になってきている
- その構成要素としてTrusted Execution Environment(TEE)と呼ばれるハードウェア技術がある
- TEEで実際のアプリケーション開発がしやすい技術としては以下のいずれか
- Confidential Process型
- Intel SGX
- Confidential VM型
- Intel TDX
- AMD SEV-SNP
- Confidential GPU
- NVIDIA Confidential Computing
- Confidential Process型
- 対応しているクラウドインフラとしては以下の3つが有望
- Microsoft Azure
- Google Cloud
- Amazon Web Services
- ただし、TEEを用いた安全なアプリケーション構築をするためには、データのライフサイクル(転送中、保存時、処理中)全体のセキュリティリスクを考慮した上で設計/実装することが肝要
ハードウェア型秘密計算の概要
ハードウェア型秘密計算は、CPUやGPU等のハードウェアから提供される機能によって構築されたTrusted Execution Environment(TEE)にてデータ処理することで、データを保護する仕組みです。特に、TEEによるデータ処理中のメモリに対する厳格なアクセス制御とメモリ暗号化によってデータの機密性を高めている点が特徴です。
これによって、例えばサーバのホストOSやハイパーバイザーなどの管理者ですら、TEEで隔離された領域のデータへアクセスすることが非常に困難な状態を実現できます。
TEEを使用しない従来の環境ですと、通信路の暗号化やストレージの暗号化によってそれらのデータ保護は実現されていますが、計算途中の暗号化やアクセス制御は実現されておらず、アタックサーフェスとして残っていました。
この処理中のアタックサーフェスのリスクを低減することがTEEの主な狙いです。
想定される脅威としては以下が概ね想定されていますが、技術や攻撃手法の発展により流動的な側面があるため一概に言い切ることが難しく、ここでは深入りせずに単に列挙することとします。
- 物理的なサーバの管理者による攻撃
- データセンター事業者など
- クラウドインフラ提供者による攻撃
- AWS, Azure, GCPなどのハイパースケーラーなど
- マシンの管理者権限を持つものによる攻撃
- ホストOSやハイパーバイザーの管理者など
TEEが提供する主要な機能
CPUやGPUなどのハードウェアによって若干の差分はありますが、TEEによって提供される主要な機能としては以下の3つが挙げられます
TEEの領域外からのアクセス拒否
ハイパーバイザーやホストOSなどの管理者権限を持つユーザが、TEEで保護されているアプリケーションにアクセスしようとしても拒否される機能です。これによって、メモリで処理されているプログラムやデータを単純に盗み見ることが困難になります。
メモリ暗号化
TEEで保護されるアプリケーションのプログラムやデータは暗号化された状態でメモリ上に展開されます。この処理自体はCPUのメモリ暗号化エンジンによって透過的に実施されるため、アプリケーション開発者が意識する必要はありません。
この機能によって、仮にホストOSの管理者権限を持つ攻撃者がメモリダンプを実施したとしても暗号化された情報しか得られず、情報を盗むことが困難になります。
また、このメモリ暗号化の鍵はCPU側で生成・管理されるため、ホストマシンの管理者であっても直接鍵を取得することができません。
リモートアテステーション(Remote Attestation)
TEEで保護されているアプリケーションの完全性を確認する仕組みです。その目的としては、TEEで保護されているアプリケーションが改竄されてバックドア等が仕込まれていてはデータ保護が実現できないため、アプリケーションコードの改ざんが発生しているかどうかを外部から検証可能にすることです。
基本的な仕組みとしては、事前にアプリケーションバイナリのハッシュ値を控えておき、リモートアテステーションによって得られたTEEで保護されているアプリケーションのハッシュ値と照合し、ハッシュ値が一致した場合に完全性検証が成功するというものです。他にも検証項目があり、ハードウェアの署名検証やバージョン情報などの検証も実施することで、TEEが信頼可能であることを示す情報を得ることができます。
もし、リモートアテステーションによって得られたハッシュ値が、事前に控えておいたハッシュ値と異なっていれば、事前に控えておいたアプリケーションとは異なるものがTEE内で動作していることになるため、そのサーバに機密情報を送信せずに済みます。
使われ方のイメージ
上記のTEEの機能を使用することで、TEEで保護されたアプリケーションに機密情報を送信したとしても、その情報が盗まれるリスクを最小化することができます。
この特性を活かして、例えば以下のようなユースケースが考えられます。
安全な生成AIアプリケーション
生成AIのアプリケーション(例えばChatGPTやGemini等のようなチャットアプリ)が外部ベンダーによって提供されているシーンを考えてみます。
通常、この生成AIアプリケーションベンダーは、ユーザから送信された全てのプロンプトやファイルを平文で閲覧することが可能です。したがって、ユーザはベンダーに閲覧されても良いデータしか送ることができません。
ここで、TEEを使ってアプリケーションを保護すると、ユーザが提供したプロンプトやファイルなどはTEEで保護されたメモリでのみ処理されます。したがって、管理者権限を持つ生成AIのアプリケーションベンダーですら、メモリに展開されている平文の情報にアクセスすることができない状態を実現可能です。これにより、生成AIアプリケーションベンダーに機密情報を公開することなく、安心して生成AIサービスを利用することが実現できます。
ただし注意点としては、アプリケーションコードがユーザの機密情報を保護することを念頭に正しく設計/実装されていることを前提とする必要があります。例えば、アプリケーションの仕様としてユーザからの入力データを平文でTEEの外に送信したり保存してしまう場合には、データの保護が実現できません。これは、TEE自体はデータ処理中のメモリ保護に力点を置いているためであり、データ保存時や転送中の安全性については、別な手段で保護することが想定されているためです。したがって、保護対象のデータが何であるかを明確にし、データ転送中/保存時/処理中の安全性を高めるためにセキュリティの観点からシステムを設計し、処理中の安全性を高める方法としてTEEを手段として選択することが望ましいと言えます。
CPU/GPUが提供するTEE技術
現在、CPUやGPUから一般に提供されているTEE技術としては以下が挙げられます。それぞれの個別の技術については深入りしませんが、概ね保護対象となる範囲に差分があります。
- Confidential Process型(特定のプロセスだけを保護)
- Intel SGX
- Confidential VM型(VM単位で保護)
- Intel TDX
- AMD SEV-SNP
- Confidential GPU(VMとGPU間の通信を保護)
- NVIDIA Confidential Computing
現在のクラウドでの選択肢
TEEが利用可能な主要なクラウドインフラとしてAzure/GCP/AWSがあげられます。
それぞれのTEE技術への対応状況は微妙に異なっているものの、Confidential VMについては全てのクラウドインフラで利用可能となっています。
Microsoft Azure
3つのクラウドの中で最も整備が進んでおり、選択肢が最も多い状態です。
以下のTEE機能が利用可能となっています。
- Confidential Process型
- Intel SGX
- Confidential VM型
- AMD SEV-SNP
- Intel TDX
- Confidential GPU
- NVIDIA Confidential Computing
特筆すべきは、Intel SGXが利用可能となっている点です。これが利用できるのは、3つのクラウドインフラでは唯一の状態となっているため、Intel SGXを利用したい開発者はAzureを選択することになります。
また、Confidential VM(AMD SEV-SNP)上でコンテナを展開することが可能な製品であるConfidential Containers on Azure Container Instancesを提供しており、コンテナをシュッとTEEで動かすことが可能なため、もしTEEでのアプリケーション実装に興味がある方は一度触ってみることをおすすめします。
Google Cloud
以下のTEE機能が利用可能です。
- Confidential VM
- AMD SEV-SNP
- Intel TDX
- Confidential GPU
- NVIDIA Confidential Computing
Confidential VMとConfidential GPUの利用が可能となっているため、Intel SGXを利用したいとき以外に選択可能です。
Amazon Web Services
AWSはやや特殊な状況となっており、独自のソフトウェアベースの隔離機能であるNitro Enclavesを提供している点がユニークです。
以下のTEE機能が利用可能です。
- Confidential VM
- AMD SEV-SNP
- Nitro Enclaves
- ソフトウェア機能による隔離
この記事ではハードウェアベースのTEE機能について記載しているため詳細は割愛しますが、Nitro Enclavesを利用したTEEアプリケーション開発を実施する場合は、AWSを選択することになります。
サマリ
- ハードウェア型秘密計算(Confidential Computing)によって、従来は保護することができなかったメモリで処理中のデータの保護を実現することが可能になり、安全なアプリケーション実行環境を構築することが可能になってきている
- その構成要素としてTrusted Execution Environment(TEE)と呼ばれるハードウェア技術がある
- TEEで実際のアプリケーション開発がしやすい技術としては以下のいずれか
- Confidential Process型
- Intel SGX
- Confidential VM型
- Intel TDX
- AMD SEV-SNP
- Confidential GPU
- NVIDIA Confidential Computing
- Confidential Process型
- 対応しているクラウドインフラとしては以下の3つが有望
- Microsoft Azure
- Google Cloud
- Amazon Web Services
- ただし、TEEを用いた安全なアプリケーション構築をするためには、データのライフサイクル(転送中、保存時、処理中)全体のセキュリティリスクを考慮した上で設計/実装することが肝要
告知
Acompanyではハードウェア型秘密計算(Confidential Computing)を軸として安心安全なデータ/AI活用社会を実現すべく活動しています。
もしご関心があれば、下記のページからカジュアル面談の設定が可能ですので、ぜひお気軽にご連絡ください😇
参考文献
- Confidential Computing Consortium: Confidential Computing: Hardware-Based Trusted Execution for Applications and Data
https://confidentialcomputing.io/wp-content/uploads/sites/10/2023/03/CCC_outreach_whitepaper_updated_November_2022.pdf - Intel: Intel TDX Module Architecture Specification
https://cdrdv2-public.intel.com/733568/tdx-module-1.0-public-spec-344425005.pdf - AMD: AMD Secure Encrypted Virtualization (SEV)
https://www.amd.com/en/developer/sev.html - NVIDIA: Confidential Compute on NVIDIA Hopper H100
https://images.nvidia.com/aem-dam/en-zz/Solutions/data-center/HCC-Whitepaper-v1.0.pdf - Azure: Azure Confidential Computing overview
https://learn.microsoft.com/en-us/azure/confidential-computing/overview - Confidential Container on ACI: Confidential containers on Azure Container Instances(概要)
https://learn.microsoft.com/en-us/azure/container-instances/container-instances-confidential-overview - Google Cloud: Confidential Computing overview
https://docs.cloud.google.com/confidential-computing/docs/confidential-computing-overview - AWS: AWS Confidential Computing(Data isolation)
https://aws.amazon.com/confidential-computing/ - AWS Nitro Enclaves: What is Nitro Enclaves?
https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html
