带你读《云原生机密计算最佳实践白皮书》——Intel SGX SDK/PSW/DCAP: Intel SGX 软件开发套件和平台软件服务(3)

简介: 带你读《云原生机密计算最佳实践白皮书》——Intel SGX SDK/PSW/DCAP: Intel SGX 软件开发套件和平台软件服务(3)

《云原生机密计算最佳实践白皮书》——05编程框架——Intel SGX SDK/PSW/DCAP: Intel SGX 软件开发套件和平台软件服务(2) https://developer.aliyun.com/article/1231564?groupCode=aliyun_linux



验证SGX功能示例二:SGX远程证明示例

Intel® SGX SDK中提供了SGX示例代码用于验证SGX功能,默认位于/opt/intel/sgxsdk/SampleCode目录下。

本节演示其中的SGX远程证明示例(QuoteGenerationSample、QuoteVerifificationSample),效果为生成和验证Quote。该示例涉及被挑战方(在SGX实例中运行的SGX程序)和挑战方(希望验证SGX程序是否可信

的一方),其中QuoteGenerationSample为被挑战方生成Quote的示例代码,QuoteVerifificationSample为挑战方验证Quote的示例代码。

1. 安装编译工具及相关依赖

yum install -y git

2. 设置SGX SDK相关的环境变量

source /opt/intel/sgxsdk/environment

3. 安装SGX远程证明依赖的包

yum install --nogpgcheck -y libsgx-dcap-ql-devel libsgx-dcap-quote-verify-devel

4. 编译被挑战方示例代码QuoteGenerationSample

• 进入QuoteGenerationSample目录

• 编译QuoteGenerationSample

make

• 运行编译出的可执行文件生成Quote

./app

预期的结果为:

set the enclave load policy as persistent:succeed!
Step1: Call sgx_qe_get_target_info:succeed!
Step2: Call create_app_report:succeed!
Step3: Call sgx_qe_get_quote_size:succeed!
Step4: Call sgx_qe_get_quote:succeed!cert_key_type = 0x5
sgx_qe_cleanup_by_policy is valid in in-proc mode only.
 Clean up the enclave load policy:succeed!

5. 编译挑战方示例代码QuoteVerifificationSample

• 进入QuoteGenerationSample目录

git clone https://github.com/intel/SGXDataCenterAttestationPrimitives -b DCAP_1.15
cd SGXDataCenterAttestationPrimitives/SampleCode/QuoteVerifificationSample

• 编译QuoteVerifificationSample

make

• 生成签名密钥

openssl genrsa -out Enclave/Enclave_private_sample.pem -3 3072

对QuoteVerifificationSample Enclave进行签名

• 运行编译出的可执行文件验证Quote

./app

预期的结果为:

Info: ECDSA quote path: ../QuoteGenerationSample/quote.dat
Trusted quote verifification:
 Info: get target info successfully returned.
 Info: sgx_qv_set_enclave_load_policy successfully returned.
 Info: tee_get_quote_supplemental_data_version_and_size successfully returned.
 Info: latest supplemental data major version: 3, minor version: 1, size: 336
 Info: App: tee_verify_quote successfully returned.
 Info: Ecall: Verify QvE report and identity successfully returned.
 Info: App: Verifification completed successfully.
 Info: Supplemental data Major Version: 3
 Info: Supplemental data Minor Version: 1
===========================================
Untrusted quote verifification:
 Info: tee_get_quote_supplemental_data_version_and_size successfully returned.
 Info: latest supplemental data major version: 3, minor version: 1, size: 336
 Info: App: tee_verify_quote successfully returned.
 Info: App: Verifification completed successfully.
 Info: Supplemental data Major Version: 3
 Info: Supplemental data Minor Version: 1


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
2月前
|
运维 监控 Cloud Native
云原生之运维监控实践:使用 taosKeeper 与 TDinsight 实现对 时序数据库TDengine 服务的监测告警
在数字化转型的过程中,监控与告警功能的优化对保障系统的稳定运行至关重要。本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品之一,详细介绍了如何利用 TDengine、taosKeeper 和 TDinsight 实现对 TDengine 服务的状态监控与告警功能。作者通过容器化安装 TDengine 和 Grafana,演示了如何配置 Grafana 数据源、导入 TDinsight 仪表板、以及如何设置告警规则和通知策略。欢迎大家阅读。
57 0
|
3月前
|
Kubernetes Cloud Native Docker
云原生之旅:从传统架构到容器化服务的演变
随着技术的快速发展,云计算已经从简单的虚拟化服务演进到了更加灵活和高效的云原生时代。本文将带你了解云原生的概念、优势以及如何通过容器化技术实现应用的快速部署和扩展。我们将以一个简单的Python Web应用为例,展示如何利用Docker容器进行打包和部署,进而探索Kubernetes如何管理这些容器,确保服务的高可用性和弹性伸缩。
|
9月前
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库产品使用合集之如何使用ADB MySQL湖仓版声纹特征提取服务
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
7月前
|
存储 Cloud Native 智能网卡
共识协议的技术变迁问题之应用程序开发者应如何利用现有服务降低系统复杂性
共识协议的技术变迁问题之应用程序开发者应如何利用现有服务降低系统复杂性
|
6月前
|
运维 Kubernetes Cloud Native
Kubernetes云原生问题之在托管Kubernetes服务中云服务商和用户的运维责任划分如何解决
Kubernetes云原生问题之在托管Kubernetes服务中云服务商和用户的运维责任划分如何解决
48 0
|
7月前
|
运维 监控 负载均衡
云原生架构的演进:从微服务到服务的网格
【7月更文挑战第8天】云原生技术正以惊人的速度不断进化,其核心理念是构建可扩展、灵活且高度可靠的应用程序。本文将深入探讨云原生架构的关键组成部分,特别是微服务和服务网格,以及它们如何共同推动现代软件的发展。我们将通过一个具体的案例分析,揭示这些技术如何在现实世界中被应用来提升业务敏捷性和操作效率。
|
9月前
|
Cloud Native Java 开发工具
云原生 阿里云分布式文件系统 对象存储OSS 服务配置
【1月更文挑战第8天】云原生 阿里云分布式文件系统 对象存储OSS 服务配置
|
9月前
|
域名解析 Kubernetes 网络协议
【域名解析DNS专栏】云原生环境下的DNS服务:Kubernetes中的DNS解析
【5月更文挑战第29天】本文探讨了Kubernetes中的DNS解析机制,解释了DNS如何将服务名转换为网络地址,促进集群内服务通信。Kubernetes使用kube-dns或CoreDNS作为内置DNS服务器,每个Service自动分配Cluster IP和DNS条目。通过示例展示了创建Service和使用DNS访问的流程,并提出了优化DNS解析的策略,包括使用高性能DNS解析器、启用DNS缓存及监控日志,以实现更高效、可靠的DNS服务。
131 1
|
9月前
|
Cloud Native 安全 Serverless
【阿里云云原生专栏】低代码开发在云原生平台的应用:阿里云低代码服务探索
【5月更文挑战第27天】在云原生时代,低代码开发凭借其图形化界面和预构建模块,简化了应用开发,提升了效率。阿里云积极探索低代码领域,推出函数计算FC和应用配置中心ACM等服务。FC让开发者无需关注基础设施,仅需少量代码即可实现应用部署,而ACM则提供动态配置管理,增强应用灵活性。阿里云的这些服务为企业数字化转型提供了高效、安全的解决方案,预示着低代码开发在云原生平台上的重要地位。
281 1
|
9月前
|
Cloud Native Java 关系型数据库
【阿里云云原生专栏】构建云原生应用:基于Spring Boot与阿里云服务的全栈指南
【5月更文挑战第21天】构建云原生应用是企业数字化转型的关键,本文提供了一份基于Spring Boot和阿里云的全栈指南。涵盖从阿里云账号注册、ECS与Docker搭建,到Spring Boot项目创建、业务代码编写和部署。此外,还介绍了如何集成阿里云OSS存储、RDS数据库服务以及ACK容器服务,助力打造高效、可扩展和易管理的云原生应用。
721 3