文章目录
- 前言
- 一、Processor Reserved Memory (PRM)
- 二、Enclave Page Cache (EPC)
- 三、Enclave Page Cache Map (EPCM)
- 参考资料
前言
本节内容主要介绍了SGX Memory Organization,来自参考资料里的综述文章,可供初学者了解SGX内存组织对应的知识。
一、Processor Reserved Memory (PRM)
Processor Reserved Memory (PRM),即处理器保留内存。
在SGX进程中,安全关键代码和数据存储在一个名为“处理器保留内存”的隔离内存空间中。
PRM是动态随机存取存储器(DRAM)的子集,其范围由BIOS在引导时确定。DRAM是一种直接与CPU交换数据的内部存储器。PRM范围由两部分组成:Enclave页面缓存(EPC)和完整性树。完整性树负责维护EPC数据的消息认证码(MAC)标签。
二、Enclave Page Cache (EPC)
飞地实例的数据、代码和相关数据结构存储在称为EPC的存储空间中,EPC是PRM的一个子集。由于SGX设计允许同时拥有多个飞地实例,为了实现这一目标,EPC被拆分为4KB的页面。这些大小相等的页面可以分配给不同的飞地实例。负责管理EPC的系统软件可以是操作系统内核或系统管理程序,它使用SGX指令将EPC页面分配给飞地实例。SGX设计利用内存加密引擎(MEE)来保护EPC内存。MEE是集成存储器控制器(IMC)的扩展。对EPC页面的所有读写请求都由IMC路由到MEE。MEE禁止所有非飞地访问,甚至包括特权访问,如内核访问、系统管理程序访问和系统管理模式(SMM)访问。
三、Enclave Page Cache Map (EPCM)
负责分配EPC页面的系统软件不完全受信任。为了检查EPC页面分配决策的正确性,SGX将EPC页面分配信息记录在称为Enclave page Cache Map(EPCM)的内存空间中。EPCM是一个数组,每个EPC页面都对应于该数组中的一个条目。
三者对应的关系图如下
参考资料
[1] Shufan Fei, Zheng Yan, Wenxiu Ding, and Haomeng Xie. 2021. Security Vulnerabilities of SGX and Countermeasures: A Survey. ACM Comput. Surv. 54, 6, Article 126 (July 2022), 36 pages. https://doi.org/10.1145/3456631