メインコンテンツまでスキップ

Intel SGX

Intel SGXは、機密性と整合性を確保する領域であるEnclaveを作成するためのCPU命令セットを提供する。SGXは、OSやVMMなどの各レイヤにおける攻撃においても、機密データが正しく処理、保護されることを保証する。

Intel SGXを用いたアプリケーションは、次のように信頼領域であるEnclaveと非信頼領域であるHost Applicationから構成される。

Enclaveは、Host Applicationによるecallを利用することのみでアクセスが可能となっている。また、Enclaveはocallを用いることによりApplication側を呼ぶことも可能である。

次にSGXの主要な要素について述べる。

MRENCLAVE

MRENCLAVEは、Enclave softwareのvalidityの確認に利用できるenclave measurementsの1つである。これはEnclaveのcode, data, stack, heap と複数の属性値により構成される log のハッシュ値である。Enclaveの有効性を検証するpartyは期待するEnclaveのこの値を安全に取得する必要がある。

Sealing

SGXではEnclaveを閉じる前にデータをEnclave外に保護および保存するためにそのEnclaveに固有な鍵を取得可能な仕組みをサポートする。この鍵を用いて暗号化および復号化を行うことをそれぞれSeal, Unsealと呼ぶ。

Architectural Enclave(AE)

SGXでは、EnclaveのLaunchを制御するenclaveやEnclaveのvalidityを検証可能にするAttestation機能を実現するためのArchitectural Enclave(AE)と呼ばれるいくつかのenclaveを提供する。

Quote

Quoteは、Reportと呼ばれるハードウェアの情報やMRENCLAVE等のenclaveの情報に対してAEの1つであるQuoting Enclave(QE)により署名された構造体である。また、QEは署名鍵としてAttestation Key(AK)を利用する。この署名方式としてEnhanced Privacy ID(EPID)とECDSAの2種類ある。

Remote Attestation

Intel SGXでは、Remote partyによりハードウェアおよびEnclaveのvalidityを検証可能にするRemote Attestationを提供する。

SGXでは、現在2種類のRemote Attestationの方式が存在し、Quoteの署名方式とそれぞれ対応する。 1つはEPID based attestationで、プラットフォームの匿名性を保ったままattestationを可能にする。この場合、QuoteをIntel Attestation Service(IAS)と呼ばれるServiceでのみ検証が可能である。そのため、remote partyは、IASによるQuoteを含む検証レポートへの署名の検証を行う。 もう1つは、ECDSA based attestationで、これはDCAPと呼ばれる主にData centerやCloud Service Provider向けのパッケージとともに利用され、外部のAttestation Service無しにremote partyによる検証を可能としている。 なお、LCPでは、これらのAttestation方式に依らず、remote partyにより検証可能なQuoteをVerifiable Quoteと呼ぶ。 IASのAttestation Verification ReportはVerifiable Quoteの一例である。