TEE —— SGX、TDX、SEV、TrustZone

TPM 解决的是”启动可信”,但启动后内存仍然透明——OS、Hypervisor、root 用户都能 dump 内存。TEE(Trusted Execution Environment) 在 CPU 内开辟”加密飞地”,让运行时数据也”硬件加密”。本文展开各家 TEE。

TEE 的核心思想

graph TB
  subgraph WITHOUT["传统模式"]
    OS[OS / Hypervisor / root
都能看 / 改 进程内存] end subgraph WITH["TEE 模式"] TEE[加密飞地内存] TEE -.- |"只有 enclave 内代码能访问"| OUT[OS / 攻击者看不到] end

TEE 的目标:

1
2
3
4
1. 内存加密:     enclave 内存硬件级加密,OS 看不到明文
2. 完整性保护: enclave 代码 / 数据被改 → CPU 拒绝执行
3. 远程证明: 远端可验证 "我在某个 TEE 里跑了某段代码"
4. 隔离: 不同租户 / 进程的 enclave 互相隔离

TEE 的几种主流路线

graph TB
  TEE[TEE 路线]
  TEE --> P1[进程级
一个进程内的飞地] TEE --> P2[VM 级
整个 VM 加密] TEE --> P3[安全世界级
独立"安全 OS"] P1 --> SGX[Intel SGX] P2 --> TDX[Intel TDX] P2 --> SEV[AMD SEV / SEV-SNP] P2 --> CCA[ARM CCA] P2 --> CSV[海光 CSV] P3 --> TZ[ARM TrustZone] P3 --> SE[Apple Secure Enclave]

Intel SGX(Software Guard Extensions)

最早商用的进程级 TEE,2015 年 Skylake 引入:

graph TB
  PROC[用户进程]
  PROC --> EN[Enclave 飞地]
  EN --> EPC[EPC 加密内存]
  
  OS[OS 内核]
  OS -.- |看不到 Enclave 内存| EN

SGX 工作机制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1. 应用启动:     普通进程
2. 创建 Enclave:
- ECREATE 指令分配加密内存(EPC)
- 加载 Enclave 代码 + 数据
- EINIT 锁定,从此 OS 看不到内存

3. 进入 Enclave:
- EENTER 指令切入 enclave
- 在 enclave 内执行受保护代码

4. 退出: EEXIT 回到普通模式

EPC 内存:
- CPU 访问时 MEE(Memory Encryption Engine)解密
- DRAM 中存的是密文
- DMA / 总线嗅探拿不到明文

SGX 的限制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
EPC 大小:     
- SGX1:128 MB(Skylake/Coffee Lake,物理上限)
- SGX2:512 MB - 1 GB(Ice Lake Server)
- SGX 3rd gen: 几十到几百 GB(Sapphire Rapids,2023+)

性能开销:
- 加密 / 完整性校验: 内存访问慢 30-50%
- 进入 / 退出 Enclave: 几千 CPU cycles
- 不适合大数据集计算

攻击:
- Foreshadow(2018): 侧信道泄露
- LVI / Plundervolt: 其他 CVE
- 这些已修复但生态信心受损

SGX 的应用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
密钥管理 KMS:     
- 在 enclave 内做加密 / 签名
- 即使 root 也偷不到密钥

区块链 / Confidential Computing:
- Microsoft Azure Confidential Containers(早期)
- Hyperledger Avalon
- Intel ISV 生态

数据库加密:
- SQL Server Always Encrypted
- Microsoft Azure SQL Confidential

SDK:
- Intel SGX SDK
- Open Enclave SDK(Microsoft)
- Gramine(项目): 把整个 Linux 应用塞进 SGX

2022+ Intel 缩减消费级 SGX:
- 11th gen 桌面 CPU 起取消 SGX
- 服务器仍然支持
- 重心转向 TDX

Intel TDX(Trust Domain Extensions)

TDX 是 SGX 的”VM 级”继任者,2023 年 Sapphire Rapids 商用:

graph TB
  HV[Hypervisor / Host OS
不可信] HV --> TD1[TD 1
Trust Domain VM] HV --> TD2[TD 2] HV --> TD3[TD 3] TD1 -.- HV

TDX 工作机制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
1. TDX Module:     CPU 内的固件,管理 TD
2. Trust Domain: 一台加密 VM
- VM 内存全部加密(MK-TME)
- VM 寄存器在切换时加密保存
- Hypervisor 不能读 VM 内存

3. 远程证明:
- TDX Quote 包含 TD 启动哈希
- 远端验证 TD 是真 TDX 且内容正确

整个 VM 是 TEE:
- 应用不需要重写
- Linux / Windows / 数据库 等都能跑
- 性能开销 < 5%(内存加密硬件级)

TDX 的优势 vs SGX

1
2
3
4
5
6
7
8
9
10
11
SGX:     
- 应用要拆 enclave 部分
- EPC 大小受限
- 编程复杂

TDX:
- 整 VM 加密
- 应用无需修改
- 大内存友好
- 可跑大模型推理 / 训练
- 客户场景普适

TDX 在云上

1
2
3
4
5
6
7
8
Azure DCe / DCa(2024+):    Confidential VM 用 TDX
GCP Confidential VM: TDX 选项
阿里云 ACK Confidential: TDX 适配中

应用:
- 多方计算 / 联邦学习
- 数据安全房 (Data Clean Room)
- 监管合规(GDPR / HIPAA)

待补充:TDX 实际生产部署规模 2025-2026 数据。

AMD SEV / SEV-ES / SEV-SNP

AMD 的”VM 级 TEE”路线,比 TDX 早:

graph LR
  S1[SEV
2017
仅内存加密] --> S2[SEV-ES
2019
+ 寄存器加密] S2 --> S3[SEV-SNP
2021
+ 完整性 + 防回滚]

SEV(2017)

1
2
3
4
5
- AMD EPYC 第 1 代 Naples 起
- AES-128 加密 DRAM
- 每 VM 一个 VEK(VM Encryption Key)
- Hypervisor 看到密文
- 但寄存器 / 中断未加密

SEV-ES(Encrypted State,2019)

1
2
3
- VM 进出时 CPU 寄存器也加密保存
- 防止 Hypervisor 通过 vmexit 偷状态
- AMD EPYC 第 2 代 Rome 起

SEV-SNP(Secure Nested Paging,2021)

1
2
3
4
5
6
7
- 加完整性保护:     防止 Hypervisor 改 VM 内存
- RMP(Reverse Map Table): 每页归属验证
- 防回滚攻击
- 远程证明完整支持
- AMD EPYC 第 3 代 Milan 起

最完整的 AMD VM-level TEE 方案

SEV-SNP 在云上

1
2
3
4
5
6
Microsoft Azure DCasv5(基于 SEV-SNP):     已大规模部署
GCP Confidential VM(C2D / N2D): SEV
AWS: 自家 Nitro 等价能力
阿里云 / 腾讯云: SEV-SNP 选项

SEV 比 TDX 早 6 年商用——AMD 在 Confidential VM 市场领先。

ARM TrustZone

ARM 的”安全世界”路线,2003 年起:

graph TB
  ARM[ARM CPU]
  ARM --> NW[Normal World
普通 OS] ARM --> SW[Secure World
独立安全 OS] NW --> NS_OS[Linux / Android] SW --> S_OS[OP-TEE / Trusty / 国产 TEE]

TrustZone 工作模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CPU 双世界:     
- Normal World(NS): Linux / Android
- Secure World(S): 一个完全独立的安全 OS

切换: SMC 指令进入 Secure Monitor

Secure World 内:
- 独立内核(OP-TEE / TrustyTEE / 国产 TEE)
- 独立 RAM 区域
- 独立外设访问

应用:
- 移动支付(Apple Pay / Samsung Pay)
- 指纹 / 人脸数据
- DRM 视频
- 部分服务器场景

服务器场景

1
2
3
4
5
ARM 服务器(Ampere / Graviton / 鲲鹏 / 飞腾):     
- TrustZone 仍存在
- 但服务器 TEE 主要看 CCA

TrustZone 在服务器侧用得少——主要是嵌入式 / 移动场景。

ARM CCA(Confidential Compute Architecture)

ARM 在服务器市场对位 TDX / SEV-SNP 的方案:

1
2
3
4
5
6
7
8
9
10
ARM CCA(v9 引入,2021):     
- Realm 模式(VM 级 TEE)
- RMM(Realm Management Monitor)
- 类似 TDX 思路
- Realm VM 内存加密 + 完整性

状态(2026):
- ARM v9 服务器 CPU 商用
- 软件生态成熟中
- 主流云厂家适配中

待补充:ARM CCA 实际商用部署案例。

海光 CSV(China Secure Virtualization)

海光 DCU 时讲过——这里重点讲 CSV:

1
2
3
4
5
6
7
8
9
10
11
12
海光 CSV:     
- AMD SEV 国产授权 + 加密算法替换
- SM4 加密 DRAM(不是 AES)
- 与 SEV API 兼容
- 海光 C86 / 7000 系列起支持

CSV1 / CSV2 / CSV3: 与 SEV / SEV-ES / SEV-SNP 对应

应用:
- 信创云
- 国产机密计算
- 政企客户

待补充:海光 CSV 实际部署规模。

鲲鹏 ITrustee

1
2
3
4
5
6
7
8
华为鲲鹏 / 麒麟 / 海思的 TEE:     
- 基于 ARM TrustZone
- 自研 Secure World OS(iTrustee)
- 与昇腾 / 昇思深度集成

华为云 TEE:
- 鲲鹏 + iTrustee
- 支持机密计算 SDK(secGear)

TEE 编程模型

Open Enclave SDK(跨平台)

1
2
3
// 编译为 enclave
oe_create_enclave("my_enclave.signed");
oe_call_enclave(enclave, "func", args);

支持 SGX / TrustZone / OP-TEE。

Gramine LibOS(容器化)

1
2
3
4
5
6
Gramine(前身 Graphene):     
- 把整个 Linux 应用塞进 SGX enclave
- 不需要改代码
- 性能损失但可用性好

graphene-direct: 非 SGX 也能跑(用于开发)

Confidential Computing Consortium(CCC)

1
2
3
4
5
6
Linux Foundation 旗下:     
- Open Enclave SDK
- Veracruz
- Confidential Containers
- SPDM 标准
- 跨厂家 TEE 抽象层

远程证明(Attestation)的演进

graph TB
  TPM[TPM 远程证明
启动状态] TPM --> SGX_AT[SGX 远程证明
Enclave 状态] SGX_AT --> TDX_AT[TDX/SEV-SNP 远程证明
VM 状态] TDX_AT --> CCA_AT[ARM CCA 远程证明
Realm 状态]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SGX 远程证明:     
- Intel Attestation Service(IAS)
- 后来改 DCAP(Data Center Attestation Primitives)

TDX 远程证明:
- Intel Trust Authority
- 跨云通用

SEV-SNP 远程证明:
- AMD KDS(Key Distribution Service)
- SNP_REPORT 命令

工业标准趋同:
- IETF RATS(Remote ATtestation procedureS)
- 跨厂家可互验

TEE 的性能数字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SGX:     
Enclave 内 CPU 性能: ~95%(小数据)
大数据 / 跨 enclave IO: 50-70%
Enclave 切换: 几千 cycles(~ μs 级)

TDX / SEV-SNP:
整 VM 性能损失: < 5%(内存加密硬件级)
启动 + 远程证明: +几秒

TrustZone:
Secure World 切换: 几百 cycles
适合短计算(密钥操作 / 验证)

CCA Realm:
类似 TDX,性能开销 < 5%(待实测验证)

TEE 的几个安全”老坑”

坑 1:侧信道攻击

1
2
3
4
5
6
7
8
SGX 历史:     Foreshadow / LVI / SGAxe / Plundervolt
TDX: 一些早期理论攻击
SEV: Cipherleaks / Crossline

教训:
- TEE 不是"绝对安全"
- 仍有侧信道 / 故障注入风险
- 应用层仍需防护

坑 2:远程证明实现复杂

1
2
3
4
5
6
7
8
9
10
11
12
正确实现 attestation:     
- 验证签名链(厂家根 → CPU 证书 → Quote)
- 验证 PCR / MR 哈希匹配预期
- 验证 nonce 防重放
- 验证 TCB level 不旧
- 验证撤销列表

错误实现:
- 跳过签名验证
- 不验 nonce
- 不查 TCB
→ 攻击者可重放或冒充

坑 3:性能预期错位

1
2
3
4
5
SGX 大内存应用:     性能崩
TDX 内存加密: 带宽降 5-10%
SEV-SNP: 类似

设计: 先 PoC 实测,再上生产

坑 4:CPU 错失支持

1
2
3
4
5
6
7
8
9
不是所有 CPU 都支持:     
- SGX:Skylake+ 服务器
- TDX:Sapphire Rapids+
- SEV:EPYC 全系
- SEV-SNP:Milan+
- CCA:ARM v9
- 桌面 / 老服务器:不支持

→ 采购前确认 CPU 支持

坑 5:CSP 与租户信任假设

1
2
3
4
5
6
7
8
9
10
TDX / SEV-SNP 实际信任假设:     
- 租户 trust:CPU 厂家(Intel / AMD)
- 不 trust: Hypervisor / Host OS / CSP

但:
- CPU 厂家有后门?
- CPU 厂家 KMS 被入侵?
- Quote 服务被劫持?

→ 现实中是"减少信任面",不是"零信任"

TEE 与 GPU

GPU TEE 是新前沿:

1
2
3
4
5
6
7
8
9
10
11
NVIDIA Confidential Computing(H100+):     
- GPU 内存加密
- PCIe 总线密文
- 需配 TDX / SEV-SNP CPU
- VM 与 GPU 端到端加密
- 2024+ 量产

应用:
- 多方训练(数据所有者不信任 CSP)
- 模型权重保护(推理服务防偷模)
- 监管合规 AI 训练

待补充:NVIDIA H100 / B200 Confidential Computing 实际部署案例。

一些查询命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 看 SGX 支持
cpuid -1 | grep -i sgx
ls /dev/sgx_enclave

# 看 TDX 支持(CPU)
cat /proc/cpuinfo | grep -i tdx
dmesg | grep -i tdx

# 看 SEV 支持(AMD)
dmesg | grep -i sev
ls /dev/sev

# 看 TEE(ARM TrustZone)
ls /dev/tee*
ls /dev/teepriv*
optee-toolchain status

# CPU 加密能力
grep -E "aes|sha_ni|gfni|vaes" /proc/cpuinfo

# 启动参数验证
cat /proc/cmdline | grep -E "kvm_intel.tdx|kvm_amd.sev"

几个 TEE 选型场景

场景 选什么 理由
密钥保护 / KMS SGX 或 HSM 小内存,强隔离
Confidential VM 大模型 TDX 或 SEV-SNP 整 VM 加密,无修改
数据库 Always Encrypted SGX(部分操作) 进程级精细控制
移动应用支付 TrustZone 嵌入式 + 已成熟
多方计算 / 联邦学习 TDX / SEV-SNP + Confidential GPU 端到端加密
国产化机密计算 海光 CSV / 鲲鹏 iTrustee 信创要求

一些数字直觉

1
2
3
4
5
6
7
8
9
10
11
12
13
14
TEE 启动时间:     
TDX VM: 比普通 VM 多 3-5 秒(attestation)
SEV VM: +2-4 秒
SGX Enclave: 100-500 ms

价格溢价:
Confidential VM vs 普通 VM: +10-20%
Confidential GPU: 价格暂未公开,预计溢价显著

部署规模(2026):
TDX / SEV-SNP: 主流公有云已量产
海光 CSV: 国内信创规模化
ARM CCA: 初始
GPU TEE: 小规模

信任模型对比

graph TB
  M1[传统模式]
  M1 --> T1[trust:硬件 + 固件 + Hypervisor + OS + 应用]
  
  M2[Confidential Computing]
  M2 --> T2[trust:CPU 厂家硬件 + 固件 + 应用代码]
  M2 --> NT2[不 trust:CSP / Hypervisor / Host OS]

TEE 把信任面从”整个云栈”缩到”CPU 硬件 + 固件”——这是机密计算的根本价值。

小结

  • TEE 让运行时数据”硬件加密”,连 OS / 攻击者也看不到
  • 进程级 TEE: Intel SGX,灵活但 EPC 受限
  • VM 级 TEE: Intel TDX、AMD SEV-SNP、ARM CCA、海光 CSV,主流方向
  • 安全世界: ARM TrustZone,移动 / 嵌入式
  • 远程证明是 TEE 价值的关键
  • TDX / SEV-SNP 性能开销 < 5%
  • GPU TEE(NVIDIA Confidential Computing)是新前沿
  • 国产路线: 海光 CSV、鲲鹏 iTrustee

下一篇讲机密计算(Confidential Computing)—— TEE 在云上的实际产品形态。