Keystone Enclave 页面故障信道
摘要 Keystone 是 RISC-V 上最成熟的开源 TEE 框架,其安全模型依赖于机器模式安全监视器(SM)对物理内存保护(PMP)的独占控制。然而,在 Enclave 创建与首次进入之间的初始化窗口中,PMP 条目的锁定位可能未被全部置位,攻击者可以回滚或覆盖这些条目,将 Enclave 的私有物理页重新映射到攻击者控制的 S-mode 地址空间。一旦 Enclave 执行期间发生页面故障,SM 的处理器会基于被篡改的 PMP 配置错误地授予访问权限,攻击者即可利用页面故障处理路径作为侧信道,逐步提取 Enclave 内的加密密钥和敏感数据。 Keystone 架构与 PMP 信任模型 Keystone层次化隔离 Keystone 在 RISC-V 特权等级上构建了三个执行层: M-mode:安全监视器(SM),最高特权级,负责管理 Enclave 生命周期、内存隔离和证明。 S-mode:RISC-V 操作系统内核(如 Linux),运行不可信代码,可被攻击者控制。 U-mode:用户态应用,包括 Enclave 内部的用户代码(通过 libkeystone 加载)。 Keystone 采用 PMP 物理内存隔离 而非页表虚拟化来实现 Enclave 的内存保护。在 RISC-V 中,PMP 允许 M-mode 定义物理地址区域及其访问权限(R/W/X),对于 S-mode 及更低特权级强制执行。Keystone 利用 PMP…