sgx使用记录(Windows开发环境搭建以及sgx的简单介绍)1

article/2025/9/21 15:51:33

sgx使用记录

相关代码仓库

##sgx-sdk
https://github.com/apache/incubator-teaclave-sgx-sdk.git##Teaclave:通用安全计算平台
https://github.com/apache/incubator-teaclave

检测sgx运行环境是否支持

##或使用cpuid命令
cpuid |grep -i sgx##或使用脚本测试
下载:https://github.com/ayeks/SGX-hardware
编译test-sgx.c:gcc test-sgx.c -o test-sgx

部分名词释义

名称意思
EnclaveIntel SGX一种高等级的秘密保护技术,它在硬件的受保护内存区域存储代码和数据,这个受保护的内存区域叫做Enclave。Enclave的内存区域只能被Enclave内存区域内的代码访问。
ECALLEnclave Call.进入Enclave的函数调用
OCALLOutside Call.从Enclave调用不受信任的函数的函数调用
EDLEnclave Definition Language
SP服务提供者
Inter SGX SSLIntel SGX SSL加密库是基于OpenSSL的,它给SGX Enclave提供加密服务
TCS线程控制结构
uRTS不可信任的运行时系统

使用预准备

  • CPU必须支持Intel SGX指令,意味着你需要买支持sgx的CPU
  • BIOS必须支持Intel SGX,因为你的机器需要在BIOS里面开启使用SGX,因为BIOS的厂商和Intel不是同一个厂商(比如有华硕有联想什么的),不一定所有BIOS都支持SGX的开启
  • 必须在BISO中开启Intel SGX:有三种选项(启用、禁用、软件控制(这个意思是允许包含Intel SGX技术的应用程序在系统重启后启用Intel SGX,这个意义是不用用户进入BISO进行设置))
  • 必须安装Intel SGX PSW,也就是intel SGX平台软件,咱得有对sgx而言的操作系统对吧

支持sgx的CPU的芯片截至发文起,目前有如下,具体列表请参看https://github.com/ayeks/SGX-hardware.git:

在这里插入图片描述

总体环境安装顺序为:先安装SGX Driver,再安装SGX PSW,最后安装SGX SDK

windows下安装sgx开发环境

看了网上一大圈教程,感觉他们安装的时候都不说自己的环境是怎么样的,直接堆教程…

我的环境是11代i5不带sgx功能的CPU,操作系统是Windows10的,BISO我就不介绍了反正没得sgx芯片,我只图一个开发环境方便我开发。

总的来说需要安装三部分东西:

  • Intel ME:也就是英特尔引擎管理,上网一查好像是因为‘SGX部分功能需要单调计数器和其它一些组件,需要安装Intel Management Engine Driver’所以需要装这个(https://www.intel.com/content/www/us/en/download/19406/28679/intel-management-engine-driver-for-windows-8-1-and-windows-10.html?wapkw=Intel%25C2%25AE%2520Management%2520Engine%2520Driver),下载后解压进入目录’me_sw_1909.12.0.1236\ME_SW_1909.12.0.1236\Corp\ME_SW_MSI’,直接执行SetupME.exe文件,如果出现平台不支持的问题,请在桌面左下角的Windows键右键打开设备管理器,选择系统设备如果有‘Intel® Management Engine Interface’,这就是系统自己已经安装过这个东西了。

  • Visual studio 2017:目前是我唯一看到支持sgx开发格式的idea,最好是下载专业版,版本在2015和2017之间选择,地址:https://visualstudio.microsoft.com/zh-hans/search/?query=Visual+Studio+2017&lang=zh-hans

  • Intel SGX SDK for Windows和:这玩意是sgx的sdk,有这玩意才能干活,地址:https://registrationcenter.intel.com/en/products/postregistration/?sn=CCXS-ZSSJ7GG5&encEma=U3tdVrOFt/AHArVlnRggdgGOepYOlziBlze+bky1k1iIu/0qmxv7pCDQ15uBhD31Jft01zcdZ2Q=&Sequence=2444010&ret=n&pass=yes

最好按我上面从上到下的顺序装,因为可能导致visual studio新建项目的时候没有Intel sgx project的快捷键(其他博客说的我也不确定)

第三步下载sgx sdk和sgx psw的时候下载下图这两个序号的东西,但是会发现下不了,原因是什么license过期了(有一说一我觉得Intel的官方是真的垃圾不友好),想获取这个文件的可以私聊我:

在这里插入图片描述

我的电脑的cpu由于不是sgx的,所以安装PSW平台的时候会报如下错误,不过我的目的是有个sgx的idea所以到这儿我也就算了。不过有些人可能会安装失败而且只报第二个惊叹号后面的错误,网上的解决方案是:点击图中链接会进入到微软商店安装一个叫Intel® Software Guard Extensions Activation APP的软件,安装后以管理员身份执行,点击Active并重启即可。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3aP188ch-1647345030094)(E:\天河国云\学习\sgx应用开发\Windows安装PSW遇到的问题.jpg)]

下载完成并安装后,打开visual studio,在新建项目的列表里面就可以看到Intel的sgx enclave project选项了,如下图:

在这里插入图片描述

在创建项目的时候又出现了问题,SEWizardVS2017.SGXWizard“在程序 集“SEWizardVS2017这样的问题,好在网上有解决方案:你的visual安装目录\Common7\IDE\Extensions\ajyuvscx.hbt\ProjectTemplates\EnclaveTemplate下找到SGXWizard.vstemplate这个文件,然后打开他将文件中以下两行代码删除即可:

SEWizardVS2017, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=1c03693ccb8cf428
SEWizardVS2017.SGXWizard

on=1.0.0.0, Culture=Neutral, PublicKeyToken=1c03693ccb8cf428
SEWizardVS2017.SGXWizard



http://chatgpt.dhexx.cn/article/tUg7YMBJ.shtml

相关文章

Windows10下使用Intel SGX功能(一):环境搭建

文章目录 参考文献系统要求一、安装Open Enclave SDK 环境(一)什么是Open Enclave SDK(二)启动SGX功能方法一: BIOS启动方法二:软件方式启动 (三)安装必要环境(1&#xf…

Intel SGX 功能如何开启

Intel SGX 功能如何开启 我本身是 Windows10 系统, BIOS 是 ASUS 的,在想装 Ubuntu 双系统的时候,在启动 Ubuntu 安装 ISO 的时候提示说电脑的 SGX 没有开启,安装失败,安装界面都没有进去。 之后搜了下如何开启 SGX&a…

SGX的内部组件概述

导语:SGX是Intel开发的新的处理器技术,可以在计算平台上提供一个可信的空间,保障用户关键代码和数据的机密性和完整性。SGX全称Intel Software Guard Extensions,顾名思义,其是对因特尔体系(IA)…

SGX入门

如何设计SGX程序: SGX分为可信部分和不可信部分,可信部分由enclave组成(一个应用程序可以拥有一个或多个enclave),enclave存储在加密的内存中,受SGX保护,enclave一旦被建立就不能更改,所以通常…

SGX Enable

根据INTEl的官方建议, 目前的电脑主板在BIOS设置上只保留了Disabled和Software Controlled来开启和关闭SGX扩展 使用Software Controlled开关的原因官方文档有阐述,如下: 开启SGX扩展,首先需要满足以下要求: CPU具有…

Intel SGX技术详细解释(非常棒)

http://www.jos.org.cn/html/2018/9/5594.htm#b18 随着信息技术的迅速发展与广泛应用, 人类社会已经进入了一个崭新的互联网时代.一方面, 人们享受着互联网科技带来的便利; 另一方面, 由网络和信息系统构成的网络空间也面临着日益严峻的安全问题.信任是网络空间中安全交互的基…

SGX问答

0 前言 有些问题比较常见,在这里直接将问答内容贴出来,方便大家搜索。有空再重新组织文字。 (我会避免泄露私人信息) 1 内存地址翻译全部交给os,那中间经过cache也是全部交给os是嘛?这个cache这部分&…

小谈Intel SGX

目录 Intel SGX简介 背景 为什么要Intel SGX? Intel SGX尚处于学术讨论 Intel SGX和可信启动什么关系? 开发者眼中SGX长什么样子? SGX访问控制是什么? MEE与SGX EPC内存加密 CPU里面SGX长什么样子? 有Enclav…

SGX技术与SGX攻击

2013年, Intel推出SGX(software guard extensions)指令集扩展, 旨在以硬件安全为强制性保障, 不依赖于固件和软件的安全状态, 提供用户空间的可信执行环境, 通过一组新的指令集扩展与访问控制机制, 实现不同程序间的隔离运行, 保障用户关键代码和数据的机密性与完整性不受恶意软…

Intel SGX初步学习理解笔记(持续更新)

一些概念 SGX(Software Guard eXtensions)软件保护扩展:是一组CPU指令扩展,能够创造出一个可信执行环境来保护代码和数据,即使使用root 权限也无法访问。通过这个硬件设施,应用程序可以隔离代码和数据来达…

Intel 的 SGX 技术小知识

1.SGX 概述 Intel SGX (Software Guard Extensions) 是一种针对特定应用程序的安全增强技术。它允许应用程序在处理机上创建受保护的执行环境,这个执行环境被称为“enclave”。这个 enclave 是一个被硬件隔离的内存区域,只有在安全条件下才可以访问。这…

新手学编程必会的100个代码

前言 我记得刚开始接触编程的时候,觉得太难了。 也很好奇,写代码的那些人也太厉害了吧?全是英文的,他们的英文水平一定很好吧? 他们是怎么记住这么多代码格式的?而且错了一个标点符号,整个程…

适用于编程开发自学的学习网站

今天为大家分享几个编程开发自学的学习网站 1.C语言网 该网站有很多C语言相关的教程、资源、博客和练手习题,同时也有很多题库和比赛,比较实用。 网址:https://www.dotcpp.com/ 2.cppreference cppreference是一个免费网站,上面…

初学者必会的100个编程代码

这是本文的目录 前言1、for循环中的else条件2、数字求和3、随机数生成4、将列表中的所有元素作为参数传递给函数5、获取列表的所有中间元素6、使用一行代码赋值多个变量7、Python清空列表8、通过Enum枚举同一标签或一系列常量的集合9、重复字符串10、计算每个月天数11、输出指定…

程序员初学者应该如何自学编程

在你要进入学习殿堂之前,先问你自己100遍:“我能坚持多久?”不要认为这样做很无聊,你要是真的试了,你会有不同的一番感受的,不信你试试看。如果你越问越没信心的话,那说明你心理上还没有准备好&#xff1b…

编程在哪学,可以免费自学编程的10个网站

编程学习 很多人包括一些企业家,和市场营销人员都认为学习编程对一个人走向成功十分有帮助。在过去的一年里,我一直在学习编程。它有助我成为一个更好的创业者,我甚至可以提供一些帮助,当我的团队需要解决一些bug的时候。 现在&a…

编程入门: 自学编程从哪里开始? [初学参考]

自学编程,先学python、java还是C/C? ——大四学生对于初学者的一点建议 摘要: 自学编程,先学什么语言呢?实际上,编程能做的事太多了,首先明确自己想要用代码做什么,再明确自己的学…

想自学编程?这么多编程自学网站,总有一个适合你吧!

小伙伴们周末快乐。 今天分享一波适用于编程开发学习的自学网站,主要涉及编程学习和练手 、 提问交流 、 计算机公开课 、 在线刷题 、以及 问题搜索 等几个方面,希望能有帮助。 C语言网 该网站有很多C语言相关的教程、资源、博客和练手习题&#xff0c…

Proxyee-down – 百度网盘全平台满速下载神器,还带有IDM的全网嗅探功能!(替代PanDownload)

百度云网盘是目前最流行的在线文件分享途径,但它对免费用户的限速实在是严苛,即便是100M的宽带,常常也会遇到仅有几十KB/秒的速度,一个大文件要下载到天荒地老。 知道君曾分享过一些百度云网盘限速的解决办法,比如使用…

http proxy 代理

配合webpack 和 webpack-dev-server处理 安装 // 安装 cnpm html-webpack-plugin --save -D cnpm install webpack webpack-cli webpack-dev-server --save -D新建src文件夹 新建文件 index.html 和 index.js在index.js 发送一个请求 import axios from axiosaxios.get(htt…