Skip to content

隐私计算与可信执行环境

可信执行环境(Trusted Execution Environment, TEE)是硬件级别的隐私保护方案,与联邦学习、多方安全计算构成隐私计算的三大技术路线。

隐私计算与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 report

TEE + 联邦学习

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

技术对比

特性SGXTrustZoneCCA
平台服务器/PC移动端服务器(ARM)
隔离粒度Enclave安全世界Realm
内存限制~128MB EPC灵活灵活
侧信道风险较少
认证远程认证有限远程认证

TEE 在联邦学习中的应用

  1. 聚合服务运行在 TEE 内:客户端信任 TEE 而非服务方
  2. 数据验证在 TEE 内:防止恶意更新
  3. 密钥管理在 TEE 内:安全聚合的密钥受保护
  4. 模型推理在 TEE 内:保护模型知识产权

TEE 的侧信道攻击

SGX 存在侧信道风险(Spectre/Meltdown、Foreshadow)。防御措施:1) 常量时间算法;2) 内存访问模式 oblivious;3) 使用更新的硬件微码。

相关资源

最近更新