SGX
首发于SGX

Intel SGX系列(一)了解Intel SGX

原文:software.intel.com/en-u(Intel® Software Guard Extensions (Intel® SGX))

概述

Intel® Software Guard Extensions (Intel® SGX)保护选定的代码和数据不被泄露和修改。开发者可以把应用程序划分到CPU强化的encalve(飞地)中或者内存中可执行的保护区域,即使在受攻击的平台中也能提高安全性。使用这种新的应用层可信执行环境,开发者能够启用身份和记录隐私、安全浏览和数字管理保护(DRM)或者任何需要安全存储机密或者保护数据的高保障安全应用场景中。

  • 机密性和完整性:即使在OS、BIOS、VMM或者SMM层存在特权恶意软件的情况下也能保证。
  • 低学习曲线:和父应用程序类似的OS编程模型,并且在主CPU上执行。
  • 远程认证和提供:远程部分能够认证一个应用程序enclave的身份,并且安全地将密钥、凭据和敏感数据提供给enclave。
  • 最小可能的攻击面:CPU边界成为攻击面外围,所有的数据、内存、外围之外的I/O都是加密的。



应用程序安全约束

开发者长期以来受到主要平台提供商暴露给应用开发的安全能力的限制。黑客也一样熟悉这些功能,他们能够利用弱点来加密敏感数据、凭据或者劫持代码来进行攻击。开发者必须依赖提供商的安全架构,在平台发布之后,他们没有能力设计一个符合他们需求的安全模型。

需要一种新模型能够利用平台和OS的优势,但是又能给懂得应用程序机密需要额外保护的开发者提供独立能力。Silicon-assisted安全有一个唯一的机会增加OS提供新能力为应用程序根据开发者需要来保护自身。

Intel SGX-新方法

为了解决广泛的安全漏洞和受损的系统,Intel着手设计一个可能具有最小攻击面的硬件辅助的可信执行环境:CPU边界。Intel SGX提供了17种新的Intel®架构指令,应用程序可以用来为代码和数据设置保留的私有区域,也能够阻止对执行中代码和内存中数据进行的直接攻击。

Intel SGX引入了一种革命性的新安全架构,对于专注安全的开发者来说肯定是首选的可信执行环境。

开发Intel SGX保护的应用程序

从下图中,可以清楚看到Intel SGX程序由两个部分组成:不可信代码和可信enclave(可以被安全调用)。开发者可以创建一对多的可信enclave一起工作来支持分布式体系结构。常用应用有:密钥材料,专有算法,生物识别数据和CSR生成等。



在运行时(如下图),Intel SGX指令在一个特定的保护内存区域中创建和执行enclave,该区域有由开发者定义的受限入口和出口函数。能够防止数据泄露。在CPU范围中的enclave代码和数据运行在干净环境中,enclave数据写入到磁盘会被加密并且校验其完整性。



图片流程表示:

  1. App由可信和不可信部分构成
  2. App运行和创建enclave,enclave放入到可信内存中。
  3. 可信函数被调用,执行会转换到enclave中。
  4. enclave可以访问所有进程数据,外部要访问encalve数据被禁止
  5. 可信函数返回enclave数据
  6. App进行执行不同代码

对enclave有未授权的访问和内存侦听是有可能的,如下图所示。



认证Enclave和加密数据

当前,ODM(原始设备制造商)和ISV(独立软件提供商)通常在制造时或通过无法以机密方式证明应用程序完整性的复杂字段配置来提供应用程序软件和机密。Intel SGX使用enclave之间本地认证或者第三方的远程认证的方式来保证应用程序没有受到破坏。

应用程序受保护的部分会被加载到一个飞地(enclave),它的代码和数据都会受到测量。会发送一个报告给远端应用程序拥有着的服务器上,然后就能验证这个飞地报告是不是一个可靠的intel处理器生成的。如果认证了飞地的身份,远端就会信任飞地并安全地提供密钥、凭证和数据。

Intel SGX包括一个生成CPU和飞地特定地”密封密钥”的指令,密钥能够用来安全的存储和取回可能需要保存在磁盘中的敏感信息。


Intel SGX实现新的安全模型和创新

Intel SGX的基础是在大公司、大学的安全研究人员和政府安全机构的支持下创建的。上百家ISV和企业开发人在和Intel合作,使用Intel SGX来保护关键任务应用程序。Intel SGX会孵化出新的创新安全应用程序的开发,如下面列出的:


欢迎关注微信公众号:SGX先知

Intel SGX系列(一)了解Intel SGXmp.weixin.qq.com

编辑于 2018-07-18

文章被以下专栏收录