准备 SGX 服务器环境

SGX 服务器选型

选项 1:使用 Azure 机密计算虚拟机(Azure Confidential Compute VM)

Azure 云平台部署操作方式,请遵循安装指南。仅需要【配置 Intel SGX 虚拟机】部分,下面列出了必要的设置:

  • 创建资源 Ubuntu 20.04 LTS

  • 在 “虚拟机名称” 中,为新 VM 输入一个名称,如 CoboTSSNode

  • 区域:选择合适的 Azure 区域

  • 选择映像: Ubuntu 20.04 LTS - Gen2

  • WM 大小 (建议): Standard DC1ds v3 (1 vcpu, 8 GiB memory)

选项 2:使用阿里云加密计算环境

阿里云平台部署操作方式,请遵循安装指南。以创建 g7t、c7t 或 r7t 实例,下面列出了必要的设置:

  • 版本选择 Ubuntu 20.04 64 位 UEFI 版

  • 建议内存:8 GB 及以上

  • 加密内存:4 GB 及以上

  • 硬盘:64G SSD

选项 3:使用自主运维的 SGX 服务器物理机

查询支持 SGX 的处理器:

  • 点击最底部 Find products by feature

  • 在 Filters 选择 Processors ; Choose a filters 选择 Intel® Software Guard Extensions (Intel® SGX)

  • 在左侧菜单选择 Yes with both Intel® SPS and Intel® ME (Intel® Server Platform Services and Intel® Management Engine)

  • 展示符合条件的处理器型号列表,目前支持列表如下:

型号

核数

Max Turbo Frequency

Base Frequency

Cache

Intel® Xeon® E-2278GE Processor

8

4.70 GHz

3.30 GHz

16 MB

Intel® Xeon® E-2278GEL Processor

8

3.90 GHz

2.00 GHz

16 MB

Intel® Xeon® E-2274G Processor

4

4.90 GHz

4.00 GHz

8 MB Intel® Smart Cache

Intel® Xeon® E-2276G Processor

6

4.90 GHz

3.80 GHz

12 MB Intel® Smart Cache

Intel® Xeon® E-2278G Processor

8

5.00 GHz

3.40 GHz

16 MB Intel® Smart Cache

Intel® Xeon® E-2286G Processo

6

4.90 GHz

4.00 GHz

12 MB Intel® Smart Cache

Intel® Xeon® E-2288G Processor

8

5.00 GHz

3.70 GHz

16 MB Intel® Smart Cache

Intel® Xeon® E-2174G Processor

4

4.70 GHz

3.80 GHz

8 MB Intel® Smart Cache

Intel® Xeon® E-2176G Processor

6

4.70 GHz

3.70 GHz

12 MB Intel® Smart Cache

Intel® Xeon® E-2186G Processor

6

4.70 GHz

3.80 GHz

12 MB Intel® Smart Cache

SGX 服务器配置:

  • BIOS 设置:

    • Enable Intel SGX (Software Guard Extension)

    • Enable DCAP (FLC)

    • Disable hyperthreading

  • 系统:Ubuntu Server 20.04 LTS 或 22.04 LTS

  • 建议内存: 8 GB RAM

  • 建议存储: 128 GB SSD

  • SGX 加密内存最小:2GB EPC

测试 SGX 使能状态

SGX 加密计算环境构建完成后,可以通过 cpuid 检查 SGX 使能状态,执行如下 shell 命令

sudo apt update
sudo apt install cpuid
cpuid -1 | grep SGX

显示如下三条显示为 true 的状态,表示 SGX 已经被正确使能。其余显示为 false 的条目不需要关注。

SGX: Software Guard Extensions supported = true
SGX_LC: SGX launch config supported      = true
SGX capability (0x12/0):
SGX1 supported                         = true

安装 SGX 驱动

大部分云服务商提供的 SGX 镜像已经默认安装了 SGX 驱动。此外,TSS Node 启动脚本也会自动检查并在提示您确认后自动安装 SGX 驱动(Intel DCAP 1.41 驱动)。 测试 SGX 驱动是否已经安装:

ls /dev/sgx*

应至少显示有如下两个设备节点,表示 SGX 驱动已经正确安装:

/dev/sgx_enclave  /dev/sgx_provision

更多了解 SGX 驱动,以及其手动安装:

SGX 驱动已经合并到 Linux 内核主线,5.11 及以上版本的内核默认自带了 SGX 驱动。因此,推荐的做法是使用 5.11 以上的最新版本内核的系统。例如:

  • Ubuntu 22.04 LTS server + 默认内核

  • Ubuntu 20.04 LTS server + HWE内核升级(请参考文档

如果不使用主线内核提供的驱动,您也可以安装 Intel 发布的驱动程序。Intel 提供了2种不同的驱动程序:DCAP 驱动 和 OOT (Legacy) 驱动。TSS Node仅支持 DCAP Driver。

SGX 驱动的官方安装文档,请参考【Driver Installation】章节

按照下面步骤,可手动在 Ubuntu 20.04 安装 DCAP 1.41 版本驱动。如需其他版本,请按照上述文档相应替换下载链接地址。

  • 更新 apt 资源列表

sudo apt update
  • 安装依赖

sudo apt install build-essential ocaml automake autoconf libtool \
     wget python libssl-dev dkms -y
  • 下载 Intel SGX DCAP 驱动

wget \ https://download.01.org/intel-sgx/latest/linux-latest/distro/ubuntu20.04-server/sgx_linux_x64_driver_1.41.bin
  • 修改 Intel SGX DCAP 驱动安装文件执行权限

chmod a+x sgx_linux_x64_driver_1.41.bin
  • 安装 Intel SGX DCAP 驱动

sudo ./sgx_linux_x64_driver_1.41.bin
  • 检查驱动是否安装成功

$ ls /dev/sgx*
/dev/sgx_enclave  /dev/sgx_provision

安装 Docker Engine

TSS Node 依赖 Docker。TSS Node 启动脚本会自动检查并在提示您确认后自动安装 Docker。

不过,鉴于 Docker 属于较常用的基础系统软件,如果您的组织内有安装和使用的经验,我们建议您按照您的组织内的规范或惯例,手动安装和配置 Docker,以便让后续 TSS-Node 的运维工作能最大程度地和您组织内的已有规范和惯例相符。

在 Ubuntu 上手动安装 Docker Engine,可参考官方文档

Last updated