英特尔软件防护扩展

维基百科,自由的百科全书

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

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

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

细节[编辑]

SGX 于 2015 年首次在第六代Intel CoreSkylake微架构)微处理器中实现。

攻击方式[编辑]

Prime+Probe攻击[编辑]

类Spectre攻击[编辑]

Enclave攻击[编辑]

MicroScope重放攻击[编辑]

Plundervolt攻击[编辑]

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

LVI攻击[编辑]

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

SGAxe攻击[编辑]

参见[编辑]

参考資料[编辑]

  1. ^ Intel SGX for Dummies (Intel SGX Design Objectives). intel.com. 2013-09-26 [2021-09-18]. (原始内容存档于2014-04-29). 
  2. ^ johnm. Properly Detecting Intel® Software Guard Extensions (Intel® SGX) in Your Applications. software.intel.com. 2017-08-08 [2019-02-15]. (原始内容存档于2019-04-24) (英语). 
  3. ^ 3.0 3.1 3.2 Researchers Use Intel SGX To Put Malware Beyond the Reach of Antivirus Software - Slashdot. it.slashdot.org. [2021-09-18]. (原始内容存档于2021-10-26). 
  4. ^ Intel SGX and Side-Channels. intel.com. 2020-02-28 [2021-09-18]. (原始内容存档于2020-02-28). 
  5. ^ Plundervolt steals keys from cryptographic algorithms. Rambus Blog. 2019-12-11 [2020-03-20]. (原始内容存档于2021-10-23) (美国英语). 
  6. ^ LVI: Hijacking Transient Execution with Load Value Injection. lviattack.eu. [2020-03-12]. (原始内容存档于2022-01-01). 
  7. ^ Load Value Injection. software.intel.com. [2020-03-12]. (原始内容存档于2020-07-12). 

外部連結[编辑]