英特尔软件防护扩展

英特尔软件防护扩展（，SGX）是一组安全相关的指令，它被内置于一些现代Intel 中央处理器（CPU）中。它们允许用户态及内核态代码定义将特定内存区域，设置为私有区域，此区域也被称作飞地（Enclaves）。其内容受到保护，不能被本身以外的任何进程存取，包括以更高权限级别运行的进程。  

CPU对受SGX保护的内存进行加密处理。受保护区域的代码和数据的加解密操作在CPU内部动态（on the fly）完成。因此，处理器可以保护代码不被其他代码窥视或检查。SGX使用的威胁模型如下：Enclaves是可信的，但Enclaves之外的任何进程都不可信（包括操作系统本身和任何虚拟化管理程序），所有这些不可信的主体都被视为有存在恶意行为的风险。Enclaves之外代码的任何代码读取受保护区域，只能得到加密后的内容。由于SGX不能防止针对运行时间等侧信道信息的测量和观察，在SGX内部运行的程序本身必须能抵抗侧信道攻击。 

SGX被设计用于实现安全远程计算、安全网页浏览和数字版权管理（DRM）。其他应用也包括保护专有算法和加密密钥。

细节 
SGX 于 2015 年首次在第六代Intel Core（Skylake微架构）微处理器中实现。

攻击方式

Prime+Probe攻击

类Spectre攻击

Enclave攻击

MicroScope重放攻击

Plundervolt攻击 
安全研究人员能够以特定时序向Enclave注入特定的故障，从而导致信息泄露。该攻击可以远程执行，但攻击者需要获取对处理器电压和频率的控制权。

LVI攻击 
使用加载值注入（LVI, Load Value Injection） 的攻击者将数据注入到程序中，从而取代从内存中加载的值，然后在错误被发现并回滚之前的一小段时间内，LVI可以控制数据和控制流。

SGAxe攻击

参见 

 Intel MPX
 Spectre-NG
 可信执行环境（TEE）

参考資料

外部連結 

 

電腦安全
X86指令
英特爾