Intel SGX SDK/PSW/DCAP: Intel SGX软件
开发套件和平台软件服务
Intel SGX Platform Software and Datacenter Attestation Primitives (PSW/DCAP) 在龙蜥生态中为数据中心和云计算平台提供 Intel SGX 技术所需的平台软件服务,如远程证明等。Intel SGX SDK在龙蜥生态中为开发者提供使用 Intel SGX 技术所需的软件开发套件,帮助开发者高效便捷地开发机密计算程序和解决方案。本文介绍如何在Anolis OS 8.6当中基于Intel SGX SDK/PSW/DCAP构建SGX机密计算环境,并演示如何运行示例代码以验证SGX功能。
背景信息
Intel® SGX以硬件安全保障信息安全,不依赖固件和软件的安全状态,为用户提供物理级的机密计算环境。
Intel® SGX通过新的指令集扩展与访问控制机制实现SGX程序的隔离运行,保障关键代码和数据的机密性与完整性不受恶意软件的破坏。不同于其他安全技术,Intel® SGX的可信根仅包括硬件,避免了基于软件的可信根可能自身存在安全漏洞的缺陷,极大地提升了系统安全保障。
检查 SGX 使能状态
构建SGX机密计算环境前,您可以通过cpuid检查SGX使能状态。
1、安装cpuid。
sudo yum install -y cpuid
2、检查SGX使能状态。
cpuid -1 -l 0x7 | grep SGX
说明 SGX被正确使能后,运行SGX程序还需要SGX驱动。
3、检查SGX驱动安装情况。
ls -l /dev/{sgx_enclave,sgx_provision}
开始构建SGX机密计算环境
为开发SGX程序,您需要在您的机器上安装运行时(runtime)、SDK,并配置远程证明服务。本文以Anolis OS 8.6为例演示构建过程,您也可以直接参考Intel官方提供的Intel® SGX软件安装指南安装所需的驱动、PSW等。
1. 安装SGX运行时
mkdir -p $HOME/sgx && \ cd $HOME/sgx && \ wget https://download.01.org/intel-sgx/latest/linux-latest/dis tro/Anolis86/sgx_rpm_local_repo.tgz --no-check-certifificate && \ tar zxvf sgx_rpm_local_repo.tgz && \ sudo yum install -y yum-utils && \ sudo yum-confifig-manager --add-repo fifile://$HOME/sgx/sgx_rpm_local_repo/ && \ sudo yum install --nogpgcheck -y sgx-aesm-service libsgx-launch libsgx-urts && \ rm -rf sgx_rpm_local_repo.tar.gz
可按需安装更多库:
sudo yum install --nogpgcheck -y libsgx-ae-le libsgx-ae-pce libsgx-ae-qe3 libsgx-ae-qve \ libsgx-aesm-ecdsa-plugin libsgx-aesm-launch-plugin libsgx-aesm-pce-plugin \ libsgx-aesm-quote-ex-plugin libsgx-dcap-default-qpl libsgx-dcap-ql \ libsgx-dcap-quote-verify libsgx-enclave-common libsgx-launch libsgx-pce-logic \ libsgx-qe3-logic libsgx-quote-ex libsgx-ra-network libsgx-ra-uefifi \ libsgx-uae-service libsgx-urts sgx-ra-service sgx-aesm-service
说明 SGX AESM(Architectural Enclave Service Manager)负责管理启动Enclave、密钥配置、远程认证等服务,默认安装路径为/opt/intel/sgx-aesm-service。
2. 安装SGX SDK
cd $HOME/sgx && \ export SGX_VERSION="2.18.100.3" && \ chmod +x sgx_linux_x64_sdk_$SGX_VERSION.bin && \ echo -e 'n\n\/opt/intel\n' | ./sgx_linux_x64_sdk_$SGX_VERSION.bin && \ rm -rf sgx_linux_x64_sdk_$SGX_VERSION.bin && \ source /opt/intel/sgxsdk/environment
安装Intel® SGX SDK后,您可以参见Intel® SGX Developer Reference开发SGX程序。
说明 Intel® SGX SDK的默认安装目录为
/opt/intel/sgxsdk/ 。
3. 配置SGX远程证明服务
Intel® SGX ECDSA远程证明服务通过远程证明来获得远程提供商或生产者的信任,为SGX SDK提供下列信息:
1、SGX certifificates:SGX证书。
2、Revocation lists:已被撤销的SGX证书列表。
3、Trusted computing base information:可信根信息。
说明 Intel Ice Lake仅支持基于Intel SGX DCAP的远程证明方式,不支持基于Intel EPID的远程证明方式,您可能需要适配程序后才能正常使用远程证明功能。更多远程证明的信息,请参见attestation-service。
配置QPL及PCK缓存服务:
1、安装Quote Provider Library (QPL)。您可以使用自己定制的 QPL 或使用 Intel 提供的默认 QPL (libsgx-dcap-default-qpl)
2、安装 PCK 缓存服务。 PCK Caching Service的安装配置请参考Intel官方PCCS文档:SGXDataCenterAttestationPrimitives
3、确保 PCK 缓存服务由本地管理员或数据中心管理员正确设置。还要确保引用提供程序库的配置文件(/etc/sgx_default_qcnl.conf)与真实环境一致,例如:
PCS_URL=https://your_pcs_server:8081/sgx/certifification/v3/
《云原生机密计算最佳实践白皮书》——05编程框架——Intel SGX SDK/PSW/DCAP: Intel SGX 软件开发套件和平台软件服务(2) https://developer.aliyun.com/article/1231564?groupCode=aliyun_linux