Intel SGX(1)——概述

简介

Intel SGX 是一种为满足可信计算行业的需求而开发的技术,它与ARM TrustZone 技术类似,但 SGX 是针对台式机和服务器平台的。SGX 允许用户空间代码创建私有内存区域,称为 enclave,以与相同或更高权限级别运行的其他进程隔离。在 enclave 内运行的代码与其他应用程序、操作系统、管理程序等有效隔离。

Intel SGX 于 2015 年推出,基于 Skylake 微架构的第六代英特尔酷睿处理器。通过执行设置了 Structured Extended Feature Leaf 标志位的 CPUID 指令,并检查 EBX 寄存器的第二位是否设置来确认是否支持 SGX 功能。

为了能够使用 SGX,它必须由 BIOS 启用,只有少数 BIOS 真正支持该技术,这是它没有被广泛使用的原因之一。

概览

Intel SGX的实现可以总结为几点:

  • 应用程序分为两部分:安全部分和非安全部分
  • 应用程序启动 enclave,它被放置在受保护的内存中
  • 当 enclave 函数被调用时,只有 enclave 内的代码可以看到它的数据,外部访问总是被拒绝;当它返回时,enclave 数据保留在受保护的内存中

 

安全执行环境是宿主进程的一部分,这意味着:

  • 应用程序包含自己的代码、数据和 enclave
  • enclave 也包含自己的代码和自己的数据
  • SGX 保护 enclave 代码和数据的机密性和完整性
  • enclave 入口点是在编译期间预定义的
  • 支持多线程(但正确实施并非易事)
  • enclave 可以访问其应用程序的内存,但反过来不行

 

指令集

Intel SGX 定义了 18 条新指令:13 条由特权级别使用,5 条由用户级别使用。所有这些指令都在微代码中实现。

 

 

数据结构

Intel SGX 还定义了 13 个新的数据结构:8 个用于 enclave 管理,3 个用于内存页管理,2 个用于资源管理。

SGX Enclave Control Structure (SECS)
Thread Control Structure (TCS)
State Save Area (SSA)
Page Information (PAGEINFO)
Security Information (SECINFO)
Paging Crypto MetaData (PCMD)
Version Array (VA)
Enclave Page Cache Map (EPCM)
Enclave Signature Structure (SIGSTRUCT)
EINIT Token Structure (EINITTOKEN)
Report (REPORT)
Report Target Info (TARGETINFO)
Key Request (KEYREQUEST)

 

 

 

posted @ 2021-10-26 09:56  hunterDing  阅读(1897)  评论(0编辑  收藏  举报