《云原生机密计算最佳实践白皮书》——06运行时底座——Intel vSGX:Intel SGX虚拟化——Intel SGX虚拟机最佳实践(1) https://developer.aliyun.com/article/1231123?groupCode=aliyun_linux
Intel SGX虚拟机最佳实践
本文主要为您介绍如何在 SGX 裸金属/物理机环境中启动一个 SGX 虚拟机,以及如何在 SGX 虚拟机中构建 SGX 加密计算环境,并演示如何运行示例代码以验证 SGX 功能。
背景信息
Intel® SGX 是一组用于内存访问的指令和机制,以便为敏感应用程序和数据提供安全访问。 SGX 允许应用程序将其特定的地址空间用作 enclave,这是一个受保护的区域,即使在存在特权恶意软件的情况下也能提供机密性和完整性。 阻止任何不驻留在 enclave 中的软件访问 enclave 内存区域,包括来自特权软件的访问。
用户可以使用 Linux 内核中 KVM 虚拟化模块和 QEMU 在支持英特尔 SGX 的硬件上创建一个虚拟机,该虚拟机可以在 Guest 操作系统中使用Intel SGX and Intel SGX Data Center Attestation Primitives (Intel SGX DCAP) 。
前提条件
1. 检查 BIOS 是否使能 SGX
请使用 BIOS 使能 SGX 功能的 SGX 裸金属。
以浪潮 NF5280M6 SGX 机型为例,请参考下图的步骤检查 SGX 是否使能。
1.1. Total Memory Encription
Main menu->Socket Confifiguration->Processor Confifiguration->Total Memory Encryption ->Enabled
1.2. SW Guard Extensions(SGX)
Main menu->Socket Confifiguration->Processor Confifiguration-> SW Guard Extensions(SGX) ->Enabled
1.3. PRMRR Size
Main menu->Socket Confifiguration->Processor Confifiguration-> SW Guard Extensions(SGX) ->PRMRR Size 推荐设置为 32 G (PRMRR 决定单 socket 上预留 EPC 的大小)
2. 安装 Anolis 8.6 操作系统
请参考 Anolis 8.6 GA 说明文档安装 Anolis 8.6 GA。
3. 升级 kernel 到 5.10
• 安装 kernel 5.10
yum-confifig-manager --add-repo https://mirrors.openanolis.cn/anolis/8/kernel-5.10/x86_64/ os/ && \ yum update kernel-5.10.134-12.1.an8
提示: 若提示-bash: yum-confifig-manager: command not found ,请参考以下命令安装yum-utils。
yum install -y yum-utils
• 重启机器之后,请输入以下命令查看内核版本。
uname -r
4. 检查 Host 侧的 SGX 使能状态
• 检查 SGX 使能状态。
dmesg | grep -i sgx
以下输出表示 SGX 已经被正确使能。
[ 2.326326] sgx: EPC section 0x80c000000-0xfffff7fffffffff [ 2.391710] sgx: EPC section 0x180c000000-0x1fffffffffffffffff [ 2.456785] sgx: EPC section 0x280c000000-0x2fffffffffffffffff [ 2.522183] sgx: EPC section 0x380c000000-0x3fffffffffffffffff
• 检查 SGX 驱动安装情况。
ls /dev/sgx*
以下输出表示已经安装 SGX 驱动。
/dev/sgx_enclave /dev/sgx_provision /dev/sgx_vepc
《云原生机密计算最佳实践白皮书》——06运行时底座——Intel vSGX:Intel SGX虚拟化——Intel SGX虚拟机最佳实践(3) https://developer.aliyun.com/article/1231119?groupCode=aliyun_linux