tencent cloud

云服务器

动态与公告
产品动态
公共镜像更新动态
操作系统官方停止维护计划
产品公告
产品简介
云服务器概述
产品优势
基本概念
地域和可用区
新手指引
Service Regions and Service Providers
产品计费
计费概述
计费方式
计费项
转换计费方式
购买实例
变配费用说明
欠费说明
快速入门
通过自定义配置购买 Linux 云服务器
通过自定义配置购买 Windows 云服务器
用户指南
操作指南总览
使用限制总览
实例
竞价实例
预留实例
镜像
存储
备份与恢复
网络
安全
密码/密钥
监控与告警
运维管理
便捷功能
迁移服务器
在线迁移
迁移咨询
故障处理
无法登录云服务器问题处理思路
Windows 实例登录相关故障
Linux 实例登录相关故障
其他实例登录相关故障
实例运行故障
Linux 实例内存故障
网络故障
实践教程
云服务器选型建议
搭建环境
搭建网站
搭建应用
搭建可视化界面
本地文件上传到云服务器
网络性能测试
其他实践教程
API 文档
History
Introduction
API Category
Making API Requests
Region APIs
Instance APIs
Cloud Hosting Cluster APIs
Image APIs
Instance Launch Template APIs
Placement Group APIs
Key APIs
Security Group APIs
Network APIs
Data Types
Error Codes
安全与合规
访问管理
网络
常见问题
地域和可用区相关
计费相关
实例相关
存储相关
镜像相关
服务器迁移相关
网络相关
安全相关
操作系统相关
运维和监控相关
访问管理相关
NTP 服务相关
应用场景相关
服务协议
CVM Service Level Agreements
Red Hat Enterprise Linux 镜像服务协议
Public IP Service Level Agreement
词汇表
文档云服务器实践教程其他实践教程构建 Tencent SGX 机密计算环境

构建 Tencent SGX 机密计算环境

PDF
聚焦模式
字号
最后更新时间: 2024-01-06 17:49:56

操作场景

本文介绍如何在 M6ce 实例中构建 Tencent SGX 机密计算环境,并演示如何使用 intel SGXSDK 验证 SGX 功能。

前提条件

已创建并登录 M6ce 实例
如何创建实例,请参见 通过购买页创建实例
说明:
本文步骤以使用操作系统为 TencentOS Server 3.1(TK4) 的实例为例,不同操作系统版本步骤有一定区别,请结合实际情况进行操作。

操作步骤

1. 执行以下命令,检查 kernel 版本。
uname -a
查看 kernel 版本是否低于5.4.119-19.0008:
是,请执行以下命令更新 kernel。
yum update kernel
否,则请执行下一步。
2. 执行以下命令,安装 SGX runtime 所需的软件包。
yum install \\
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-default-qpl-devel libsgx-dcap-ql libsgx-dcap-ql-devel \\
libsgx-dcap-quote-verify libsgx-dcap-quote-verify-devel libsgx-enclave-common libsgx-enclave-common-devel libsgx-epid-devel \\
libsgx-launch libsgx-launch-devel libsgx-pce-logic libsgx-qe3-logic libsgx-quote-ex libsgx-quote-ex-devel \\
libsgx-ra-network libsgx-ra-uefi libsgx-uae-service libsgx-urts sgx-ra-service \\
sgx-aesm-service
说明:
SGX AESM 服务的默认安装目录为 /opt/intel/sgx-aesm-service
3. 执行以下命令,安装 intel SGXSDK。
yum install sgx-linux-x64-sdk
说明:
Intel SGXSDK 的默认安装目录为 /opt/intel/sgxsdk。您可参考 intel SGXSDK 用户手册开发 SGX 程序。
4. SGX runtime 和 intel SGXSDK 安装完成后,请重启实例。详情请参见 重启实例
5. 配置腾讯云 SGX 远程证明服务。 腾讯云 SGX 远程证明服务采用区域化部署,您可以访问 SGX 云服务器实例所在地域的腾讯云 SGX 远程证明服务来获得最佳体验。安装 intel SGXSDK 后会自动生成远程证明服务的默认配置文件 /etc/sgx_default_qcnl.conf,请根据以下步骤手动修改该文件,以适配 SGX 云服务器实例所在地域的腾讯云 SGX 远程证明服务。
说明:
目前仅北京、上海及广州地域支持腾讯云 SGX 远程证明服务。
Intel Ice Lake 仅支持基于 Intel SGX DCAP 远程证明方式,不支持 Intel EPID 远程证明方式。
使用 VIM 编辑器,将 /etc/sgx_default_qcnl.conf 修改为如下内容:
# PCCS server address
PCCS_URL=https://sgx-dcap-server-tc.[Region-ID].tencent.cn/sgx/certification/v3/
# To accept insecure HTTPS cert, set this option to FALSE
USE_SECURE_CERT=TRUE
请将 [Region-ID] 替换为 SGX 云服务器实例所在地域的 ID。例如: 北京地域修改示例如下:
# PCCS server address
PCCS_URL=https://sgx-dcap-server-tc.bj.tencent.cn/sgx/certification/v3/
# To accept insecure HTTPS cert, set this option to FALSE
USE_SECURE_CERT=TRUE
上海地域修改示例如下:
# PCCS server address
PCCS_URL=https://sgx-dcap-server-tc.sh.tencent.cn/sgx/certification/v3/
# To accept insecure HTTPS cert, set this option to FALSE
USE_SECURE_CERT=TRUE
广州地域修改示例如下:
# PCCS server address
PCCS_URL=https://sgx-dcap-server-tc.gz.tencent.cn/sgx/certification/v3/
# To accept insecure HTTPS cert, set this option to FALSE
USE_SECURE_CERT=TRUE

验证 SGX 功能示例

示例1:启动 Enclave

Intel SGXSDK 中提供了 SGX 示例代码用于验证 SGX 功能,默认目录为 /opt/intel/sgxsdk/SampleCode。本示例中的代码(SampleEnclave)效果为启动一个 Enclave,以验证是否正常使用安装的 SGXSDK,以及 SGX 云服务器实例的机密内存资源是否可用。
1. 执行以下命令,设置 intel SGXSDK 相关的环境变量。
source /opt/intel/sgxsdk/environment
2. 执行以下命令,编译示例代码 SampleEnclave。
cd /opt/intel/sgxsdk/SampleCode/SampleEnclave && make
3. 执行以下命令,运行编译出的可执行文件。
./app
返回如下图所示结果,则说明已启动成功。



示例2:SGX 远程证明

Intel sgx 的 code tree 提供了示例代码用于验证 SGX 远程证明功能(DCAP)。本示例为生成和验证 Quote,示例涉及 Quote 生成方(QuoteGenerationSample)和 Quote 验证方(QuoteVerificationSample)。
1. 执行以下命令,设置 intel SGXSDK 相关的环境变量。
source /opt/intel/sgxsdk/environment
2. 依次执行以下命令,安装 git 并下载 intel sgx DCAP code tree。
cd /root && yum install git
git clone https://github.com/intel/SGXDataCenterAttestationPrimitives.git
3. 依次执行以下命令,编译并运行 Quote 生成方示例代码 QuoteGenerationSample。
3.1 进入 QuoteGenerationSample 目录。
cd /root/SGXDataCenterAttestationPrimitives/SampleCode/QuoteGenerationSample
3.2 编译 QuoteGenerationSample。
make
3.3 运行 QuoteGenerationSample 并生成 Quote。
./app
4. 执行以下命令,编译 Quote 验证方示例代码 QuoteVerificationSample。
cd /root/SGXDataCenterAttestationPrimitives/SampleCode/QuoteVerificationSample && make
5. 执行以下命令,对 QuoteVerificationSample Enclave 进行签名。
sgx_sign sign -key Enclave/Enclave_private_sample.pem -enclave enclave.so -out enclave.signed.so -config Enclave/Enclave.config.xml
6. 执行以下命令,运行 QuoteVerificationSample 以验证 Quote。
./app
返回如下图所示结果,则说明已验证成功。



帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈