当前位置:   article > 正文

Intel SGX初步学习理解笔记(持续更新)_sw guard extensions

sw guard extensions

一些概念 

  • SGX(Software Guard eXtensions)软件保护扩展:是一组CPU指令扩展,能够创造出一个可信执行环境来保护代码和数据,即使使用root 权限也无法访问。通过这个硬件设施,应用程序可以隔离代码和数据来达到安全,大多应用于分布式系统中。SGX的实现需要处理器、内存管理部件、BIOS、驱动程序、运行时环境等软硬件协同完成。除了提供内存隔离与保护安全属性,SGX架构还支持远程认证和密封的功能,可用于安全软件应用和交互协议的设计。
  •  sgx整体内存抽象模型(下图)包括了内存的管理、布局与组织。PRM(Preserved Random Memory)是动态内存DRAM中一段用于SGX的保留区域,这段连续的内存空间处于最低的BIOS层而不能被任何软件访问。EPC(Enclave Page Cache)是PRM中操作系统分配的装载应用程序数据和代码的4KB大小内存的集合。EPCM(EPC Metadata)是维护EPC的入口地址,并且包含CPU跟踪EPC内存页元数据的状态表。它来保证每个EPC(4kb page)由一个Enclave独享。

    preview

  • 可信执行环境(TEE):Trusted execution environment 的缩写,应用于安全智能设备,安全支付等领域。是主处理器内的安全区域。它运行在一个独立的环境中且与操作系统并行运行。它确保在TEE中加载的代码和数据的机密性和完整性都得到保护。通过同时使用硬件和软件来保护数据和代码,这个并行系统比传统系统(即REE,富执行环境)更加安全。在TEE中运行的受信任应用程序可以访问设备主处理器和内存的全部功能,而硬件隔离保护这些组件不受主操作系统中运行的用户安装应用程序的影响。TEE中的软件和加密隔离相互保护不同的受信任应用程序。可以安全地处理密码和私钥等私密信息,并保障信息绝对不会泄漏给节点或者其他人,同时还能证明数据未经篡改
  • 分布式系统:是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。
  • 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

        SGX的保护方式是将合法软件的安全操作(代码、数据等)封装在一个enclave中,保护其不受恶意软件的攻击。而且执行SGX的权限非常高,特权或者非特权的软件都无法访问enclave,也就是说,一旦软件和数据位于enclave中,即便操作系统管理员和VMM(Hypervisor)也无法影响enclave里面的代码和数据。Enclave的安全边界只包含CPU和它自身。

主机应用虚拟内存视图(abort page即为prm区域)

enclave应用虚拟内存视图(Enclave中映射到EPC页的虚拟内存称为(enclave linear address range)ELRANGE)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/65072
推荐阅读
相关标签
  

闽ICP备14008679号