Intel SGX 概述 --潦草笔记

文章目录

  • 前言
  • 一、SGX介绍
    • 1.1 指令介绍
    • 1.2 数据结构
  • 二、内存保护过程
    • 2.1 enclave页面缓存(EPC)
    • 2.2 Enclave页面缓存映射(EPCM)
  • 三、部署SGX
  • 参考资料

前言

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

一、SGX介绍

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

SGX是在2015年推出的第六代英特尔酷睿处理器,基于Skylake微架构。可以通过执行带有结构化扩展功能叶(Structured Extended Feature Leaf)标志的CPUID指令来检查SGX支持,并检查EBX寄存器的第二位是否已设置。为了能够使用SGX,它必须由BIOS启动,并且目前,只有少数BIOS支持该技术,这是它没有被广泛使用的原因之一。

SGX的保护方式并不是识别和隔离平台上的所有恶意软件,而是将合法软件的安全操作封装在一个enclave中,保护其不受恶意软件的攻击。而且执行SGX的权限非常高,特权或者非特权的软件都无法访问enclave,也就是说,一旦软件和数据位于enclave中,即便操作系统管理员和VMM(Hypervisor)也无法影响enclave里面的代码和数据。Enclave的安全边界只包含CPU和它自身。SGX创建的enclave也可以理解为一个可信执行环境TEE(Trusted Execution Environment)。不过其与ARM TrustZone(TZ)还是有一点小区别的,TZ中通过CPU划分为两个隔离环境(安全的环境和正常的环境),两者之间通过SMC指令通信;而SGX中一个CPU可以运行多个安全enclaves,并发执行亦可。当然,在TZ的安全的环境内部实现多个相互隔离的安全服务亦可达到同样的效果。另外,SGX是针对桌面和服务器平台的。

总结来说,Intel SGX的安全性能有以下3点:

  1. 把应用程序分为两部分:安全应用程序和非安全应用程序;
  2. 将合法软件的安全操作封装在一个enclave中;
  3. 当调用enclave函数时,只有enclave内部的代码才能查看其数据,并始终拒绝外部访问;当调用结束时,enclave的数据会留在受保护的内存中。
    在这里插入图片描述

安全执行环境是主机进程的一部分,这意味着:

  1. 应用程序包含自己的代码,数据和enclave;
  2. enclave也包含自己的代码和自己的数据;
  3. SGX保护enclave代码和数据的机密性和完整性;
  4. Enclave接入点是在编译期间预先定义的;
  5. 支持多线程(但不能轻易实现);
  6. enclave可以访问其应用程序的内存,但应用程序的内存则无法访问enclave。
    在这里插入图片描述

1.1 指令介绍

Intel SGX定义了18条新指令,其中13条由管理者使用,5条由用户使用。所有这些指令都以微代码实现,以便可以修改指令的具体行为。以下是18条新指令的完整说明:

  • EADD:添加页面;
  • EENTER:进入enclave;
  • EBLOCK:阻止EPC页面;
  • EEXIT:退出enclave;
  • ECREATE:创建安全区;
  • EGETKEY:创建加密密钥;
  • EDBGRD:通过调试器读取数据;
  • EREPORT:创建加密报告;
  • EBDGWR:通过调试器写入数据;
  • ERESUME:重新进入安全区;
  • EINIT:初始化enclave;
  • ELDB:加载EPC页面为已阻止;
  • ELDU:加载EPC页面为未阻止;
  • EPA:添加版本数组(version array);
  • EREMOVE:从EPC中删除页面;
  • ETRACE:激活EBLOCK检查;
  • EWB:回写或是让EPC页面无效;

其中EENTER, EEXIT, EGETKEY, EREPORT,ERESUME为用户使用的指令。

1.2 数据结构

另外,Intel SGX还定义了13种新的数据结构,其中8种用于enclave管理,3种用于内存页面管理,2种用于资源管理。以下是13种新的数据结构的完整说明:

  • SGX Enclave控制结构(SECS);
  • 线程控制结构(TCS);
  • 存储状态区(SSA);
  • 页面信息(PAGEINFO);
  • 安全信息(SECINFO);
  • 分页加密元数据(PCMD);
  • 版本数组(VA);
  • Enclave页面缓存映射(EPCM);
  • Enclave签名结构(SIGSTRUCT);
  • EINIT令牌结构(EINITTOKEN);
  • 报告(REPORT);
  • 报告目标信息(TARGETINFO)
  • 密钥请求(KEYREQUEST)

我会在以下详细介绍相关的这写指令和数据结构,然后对它们如何实现哪种安全功能进行详细解释。

二、内存保护过程

2.1 enclave页面缓存(EPC)

Enclave代码和数据放置在被称为Enclave Page Cache(EPC)的特殊内存区域中,该内存区域使用内存加密引擎(MEE)进行加密,该内存区域只存在于一种专用的芯片上。内存总线上的外部读取只能观察到加密数据。而页面只会在处理器内核中才能被解密,这个密钥只会在enclave页面缓存启动时生成并存储在CPU中。

此时传统页面检查已被扩展,以防止外部访问EPC页面。
在这里插入图片描述

2.2 Enclave页面缓存映射(EPCM)

Enclave页面缓存映射(EPCM)结构用于存储页面状态,它位于受保护的内存中,其大小限制了EPC的大小(由BIOS设置,最大128MB)。EPCM包含了每个页面的配置、权限和类型。

三、部署SGX

  • Ubuntu安装SGX
  • Linux ubuntu20.04 安装使用 Intel sgx
  • Linux 编写SGX Hello_World

参考资料

  1. SGX技术的分析和研究 --SGX的综述论文
  2. SGX的内部组件概述(一)
  3. SGX的内部组件概述(二)
  4. SGX可能遇到的攻击
  5. Intel 的 SGX 技术小知识

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/418536.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode583. 两个字符串的删除操作 -代码随想录

题目&#xff1a; 代码(首刷自解 2024年2月29日&#xff09;&#xff1a; class Solution { public:// 动态规划 好像和找最长公共子序列一样&#xff1f;int minDistance(string word1, string word2) {int sz1 word1.size();int sz2 word2.size();// dp initvector<vec…

form 表单 转换为json-多种(通用/多维数组) 全方案

JSON 在 JavaScript 中重要&#xff0c;因其轻量、通用、易读&#xff0c;适用于数据交换、存储和传输。 为什么写这个文章&#xff0c;废话不多&#xff0c;直接近主题。 一、通用 一般采用jquery编写 var key $(#"cyberwin_form_card_newadd").serialize(); 结…

自动化测试摸索:python+selenium+pytest(持续更新.....)

一、环境搭建 1、python 安装 下载链接&#xff1a;Python Releases for Windows | Python.org 自己选择合适的版本下载 当下载完毕时&#xff0c;找到该安装程序&#xff1a;python-3.12.2-amd64.exe文件&#xff0c;双击启动安装向导。 为了防止C:盘文件因系统故障或者无…

C# 高阶语法 —— Winfrom链接SQL数据库的存储过程

存储过程在应用程序端的使用的优点 1 如果sql语句直接写在客户端&#xff0c;以一个字符串的形式体现的&#xff0c;提示不友好&#xff0c;会导致效率降低 2 sql语句写在客户端&#xff0c;可以利用sql注入进行攻击&#xff0c;为了安全性&#xff0c;可以把sql封装在…

H3C防火墙安全授权导入

一、防火墙授权概述 前面我们已经了解了一些防火墙的基本概念&#xff0c;有讲过防火墙除了一些基本功能&#xff0c;还有一些高级安全防护&#xff0c;但是这些功能需要另外独立授权&#xff0c;不影响基本使用。这里以H3C防火墙为例进行大概了解下。 正常情况下&#xff0c;防…

01-prometheus监控系统-安装部署prometheus

一、准备环境 主机名ip配置prometheus-server3110.0.0.311核1g-20GBprometheus-server3210.0.0.311核1g-20GBprometheus-server3310.0.0.311核1g-20GB 二、下载/上传软件包 1&#xff0c;软件包地址 这里给大家准备了百度云盘的安装包&#xff1b; 链接&#xff1a;https:/…

upload-Labs靶场“1-5”关通关教程

君衍. 一、环境搭建二、第一关 前端JS检测后缀1、源码分析2、禁用浏览器JS上传3、burp抓包修改 三、第二关 MIME头验证1、源码分析2、burp抓包绕过 四、第三关 PHP3绕过1、源码分析2、PHP3绕过 五、第四关 .htaccess重写绕过1、源码分析2、.htaccess复写 六、第五关 黑名单大小…

VPP学习之配置VXLAN隧道

VPP学习之配置VXLAN隧道 一、VXLAN技术 VXLAN&#xff08;Virtual eXtensible Local Area Network&#xff0c;虚拟扩展局域网&#xff09;&#xff0c;是由IETF定义的NVO3&#xff08;Network Virtualization over Layer 3&#xff09;标准技术之一&#xff0c;是对传统VLAN…

互动多媒体内容的魔法:如何让你的网页活起来

互动多媒体内容的魔法&#xff1a;如何让你的网页活起来 前言 在之前的文章中&#xff0c;我们探讨了网页结构中的基础介绍&#xff0c;本文将介绍如何通过简单的交互增强用户体验&#xff0c;包括图像大小的动态切换&#xff0c;以及音视频内容的播放控制来介绍网页多媒体的具…

测试:4核8G服务器并发数,支持多少人?

腾讯云4核8G服务器支持多少人在线访问&#xff1f;支持25人同时访问。实际上程序效率不同支持人数在线人数不同&#xff0c;公网带宽也是影响4核8G服务器并发数的一大因素&#xff0c;假设公网带宽太小&#xff0c;流量直接卡在入口&#xff0c;4核8G配置的CPU内存也会造成计算…

出现 ‘vue‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件的解决方法(图文界面)

目录 前言1. 问题所示2. 原理分析3. 解决方法前言 由于Java转全栈,对此前端的细节点都比他人更加注意,所以此处记录更有用的信息!(小白都能看懂) 1. 问题所示 出现如下问题: F:\vue_project>vue -version vue 不是内部或外部命令,也不是可运行的程序 或批处理文件…

网关kong记录接口处理请求和响应插件 tcp-log-with-body的安装

tcp-log-with-body 介绍 Kong的tcp-log-with-body插件是一个高效的工具&#xff0c;它能够转发Kong处理的请求和响应。这个插件非常适用于需要详细记录API请求和响应信息的情景&#xff0c;尤其是在调试和排查问题时。 软件环境说明 kong version 2.1.4 - 2.8.3 [可用亲测]C…

Windows Docker 部署 Redis

部署 Redis 打开 Docker Desktop&#xff0c;切换到 Linux 内核。然后在 PowerShell 执行下面命令&#xff0c;即可启动一个 redis 服务 docker run -d --name redis -p 6379:6379 redis-如果需要自启动&#xff0c;加 --restart always 参数即可。 连接 Redis 使用客户端连…

数据中心GPU集群高性能组网技术分析

数据中心GPU集群组网技术是指将多个GPU设备连接在一起&#xff0c;形成一个高性能计算的集群系统。通过集群组网技术&#xff0c;可以实现多个GPU设备之间的协同计算&#xff0c;提供更大规模的计算能力&#xff0c;适用于需要大规模并行计算的应用场景。 常用的组网技术&…

【Python笔记-设计模式】状态模式

一、说明 状态模式是一种行为设计模式&#xff0c;用于解决对象在不同状态下具有不同行为 (一) 解决问题 在对象行为根据对象状态而改变时&#xff0c;规避使用大量的条件语句来判断对象的状态&#xff0c;提高系统可维护性 (二) 使用场景 当对象的行为取决于其状态&#…

NPN型三极管与PNP型三极管基本原理

NPN型三极管与PNP型三极管基本原理 文章目录 NPN型三极管与PNP型三极管基本原理一、三极管二、结构三、工作原理四、基本应用五、总计 一、三极管 三极管是电子电路中最基本、最常见、重要的器件&#xff0c;其主要功能是对电流的放大和开关作用&#xff0c;从半导体结构上可以…

全国夜间灯光指数数据、GDP密度分布、人口密度分布、土地利用数据、降雨量数据

引言 DMSP/OLS的1992-2013年全球遥感影像&#xff0c;包括三种非辐射定标的夜间灯光影像。三种全年平均影像分别是&#xff1a;无云观测频数影像、平均灯光影像和稳定灯光影像。目前地理遥感生态网可提供全国稳定灯光影像免费下载。稳定灯光影像是标定夜间平均灯光强度的年度栅…

HCIA-HarmonyOS设备开发认证V2.0-习题

目录 习题一习题二&#xff08;待续...&#xff09;坚持就有收获 习题一 # HarmonyOS简介 1. 以下哪几项属于OpenHarmony的技术特性&#xff1f;&#xff08;&#xff09;A. 统一OS&#xff0c;弹性部署B. 一次开发&#xff0c;多端部署C. 硬件互助&#xff0c;资源共享2. Ope…

Ansible get_url模块 get_url模块用于将文件或软件从http、https或ftp下载到本地节点上

目录 常用参数&#xff1a;案例验证 常用参数&#xff1a; dest&#xff1a; 指定将文件下载的绝对路径—必须 url&#xff1a; 文件的下载地址&#xff08;网址&#xff09;—必须 url_username: 用于http基本认证的用户名 url_password&#xff1a; 用于http基本认证的密码 v…

Springboot解决模块化架构搭建打包错误找不到父工程

Springboot解决模块化架构搭建打包错误找不到父工程 一、情况一找不到父工程依赖1、解决办法 二、情况二子工程相互依赖提示"程序包xxx不存在" 一、情况一找不到父工程依赖 报错信息 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:…