想象一下,你有一份绝密档案,要存放在银行里。银行经理告诉你:我们发明了一种“能在柜内办公的保险柜”——你可以把文件直接锁进柜子里,然后在柜子内部完成查阅、修改、甚至销毁旧版文件,整个过程中柜门始终锁着。更绝的是,哪怕你是银行行长、保安队长,只要没有你的钥匙,连看都看不到里面的内容。这种“金库中的金库”,就是我们今天要讲的可信执行环境(TEE,Trusted Execution Environment)。 在 AI 隐私保护的世界里,传统加密技术解决了两大场景:数据“睡觉时”的安全(加密存储)和数据“运输中”的安全(加密传输)。可一旦数据进入 CPU 开始计算,加密就相当于脱掉了外套——操作系统、驱动程序、甚至任何有权限的软件,都能在内存里偷瞄一眼“明文”。TEE 恰好补上这块拼图:它在 CPU 硬件内部圈出一片绝对隔离区,让数据即使在计算过程中也始终待在“锁着的保险柜”里。Intel SGX 和 ARM TrustZone 是当前最主流的两套“保险柜”方案。接下来,我们一起掀开柜门,看看里面的机关。
掌握 TEE 是隐私保护计算的“最后一块拼图”:当算法层面的防护不够时,硬件信任是兜底方案。理解 SGX 与 TrustZone 的原理,你就拥有了给 AI 系统设计“硬件级隐私防护”的核心能力。
可视化演示
展示TEE三维度:Intel SGX飞地机制(应用分割-EPC加密内存-CPU环隔离)、ARM TrustZone双世界(安全世界-普通世界-SMC切换-双OS隔离)、远程认证流程(TEE-引用生成-验证-密钥建立),理解硬件级隐私保护方案。
本节配有交互动效(进入视口后自动加载,约 3KB)。
Intel SGX飞地enclave机制 应用分割为可信与不可信部分 EPC加密内存区域保护飞地数据 app -> enclave -> EPC(encrypted) SGX将可信代码装入enclave飞地,EPC内存加密隔离,OS与 hypervisor无法访问。
概念概述
你拿着公司最核心的客户名单去银行存管。银行经理告诉你:“我们刚布置了一批高级保险柜,它们的神奇之处在于——你可以在柜子里直接办公,柜门一锁,连我这位经理都看不到里面的内容。”这太关键了:你不再需要担心银行内部员工偷看,只需要信任保险柜本身。在 AI 隐私保护里,差分隐私像是在答案上掺入噪声、同态加密像是在密文上直接计算,而 TEE 选择了第三条路:把“计算的房间”整个锁起来。
这个“能在柜内办公的保险柜”在计算机世界里就叫可信执行环境(TEE)。它的核心理念是:在 CPU 芯片内部圈出一块与操作系统完全隔离的区域,任何程序——哪怕是拥有最高权限的内核——都无法直接读取这块区域中正在计算的数据。和传统安全方案相比,TEE 最大的不同在于:它把信任从“庞大的软件系统”缩小到“一小块出厂固化的硬件”,这就是所谓信任根(Root of Trust)。
从工程视角看,TEE 有三大价值:性能接近明文计算,远快于同态加密;安全边界不取决于操作系统的健壮性;支持任意计算逻辑,不像同态加密只支持特定运算。当前主流的两套方案,一套来自英特尔(SGX),一套来自 ARM(TrustZone),它们就像两款不同的保险柜设计——一个强调“柜子散落在金库各处”,另一个强调“整层楼分成普通区与贵宾区”。
所以,TEE 就是银行里那间“金库中的金库”——你无需信任银行里每一位员工,只要信任那扇由 CPU 厂商亲手锻造的柜门。这正是它被纳入隐私保护学习体系的根本原因:在很多场景里,算法层的防护不够,硬件信任必须来兜底。
- 明文数据M 代表要保护的原始数据,比如模型参数、病历记录、客户名单,相当于放进保险柜前的文件。
- 密封密钥K_seal 是 Enclave 从硬件根密钥中派生出来的密钥,存在于 CPU 内部,外部任何软件都读不到,相当于只有你持有的那把专属钥匙。
- 生成密文C_seal 是加密后的结果,可以放心写回外部存储,即使硬盘被盗也只是拿到一堆乱码。
SGX 核心原理
Intel SGX 的保险柜设计理念非常“个人化”:在金库里,每一位客户都有自己的独立柜子,柜子之间互不相通。银行经理(操作系统)知道这些柜子摆在哪儿,但不知道每个柜子里装了什么。同样地,SGX 允许一个进程在自身地址空间中划出一块特殊区域,叫做 Enclave(飞地)。Enclave 里的代码和数据处于一种“加密的打开状态”——CPU 能读写它们,但任何外部软件通过任何指令都无法访问。
为什么外部软件读不到?关键在于 SGX 的内存加密引擎(MEE,Memory Encryption Engine)。普通内存数据在总线传输时是“密文”形态,只有进入 CPU 芯片内部后才被解密。MEE 还带有完整性校验,能阻止攻击者重放或篡改数据。换句话说,就算你拿逻辑分析仪去监听内存总线,也只能看到乱码。这种硬件强制隔离把可信计算基(TCB)压缩到了极小范围:不再需要信任整个操作系统,只需要信任 CPU 本身。
回到保险柜的比喻:SGX 是银行里那些“自带办公功能的独立保险柜”。每个租户一个柜子,柜门一关就自动上锁,经理也打不开。唯一要留意的是,柜子的数量(EPC 内存)有限,放不下太多东西——这也是后续优化章节要讲的现实约束。
- 密文读取CPU 从内存取回数据时,内存总线上传递的 C 已经是密文,这一步保证了物理攻击者无法窃听。
- 片上解密K_MEE 是出厂烧录在 CPU 内部的内存加密密钥,外部软件无法读取,解密在芯片内部的总线接口完成。
- 明文计算解密后得到 P,数据进入 CPU 缓存和寄存器参与计算;一旦写回内存,又被重新加密成密文。
TrustZone 原理
ARM TrustZone 走了一条完全不同的路线:它不搞“散落的独立保险柜”,而是把整栋银行大楼重新装修。大楼被一分为二:前半层是普通大厅(Normal World),任何人都能进出;后半层是贵宾密室(Secure World),只有经过认证的客户才能进入。CPU 的每个状态都带一个硬件标志位 NS(Non-Secure),它决定当前是在普通世界还是安全世界执行。
两个世界之间不能随意穿越。普通世界的软件,包括操作系统内核,永远无法直接访问安全世界的资源;而安全世界则有权访问普通世界的所有资源(相当于贵宾可以走到大厅,大厅的人不能走进贵宾区)。世界的切换由一段特殊代码完成,叫做安全监视器(Monitor)。当普通世界想要请求安全服务时,它会执行一条 SMC 指令,CPU 随即进入 Monitor 模式,保存现场、翻转状态位、切换到安全世界执行。
TrustZone 的保险柜设计更像“区域隔离”:整层楼被划成两个大区,而不是每个客户一个独立柜子。它的优势是隔离粒度大、控制面广,适合保护整个系统的敏感资源;代价是“安全世界”里的不同租户之间,隔离粒度不如 SGX 那么精细。
- 普通世界执行普通世界(NS=1)运行着 Android、Linux 等通用操作系统,所有 App 都在这里活动。
- SMC 指令普通软件需要安全服务时,执行 SMC 指令,触发 CPU 进入 Monitor 模式,相当于按下贵宾室的门铃。
- 状态切换Monitor 保存普通世界的寄存器上下文,把 NS 翻转为 0,跳转到安全世界入口,完成世界切换。
技术对比分析
同样是保险柜,SGX 与 TrustZone 的设计哲学差异明显。SGX 是“应用级保险柜”:每个 Enclave 独立,一个 CPU 上可以同时存在多个 Enclave,各自为政;TrustZone 是“系统级安全区”:CPU 同一时刻只能处于一个世界,安全和普通世界严格二分。前者适合云服务器上多租户隔离,后者更适合移动设备整个系统的安全基础。
安全模型上,SGX 的威胁模型假设“操作系统已不可信”,因此连内核访问 Enclave 内存都会被拒绝;TrustZone 则把安全世界整体视为可信,依赖于 Secure Monitor 的正确实现。性能方面,SGX 每次进出 Enclave 需要刷新 TLB 和缓存,调用开销可达上千周期;TrustZone 的世界切换同样昂贵,需要保存/恢复完整上下文。两者都在用“切换成本”换取“隔离收益”。
生态方面,SGX 在云厂商中更普及(阿里云、微软 Azure 都提供 TEE 实例),TrustZone 则几乎覆盖所有 ARM 手机 SoC。选型没有绝对优劣:如果你的场景是云上多租户数据隔离,SGX 的 Enclave 模型更灵活;如果你在物联网或移动设备上做系统级安全启动与密钥保护,TrustZone 天然更合适。
- 计算时间T_compute 是应用核心逻辑在安全区域内部真正执行计算的时间,和裸机运行差别不大。
- 切换次数N_cross 表示应用跨越安全边界的次数。每调用一次 SGX 指令或 SMC 指令,这个计数器就加一。
- 单次切换开销T_switch 包括缓存刷写、TLB 失效、上下文保存/恢复等固定成本,是性能优化的主要靶点。
关键安全机制
保险柜做得再结实,客户也得确认“这确实是银行官方安装的保险柜,而不是骗子放的高仿品”——这在安全领域叫远程认证(Remote Attestation)。SGX 的做法是:Enclave 在创建时,硬件会计算它的代码、数据、配置等信息的哈希值 MRENCLAVE。验证方生成一个随机数 nonce 发给 Enclave,Enclave 把这串身份信息签名后送回。
验证方收到后用 Intel 公钥验签,并对比 MRENCLAVE 是否与期望一致。如果一致,说明远端确实运行着一个身份确定的 Enclave。另一个关键机制是数据密封(Sealing):Enclave 可以把数据加密后保存到外部硬盘,但解密密钥绑定了这个 Enclave 的身份——同一个标识的 Enclave 下次加载时才能解封。至于密钥管理,根密钥固化在 CPU 内部(称为 Fuse Key),所有业务密钥都从这条信任链逐级派生。
三个机制配合起来,相当于一套完整的“保险柜信任链”:远程认证证明“这个柜子是真的”;数据密封保证“只有这个柜子能开它自己存过的东西”;密钥管理保证“所有钥匙的源头都锁在 CPU 内部最深处”。这也是 TEE 能用于隐私保护协作的底气所在。
- 身份摘要MRENCLAVE 是 Enclave 内容的哈希度量,相当于保险柜出厂时铭刻的序列号,任何修改都会改变这个值。
- 挑战随机数n 是验证方生成的随机数,防止攻击者重放之前截获的旧签名,相当于保险柜的开锁单据上盖的当日水印。
- 硬件签名SK 是 CPU 出厂时烧录的私钥,只有硬件本身能签名;验证方用公钥验签,确认 σ 确由真 Enclave 生成。
隐私保护应用
在隐私保护学习中,TEE 最常见的应用是联邦学习安全聚合。传统联邦学习中,各参与方把梯度上传给中心服务器,由服务器聚合更新模型。问题在于:中心服务器是“半可信”的,一旦被攻破,所有参与方的原始梯度就会泄露。把聚合节点放进 Enclave 后,梯度在保险柜内部完成解密、求平均、加噪声,再输出最终模型更新——任何参与方都无法推断别人的梯度。
另一个重要场景是模型版权保护。AI 公司训练好的模型是核心资产,部署到用户设备后很容易被白盒攻击提取。用 TEE 部署模型:模型以密文形式存储在磁盘,加载进 Enclave 后解密推理,外部只能拿到推理结果,拿不到模型权重。这个方案已经在自动驾驶、人脸识别等对模型资产敏感的行业中落地。
这就像多家公司把各自的核心数据锁进“保险柜”,再把保险柜送到同一个房间里,由房间内部的秘密机制完成汇总统计。谁也不知道别人贡献了多少,但所有人都得到了联合计算的好处——这正是可信执行环境在隐私保护学习中最迷人的应用形态。
- 本地训练N 个数据持有方各自在本地数据上训练模型,只上报梯度 ΔW_i,原始数据不出本地,相当于各自在自家保险柜里整理文件。
- 安全聚合梯度上传到部署了 TEE 的服务器后,在 Enclave 内求和并除以 N。聚合过程对外不可见,单方梯度永远不会以明文形式暴露。
- 更新分发聚合结果 ΔW 加密输出,各参与方解密后更新本地模型,整个协作过程完成。
性能优化策略
理解了 TEE 的机制,最后一个现实问题是:保险柜虽然安全,但每次存取都麻烦,如何让“柜内办公”不那么慢?核心优化思路是减少跨边界的次数。无论是 SGX 的 Enclave 进出还是 TrustZone 的世界切换,单次开销都包含缓存/TLB 刷新,尽量把连续计算放在安全区域内批量完成,避免频繁切进切出。
内存优化同样重要。SGX 的 Enclave Page Cache(EPC)容量有限(约 128MB 上下),Enclave 太大时会触发页换出:被换出的页先加密再写入普通内存,换入时做完整性校验。工程上建议:只把最敏感的代码和数据放进 Enclave,把大块非敏感数据留在外部;必要时用异步调用减少上下文切换的等待。最后是方案选型:云服务器上多租户隔离选 SGX,移动端/嵌入式系统整体安全选 TrustZone。
回到保险柜:你要做的不是把整栋楼都改成保险柜,而是把最重要的文件和最核心的工序放进去,让柜内办公顺畅、柜外活动照常。TEE 的落地之道,就是在安全与效率之间找到那个最合适的平衡点。
- 原生耗时T_native 是在普通 Linux 环境下直接运行同一段算法的时间,作为基线。
- TEE 耗时T_TEE 是把代码放进 Enclave 或安全世界后的耗时,包含了隔离带来的额外开销。
- 计算开销率将两者的差值除以原生耗时再乘 100,得到一个百分比——工程上常以它作为优化效果的量化指标。
AI 应用场景
联邦学习安全聚合
阶段:隐私保护训练
解决的问题:联邦学习依赖中心服务器聚合梯度,传统方案里服务器一旦被攻破,所有参与方的原始梯度都会泄露。TEE 把聚合逻辑放入 Enclave,梯度在保险柜内解密、聚合、加噪,再输出结果,任何单一参与方或攻击者都无法窥探他人梯度。
具体案例:某医疗 AI 公司联合 10 家医院训练肺结节检测模型。各医院数据不出院,将模型梯度加密上传到部署了 SGX 的聚合节点,在 Enclave 内部完成聚合后分发全局模型参数。即使云服务器被攻破,攻击者看到的也只是一堆密文。
模型版权保护
阶段:模型部署与推理
解决的问题:传统模型部署在用户设备上,攻击者可以通过接口反推或白盒分析提取模型权重。把模型加密后加载进 TEE 再解密推理,用户只能拿到推理结果,无法获得模型内部结构。
具体案例:某自动驾驶公司将其车道识别模型以密文形式交付到客户边缘设备,设备启动后模型在 TrustZone 安全世界内完成解密与推理,防止竞争对手通过固件逆向窃取模型参数。
多方数据联合计算
阶段:数据协作
解决的问题:银行、保险等机构之间的反欺诈黑名单融合,常因合规要求“数据不得出域”。TEE 可以把计算逻辑下发到对方机构内部的 Enclave 中,让对方的数据在本地保险柜里参与计算,外部只能看到最终的风险评分。
具体案例:两家银行各部署一台带 SGX 的隐私计算网关,风控模型以密文下发到对方网关的 Enclave,与本地黑名单数据完成碰撞匹配,输出结果而不暴露名单内容。
Python 演示
import hashlibimport hmacimport os class SGXEnclave: def __init__(self, mrenclave, mrsigner): self.mrenclave = mrenclave self.mrsigner = mrsigner self.seal_key = os.urandom(32) self.attest_key = os.urandom(32) def create_quote(self, nonce): info = self.mrenclave + self.mrsigner + nonce digest = hashlib.sha256(info).hexdigest() signature = hmac.new(self.attest_key, digest.encode(), hashlib.sha256).hexdigest() return {"digest": digest, "signature": signature} def seal(self, plaintext): iv = os.urandom(16) payload = iv + plaintext.encode() cipher = hmac.new(self.seal_key, payload, hashlib.sha256).hexdigest() return {"iv": iv.hex(), "cipher": cipher} def unseal(self, sealed, expected): iv = bytes.fromhex(sealed["iv"]) payload = iv + expected.encode() return hmac.new(self.seal_key, payload, hashlib.sha256).hexdigest() == sealed["cipher"] def verify_quote(enclave, nonce): quote = enclave.create_quote(nonce) expected = hashlib.sha256(enclave.mrenclave + enclave.mrsigner + nonce).hexdigest() return quote["digest"] == expected def main(): enclave = SGXEnclave( mrenclave=bytes.fromhex("ab" * 32), mrsigner=bytes.fromhex("cd" * 32), ) nonce = os.urandom(16) print("远程认证结果:", verify_quote(enclave, nonce)) sealed = enclave.seal("隐私数据已密封进 Enclave") ok = enclave.unseal(sealed, "隐私数据已密封进 Enclave") print("数据密封验证:", ok) if __name__ == "__main__": main()
self.seal_key = os.urandom(32)模拟 CPU 内置的硬件密封密钥,外部无法访问。self.attest_key = os.urandom(32)模拟硬件认证私钥,用于生成签名 Quote。info = self.mrenclave + self.mrsigner + nonce把 Enclave 身份信息和挑战随机数拼在一起,构成待签名摘要。signature = hmac.new(self.attest_key, digest.encode(), hashlib.sha256).hexdigest()用认证密钥模拟硬件签名,得到 Quote 的签名部分。return {"digest": digest, "signature": signature}返回的 Quote 就是远程认证中 Enclave 交给验证方的凭证。cipher = hmac.new(self.seal_key, payload, hashlib.sha256).hexdigest()用密封密钥对初始向量和明文进行 HMAC,模拟内存加密引擎的密文派生。verify_quote(enclave, nonce)验证方不信任 Enclave 的自说自话,而是独立重新计算摘要并比对。
常见误区
误区只要数据进了 Enclave,攻击者就完全没辙了,可以把所有安全责任都甩给硬件,自己高枕无忧。
正解TEE 只是把攻击面从“整个操作系统”缩小到“CPU 安全边界”,并没有消灭攻击。侧信道攻击(如缓存时序分析、熔断/幽灵类漏洞)、Enclave 接口漏洞、内存交换侧信道等依然存在。保险柜再结实,也怕“隔墙听音”——攻击者虽然看不到柜内文件,但能通过柜门震动频率猜出你在做什么。
为何常见:厂商宣传和科普文章往往把 TEE 讲成“硬件=绝对安全”,初学者很容易形成黑白分明的简单认知。
误区反正都是 TEE,工作原理、安全模型、适用场景应该差不多,可以随意替换使用。
正解SGX 是应用级隔离,一个 CPU 上可同时存在多个 Enclave,互不干扰,适合云上多租户敏感计算;TrustZone 是系统级双世界隔离,CPU 任一时刻只能处于一个世界,适合整个系统级别的可信基础。两者的信任根、切换机制、内存保护方式都不同,选错方案会导致成本剧增甚至无法落地。
为何常见:中文资料常把两者并列介绍,容易让人忽略它们在架构层面的本质差异。
误区操作系统内核已经被 TEE “架空”了,运维系统可以随便重装、随便打补丁,反正数据在 Enclave 里不会被偷。
正解TEE 确实不再把内核当作数据保密者,但内核依然负责给 Enclave 分配 CPU 时间、物理内存等资源。恶意内核可以发起拒绝服务攻击(不给 Enclave 调度)、篡改 Enclave 的输入数据、甚至通过页表攻击间接影响 Enclave。TEE 是“即使内核被攻破,数据也不会直接泄露”,而不是“可以无视内核安全”。
为何常见:“不用担心坏内核”是 SGX 宣传中的高频话术,容易被过度解读为“内核完全不再重要”。
误区既然硬件都帮我隔离和保护了,那差分隐私、同态加密这些又慢又复杂的算法是不是都可以不学了?
正解TEE 保护的是“数据在 CPU 中计算时”的隔离,但模型输出本身仍可能泄露训练数据信息(成员推断攻击);TEE 也防不住硬件物理攻击和复杂侧信道。差分隐私负责“让输出不泄露隐私”,同态加密负责“密文上直接计算”,TEE 负责“让计算过程在硬件上可信”——三者互补,不是互相替代。
为何常见:刚接触 TEE 时,硬件隔离带来的“安全感”很容易让人高估其能力边界,忽略算法层防护的不可替代性。
面试题
Q1. TEE 的英文全称是什么?
- A.可信执行环境← 正确答案
- B.可信加密引擎
- C.全量加密环境
- D.可信边缘元件
答案:A。TEE 即 Trusted Execution Environment,中文译为“可信执行环境”。它强调的是“执行”——数据在 CPU 内部计算时的隔离保护,而不是单纯加密引擎或网络边缘设备。其他选项虽然听起来相近,但都不是 TEE 的标准含义。
Q2. Intel SGX 中被保护的内存区域叫什么?
- A.可信区域
- B.飞地空间← 正确答案
- C.加密空间
- D.安全沙箱
答案:B。SGX 把进程的敏感代码和数据放进一块叫 Enclave(飞地)的特殊区域。Enclave 像银行里独立的高级保险柜:操作系统知道它的位置,但无法读取里面的内容。A、C、D 虽然描述了一些安全空间,但都不是 SGX 的标准术语。
Q3. ARM TrustZone 将 CPU 划分为哪两个世界?
- A.用户态与内核态
- B.安全态与普通态
- C.普通世界与安全世界← 正确答案
- D.宿主机与虚拟机
答案:C。TrustZone 的官方术语是 Normal World(普通世界)与 Secure World(安全世界)。这是以硬件 NS 位区分的系统级隔离,和传统 CPU 的用户态/内核态是两码事。普通世界可以跑完整操作系统,但访问不了安全世界的资源。
Q4. 远程认证的主要作用是什么?
- A.验证 TEE 是否可信← 正确答案
- B.加密外部存储数据
- C.提升模型训练速度
- D.管理用户登录密钥
答案:A。远程认证(Remote Attestation)的目的是让远端的验证方确信:对方确实运行在一个真实的 TEE 中,而不是被模拟或篡改的环境。就像客户确认保险柜是银行原装正品一样。加密存储、训练加速、密钥管理都不是认证的核心职责。
Q5. 关于 SGX 内存加密引擎描述正确的是?
- A.为 EPC 区域内存提供硬件加密← 正确答案
- B.为全部磁盘数据提供透明加密
- C.为主内存中所有数据提供加密
- D.为 CPU 缓存提供端到端加密
答案:A。内存加密引擎(MEE)只保护 EPC(Enclave Page Cache)区域的内存,当 Enclave 的密文数据在内存总线上传输时由 CPU 内置密钥解密。磁盘加密是操作系统的任务(如 LUKS),MEE 不负责全内存加密,也不是针对缓存做端到端加密。
Q6. 以下哪些属于 TEE 的核心优势?
- A.计算性能接近明文运行← 正确答案
- B.安全边界不依赖操作系统← 正确答案
- C.能够抵御所有侧信道攻击
- D.数据在内存中受到加密保护← 正确答案
答案:ABD。TEE 最大的卖点就是性能接近明文计算(远快于同态加密),隔离边界由硬件强制、不依赖操作系统的诚实,且 Enclave 内存在总线上是密文。但它并不能抵御所有侧信道攻击,C 把话说过头了。
Q7. 数据密封(Sealing)技术的主要目的是?
- A.将数据安全绑定到特定飞地← 正确答案
- B.加快数据在网络中的传输
- C.压缩数据以节省存储开销
- D.实现对数据的全同态计算
答案:A。数据密封的核心是把加密数据与某个特定 Enclave 的身份绑定,只有这个 Enclave(或同一签名者下的 Enclave)才能解封。它解决的是“数据存到外部后,下次如何信任”的问题。压缩、加速传输、同态计算都与密封的直接目的无关。
Q8. 与同态加密方案相比,TEE 的特点包括?
- A.计算开销显著小于同态加密← 正确答案
- B.支持任意的程序计算逻辑← 正确答案
- C.直接在密文之上完成运算
- D.依赖 CPU 硬件信任根保护← 正确答案
答案:ABD。TEE 在内部先解密再计算,所以性能远好于同态加密,且支持任意的 C/C++ 逻辑;它依靠 CPU 出厂烧录的信任根提供保护。而“直接在密文上运算”是同态加密的特征,TEE 并不直接在密文上做计算,因此 C 错误。
Q9. TrustZone 中安全监视器(Monitor)的核心职责是什么?
- A.审计普通世界中的应用
- B.负责缓冲区溢出检测
- C.协调两个世界的切换← 正确答案
- D.加密普通世界的通信
答案:C。安全监视器是 TrustZone 架构中运行在最高特权级的代码,只在普通世界与安全世界之间切换时被激活。它保存和恢复上下文,完成 NS 位的翻转。应用审计、溢出检测、通信加密都不是 Monitor 的职责。
Q10. 在 SGX 中关于 EPC 缺页处理说法正确的是?
- A.换出页面会加密后写入普通内存← 正确答案
- B.换入页面需要重新做完整性校验← 正确答案
- C.换页过程由操作系统自主完成
- D.换页并不需要修改页表项
答案:AB。当 EPC 空间不足时,SGX 会把 Enclave 页面加密后换出到普通内存,并记录版本号用于完整性保护;换入时由硬件校验数据未被篡改,因此 A、B 正确。换页过程由 SGX 驱动(操作系统只负责触发),且需要修改页表项来切换页面映射,C、D 错误。