随着网络和计算服务的快速发展,数据成为数字经济的关键生产要素。数字经济健康发展的关键。此外,根据我国《个人信息保护法》和欧盟《通用数据保护条例》GDPR的要求,可以看出数据隐私监管和保护的范围在扩大,保护力度在加大。因此,关键数据和服务的安全保护不仅是技术挑战,也是满足安全合规的必要条件。目前常见的数据保护方案多针对静态存储或网络传输状态的数据,难以对正在使用的数据进行有效保护。因此,隐私计算技术应运而生。机密计算作为隐私计算的一个重要分支,是一种利用硬件可信执行环境(TrustedExecutionEnvironment,TEE)对使用中的数据进行保护的技术[1]。如下图所示,在非安全世界(RichExecutionEnvironment,REE)中,基于硬件隔离的TEE环境就像一个黑盒子,可以阻止外部(包括操作系统、特权用户、恶意程序等).)应用和使用中的数据未经授权可被访问或篡改,使数据在第三方平台“可用但不可见”,消除数据上云安全隐患,促进数据安全流通数据。机密计算痛点目前业界主流处理器/芯片都实现了自己的机密计算技术,如ARMTrustZone、CCA、IntelSGX、TDX、AMDSEV等;此外,基于PCIeTDISP特性,GPU、DPU等芯片也在积极构建机密计算技术。计算环境,如NvidiaH100GPU、NvidiaBluefield、AMDsmartNIC系列DPU等。综合来看,各种TEE技术的核心要素是提供硬件隔离的运行环境,并依靠信任根提供安全能力例如测量和内存加密。由于各处理器架构的TEE设计思路和实现方式不同,各公司的SDK接口差异很大,开发过程复杂,导致机密计算应用开发难度高,可移植性差,生态隔离。对于应用程序开发人员而言,他们开发的安全应用程序与架构紧密绑定。例如,基于SGXSDK开发的应用很难移植到ARMTrustZone,因为安全OSSDK提供的接口与SGXSDK有很大的不同。secGear机密计算统一开发框架综上所述,目前业界机密计算技术种类繁多,SDK也各不相同。接口复杂,开发难度大,不同TEE之间应用生态隔离。维护成本影响机密计算生态的发展。openEulersecGear是一个机密计算统一开发框架,致力于兼容业界主流TEE,屏蔽TEE差异,为开发者提供统一简洁的开发接口,实现不同架构源码通用,让开发者专注在业务上,降低机密计算应用开发和维护成本,打通各TEE的应用生态,助力机密计算生态建设。secGear在逻辑上分为三层,如下图所示。BaseLayer:机密计算SDK统一层,屏蔽了TEE和SDK的差异,实现了不同架构的源码通用。MiddlewareLayer:通用组件层,机密计算软件架子,无需重新发明轮子,帮助用户快速构建机密计算解决方案。ServerLayer:机密计算服务层,为典型场景提供机密计算解决方案。secGear遵循MulanPSL-2.0License[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中完成。如图所示,全加密数据库的特点是:数据文件以密文形式存储,不存储关键的明文信息。数据库数据密钥保存在客户端。当客户端发起查询请求时,在服务器REE端执行加密的SQL语法,获取相关密文记录,发送给TEE。客户端将DB数据密钥通过secGear安全通道加密传输给服务端TEE,在TEE中解密得到DB数据密钥,使用DB数据密钥解密密文记录得到明文记录,执行SQLstatement,得到查询结果,然后将查询结果用DBdatakey加密后发送给客户端。第3步,在高并发数据库请求的场景下,会频繁触发REE和TEE之间的调用和大量的数据传输,导致性能线性下降。通过secGear零切换特性的优化,减少调用切换次数和数据拷贝次数,性能提升一倍。基于openLooKengTEE的联邦SQLopenLooKeng联邦SQL是一种跨数据中心查询。典型场景如下。共有三个数据中心:中心数据中心A、边缘数据中心B、边缘数据中心C。openLooKeng集群部署在三个数据中心。当数据中心A收到跨域查询请求时,会向各个数据中心下发执行计划。边缘数据中心B和C的openLookeng集群完成计算后,将结果传递给数据中心A的openLookeng集群完成聚合计算。上述方案中,计算结果在不同数据中心的openLookeng集群之间传输,避免了网络带宽不足,一定程度上解决了跨域查询问题。但计算结果是从原始数据计算而来,其中可能包含敏感信息,导致数据出域时存在一定的安全和合规风险。如何在聚合计算过程中保护边缘数据中心的计算结果,在中心数据中心实现“可用但不可见”?在这里,我们来看看与机密计算相结合的解决方案。基本思路是:在数据中心A,openLookeng集群将聚合计算逻辑和算子拆分成独立的模块,部署在鲲鹏TEE环境中;其他边缘数据中心的计算结果通过安全通道传输到数据中心A。在TEE中;所有数据最终在TEE中聚合计算,从而保护边缘数据中心在聚合计算过程中的计算结果不被数据中心REE侧的特权程序或恶意程序获取和篡改如图所示,具体查询流程如下:用户在数据中心A发送跨域查询请求,openLooKeng的Coordinator拆解发送执行计划给本地工作节点的coordinator和边缘数据中心根据查询SQL和数据源分布。边缘数据中心的协调器将其发送到本地工作节点。每个工作节点执行计划并获取本地计算结果。边缘数据中心通过secGear安全通道对本地的计算结果进行加密,然后通过网络传输到数据中心A的REE侧,再传输到TEE,TEE对计算结果进行解密。数据中心A在TEE中对数据中心A、B、C的计算结果进行聚合计算,得到最终的执行结果返回给用户。第4步,当有大量查询请求时,会频繁触发REE-TEE调用,大量数据被复制,导致性能急剧下降。通过secGear零切换特性的优化,减少调用切换次数和数据拷贝次数,性能提升一倍。MindSpore基于TEE的纵向联合特征保护。纵向联邦学习是联邦学习的一个重要分支。当不同参与者拥有来自同一批次用户但属性不同的数据时,可以使用纵向联邦学习进行协同训练。方案流程如图所示。具有属性的参与者(Followers)会持有一个底层网络,将参与者的属性输入底层网络得到中间结果,再将中间结果发送给带有标签的参与者(Leaders)。Leader方使用每个参与者的中间结果和标签来训练顶层网络,然后将计算出的梯度返回给每个参与者来训练底层网络。该方案避免了Follower直接上传自己的原始数据,保护了原始数据不离开域,一定程度上保护了隐私。但是,攻击者仍然有可能从上传的中间结果中推断出用户信息,从而导致隐私泄露的风险。因此,我们需要对训练过程中的中间结果和域外梯度提供更强的隐私保护方案,以满足安全合规要求。参考前面三种场景的安全风险和解决方案可以发现,中间结果出域后实现“可用不可见”是机密计算的“好戏”。基于TEE的垂直联邦特性保护方案如图[4]所示。Follower方的中间结果通过secGear的安全通道加密后传输给??Leader方。Leader方的非安全世界收到加密后的中间结果后,将其传送到安全世界,通过安全世界的安全通道接口进行解密。在安全世界中,将中间结果输入联邦分裂层计算模块,完成结果计算。上述过程中,follower的中间结果明文只存在于secureworldmemory中,对于leader来说是一个黑匣子,无法访问。展望2023年,openEulersecGear将持续演进,发布稳定版本,支持零切换、安全通道、远程鉴证等功能,可用于构建商用端到端机密计算解决方案。同时,openEuler将持续打造通用中间件或服务,期待您的参与和贡献,共同推动保密计算应用生态的发展。secGear将一如既往地关注AMDSEV、IntelTDX、ARMCCA等技术,为打造安全易用的机密计算统一开发框架而不懈努力。引用[1]机密计算联盟,“机密计算的技术分析”:https://confidentialcomputing....[2]木兰松动许可证:http://license.coscl.org.cn/[3]数字认证:https://mp.weixin.qq.com/s?\_\_biz=MzA4NDUzMzY2Mw==&chksm=87ed5619b09adf0fe8a509dcee9d7413f3dbd1ec6f39d0d247272c18d14333bid&biz2650554089&sn=5725062bb6a1712c224a2f31d4558d32[4]Mindspore:https://www.mindspore.cn/federated/docs/zh-CN/master/secure\_vertical\_federated\_learning\_with\_TEE.html
