随着网络与计算业务的疾速倒退,数据成为数字经济的要害生产因素,如何高质量开掘数据价值,构建平安、合规、可信的数据流通,成为推动数字经济衰弱倒退的要害。此外,依据我国个人信息保护法、欧盟通用数据保护条例 GDPR 等的要求能够看出,数据隐衷监管爱护的范畴在扩充,爱护力度日益加强。因而,对要害数据和业务进行平安爱护,不仅是技术挑战,也是满足平安合规的必要条件。
以后爱护数据的通行计划通常作用于动态存储或网络传输状态的数据,难以无效爱护正在被应用的数据,因而,隐衷计算技术应运而生。
作为隐衷计算的重要分支,秘密计算是一种利用硬件可信执行环境 (TrustedExecution Environment, TEE) 爱护应用中数据的技术 [1]。如下图所示,在非平安世界(Rich Execution Environment,REE)中,基于硬件隔离出的 TEE 环境就像是一个黑盒子,可避免内部(包含操作系统、特权用户、恶意程序等)对 TEE 内应用中的应用程序和数据进行未经受权的拜访或篡改,从而实现数据在第三方平台的“可用而不可见”,打消数据上云的平安顾虑,推动数据安全流通。
秘密计算痛点
以后业界支流处理器 / 芯片均实现了各自的秘密计算技术,例如 ARMTrustZone、CCA,Intel SGX、TDX,AMD SEV 等;此外,基于 PCIe TDISP 个性,GPU、DPU 等芯片也在踊跃构建秘密计算环境,如 Nvidia H100GPU,Nvidia Bluefield、AMD smartNIC 系列 DPU 等。综合来看,各种 TEE 技术的外围因素是提供硬件隔离运行环境,并依靠信赖根提供度量、内存加密等平安能力。
因为各处理器架构的 TEE 设计思路、实现形式不同,导致各家 SDK 接口迥异、开发流程简单,造成开发秘密计算利用开发难度高、可移植性差、生态隔离。对于利用开发者来说,其开发的平安利用与体系结构强绑定,例如基于 SGX SDK 开发的利用就很难移植到 ARM TrustZone 上,因为平安 OS SDK 提供的接口和 SGX SDK 存在很大差别。
secGear 秘密计算对立开发框架
综上可知,业界秘密计算技术品种繁多,SDK 也各不相同,接口简单,开发艰难,不同 TEE 间利用生态隔离,给秘密计算利用开发者带来了较高的开发、保护老本,影响秘密计算生态的倒退。openEulersecGear 秘密计算对立开发框架,致力于兼容业界支流 TEE,屏蔽 TEE 差别,对开发者提供对立、繁难的开发接口,实现不同架构共源码,使开发者聚焦业务,升高秘密计算利用开发保护老本,买通各 TEE 利用生态,助力秘密计算生态建设。
secGear 从逻辑上分为三层,如下图所示。
- Base Layer:秘密计算 SDK 对立层,屏蔽 TEE 及 SDK 差别,实现不同架构共源码。
- MiddlewareLayer:通用组件层,秘密计算软件货架,无需从头造轮子,帮忙用户疾速构建秘密计算解决方案。
- Server Layer:秘密计算服务层,提供典型场景秘密计算解决方案。
secGear 遵循木兰宽松许可证(MulanPSL-2.0 License)[2],开发者可基于 secGear 奉献开源中间件或解决方案,也能够基于 secGear 构建商用解决方案。目前除了社区开源的 MindSpore 纵向联邦秘密计算解决方案,也不乏基于 secGear 的客户解决方案,如 GaussDB 全密态数据库,BJCA 明码模块、openLookeng 联邦 SQL 等。
典型利用场景
本章节介绍几个基于 secGear 的理论业务场景解决方案,便于大家学习了解、借鉴,进而联合本身业务构建对应的秘密计算解决方案。
BJCA 基于 TEE 的明码模块
在政策和业务的双驱动下,明码利用保障基础设施始终在向虚拟化演进,随着业务上云,明码服务撑持也须要构建全新的明码交付模式,实现明码、云服务与业务利用的交融,因而数字认证(BJCA)推出基于 TEE 的明码模块,数字认证既能够利用鲲鹏 TEE 环境构建合规的明码计算模块,撑持明码云服务平台,同时也能够基于鲲鹏主机构建“秘密计算平台”,为云计算、隐衷计算、边缘计算等各类场景提供“高速泛在、弹性部署、灵便调度”的明码服务撑持。基于鲲鹏处理器的内生式明码模块曾经成为明码行业改革型的翻新计划,并作为内生可信明码计算新起点 [3]。
传统明码模块中算法协定以及解决的数据是隐衷数据,可基于 TEE 爱护。如图所示,基于 secGear 秘密计算开发框架将明码模块拆分成两局部:治理服务、算法协定。
- 治理服务:运行在 REE 侧,负责对外提供明码服务,转发申请到 TEE 中解决。
- 算法协定:运行在 TEE 侧,负责用户数据加解密等解决。
因为明码服务可能存在高并发、大数据申请,此时 REE 与 TEE 存在频繁交互以及大数据拷贝,会导致性能直线降落,针对相似场景可应用 secGear 零切换个性优化,缩小调用切换及数据拷贝次数,实现性能倍增。
GaussDB 基于 TEE 的全密态数据库
云数据库俨然已成为数据库业务将来重要的增长点,绝大多数的传统数据库服务厂商正在减速提供更优质的云数据库服务。然而云数据库所面临的危险相较于传统数据库更简单多样,无论是应用程序破绽、系统配置谬误,还是歹意管理员都可能对数据安全与隐衷爱护造成微小危险。
云数据库的部署网络由“公有环境”向“凋谢环境”转变,零碎运维治理角色被拆分为业务管理员和运维管理员。业务管理员领有业务管理的权限,属于企业业务方,而运维管理员属于云服务提供商。数据库运维管理员尽管被定义成零碎运维治理,其理论仍旧享有对数据的齐全应用权限,通过运维管理权限或提权来拜访数据甚至篡改数据;再者,因为开放式的环境和网络边界的模糊化,用户数据在整个业务流程中被更充沛的裸露给攻击者,无论是传输、存储、运维还是运行态,都有可能蒙受来自攻击者的攻打。因而对于云数据库场景,如何解决第三方可信问题,如何更加牢靠的爱护数据安全相比传统数据库面临着更大挑战,其中数据安全、隐衷不泄露是整个云数据库面临的首要平安挑战。
面对上述挑战,基于 TEE 的 GaussDB 全密态数据库的设计思路是:用户本人持有数据加解密密钥,数据以密文状态存在于数据库服务侧的整个生命周期过程中,并在数据库服务端 TEE 内实现查问运算。
如图所示,全密态数据库的特点如下:
- 数据文件以密文模式存储,不存储密钥明文信息。
- DB 数据密钥保留在客户端。
- 客户端发动查问申请时,在服务端 REE 侧执行密态 SQL 语法失去相干密文记录,送入 TEE 中。
- 客户端通过 secGear 平安通道将 DB 数据密钥加密传输到服务端 TEE 中,在 TEE 中解密失去 DB 数据密钥,用 DB 数据密钥将密文记录解密失去明文记录,执行 SQL 语句,失去查问后果,再将 DB 数据密钥加密后的查问后果发送给客户端。
其中步骤 3 在数据库高并发申请场景下,会频繁触发 REE-TEE 之间调用以及大量的数据传输,导致性能直线降落,通过 secGear 零切换个性优化,缩小调用切换及数据拷贝次数,实现性能倍增。
openLooKeng 基于 TEE 的联邦 SQL
openLooKeng 联邦 SQL 是跨数据中心查问的一种,典型场景如下,有三个数据中心:核心数据中心 A,边缘数据中心 B 和边缘数据中心 C。openLooKeng 集群部署在三个数据中心中,当数据中心 A 收到一次跨域查问申请时,会下发执行打算到各数据中心,在边缘数据中心 B 和 C 的 openLookeng 集群实现计算后,通过网络将后果传递给数据中心 A 中的 openLookeng 集群实现聚合计算。在以上计划中,计算结果在不同数据中心的 openLookeng 集群之间传递,防止了网络带宽有余,肯定水平上解决了跨域查问问题。然而计算结果是从原始数据计算失去的,可能带有敏感信息,导致数据出域存在肯定平安和合规危险。怎么爱护聚合计算过程中边缘数据中心的计算结果,在核心数据中心实现“可用而不可见”呢?这里咱们一起看看与秘密计算联合的解决方案。其根本思维是:数据中心 A 中,openLookeng 集群将聚合计算逻辑及算子拆分出独立的模块,部署到鲲鹏 TEE 环境上中;其余边缘数据中心的计算结果通过平安通道传输到数据中心 A 的 TEE 中;所有数据最终在 TEE 中实现聚合计算,从而爱护聚合计算过程中边缘数据中心的计算结果不会被数据中心 A 上 REE 侧特权程序或恶意程序获取、篡改。
如图所示,具体查问流程如下:
- 用户在数据中心 A 下发跨域查问申请,openLooKeng 的 Coordinator 依据查问 SQL 及数据源散布,拆解下发执行打算到本地工作节点以及边缘数据中心的 coordinator,边缘数据中心的 coordinator 再下发到本地工作节点。
- 各工作节点执行打算,失去本地计算结果。
- 边缘数据中心通过 secGear 平安通道将本地计算结果加密后经网络传到数据中心 A 的 REE 侧,并直达到 TEE 中,在 TEE 中解密计算结果。
- 数据中心 A 在 TEE 中对数据中心 A、B、C 的计算结果执行聚合计算,失去最终执行后果,并返回给用户。
其中步骤 4,在存在大量查问申请时,会频繁触发 REE-TEE 调用,并且有大量数据的拷贝,导致性能直线降落。通过 secGear 零切换个性优化,缩小调用切换及数据拷贝次数,实现性能倍增。
MindSpore 基于 TEE 的纵向联邦特色爱护
纵向联邦学习是联邦学习的一个重要分支,当不同的参与方领有来自雷同一批用户但属性不同的数据时,能够利用纵向联邦学习进行协同训练,计划流程如图所示。
- 领有属性的参与方(Follower 方)都会持有一个底层网络,参与方属性输出底层网络失去两头后果,再将两头后果发送给领有标签的参与方(Leader 方)。
- Leader 方应用各参与方的两头后果和标签来训练顶层网络,再将计算失去的梯度回传给各参与方来训练底层网络。
此计划防止了 Follower 方间接上传本人的原始数据,爱护原始数据不出域,肯定水平上爱护了隐衷平安。然而,攻击者还是有可能从上传的两头后果反推出用户信息,导致存在隐衷泄露危险。因而咱们须要对训练时出域的两头后果和梯度提供更强的隐衷爱护计划,来满足平安合规要求。
借鉴之前三个场景的平安危险及解决方案能够发现,想要达到两头后果出域后的“可用不可见”,正是秘密计算的“拿手好戏”。基于 TEE 的纵向联邦特色爱护计划如图所示 [4]。
- Follower 方的两头后果通过 secGear 的平安通道加密后传输到 Leader 方,Leader 方非平安世界接管到加密的两头后果后直达到平安世界,在平安世界通过平安通道接口解密。
- 在平安世界中将两头后果输出到联邦拆分层计算模块,实现后果计算。
以上过程中 Follower 方的两头后果明文只存在于平安世界内存中,对 Leader 方来说就是黑盒子,无法访问。
瞻望
2023 年 openEuler secGear 将继续演进,并公布反对零切换、平安通道、近程证实等性能的稳固版本,可用于构建商用的端到端秘密计算解决方案。同时,openEuler 也会继续构建通用的中间件或服务,也期待您的参加奉献,独特推动秘密计算利用生态的倒退。secGear 将判若两人地继续关注 AMD SEV、Intel TDX、ARM CCA 等技术,为打造平安易用的秘密计算对立开发框架而不懈努力。
援用
[1] Confidential Computing Consortium,“A Technical Analysis of Confidential Computing,”: https://confidentialcomputing….
[2] 木兰宽松许可证: http://license.coscl.org.cn/
[3] 数字认证: https://mp.weixin.qq.com/s?\_\_biz=MzA4NDUzMzY2Mw==&chksm=87ed5619b09adf0fe8a509dcee9d7413f3dbd1ec6f39d0d247272c1caf6d754d943be18133af&idx=1&mid=2650554089&sn=5725062bb6a1712c224a2f31d4558d32
[4] Mindspore: https://www.mindspore.cn/federated/docs/zh-CN/master/secure\_vertical\_federated\_learning\_with\_TEE.html