1. 云计算教程网首页
  2. 阿里云

安装SGX

本文介绍SGX的原理,并给出了安装说明。

原理

英特尔 SGX(Intel Software Guard Extension)是英特尔指令集架构的一个扩展。SGX 为您提供了围圈(Enclave),即内存中一个加密的可信执行区域,由 CPU 保护您的数据和隐私不被恶意代码窃取。

SGX 利用新增的处理器指令,在内存中分配一部分区域 EPC(Enclave Page Cache),通过 CPU 内的加密引擎 MEE(Memory Encryption Engine)对其中的数据进行加密。EPC 中加密的内容只有进入 CPU 后才会被解密成明文。因此,在 SGX 中,您可以不信任操作系统、VMM、甚至 BIOS,只需要信任 CPU 便能确保隐私数据不会泄漏。

应用

实际应用中,您可以把隐私数据加密后以密文形式传递至云上的围圈中,并通过远程证明把对应的秘钥也传入围圈。然后在 CPU 的加密保护下利用数据进行运算,结果会以密文形式返回给您。这种模式下,您既可以利用云计算强大的计算力,又不用担心数据泄漏。

安装SGX-SGX架构

EDL(Enclave Definition Language)

EDL 是 SGX 编程的核心,其中定义了所有围圈里对外读写、处理数据的函数。在编译阶段,SDK 提供的 Edger8r 工具会根据 EDL 中定义的函数生成围圈和普通内存的桥接函数,并做相应的安全检测。

函数分为信任函数(ecall)和不可信函数(ocall):

  • ecall:定义在信任区域(trusted),在围圈外被调用,并在围圈内执行。
  • ocall:定义在不可信区域(untrusted),在围圈内被调用,并在围圈外执行。
// demo.edl
enclave {
        // Add your definition of "secret_t" here
        trusted {
                 public void get_secret([out] secret_t* secret);
        };
        untrusted {
        // This OCALL is for illustration purposes only.
        // It should not be used in a real enclave,
        // unless it is during the development phase
        // for debugging purposes.
        void dump_secret([in] const secret_t* secret);
        };
};

以安装文件方式安装 SGX

需要先安装对应 Linux 内核版本的头文件,安装 SGX 时包括驱动、PSW、SDK 等组件。

说明 样例中的 Makefile 默认安装目录是
/opt/intel/

  1. 下载 适用 SGX 版本的安装文件。
  2. 按照 安装指南 的步骤进行安装。

以源代码方式安装 SGX

需要先安装对应 Linux 内核版本的头文件,安装 SGX 时包括驱动、PSW、SDK 等组件。

说明 样例中的 Makefile 默认安装目录是
/opt/intel/

  1. 从 官方 Github 下载源代码。
  2. 按 README.md 所述流程编译源代码。

发布者:佚, 佚名,转转请注明出处:https://www.cms2.cn/aliyun/2631.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code