2020 Software Guard eXtensions (SGX) represents Intel’s latest foray into trusted computing. SGX differs from its competitors such as TrustZone in its focus on reducing the volume of trusted code PoET is a leader-based consensus algorithm that relies on SGX for its security guarantees. Each node requests a timeout from its SGX enclave using a trusted function. 2. , the authors present a different use case for SGX: securing databases.
SGX的安全模型是只信任CPU和微码。EnclaveSGX最重要的核心概念是Enclave(飞地),Enclave可以被视为进程中安全可信的部分,其中运行的程序和数据的机密性和完整性受到SGX的保护。 从图中我们可以看到,在标准的SGX模型下,应用被分为可信和不可信两部分,可信部分为Enclave,非可信部分为运行在外面的代码和数据。 SGX的远程认证可以对以下内容进行验证:Enclave运行在SGX内部Enclave运行在具有最新安全级别的系统上Enclave的代码通过远程认证,用户可以确保enclave运行环境是可靠的,且运行的代码未被篡改 目前SGX支持两种类型的远程认证:ECDSA(EllipticCurveDigitalSignatureAlgorithm)认证和IntelEPID(IntelEnhancedPrivacyID)认证,
---- 背景 Phala Network的隐私云计算服务基于teaclave-sgx-sdk开发,由于Intel CPU的SGX执行环境相当于裸机无系统,自然地基于teaclave-sgx-sdk开发的 teaclave-sgx-sdk为了方便移植,给我们准备了一个sgx_tstd(一个sgx环境的std仿制品)。 sgx_tstd保留了rust std中的大部分功能,因此,一般简单的crate移植到sgx_tstd仅需要改动数行代码,比如在crate根部添加extern sgx_tstd as std,以及添加一些 std和sgx_tstd共存 上面提到,拆掉了一部分代码,主要这些代码依赖sgx_tstd里面特有功能,比如sgx_tstd::sgxfs::SgxFile。 我们将getrandom函数代理到sgx_read_rand,sgx_read_rand在HW模式下会通过CPU硬件获取真随机数。
SGX。 SGX是啥? Intel SGX是指 Software Guard Extensions SGX最早在2013年推出,主要是在计算机平台上提供一个可信的空间(TEE),保障用户关键代码和数据的机密性和完整性 。 最后说下: 近日,百度安全实验室推出一个Intel SGX 可信计算平台的Rust语言开发工具包Rust SGX SDK。说白了,这也是一种具体Intel芯片的TEE SDK! 基于Rust SGX SDK, 程序员可以快速开发出没有内存安全漏洞的 Intel SGX 可信程序。 Rust是Mozilla开发的注重安全、性能和并发性的编程语言。
新加坡作为全球领先的金融中心之一,其证券交易所(SGX)汇聚了大量优质的房地产信托基金(REITs)、银行股(如 DBS, UOB)以及跨国航运企业。 、 核心接入参数在 StockTV 的全球体系中,新加坡市场的数据具有标准化的标识:国家 ID (countryId):15(新加坡)交易所:新加坡证券交易所(Singapore Exchange, SGX 数据单位:SGX 股票通常以新加坡元(SGD)计价,处理跨境投资应用时需注意汇率转换。错误处理:建议在代码中对 code != 200 的情况进行容错处理,并增加请求频率限制逻辑。
ABB 5SGX1060H0003 用于传递和消费信息的方法图片为了利用通过数字化转型获得的数据,工业公司必须解决他们用于传递和消费信息的方法。
ABB 5SGX1060H0003 有助于减少错误频率图片数字化为企业提供了发展和创新的机会。但它随后给数据带来了新的风险世界,而数据是任何企业最宝贵的资产。
之前介绍过一篇intel芯片架构中SGX技术的文章: Intel芯片架构中TEE的实现技术之SGX初探 今天我们再来详细了解下。 英特尔 SGX 可减少应用的攻击面。 图 1 显示了借助英特尔 SGX 安全区和不借助英特尔 SGX 安全区时,攻击面的显著差异。 ? 图 1:借不借助SGX 时的攻击面 英特尔 SGX 可针对已知的硬件和软件攻击提供以下保护措施: 安全区内存不可从安全区外读写,无论当前的权限是何种级别,CPU 处于何种模式。 图 2: SGX如何确保受保护应用中安全区数据的安全。 包含英特尔 SGX 技术的应用设计要求将应用分成两个部分(见图 3): 可信部分。 它指的是安全区。 可信代码中的代码是访问应用机密的代码。 图 3: SGX应用执行流程。 认证 在英特尔 SGX 架构中,认证指的是以下流程,即证明在平台上建立了特定安全区。 有两种认证机制: 本地认证 适用于同一平台上两个安全区进行相互认证时。
今天我们要解读的至强秘笈,就与英特尔® 软件防护扩展(Software Guard Extension, SGX)技术及其主要用途——隐私计算密切相关。 作为可信执行环境(TEE)的重要技术实现,如图一所示,英特尔® SGX能在CPU的支持下,在内存等特定硬件环境中构建出一个可信安全的“飞地”(Enclave)。 从图二所示的架构可以看到,蜂巢平台利用英特尔® SGX分别在云端和边缘节点的服务器内存中开辟出安全的“飞地”。 客户可在云端基于英特尔® SGX和蜂巢隐私计算方案对模型进行训练,并通过“飞地”间的安全通道向边缘推送最新模型。 如图三所示,在运行过程中,MesaTEE平台能以Executor插件的形式在飞桨平台上构建基于Graphene-SGX等LibOS组件的英特尔® SGX安全可信环境,并将特定的深度学习任务投递到安全环境中
关于SGXRay Intel SGX采用基于应键的内存加密技术来保护独立应用程序逻辑和敏感数据。 SGXRay是一种基于SMACK验证器的自动推理工具,可以帮助广大研究人员自动检测SGX安全漏洞。 目前,SGXRay基于两个SGX SDK实现其功能,即Intel SGX SDK和OpenInclave SDK,用户可以选择使用SDK代码来进行更加详细的安全分析。 针对第一步,我们为每一个SDK都提供了对应的Docker镜像: docker pull baiduxlab/sgx-ray-frontend-intel docker pull baiduxlab/sgx-ray-frontend-oe -w /sgx --user $UID baiduxlab/sgx-ray-distro (向右滑动,查看更多) 在容器中,你将能够直接调用SGXRay的命令行接口“sgx-ray”。
前述内容请参照 Intel芯片架构中TEE的实现技术之SGX初探(二) Intel芯片架构中TEE的实现技术之SGX初探 SGX技术是Intel于2013年在ISCA会议中提出的,直到2015年10月支持 为了在EPC中执行一个二进制程序,SGX指令允许将普通的页复制到EPC页中。 其中Linux SGX实现系统包括SGX平台软件、SGX驱动程序和SGX软件开发工具包(SDK)。 专业版 第三步: 下载安装SGX SDK SGX SDK安装包可以从https://software.intel.com/sgx-sdk免费下载。 SGX SDK下载页面一共包含2个部分(图 1), Intel SGX SDK for Windows是SGX SDK的主体;Intel SGX Platform Software for Windows 图 1 英特尔 SGX SDK下载页面 注意1:如果电脑硬件不支持SGX功能, 则不需要安装PSW软件。开发工作只能通过SGX SDK里面内置的模拟器来运行调试enclave程序。 注意2:SGX有些相关的安全功能需要
使用这些定义,SGX运行时系统能够正确地执行SGX程序的重定位逻辑。 SGX使用固定大小的页面分割内存,sgx_page_t类型表示一个页面。 SGX Enclave是SGX环境中执行的受保护代码片段。 文件中的代码提供了与SGX平台相关的一些功能,例如: 初始化SGX环境:代码中包含了初始化SGX环境所需的函数,如初始化进程的属性和启动SGX的通信机制。 进程和内存管理:代码中提供了用于管理SGX进程和内存的函数,如创建SGX进程、检查虚拟地址是否在SGX堆内存中等。
两个独立的学术研究团队在周三发表了描述英特尔软件卫士扩展(SGX)中缺陷的论文。 研究人员攻击了由Intel提供并签名的SGX体系结构飞地,并检索了用于通过网络加密证明这些飞地是真实的秘密证明密钥,这使他们能够将假飞地冒充为真实飞地。 他们补充道:“我们还发现,再次应用这些攻击来破坏在英特尔安全的SGX飞地中运行的代码几乎是微不足道的。” 研究人员写道:“即使是最近的英特尔CPU——包括公共云提供商用来支持SGX飞地的CPU——也容易受到这些攻击。”。 SGAxe: How SGX Fails in Practice describes compromises to long-term storage.
介绍 Hello Occlum 如果您要使用SGX SDK编写SGX Hello World项目,该项目将包含数百行代码。 对于不支持SGX的平台,也可以在SGX模拟模式下运行Occlum。 如何使用 我们已经在Ubuntu 18.04上构建并测试了Occlum,无论是否支持SGX硬件(如果CPU不支持SGX, Occlum可以在SGX模拟模式下运行)。 /sgx_provision provision docker run -it --device /dev/sgx/enclave --device /dev/sgx/provision occlum/ 为了减少自托管基础设施的复杂性,可以将基于Occlum的SGX应用部署到支持SGX的公共云上。
GMA3600 0x0be1 Cedarview, SGX545 GMA3600 0x0be2 Cedarview, SGX545 GMA3600 0x0be3 Cedarview, SGX545 GMA3600 0x0be4 Cedarview, SGX545 GMA3600 0x0be5 Cedarview, SGX545 GMA3600 0x0be6 Cedarview, SGX545 GMA3600 0x0be7 Cedarview, SGX545 GMA3600 0x0be8 Cedarview, SGX545 GMA3600 0x0be9 Cedarview, SGX545 GMA3600 0x0bea Cedarview, SGX545 GMA3600 0x0beb Cedarview, SGX545 GMA3600 0x0bec Cedarview, SGX545 GMA3600 0x0bed Cedarview, SGX545 GMA3600 0x0bee Cedarview, SGX545 GMA3600 0x0bef Cedarview, SGX545
Intel SGX 的最大优势在于其只信任自己和 Intel CPU,此机制将 SGX 的可信级别提高到了硬件级别。软件层面的攻击甚至操作系统层级的攻击都无法威胁到 SGX创造的可信环境。 SGX 进行攻击。 Intel SGX 业务框架 INTEL SGX的技术特点: 基于SGX的硬件隔离 • 代码运行在Enclave中 • 支持多线程并发,可被中断 只信任CPU • 完全透明的内存加密 • 18 而SGX不同,开发者需要重构代码。虽然Intel提供了SGX的SDK来协助对接,但是对接的工作量依然很大,因此由于开发造成的安全问题是SGX开发者需要面对的一个大问题。 2.4 SGX 类似技术 在区块链相关生态中,与SGX相类似的技术还有如下三个。 1.
一家专注于加密货币及区块链应用安全解决方案的法国创业公司,其已与英特尔公司达成合作,旨在为数字钱包用户提供更安全的解决方案,据悉,Ledger将其区块链开放式账本操作系统(Bolos)与英特尔的软件防护扩展(Intel SGX Ledger与英特尔之间的合作,意味着敏感信息将被存储在英特尔软件防护扩展(Intel SGX)内,而不是存储于应用。 关于Intel SGX技术,我们前面有介绍,是Intel在其芯片上的可信执行环境实现。在支持Intel SGX的芯片平台上开发出应用程序即可将比特币钱包变成安全的钱包。 Intel芯片架构中TEE的实现技术之SGX初探 Intel芯片架构中TEE的实现技术之SGX初探(二) Intel芯片架构中TEE的实现技术之SGX(三)开发环境简介及搭建 Ledger
我们使用 Intel SGX,提供基于硬件隔离、内存加密、远程证实等安全技术保护数据隐私计算任务。 当然,开发者也可使用 Teaclave SGX SDK (原 Rust SGX SDK)来构建全新的 SGX 应用。 ? Teaclave 生态也支持着可信计算和系统安全相关的学术研究,其中包括可信执行环境的安全,内存安全的 SGX SDK 设计,SGX 第三方库生态的安全等等相关课题。 https://github.com/scs/substraTEE Occlum 项目是基于 Teaclave SGX SDK 提供了一个 library OS 类型的 SGX 可信执行环境,使应用程序几乎不需要修改源代码即可放入 SGX 上运行。
这些struct的主要作用是在SGX环境中提供标准输入/输出的模拟实现。由于SGX的限制,这些标准流并不能直接访问底层的输入/输出设备,因此必须通过SGX提供的安全机制来实现。 在SGX平台上,由于安全限制,标准库的某些功能可能无法直接使用,因此需要为SGX平台编写特定的实现。memchr.rs提供了对memchr函数的SGX实现。 而在SGX平台上,由于硬件限制,无法直接使用某些指令,因此需要为SGX提供专门的实现。 函数memchr的SGX实现在memchr.rs中详细描述了如何使用SGX特有的功能来查找字节在字节数组中的位置。它使用了SGX提供的加密扩展指令和相关函数来实现内存查找。 由于SGX的安全性要求,该实现有一定的复杂性。 memchr.rs文件中的代码可能包括对SGX特定函数和数据结构的调用、SGX指令的使用、安全性检查等。
英特尔® SGX技术实际作用示意图 在工作时,SGX 技术会给相关数据分配一块隔离区域,也叫「飞地(Enclave)」。 模型或应用程序在 SGX 技术上的无缝迁移。 Gramine-SGX 允许用户在不修改相应模块代码的情况下,通过系统调用的方式直接在 SGX 环境中执行,大大降低了 SGX 技术的应用门槛。 一种典型的基于英特尔® SGX-BigDL 平台的预测方案架构如下图所示,用户数据可以导入基于 Gramine-SGX 的 SGX 环境中,由 BigDL 平台负责连通和调度预测推理所需的模型库、框架和工具 典型的基于英特尔® SGX-BigDL平台的预测方案 联合团队的验证结果表明,基于英特尔® SGX-BigDL 平台部署的实时计算与预测推理方案,能在更好地保障端到端数据安全的前提下,依旧保持预期的性能