简介: 数据可用不可见是怎么做到的?

编者按:龙蜥社区云原生机密计算 SIG 定位于云原生机密计算底层基础设施,专注于机密计算底层技术。在阿里巴巴开源开放周中, 龙蜥社区机密计算 SIG Maintainer、Intel 产品安全专家张顺达分享了《Intel 机密计算技术在龙蜥社区的实践》,帮助开发者龙蜥社区机密计算 SIG,以及 Intel 在 SIG 当中的工作和进展。以下为本次分享内容:

一、龙蜥社区云原生机密计算 SIG 背景介绍

机密计算通过在基于硬件的可信执行环境(TEE)中执行计算的方式来保护使用中的数据。 这些安全的、隔离的环境可防止对使用中的应用程序和数据进行未经授权的访问或篡改,从而提升相关组织在管理敏感数据和受监管数据方面的安全级别。TEE目前流行的技术有 Intel 的SGX、TDX,AMD 的 SEV 及 ARM 的 TrustZone 等等。

当前,Intel 在龙蜥社区主要提供了 SGX 和 TDX 支持,以及在 SGX 和 TDX 上构建的运行时虚拟机以及容器等一些列机密计算应用。

英特尔软件防护扩展(Intel Software Guard Extensions,SGX)是一组安全相关的指令,它被内置于一些现代 Intel 中央处理器(CPU)中。它们允许用户态将特定内存区域设置为私有区域,此区域也被称作飞地(Enclaves)。其内容受到保护,不能被用户应用本身以外的任何进程存取,包括以更高权限级别运行的进程。

CPU 对受 SGX 保护的内存进行加密处理。受保护区域的代码和数据的加解密操作在 CPU 内部动态(on the fly)完成。因此,处理器可以保护代码不被其他代码窥视或检查。SGX 使用的威胁模型如下:Enclaves 是可信的,但 Enclaves 之外的任何进程都不可信(包括操作系统本身和任何虚拟化管理程序),所有这些不可信的主体都被视为有存在恶意行为的风险。Enclaves 之外代码的任何代码读取受保护区域,只能得到加密后的内容,由于 SGX 不能防止针对运行时间等侧信道信息的测量和观察,所以在 SGX 内部运行的程序本身必须能抵抗侧信道攻击。

SGX 被设计用于实现安全远程计算、安全网页浏览和数字版权管理(DRM)。其他应用也包括保护专有算法和加密密钥。英特尔 Trust Domain Extension (TDX) 正在推出新的架构元件,以帮助部署称为信任域 (TD)的硬件隔离虚拟机 (VM)是 SGX 的下一代产品。

龙蜥社区云原生机密计算 SIG(Special Interest Group)宗旨是构建一个云原生的机密计算开源技术栈,降低机密计算的使用门槛,简化在云上的部署和应用难度,拓展使用场景及创新方案,主要定位于底层的基础设施,为广大开发者提供基础的支撑。

SIG 目前主要的活跃的项目有海光 CSV 机密容器、Inclavare Containers 机密容器、Intel SGX 和 TDX 基础架构的适配,以及阿里云 JavaEnclave、蚂蚁 Occlum,和其他社区 SIG 也有密切的合作,比如 Cloud Kernel、海光 Arch、Intel Arch、虚拟化、云原生等。

二、Intel 机密计算在龙蜥社区的实践以及规划

目前机密计算领域有一些普遍的、共性的问题,云原生机密计算 SIG 都有相应的应对和解决方法:

  • 首先是用户的心智不足,普遍对这项技术认知感不足,甚至不知道机密计算,也缺少需求。我们就通过龙蜥大讲堂等直播演讲的形式来推广,并且也通过龙蜥实验室让外部用户能够体验机密计算。
  • 其次是技术门槛相对偏高。比如 SGX 和 TrustZone 的编程模型比较复杂,学习和使用门槛比较高;但机密虚拟机形态的 SEV 及 TDX 仍需要近一步推广。针对这个问题,我们会在 Anolis 中引入机密计算让用户使用,也会提升机密计算的可用性,支持多种硬件,提供多种部署形态和技术栈,尽量满足用户的不同需求。
  • 再次是应用产品缺乏普适性。例如目前的使用场景通常都是特定行业,特别是有壁垒的行业,如金融行业等。因此我们要提升通用性,提出更多具有通用性的解决方案。
  • 最后就是信任根和信任模型的的问题。国内用户对国外 CPU 的信任根问题存在担忧,另外租户也可能希望将云厂商及第三方从自己的 TCB 中完全移除。应对这个问题,云原生机密 SIG 将会发布机密计算技术白皮书,通过远程证明体系来做一些澄清,增加用户信心。

那 Intel 在针对以上问题作出的解决方案有以下 3 方面:

  • 降低技术门槛方面,会尽量提供便捷的编程接口,例如 SGX 支持 LibOS 的方案: 关于 LibOS 方案:在 SGX 编程模型中,可信部分一般需要用户自己移植到 Enclave 当中,使用特定的编程接口来操作。Gramine 和 Occlum 使用 LibOS,将用户程序直接全部放到一个大 Enclave 当中,为用户提供系统调用、IO 等支持。也将 SGX SDK/PSW(平台软件/Intel提供的基础服务),DCAP 的相关安装包和库,适配到 Anolis 当中,使得用户可以更方便地使用。
  • 在通用性支持上面,我们对容器和虚拟机做最大限度的支持,保证通用性方案可以很好的在上面运行。
  • 在可信支持方面,Intel 也会提供基础的远程证明框架,帮助澄清误会和增加用户的信心。

下图是龙蜥社区打造一体化解决方案示意图。从图中可以看到龙蜥社区承接芯片厂商、支撑 OSV、整机厂、ISV 和终端用户。

在云原生机密计算 SIG 活跃项目中,Intel 提供了 SGX Stack,并支持Inclave container,另外还有 JavaEnclave、Occlum 也是基于 SGX 技术。所以 Intel 在龙蜥社区相关工作可以分为 4 大类:

  • 首先是机密计算和可信环境的一个基础的支撑,主要包括SGX SDK、SGX PSW/DCAP 安装包的适配和 Anolis 的集成。
  • 其次是基于 LibOS 的运行时支持,目前使用该项技术的有 Intel 的 Gramine 和蚂蚁的 Occlum。
  • 然后还有虚拟化和容器,SGX 虚拟化 SGX、SGX 和 TDX 机密容器。
  • 最后是对同态加密的支持,包括软件和硬件(例如 QAT 硬件加速)等等。

根据上图大家可以看到:

  • 在技术栈上面,Intel 提供可信计算的一部分硬件平台支持(SGX,TDX)。
  • 在和运行时层面给出基础支持 SGX 和 TDX DCAP 的开发包,并且也提供基于远程证明的 TLS 通信。在 SGX 基础上的 libOS 解决方案 Gramine,也对使用 SGX 的蚂蚁的 Occlum 和阿里云的 JavaEncave 进行技术支持。
  • Attestation 体系方面也提供远程证明框架。
  • 在容器方面袋鼠 CC Inclavare Container Enclave CC 等都用到了 SGX 和 TDX 技术。
  • 运行时库有 Intel 的同态加密 stack。

目前 Intel 在龙蜥社区中的各个项目都在稳步推进,像海光 CSV 机密容器是已交付, Intel SGX 软件包、SGX LibOS 解决方案,SGX 虚拟化以及 TDX 远程证明也会在下文中作为主要的例子来展开讲一下。

在机密计算产品和技术图中, Intel 产品在各个产品当中主要提供基础机密计算能力的支撑,Intel SGX 和 TDX DCAP 能够向上支撑运行时、虚拟机、容器等具体的使用,最终让用户方便地将自己的 workload 运行到一个可信的机密计算环境当中。

Intel 为 Anolis OS 提供了适配和优化过的 SGX SDK/PSW/DCAP 以及 TDX DCAP 软件安装包和运行时库。将它们集成到龙蜥操作系统(Anolis OS)之后,可以让用户更加方便高效地使用,为上层的机密计算应用如机密虚拟机和机密容器等提供服务。

关于 Gramine 的 Stack,Gramine 使用 Intel SGX 技术,集成到龙蜥操作系统(Anolis OS)之后,用户可以更加方便地部署具体的应用,例如机器学习等 Workload,无需修改或者重新编译。

Gramine 作为基础支撑模块,为 Enclave 机密容器提供 SGX 运行环境。

Occlum 也是类似的思路。Enclave 机密容器及其他 SGX 机密容器 /Workload 也可以选择 Occlum 作为运行 SGX 的环境。

SGX 虚拟化,在VM或者VM Pod当中SGX SDK/PSW/DCAP都起到了一个基础支撑的作用,服务于具体的 Runtime。

TDX 主要提供了远程证明支持,用户在 TDX 当中跑 Workload 相对比较容易,由于整个 OS/VM 都是加密的,也不用再移植任何代码。但是远程证明是一个非常重要的点 -- 用户怎么信任他的 VM 运行在一个有 TDX 能力的硬件平台上?我们提供了一套软件和服务,使得 TDX VM 可以高效和安全地完成远程证明。

关于同态加密,Intel 也有相关的软件和库,另外提供了硬件支持。图中 ICX 是最新的一代服务器芯片,SPR 是下一代服务器芯片,QAT 则是加解密加速硬件。

我们将目前的一些交付流程(如 SGX 和 TDX DCAP 的软件包适配流程)分为几个阶段:首先是在 Intel 方面完成所有的测试,然后是在 Intel 仓库中发布,下一个阶段就是开源 Build spec,这样客户可以有一个标准的 Build spec 来自己进行 build,最后是集成到 Anolis 的仓库中。目前我们以及顺利地完成了测试,并将陆续发布在 Intel 和 Anolis 的软件仓库里。

三、总结

通过龙蜥社区机密计算 SIG,推广机密计算技术,提高可用性和通用性,增加用户使用机密计算的信息,Intel 在这个过程中也将机密计算如 SGX 和 TDX 技术落地,服务于龙蜥社区的用户。Intel 目前提供了以 SGX SDK/PSW/DCAP, TDX DCAP 软件包为代表的 TEE 基础架构支撑,和基于 LibOS 的运行时支持 Gramine。

并以这些为基础支持了其他 LibOS 运行时如蚂蚁的 Occlum,以及更高层次的机密计算应用,例如 SGX 虚拟化及 SGX/TDX 机密容器。另外 Intel 也提供了同态加密软硬件技术 Inte HE Stack,和加解密硬件加速技术 QAT,支持更多样的机密计算使用场景。

—— 完 ——

加入龙蜥社群

加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!

关于龙蜥社区

龙蜥社区(OpenAnolis)是由企业单位、事业单位、社会团体、个人等在共建、共治、共享的基础上组成的非营利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开放、平等、协作、创新的 Linux 上游发行版社区及创新平台。

龙蜥社区成立的短期目标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应对方案,构建一个兼容国际 Linux 主流厂商的社区发行版。中长期目标是探索打造一个面向未来的操作系统,建立统一的开源操作系统生态,孵化创新开源项目,繁荣开源生态。

目前,Anolis OS 8.6 已发布,更多龙蜥自研特性,支持 X86_64 、RISC-V、Arm64、LoongArch 架构,完善适配 Intel、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密和机密计算支持。

欢迎下载: https://openanolis.cn/download

加入我们,一起打造面向未来的开源操作系统! https://openanolis.cn

原文链接:https://click.aliyun.com/m/1000356425/

本文为阿里云原创内容,未经允许不得转载。

技术门槛高?来看 Intel 机密计算技术在龙蜥社区的实践 | 龙蜥技术的更多相关文章

  1. 支付宝AR实景红包上线不久即遭破解,官方已提高技术门槛

    临近春节,阿里巴巴和腾讯的红包大战可谓下足功夫,上周支付宝推出了AR实景红包,该玩法基于"LBS+AR+红包"的方式,类似与今年火爆全球的AR手游Pekomon Go ,只不过这次 ...

  2. Mixed Reality-宁波市VR/AR技术应用高研班总结

    年,全球AR与VR市场规模将达到1500亿美元,而根据市场研究机构BI Intelligence的统计,2020年仅头戴式VR硬件市场规模将达到28亿美元,未来5年复合增长率超过100%.本次培训从V ...

  3. 技术干货:实时视频直播首屏耗时400ms内的优化实践

    本文由“逆流的鱼yuiop”原创分享于“何俊林”公众号,感谢作者的无私分享. 1.引言 直播行业的竞争越来越激烈,进过2018年这波洗牌后,已经度过了蛮荒暴力期,剩下的都是在不断追求体验.最近正好在做 ...

  4. 腾讯技术分享:Android版手机QQ的缓存监控与优化实践

    本文内容整理自公众号腾讯Bugly,感谢原作者的分享. 1.问题背景 对于Android应用来说,内存向来是比较重要的性能指标.内存占用过高,会影响应用的流畅度,甚至引发OOM,非常影响用户体验.因此 ...

  5. 【大数据和云计算技术社区】分库分表技术演进&最佳实践笔记

    1.需求背景 移动互联网时代,海量的用户每天产生海量的数量,这些海量数据远不是一张表能Hold住的.比如 用户表:支付宝8亿,微信10亿.CITIC对公140万,对私8700万. 订单表:美团每天几千 ...

  6. 个人作业——软件工程实践总结&个人技术博客

    一. 回望 (1)对比开篇博客你对课程目标和期待,"希望通过实践锻炼,增强软件工程专业的能力和就业竞争力",对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪 ...

  7. MSF MS11-050/10-087/Adobe攻击实践及内存保护技术

    MSF MS11-050/10-087/Adobe攻击实践及内存保护技术 内存攻击指的是攻击者利用软件安全漏洞,构造恶意输入导致软件在处理输入数据时出现非预期错误,将输入数据写入内存中的某些特定敏感位 ...

  8. 高性能高可用的微服务框架TarsGo的腾讯实践

    conference/2.3 高性能高可用的微服务框架TarsGo的腾讯实践 - 陈明杰.pdf at master · gopherchina/conferencehttps://github.co ...

  9. PLUTO平台是由美林数据技术股份有限公司下属西安交大美林数据挖掘研究中心自主研发的一款基于云计算技术架构的数据挖掘产品,产品设计严格遵循国际数据挖掘标准CRISP-DM(跨行业数据挖掘过程标准),具备完备的数据准备、模型构建、模型评估、模型管理、海量数据处理和高纬数据可视化分析能力。

    http://www.meritdata.com.cn/article/90 PLUTO平台是由美林数据技术股份有限公司下属西安交大美林数据挖掘研究中心自主研发的一款基于云计算技术架构的数据挖掘产品, ...

  10. 开源大数据技术专场(上午):Spark、HBase、JStorm应用与实践

    16日上午9点,2016云栖大会“开源大数据技术专场” (全天)在阿里云技术专家封神的主持下开启.通过封神了解到,在上午的专场中,阿里云高级技术专家无谓.阿里云技术专家封神.阿里巴巴中间件技术部高级技 ...

随机推荐

  1. 【深度学习】批量归一化 BatchNormalization

    一.背景       机器学习的本质是对物理世界进行建模,做的就是拟合数据分布.      但是在模型训练过程中,神经网络参数不断更新,导数中间层的数据分布频繁地变化(内部协变量偏移),不利于网络参数 ...

  2. 记录--优雅解决uniapp微信小程序右上角胶囊菜单覆盖问题

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 大家好,今天聊一下在做uniapp多端适配项目,需要用到自定义导航时,如何解决状态栏塌陷及导航栏安全区域多端适配问题,下文只针对H5 ...

  3. 记录--对于$off,Exclude 和 Extract的一点理解

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.typescript 高阶类型 Exclude 和 Extract Exclude<T, U> TypeScript 2. ...

  4. 记录--这样封装列表 hooks,一天可以开发 20 个页面

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 这样封装列表 hooks,一天可以开发 20 个页面 前言 在做移动端的需求时,我们经常会开发一些列表页,这些列表页大多数有着相似的功能: ...

  5. rnacos v0.1.6版本发布

    rnacos是一个用 rust重新实现的nacos. rnacos比java实现的nacos更轻量.快速.稳定:合适在开发.测试.受资限服务等环境平替nacos服务使用. rnacos v0.1.6 ...

  6. Spring Cloud导入Spring Boot项目当作子模块微服务IDEA不识别子module问题

    1.在父工程下面引入module. <modules> <module>study-design-mode</module> </modules> 2. ...

  7. KingbaseES KWR中等待事件分析案例

    背景 昨天有现场同事碰到了一个现象,一条简单的update语句运行缓慢.单独运行没有问题,在特定时间运行就会非常缓慢,怀疑是业务系统特殊逻辑导致数据库有阻塞引发的update语句慢的现象.故此现场同事 ...

  8. C++设计模式 - 工厂方法(Factory Method)

    对象创建模式 通过"对象创建"模式绕开new ,来避免对象创建( new )过程中所导致的紧耦合(依赖具体类) , 从而支持对象创建的稳定.它是接口抽象之后的第一步工作. 典型模式 ...

  9. #分治NTT#CF1218E Product Tuples

    Codeforces 用 OGF 表示 \(F(B,x)\) 就是 \[\prod_{i=1}^n(1+(q-a_i)x) \] 直接分治 NTT 把 \([x^k]\) 也就是这一位的系数求出来就可 ...

  10. #并查集,线性筛#nssl 1470 X

    分析 显然答案就是\(2^{连通块个数}-2\), 将每个数的质数所在的集合合并, 最后判断连通块个数即可(线性筛少了个等号改了半天QWQ) 代码 #include <cstdio> #i ...