アプリケーションコードとデータを保護する信頼実行環境技術
Intel SGX(Software Guard Extensions)は、アプリケーションの機密部分を「エンクレーブ」と呼ばれる保護された実行環境で実行することで、OSやハイパーバイザーからも保護する、ハードウェアベースのセキュリティ技術です。
| 世代 | 対応状況 | 備考 | |------|---------|------| | 第6-10世代 | 一部対応 | BIOS設定必要 | | 第11世代 | 制限付き | 一部SKUのみ | | 第12世代以降 | 非対応 | 廃止傾向 | | Xeon | 継続対応 | データセンター向け |
// SGXエンクレーブ関数の例
#include <sgx_edger.h>
// Trusted部分(エンクレーブ内)
sgx_status_t secret_function(int input) {
// 機密処理
return SGX_SUCCESS;
}
// Untrusted部分(通常アプリ)
sgx_enclave_id_t enclave_id;
sgx_create_enclave(ENCLAVE_FILE,
SGX_DEBUG_FLAG,
NULL, NULL,
&enclave_id, NULL);
BIOS設定:
- SGX: Enabled
- Hyper-Threading: Disabled(推奨)
- マイクロコード: 最新版適用
### オーバーヘッド
- **エンクレーブ切替**: 約8,000サイクル
- **メモリアクセス**: 5-10%の性能低下
- **暗号化処理**: AES-NIで軽減
### 最適化手法
1. **バッチ処理**: 切替回数を削減
2. **非同期実行**: エンクレーブ外で並列処理
3. **データ局所性**: キャッシュ効率化
### AMD SEV
- **仮想マシン全体を暗号化**
- **ゲストOS透過的**
- **EPYC専用**
### ARM TrustZone
- **Secure World/Normal World分離**
- **組込み系で普及**
- **モバイル中心**
### Intel TDX
- **Trust Domain Extensions**
- **VM単位の保護**
- **SGXの後継技術**
Intel SGXは消費者向けCPUでは段階的に廃止されていますが、データセンターやエッジコンピューティングでは引き続き重要な技術です。後継のTDXやクラウド向けソリューションへの移行が進んでいます。