你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍用于生成使用应用程序 enclave 的应用程序的开源解决方案。 在阅读之前,请确保阅读 enclave 应用程序 概念页。
兼容 Intel SGX 的工具
Azure 通过启用 Intel Software Guard Extensions (SGX) 的机密虚拟机提供应用程序专用区。 部署 Intel SGX 虚拟机后,您需要使用专门的工具来使应用程序具备“内存隔离”功能。 这样,就可以生成同时具有受信任和不受信任的代码部分的应用程序。
例如,可以使用以下开源框架:
- Open Enclave (OE) 软件开发工具包 (SDK)
- The EGo SDK
- The Intel SGX SDK
- 机密联盟框架 (CCF)
- 适用于 Kubeflow 的 Intel® 云优化模块
如果不想编写新的应用程序代码,则可以使用机密容器启用程序包装容器化应用程序
开源 Enclave 软件开发工具包 (OE SDK)
如果要编写在 enclave 中运行的代码,请使用提供程序支持的库或框架。 Open Enclave SDK(OE SDK)是一种开放源代码 SDK,允许在不同启用机密计算的硬件上进行抽象化。
OE SDK 旨在充当任何 CSP 的任何硬件上的单个抽象层。 OE SDK 可以在 Azure 机密计算虚拟机的基础上使用,在 enclave 上创建和运行应用程序。 Open Enclave 存储库由Microsoft维护。
EGo 软件开发工具包
EGo 是一种开源 SDK,可用于在 enclave 中运行以 Go 编程语言编写的应用程序。 EGo 基于 OE SDK 构建,内置一个用于认证和封装的 enclave Go 库。 许多现有的 Go 应用程序在 EGo 上运行,无需修改。
Intel SGX 软件开发工具包
Intel SGX SDK 由 Intel 的 SGX 团队开发和维护。 SDK 是一种集合工具,允许软件开发人员在 C/C++ 中创建和调试已启用 Intel SGX 的应用程序。
机密联盟框架 (CCF)
机密联盟框架(CCF)是分布式区块链框架的一个示例。 CCF 基于 Azure 机密计算构建。 此框架由 Microsoft Research 率先使用,使用受信任的执行环境 (TEE) 的强大功能来创建远程 enclave 的网络以进行证明。 节点可以在 Azure Intel SGX 虚拟机上运行,并利用 enclave 基础结构。 通过证明协议,区块链的用户可以验证一个 CCF 节点的完整性,并有效验证整个网络。
在 CCF 中,分散账本由在所有网络节点中复制的键值存储的已记录更改组成。 其中每个节点都运行一个事务引擎,该引擎可由区块链用户通过 TLS 触发。 触发终结点时,会改变 Key-Value 存储区。 在将加密更改记录到分散式账本之前,必须由多个节点同意才能达成协议。
适用于 Kubeflow 的 Intel® 云优化模块
适用于 Kubeflow 的 Intel® 云优化模块使用 XGBoost 提供优化的机器学习 Kubeflow 管道,用于预测贷款违约概率。 参考体系结构利用 Azure Kubernetes 服务 (AKS) 群集上的安全机密 Intel® 软件防护扩展虚拟机。 它还支持使用 Intel® 针对 XGBoost 的优化和 Intel® daal4py,以便在完整的端到端机器学习管道中加速模型训练和推理。