带你读《云原生机密计算最佳实践白皮书》——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的迁移。
相关文章
|
3月前
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库产品使用合集之如何使用ADB MySQL湖仓版声纹特征提取服务
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
5天前
|
运维 Kubernetes Cloud Native
Kubernetes云原生问题之在托管Kubernetes服务中云服务商和用户的运维责任划分如何解决
Kubernetes云原生问题之在托管Kubernetes服务中云服务商和用户的运维责任划分如何解决
17 0
|
29天前
|
存储 Cloud Native 智能网卡
共识协议的技术变迁问题之应用程序开发者应如何利用现有服务降低系统复杂性
共识协议的技术变迁问题之应用程序开发者应如何利用现有服务降低系统复杂性
|
1月前
|
运维 监控 负载均衡
云原生架构的演进:从微服务到服务的网格
【7月更文挑战第8天】云原生技术正以惊人的速度不断进化,其核心理念是构建可扩展、灵活且高度可靠的应用程序。本文将深入探讨云原生架构的关键组成部分,特别是微服务和服务网格,以及它们如何共同推动现代软件的发展。我们将通过一个具体的案例分析,揭示这些技术如何在现实世界中被应用来提升业务敏捷性和操作效率。
|
3月前
|
域名解析 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服务。
59 1
|
3月前
|
Cloud Native 安全 Serverless
【阿里云云原生专栏】低代码开发在云原生平台的应用:阿里云低代码服务探索
【5月更文挑战第27天】在云原生时代,低代码开发凭借其图形化界面和预构建模块,简化了应用开发,提升了效率。阿里云积极探索低代码领域,推出函数计算FC和应用配置中心ACM等服务。FC让开发者无需关注基础设施,仅需少量代码即可实现应用部署,而ACM则提供动态配置管理,增强应用灵活性。阿里云的这些服务为企业数字化转型提供了高效、安全的解决方案,预示着低代码开发在云原生平台上的重要地位。
229 1
|
3月前
|
Cloud Native Java 关系型数据库
【阿里云云原生专栏】构建云原生应用:基于Spring Boot与阿里云服务的全栈指南
【5月更文挑战第21天】构建云原生应用是企业数字化转型的关键,本文提供了一份基于Spring Boot和阿里云的全栈指南。涵盖从阿里云账号注册、ECS与Docker搭建,到Spring Boot项目创建、业务代码编写和部署。此外,还介绍了如何集成阿里云OSS存储、RDS数据库服务以及ACK容器服务,助力打造高效、可扩展和易管理的云原生应用。
216 3
|
3月前
|
存储 弹性计算 Kubernetes
【阿里云云原生专栏】深入解析阿里云Kubernetes服务ACK:企业级容器编排实战
【5月更文挑战第20天】阿里云ACK是高性能的Kubernetes服务,基于开源Kubernetes并融合VPC、SLB等云资源。它提供强大的集群管理、无缝兼容Kubernetes API、弹性伸缩、安全隔离及监控日志功能。用户可通过控制台或kubectl轻松创建和部署应用,如Nginx。此外,ACK支持自动扩缩容、服务发现、负载均衡和持久化存储。多重安全保障和集成监控使其成为企业云原生环境的理想选择。
304 3
|
3月前
|
Cloud Native 数据管理 关系型数据库
【阿里云云原生专栏】云原生数据管理:阿里云数据库服务的分布式实践
【5月更文挑战第21天】阿里云数据库服务在云原生时代展现优势,应对分布式数据管理挑战。PolarDB等服务保证高可用和弹性,通过多副本机制和分布式事务确保数据一致性和可靠性。示例代码展示了在阿里云数据库上进行分布式事务操作。此外,丰富的监控工具协助用户管理数据库性能,支持企业的数字化转型和业务增长。
210 1
|
3月前
|
Cloud Native Java 开发工具
云原生 阿里云分布式文件系统 对象存储OSS 服务配置
【1月更文挑战第8天】云原生 阿里云分布式文件系统 对象存储OSS 服务配置