今天,我们将推出一个包含多个部分的教程系列,旨在帮助软件开发人员了解如何将英特尔® Software Guard Extensions(英特尔® SGX)集成至他们的应用中。 本系列概述了构建英特尔 SGX 应用时软件开发周期的各个阶段,从应用设计到开发、测试、封装和部署。 尽管单独的代码示例和单篇文章非常重要,深入了解在单个应用中支持英特尔 SGX 可帮助开发人员全面掌握如何在实际应用中采用该技术。
本教程将包含多个部分,目前计划发表 12 篇文章(准确数字尚未确定),每篇文章阐述一个特定主题。 虽然准确的时间表尚未制定,但系列的每个部分每 2-3 周* 应会发表一次,内容涉及以下阶段:
- 概念和设计
- 应用开发和英特尔 SGX 集成
- 验证和测试
- 封装和部署
- 处理
本系列相关部分将附带源代码,源代码将通过英特尔示例源代码许可分发。 然而,源代码在数周之内还不会发布。 教程的第一部分将介绍英特尔 SGX 应用开发初步阶段的基本要素。
目标
在本系列结束时,开发人员将知道如何:
- 识别应用的机密
- 应用安全区 (enclave) 设计原则
- 在安全区使用值得信赖的库
- 在应用中构建双代码路径支持(为没有英特尔 SGX 功能的平台提供传统支持)
- 使用英特尔 SGX 调试程序。
- 创建英特尔 SGX 应用安装程序包
示例应用
在本系列发表过程中,我们将开发一款基础密码管理程序。 最终应用产品并非要追求商用可行性,而是提供足以满足有效安全实践的功能。 本应用虽然简单,但足以满足本教程的例示要求。
您需要的组件
源代码发布时希望使用它的开发人员将需要使用下列组件:
硬件要求
硬件 | 硬性要求 | 备注 |
---|---|---|
具备英特尔® 安全密钥技术的英特尔® 处理器 | 是 | 密码管理程序将广泛使用英特尔安全密钥技术提供的数字随机数生成器。 访问 http://ark.intel.com,查找具有英特尔安全密钥技术支持的具体处理器型号。 |
带有支持英特尔® Software Guard Extensions(英特尔® SGX)的 BIOS 的第六代智能英特尔® 酷睿™ 处理器 | 否 | 为充分利用本教程,您需要支持英特尔 SGX 的处理器,但应用开发可在较小的系统上实施,且英特尔 SGX 应用可在英特尔 SDK 附带的仿真器中运行。 |
软件要求
这些软件要求基于当前公开发布的英特尔 SGX 软件开发人员套件 (SDK)。 随着 SDK 版本的更新换代,要求可能有所变化。
更新于 2016 年 7 月 11 日: SDK 要求已更新至 1.6。 这也迫使 Microsoft Visual Studio* 版本更新至 2013。
软件 | 硬性 要求 | 备注 |
---|---|---|
英特尔® Software Guard Extensions(英特尔® SGX)SDK v1.6 | 是 | 需用于开发英特尔 SGX 应用。 |
Microsoft Visual Studio* 2013 专业版 | 是 | 需用于 SDK。 每版 SDK 都与特定版本的 Visual Studio 相关联,以支持向导、开发人员工具和各种集成组件。 |
面向 Windows* 的英特尔® Parallel Studio XE 2013 专业版 | 否 | 推荐使用,但并非英特尔 SGX 开发工作的必备工具。 |
敬请关注
本系列概述了构建英特尔 SGX 应用时软件开发周期的各个阶段,从应用设计到开发、测试、封装和部署。 本教程将阐述相关概念和设计,应用开发和英特尔 SGX 集成、验证、测试、封装和部署以及处理。
我们为即将发布本系列感到激动不已,期待您加入我们!
入门
本系列第一部分,英特尔® Software Guard Extensions 教程系列: 第一部分,英特尔® SGX 基础,概述了该技术,并为教程的后续内容奠定了基础。
本系列第二部分,英特尔® Software Guard Extensions 教程系列: 第二部分,应用设计,描述了我们将开发的应用(简单的密码管理程序)的高级规格。
本系列第三部分,英特尔® Software Guard Extensions 教程系列: 第三部分,为英特尔® SGX 而设计,讨论如何为英特尔 SGX 设计应用。
本系列第四部分,英特尔® Software Guard Extensions 教程系列:第四部分,安全区设计,开始在安全区进行开发工作。
本系列第五部分, 英特尔® Software Guard Extensions 教程系列:第五部分,安全区开发,完成第一版安全区。
本系列第六部分,英特尔® Software Guard Extensions 教程系列:第六部分,双核路径,确保我们的应用能够在具有和不具有英特尔 SGX 支持的主机上运行。
* 注: 由于人员减少,发布周期可能会延长至平均 3-4 周。 我们仍然重视本教程系列的发表,但不希望为迎合我们最初制定的较为紧凑的时间表而降低文章的质量。 由此造成任何不便,我们深感抱歉。