当前位置: 首页 > news >正文

构建 Tencent SGX 机密计算环境

操作场景

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

前提条件

已创建并登录 M6ce 实例。

如何创建实例,请参见 通过购买页创建实例。

如何登录实例,请参见 使用标准登录方式登录 Linux 实例(推荐)。

说明:

本文步骤以使用操作系统为 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 -y

说明:

SGX AESM 服务的默认安装目录为 /opt/intel/sgx-aesm-service

3. 执行以下命令,安装 intel SGXSDK。

wget https://mia-1251783334.cos.ap-shanghai.myqcloud.com/sgx_linux_x64_sdk_2.23.100.2.bin -O sgx_linux_x64_sdk_2.23.100.2.bin

chmod +x ./sgx_linux_x64_sdk_2.23.100.2.bin

./sgx_linux_x64_sdk_2.23.100.2.bin

# 执行 sgx_linux_x64_sdk 时,会选择安装目录,建议不安装到当前目录,安装到/opt/intel/

说明:

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 远程证明方式。

/etc/sgx_default_qcnl.conf 属于 rpm 包 libsgx-dcap-default-qpl,其格式支持 toml 与 json 文件两种格式(同时支持),下文将介绍两种情况下如何配置。

若采用 toml 配置/etc/sgx_default_qcnl.conf:使用 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

若采用 json 配置 /etc/sgx_default_qcnl.conf:使用 VIM 编辑器,将 /etc/sgx_default_qcnl.conf,找到pccs_url,将该行修改为。

"pccs_url": "https://sgx-dcap-server-tc.[Region-ID].tencent.cn/sgx/certification/v3/"

北京、上海、广州地域请分别按照地域修改 [Region-ID],地域之间是可以互通请求的,但是会有时延的差异,验证可用性而言可以直接配置上海地域。

验证 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 -y

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

sgx_sign sign -key ../QuoteGenerationSample/Enclave/Enclave_private_sample.pem -enclave enclave.so -out enclave.signed.so -config Enclave/Enclave.config.xml # DCAP_1.16新版本路径

6. 执行以下命令,运行 QuoteVerificationSample 以验证 Quote。

./app

返回如下图所示结果,则说明已验证成功。






http://www.mrgr.cn/news/67370.html

相关文章:

  • 空天地遥感数据识别与计算——建议收藏!
  • 在离线环境中使用sealos工具快速部署一套高可用的k8s服务集群
  • [第一章 web入门]SQL注入-2
  • Web前端PC端开发者工具详细介绍(约10000字保姆级讲解)
  • RabbitMQ 管理平台(控制中心)的介绍
  • 【综合算法学习】(第二十篇)
  • 十二:java web(4)-- Spring核心基础
  • GPU释放威力:在Gymnasium环境中使用稳定基线3在AMD GPU上训练强化学习代理
  • 科比投篮预测的数据处理与分析
  • 网络初始:TCP/IP 五层协议模型 网络通信基本流程
  • 解释Python的排序方法sort和sorted的区别。
  • 详解Rust标准库:BTreeSet
  • 数字信号处理Python示例(7)生成复数指数函数
  • Python | Leetcode Python题解之第543题二叉树的直径
  • 提高区块链网络TPS七步曲
  • 【知识科普】使用 OpenSSL为特定域名生成自签名证书
  • Python 详细实现无损压缩之 DEFLATE 算法
  • VS2013安装报错“windows程序兼容性模式已打开,请将其关闭 ”解决方案
  • Python | Leetcode Python题解之第542题01矩阵
  • wps怎么算出一行1和0两种数值中连续数值1的个数,出现0后不再计算?
  • Python练习9
  • 快速部署和体验内置开源 LLM 大模型
  • UE5.4 PCG基础节点
  • 【Linux 29】传输层协议 - UDP
  • Linux 使用及常用命令详解
  • 【Linux-进程间通信】消息队列