Page 398 - 《软件学报》2026年第2期
P. 398
李鲍 等: 基于 TEE 安全高效的细粒度统计分析与可验证数据聚合方案 877
包括 ODMT-BGN 算法的设计、系统模型、威胁模型与方案详细描述. 第 4 节给出了方案的正确性证明和安全性
分析. 第 5 节是该方案的实验分析. 第 6 节总结全文.
1 相关工作
1.1 Intel SGX
可信执行环境 (TEE) 是一种安全的计算环境, 确保其内部敏感数据和代码的安全性和隐私性. TEE 通常是由
硬件和软件组成的, 可以在普通的操作系统上提供一种安全的运行环境, 使得恶意软件无法获取或篡改 TEE 中的
数据和代码. 例如, Intel SGX (software guard extension).
英特尔软件防护扩展 (Intel SGX/TDX) [27–29] 于 2015 年首次在第 6 代 Intel Core 处理器上实现, 是一组添加在
Intel 架构处理器内一组 x86 内存访问指令和机制. 被保护的内存区域称飞地 (enclave) 驻留在应用程序的地址空
间, 旨在为应用程序代码和数据提供基于硬件的内存加密和隔离, 保证了代码和数据机密性与完整性. 此外, Intel
SGX 提供了内存隔离、远程认证以及数据封装等功能. 如图 1 所示.
Enclave 2
1. 飞地认证质询 4. 发送签名报告
应用1 应用2 7. 验证 5. 验证 Enclave EGETKEY 应用
安全服务 签名 飞地 Seal key
6. 签名验证结果
用户 SGX 运行平台 IAS 认证服务
操作系统 操作系统
2. MRENCLAVE
Quoting 硬件
硬件 enclave
QE
(1) SGX 内存隔离 (2) SGX 远程隔离 (3) SGX 封装
图 1 可信执行环境 Intel SGX
(1) 内存隔离: 飞地的内存被映射到一个称为 EPC (enclave page cache) 的特殊的物理内存区域. EPC 内的数据
是由内存加密引擎 MEE (memory encryption engine) 来进行加密维护的, 进而保证了数据不被运行其飞地的不可
信系统、超级管理员以及系统固件所访问. 然而, 这种保护也会受到飞地内存的受限, 例如: SGX1 代预留 128 MB
®
®
或 256 MB 加密保护的内存, 现如今第三代英特尔 至强 可扩展处理器开始内置英特尔软件防护扩展, 其安全飞
地的容量最多可达单核 CPU 512 GB, 双路共计 1 TB 容量, 可满足更大执行空间需求.
(2) 远程认证: Intel SGX 远程认证允许远程用户 (验证者) 验证飞地 (证明者) 是否被正确创建且安全运行在
SGX 平台上. 在此认证中, 主要涉及注册开发飞地用户 ISV (independent software vendor)、验证飞地的英特尔认证
服务验证者 IAS (Intel attestation service) 以及运行 SGX 飞地的平台证明者. 其过程如下.
1) ISV 发送飞地认证质询.
2) 运行 SGX 飞地平台生成包含其飞地度量值 (MRENCLAVE) 的验证报告, 此报告可由 Intel 签名的 QE
(quoting enclave) 通过本地认证生成. 同时, QE 通过验证密钥对其签名并发送至 IAS.
3) IAS 验证该签名并利用 Intel 私钥对验证结果进行签名.
4) ISV 通过对比验证结果的签名与飞地的度量值来判断飞地是否可信, 如签名值与飞地度量值不等则验证失
败, ISV 将拒绝加载飞地, 反之加载.
(3) 数据封装: 因 SGX 内存受到严格限制, 飞地一旦被创建且实例化, 就会将数据保存在飞地. 当飞地关闭时,
飞地内部的敏感信息就会丢失, 这期间必须保存这些敏感数据以便将来使用. 因此, SGX 提供一种封装技术将其
敏感数据封装到飞地之外. 此封装特性是一种只允许检索该飞地平台上生成密钥的机制, 飞地可以使用该密钥对
飞地内部敏感数据加密和解密. 如数据需要存储在飞地外时, 则需利用 CPU 硬件派生密钥对数据进行封装.
1.2 数据聚合
数据聚合不仅为用户提供全面且准确的数据统计分析, 还能提高系统分析的效率. 数据拥有者通过加密的方

