赞
踩
sgx整体内存抽象模型(下图):包括了内存的管理、布局与组织。PRM(Preserved Random Memory)是动态内存DRAM中一段用于SGX的保留区域,这段连续的内存空间处于最低的BIOS层而不能被任何软件访问。EPC(Enclave Page Cache)是PRM中操作系统分配的装载应用程序数据和代码的4KB大小内存的集合。EPCM(EPC Metadata)是维护EPC的入口地址,并且包含CPU跟踪EPC内存页元数据的状态表。它来保证每个EPC(4kb page)由一个Enclave独享。
Enclave:是一个被保护的内容容器,是sgx的核心技术,是在用于存放应用程序敏感数据和代码。当应用程序需要保护的部分加载到enclave后, SGX保护它们不被外部软件所访问。所有的enclave都驻留在EPC(enclave page cache)中。
EPC(enclave page cache):这是系统内一块被保护的物理内存区域, 用来存放enclave和SGX数据结构。EPC布局由平台具体实现决定,如果CPU支持SGX架构并在加密保护的DRAM (dynamic random access memory)中实现EPC,那么它也支持BIOS保留一段叫PRM(processor reserved memory)的内存范围。BIOS通过配置一组范围寄存器分配PRM。具体的PRM和EPC布局和平台有关。并取决于BIOS设置。(下图为PRM、EPC、Enclave布局示意图)
SGX的保护方式是将合法软件的安全操作(代码、数据等)封装在一个enclave中,保护其不受恶意软件的攻击。而且执行SGX的权限非常高,特权或者非特权的软件都无法访问enclave,也就是说,一旦软件和数据位于enclave中,即便操作系统管理员和VMM(Hypervisor)也无法影响enclave里面的代码和数据。Enclave的安全边界只包含CPU和它自身。
主机应用虚拟内存视图(abort page即为prm区域)
enclave应用虚拟内存视图(Enclave中映射到EPC页的虚拟内存称为(enclave linear address range)ELRANGE)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。