Intel SGX
概要
Intel在桌面、IoT终端废弃SGX,在Xeon保留SGX用于机密计算。
server通过attestation证明可信身份,与data owner computer建立可信communication channel,进行机密计算数据交互。
key provision
GWK(global wrapping logic key)在芯片电路中硬编码,用于加密efuse content:EPID key (256-bit), pre-seed key0 (128-bit)。
另有 pre-seed key1 (128-bit)、EPID group ID (32-bit) 明文烧入efuse。
PUF key增强方案:gwk加密puf key后提交key generation server。key generation server解密后使用puf key加密fuse key。
Provisioning Secret 由 intel基于SGX Master Derivation Key派生(EGETKEY),intel知晓并烧入efuse。
Seal Secret 由芯片内部生成并烧入efuse,理论上intel不知晓。
Provisioning Secret 用于provisioning service对Provisioning enclave的authentication,通过认证后,生成Attestation key并返回。Provisioning enclave使用Provisioning Seal key加密安全存储Attestation key。
Attestation Key 用于 Intel Enhanced Privacy ID (EPID) 系统。
local attestation
cmac
remote attestation
local attestation 转交后调ak签名。
敏感PPID通过PPIDEK加密保护。
Quoting Enclave
quoting enclave(QE) report 内容含 Attestation Key。
Provisioning Certification Key (PCK) 负责对quoting enclave report签名。
sealing key
sgx_get_key的sealing key是CPU-bound,本地data sealing。
sealing key派生key policy有两种:MRENCLAVE,MRSIGNER分别锁定enclave版本与code signer。