隐私计算与可信执行环境
可信执行环境(Trusted Execution Environment, TEE)是硬件级别的隐私保护方案,与联邦学习、多方安全计算构成隐私计算的三大技术路线。
隐私计算技术路线
| 路线 | 原理 | 安全假设 | 性能 | 代表 |
|---|---|---|---|---|
| 多方安全计算 (MPC) | 密码学协议 | 计算安全 | 慢 | SPDZ, ABY |
| 联邦学习 (FL) | 数据不出域 | 信任聚合方 | 快 | FedAvg |
| 可信执行环境 (TEE) | 硬件隔离 | 硬件可信 | 中 | SGX, TrustZone |
Intel SGX
SGX 提供硬件隔离的加密内存区域(Enclave):
python
# 使用 Open Enclave SDK 的概念示例
class SGXEnclave:
"""SGX Enclave 封装"""
def __init__(self, enclave_path):
self.enclave = self.load_enclave(enclave_path)
def secure_compute(self, encrypted_data, compute_func):
"""在 Enclave 内安全计算"""
# 1. 数据进入 Enclave(硬件加密)
# 2. 在 Enclave 内解密并计算
# 3. 加密结果返回
# Enclave 内部(受硬件保护)
plaintext = self.decrypt_inside(encrypted_data)
result = compute_func(plaintext)
encrypted_result = self.encrypt_inside(result)
return encrypted_result
def remote_attestation(self):
"""远程认证:证明 Enclave 完整性"""
report = self.generate_report()
# 验证方检查:
# 1. Enclave 签名是否正确
# 2. Enclave 代码哈希是否匹配
# 3. 运行平台是否可信
return reportTEE + 联邦学习
TEE 可增强联邦学习的安全性:
python
class TEEFederatedLearning:
"""基于 TEE 的联邦学习"""
def __init__(self, tee_enclave):
self.enclave = tee_enclave
def secure_aggregation(self, encrypted_updates):
"""在 TEE 内进行聚合"""
# 所有客户端用 TEE 公钥加密更新
# TEE 内解密、验证、聚合
aggregated = self.enclave.secure_compute(
encrypted_updates,
lambda updates: FedAvg.aggregate(updates)
)
return aggregated
def verify_update(self, update):
"""在 TEE 内验证更新质量"""
def check(update):
norm = torch.norm(update)
if norm > MAX_GRAD_NORM:
return None # 丢弃异常更新
return update
return self.enclave.secure_compute(update, check)ARM TrustZone
移动端的 TEE 方案:
python
class TrustZoneFL:
"""TrustZone 联邦学习(移动端)"""
def __init__(self):
self.secure_world = True # 安全世界
def local_train_in_tee(self, model, data):
"""在 TrustZone 安全世界训练"""
# 数据和计算在安全世界内
# 正常世界无法访问安全世界内存
update = self.train(model, data)
return update技术对比
| 特性 | SGX | TrustZone | CCA |
|---|---|---|---|
| 平台 | 服务器/PC | 移动端 | 服务器(ARM) |
| 隔离粒度 | Enclave | 安全世界 | Realm |
| 内存限制 | ~128MB EPC | 灵活 | 灵活 |
| 侧信道风险 | 有 | 有 | 较少 |
| 认证 | 远程认证 | 有限 | 远程认证 |
TEE 在联邦学习中的应用
- 聚合服务运行在 TEE 内:客户端信任 TEE 而非服务方
- 数据验证在 TEE 内:防止恶意更新
- 密钥管理在 TEE 内:安全聚合的密钥受保护
- 模型推理在 TEE 内:保护模型知识产权
TEE 的侧信道攻击
SGX 存在侧信道风险(Spectre/Meltdown、Foreshadow)。防御措施:1) 常量时间算法;2) 内存访问模式 oblivious;3) 使用更新的硬件微码。