百度开源Mesa TEE通用安全计算平台介绍。

Posted 狂奔的乌龟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了百度开源Mesa TEE通用安全计算平台介绍。相关的知识,希望对你有一定的参考价值。

在Rust SGX SDK、MesaLock Linux、MesaLink、MesaPy等子项目相继开源后,多方瞩目的下一代安全计算平台MesaTEE开源在https://github.com/mesalock-linux/mesatee,开源许可为Apache 2.0。

MesaTEE是全球首个通用安全计算平台(Universal Secure Computing,简称USC)。它为对安全和隐私有强诉求的场景提供了下一代通用安全计算能力,使得敏感数据即便在企业外环境和离岸场景下也能安全受控的流通和处理,而不会被泄漏或者滥用。这在全球关注隐私的今天格外重要,使得很多大数据业务成为可能。同时,由于USC/MesaTEE天生的弱中心架构,也使得它和区块链形成完美的互补,填补了区块链急缺的高性能隐私数据处理能力。

MesaTEE综合采用三项核心安全技术,包括百度安全实验室提出的混合内存安全技术(Hybrid Memory Safety与Non-bypassable Security Paradigm),机密计算技术(Confidential Computing,如Intel SGX),以及可信计算技术(如TPM),构建了完整的FaaS通用计算框架,提供了严密而实用的隐私和安全保障能力。与传统基于密码学的多方安全计算或全同态加密技术相比,USC/MesaTEE性能一般会快百倍以上,而且编程模式与传统编程一致,适合普通程序员快速上手进行应用。后继版本也会支持MesaPy(百度安全实验室推出的内存安全的Python)等安全语言,进一步降低开发门槛。

背景介绍

大数据分析、机器学习、云/边缘计算和区块链等新兴技术正在以前所未有的速度带动社会的发展,但同时也带来了各种新的隐私和安全问题:在公有云和区块链上,医疗健康和财务记录等敏感数据可能会被不可信的程序分析处理,造成隐私泄露;在机构内数据交换时,不同类别机密信息可能跨越合规许可边界,落入恶意使用者之手;离岸数据供应链中各种隐私失控事件也层出不穷,给各家企业造成了经济、法律和名誉的冲击。

除了数据隐私,机器学习模型本身的保护也亟待解决——模型一旦泄露,攻击者可以盗用知识产权,或利用模型的弱点轻松发起白盒攻击。想象一下如果我们的自动驾驶模型或者智能安防模型的弱点被攻击者掌握,后果让人不寒而栗。

面对所有这些风险情景,我们迫切需要一种可信赖且安全的机制,保障商业过程中的数据安全可控,使我们能够在不完全可信的环境中依然能确保隐私数据和计算模型不被泄漏或滥用,同时最大程度的提供功能、性能、兼容性和灵活性的支持。MesaTEE正是基于这些出发点进行的设计与开发,通过提供完整的“通用安全计算”软件栈(Universal Secure Computing, USC),帮助大数据和AI产业提供下一代数据隐私和安全解决方案。

赋能多场景应用,MesaTEE护航云上数据安全



如图所示,MesaTEE通过提供可信且安全的隔离执行计算环境,重新定义了未来的大数据商业模式。即使客户端和服务/平台提供商不完全相互信任,也可以有效地保护数据或模型的机密性和完整性。同时,MesaTEE大大简化了可信计算基础(TCB)、信任边界、和信任模型复杂度,让整个软件栈的审计和验证变得实际可操作。

截至目前,MesaTEE已经和主流云计算/区块链/芯片厂商以及高校/研究机构深入合作,综合推进硬件TEE、软件内存安全、和应用丰富强大的计算服务,打造国际安全且灵活通用的安全计算服务框架。同时发布了多款基于MesaTEE的安全计算解决方案,包括金融联合建模平台、可信身份认证等。除此之外,蚂蚁金服(Occlum),Ericsson、Visa、Chain、Ramp、Enigma、OasisLab、Tracer、MobileCoin、能链、秘猿等项目已经在开源社区中采纳或者贡献。金融和区块链行业需求异常强烈,已有累计估值数亿美元的区块链项目采纳。

MesaTEE底层将继续保持Rust-SGX生态系统独一无二的可用性、领先性和前瞻性,在此基础上进一步完善建设基于TPM/TrustZone/SEV等跨多种可信基的可信计算生态系统。而在框架层面,则会进一步完善功能组件,全面支持保障云计算、大数据、AI计算等场景的安全性。MesaTEE将坚持以安全性为主要目标,丰富开源生态基础库和主要功能组件,增强开源社区活跃,在Apache组织中吸引更多合作伙伴加入生态,共建社区。通过开源社区的会议、刊物等大力推广Rust-SGX/TPM/TrustZone生态系统和其独特的安全理念,推进MesaTEE可信安全计算服务典型应用落地和合规资质层面布局,凸显在同类产品中的安全,引领生态的健康持续发展。

秉承“有AI,更安全”的使命,百度安全始终倡导通过新一代技术研发与开源,实现对安全问题的快速响应和有效对抗。百度安全于2018年将首创的七大技术——KARMA系统自适应热修复、OpenRASP下一代云端安全防护系统、MesaLock Linux内存安全操作系统、MesaLink TLS下一代安全通信库、AdvBox对抗样本工具箱、MesaTEE下一代可信安全计算服务、HugeGraph大规模图数据库——开源汇成AI安全“七种武器”,全面解决云管端以及大数据和算法层面的一系列安全风险问题,实现由传统安全时代的强管理向AI时代的强技术支撑下的核心管理转变,全面应对AI时代下层出不穷的安全挑战。未来,百度安全也将持续倡导开源文化,打造AI安全时代的开源生态,保持与知名开源社区的紧密联系与合作,打破技术壁垒,积极拥抱开源。

技术优势

内存安全

“MesaTEE”源自“Memory Safe TEE”。虽然各类硬件TEE(例如Intel SGX)已经提供了强大的可信安全计算基础,他们并不保证里面运行软件的内存安全性。诸如use after free、double free、buffer overflow等内存安全问题为攻击者提供了侵入TEE的可乘之机。传统的形式化验证方案极为耗费时间和人力,例如最经典的seL4验证,至少需要消耗8人年——而且任何改动都要再花同样量级的开销来重新验证。这对需要不停往前迭代、增删功能的实际软件栈而言是很难接受的。

因此,通过Rust这样的内存安全编程语言重构系统成为了更为实际的选择。这种编译时即保证内存安全的方案省去了运行时检查内存安全问题的烦恼,增量迭代时也能延续内存安全特性,省却了昂贵的形式化证明。同时,由于绝大多数检查发生在编译时,运行时极为高效,并不会牺牲性能(Rust性能和C/C++基本无异)。

不过,完全将所有组件用Rust重写也不是简单的任务。很多时候Rust开发的内存安全的组件需要和C/C++等非内存安全组件并存。因此MesaTEE努力遵循以下混合内存安全三原则:

隔离并模块化由非内存安全代码编写的组件,并最小化其代码量。

由非内存安全代码编写的组件不应减弱安全模块的安全性,尤其是公共 API 和公共数据结构。

由非内存安全代码编写的组件需清晰可辨识并且易于更新。

易审计的不可绕过检查(Non-bypassable Security)

内存安全一旦有所保障,程序的控制流和数据流便有了完整性保障基础。在此基础上,MesaTEE采用了“不可绕过范式”(Non-bypassable Security Paradigm),约束所有控制流和数据流必须经过关键检查点,显著减轻了审计和访问控制的难度,极大缩小了攻击面,归约了访问控制策略的部署,也让以此为基础的安全形式化验证变得实际可行。

加密隔离和远程验证

传统云计算和区块链无法保证数据和代码的完整性和保密性,这也成为了不少用户应用采纳这些方案的阻碍。MesaTEE很好地解决了这一难题。通过利用包括Intel SGX在内的TEE,安全地将云用户的数据和代码执行隔离、加密起来,即使云计算环境里的操作系统、虚拟机管理器(VMM/hypervisor)、或相邻的其他虚拟机被攻破或作恶,这些数据代码的完整性和保密性都能得到保障。用户也可以通过远程地验证执行环境,确保远程执行的代码是否符合预期。值得注意的是,MesaTEE将远程验证直接融入在了端到端加密通信里,在建立加密数据传输通道的同时,确保传输目的地即是期望的环境。结合前述内存安全和不可绕过检查,MesaTEE从外至内、由硬到软,将攻击者突防的可能性缩小到极限,而且保证了数据一旦离手,无论传输、远程计算、远程存储,一直得到可验证的隔离与加密保护。

灵活可配置的安全等级

MesaTEE兼容包括TPM、Intel SGX/MKTME、AMD SEV/SME、ARM TrustZone、乃至Risc-V Keystone、FPGA等广泛的TEE平台。这一方面提供了广谱的运行环境支持,也能为不同安全等级需求的场景提供不同宽松度的硬件依赖要求。特别地,MesaTEE划分了五个档次的安全支持等级:

  • Level 1:没有信任和安全保护的传统模式。

  • Level 2:完全基于软件(SoftTrust)建立信任,通过环境因子采集度量、白盒加密隐藏密钥、反调试、混淆等方案提供软件级的强对抗能力。通过MesaLock Linux(用Rust/Go等内存安全语言重构用户空间、缩小内核攻击面的Linux发行版)和不可绕过的强访问控制(Non-bypassable Gateway,缩写NBGW)相结合,可以进一步增强安全性。

  • Level 3:增加安全可信的启动链验证(例如基于TPM、TrustZone的安全启动)。用户同样可以增加MesaLock Linux和NBGW来增强动态安全性。对于多租户场景,可以在轻量级安全hypervisor(例如Kata Containers)的帮助下提供更进一步的隔离。

  • Level 4:进一步通过物理内存自动加密(Intel MKTME或AMD SEV),抵御冷启动攻击(cold boot attack)和大多数基于软件的攻击。

  • Level 5:利用多重远程验证(Remote Attestation)及Secure Enclave技术(如Intel SGX)提供极强的隔离和加密。MesaTEE通过嵌套TPM和MesaLock Linux,以确保外部操作系统也是可靠和安全的,抵御针对Enclave技术的侧信道攻击(side channel attack)。

功能丰富、性能优异

MesaTEE在提供极致安全的同时并未舍弃功能和性能。MesaTEE为各类TEE平台提供了统一的“函数即服务”(Function as a Service,缩写FaaS)抽象API,开发者可以轻松地开发可迁移的TEE程序;在此基础上,MesaTEE还封装了一层WebAssembly/Python抽象层,让开发门槛和成本进一步降低,提升了开发灵活度。不仅如此,MesaTEE还预置了大部分常见计算模型,对于加解密、证书管理、隐私保护的集合操作、线性回归、GBDT、深度学习等等众多大数据分析和机器学习场景,直接调用MesaTEE已经提供好的接口即可胜任。

而MesaTEE的性能表现也非常出色,举例如下(以下性能数据采集自Intel NUC8I7HVK Mini PC,测试均发生在MesaTEE最高安全级Intel SGX模式下,数据和计算始终隔离且加密):

TCP之上的额外turn-around开销缩小到了极致,仅为3ms。这里面已经包含了加密通道的秘钥协商、数据加解密、远程验证、负载均衡分配等操作。

每秒可以执行1万次RSA签名,或者500万次AES加解密。相比之下,某传统HSM只能达到每秒1200次RSA签名,或者2000次AES加解密。

在10万条数据上测试GBDT预测,MesaTEE SGX可比单线程XGBoost快4倍。

运行ResNet 50神经网络模型与没有MesaTEE SGX保护下相比,仅增加了20%的时间开销。

场景案例

区块链和云服务


除了单独提供安全计算服务,MesaTEE也非常适合在区块链和云计算的场景下提供通用安全计算应用。如图所示,在MesaTEE保护下,我们可以跨越不同的网络环境构建区块链,从而安全地利用各种计算资源。无论数据/代码何时流入,无论何时处理数据/代码,无论底层平台如何,数据/代码所有者始终可以确保机密性和完整性保护。如此一来,数据隐私和完整性等区块链和云计算用户的痛点都得到了妥善解决。

安全多方计算


在跨部门或跨公司数据协作场景,相互间的隐私需求是协作的首要条件,安全多方计算(SMC)因而变得越来越重要。传统的基于密码学的SMC有诸多局限性,而使用MesaTEE完成的安全多方计算则提供了最佳解决方案:

基于密码学的SMC场景一旦开始运行,计算成员和算法已经确定,很难动态变化和修改,缺少灵活性;MesaTEE直接在保护环境中对明文进行可信和安全的计算,因此不会施加这种限制。

基于密码学的SMC场景需要每个参与方两两互信并进行数据交互,导致很大的延迟和吞吐开销;MesaTEE用可信节点替代多方互信,计算参与者只需与中央可信节点交换数据即可,极大消除了不必要的通信,大大提高效率和性能。

MesaTEE在多方计算时到底有多高效呢?上图以隐私保护的集合求交(private set intersection,缩写PSI)为例,横轴是求交集合的大小,纵轴是求交所需时间。一些前沿的密码学方案很快就发生了超时,即便不超时的方案性能也只有MesaTEE的一半甚至三分之一。事实上,参与者越多,要分析的数据集越大,与传统方法相比,MesaTEE会显示出更大的优势,可以解决密码学SMC无法完成的复杂计算场景问题。

安全Key Vault和HSM

MesaTEE原生提供了高安全等级的秘钥保护和加解密操作,可以提供类比传统Key Vault和HSM的功能,安全地存储和控制对密钥/证书的访问。前面提到MesaTEE即便在SGX里也可以做到每秒1万次RSA签名,或者500万次AES加解密,远胜一些传统HSM(每秒1200次RSA签名,或者2000次AES加解密)。

安全的AI计算


MesaTEE已经在所有安全级别(包括Level 5的Intel SGX)中支持了GBDT,线性回归以及神经网络。特别地,主流的AI框架(例如Tensorflow,Caffe等)生成的CNN / RNN模型都可以方便地转换并加载到MesaTEE里,以保护模型和数据不受恶意攻击的影响,并且可以同时支持模型推理和训练。

性能对于AI应用程序至关重要,因此MesaTEE还进行了大量优化以提高AI模型的执行效率。上图显示了在MesaTEE最高安全等级(Intel SGX)中运行ResNet 50与在正常情况下运行相比的时间消耗——仅增加了20%的开销。通过这一点有限的额外开销,没有任何其他安全解决方案可以提供与MesaTEE同等级的机密性和完整性保障。

强大的开放生态

百度首席安全科学家韦韬博士在和Intel副总裁Lorie Wigle在2018年联手公布MesaTEE时提到:“Intel SGX是自通用计算机出现以来系统安全领域最重要的硬件技术架构变革之一,通过极大的缩短信任链使得网络空间的信任依赖变得安全可靠;而百度安全首创的Hybrid Memory Safety技术则是第一次在软件架构上保障了实用系统的内存安全。MesaTEE SGX是两者的结合,将大大延展互联网业务的信任边界,是云隐私计算、隐私机器学习、下一代区块链等多种新型互联网业务的基石,对于AI时代的云服务有着战略性意义。”

MesaTEE旨在通过开源开放推动通用安全计算生态发展,为大数据和AI带来的技术生产力革命提供信任保障的基础支持,充分解决跨部门/公司之间的数据交换或多方计算,让金融、账号、医疗等敏感业务享受到隐私保护的区块链/云服务,为无人驾驶等与生命财产息息相关的业务保驾护航。MesaTEE目前已经和主流云计算/区块链/芯片厂商以及高校/研究机构深入合作,综合推进硬件TEE、软件内存安全、和应用丰富强大的计算服务,打造国际安全且灵活通用的安全计算服务框架。MesaTEE的开源将极大的加速下一代大数据商业应用的发展,对于推动AI业务在各行各业中落地也有着重要意义。

更多内容请移步:

MesaTEE项目主页:https://mesatee.org

MesaTEE开源:https://github.com/mesalock-linux/mesatee

软件架构

在北京举行的2020百度云智峰会ABC SUMMIT上,百度与英特尔联合发布了《机密计算助力深度学习,安全及能力兼得》白皮书。首次详细解读了基于英特尔SGX软件防护扩展技术,MesaTEE安全计算平台与百度飞桨开源深度学习平台(PaddlePaddle)的联动赋能,展现了为深度学习定制的机密计算能力所带来巨大前景和可能。

作为飞桨在自身生态系统内实现机密计算的硬件解决方案核心服务框架,MesaTEE于2018年9月由百度安全联手英特尔正式对外发布。其基于英特尔SGX技术,使用内存安全的Rust语言开发,旨在构建内存安全的可信计算平台。在隐私保护的前提下,打破产业链上下游既有的数据壁垒,有效解决数据流通与协作过程中的合法合规、数据安全问题,充分激发数据要素价值,实现数据“价值”与“知识”开放与共享,真正做到“数据可用不可见”。

不论是对于飞桨而言还是开发者来说,利用MesaTEE来实现硬件级的机密深度学习能力都有着巨大的优势:

  • 首先,在SGX技术的支持下,飞桨得以在TEE环境中的运行。当搭载即将推出的全新的第三代英特尔至强可扩展处理器时,其有效的隔离内存容量可以极大的提高;而硬件级解决方案也排除了网络限制,避免了网络故障导致大型训练任务中断的风险。

  • 其次,飞桨与TEE环境的结合使得前者自然成为了一个巨大的分布式可信机密计算环境,这让使用兼容英特尔处理器的用户在使用时无需付出额外成本,减少了对于购置专用加密设备的投入。

  • 第三,MesaTEE也提供了更为便捷的接入流程。开发者最快仅需3步、在3分钟内即可完成系统的安装和运行。而良好的兼容性,也使其能够支持包括SCONE、Occlum和Graphene在内的大多数SGX TEE容器。
    -
    更具创新性的意义还在于,MesaTEE也是一个多方任务协作平台,可通过任务方式管理合作流程,确保执行流程不受外界干扰。在确保信息安全的前提下,使各个参与方公平地完成任务协作,达成共识后获取各自所需的计算结果或模型。目前,在TEE环境中运行的飞桨深度学习平台已为多个领域提供了机密计算的典型示例,打破了数据提供方、建模方与使用方之间彼此割裂的隔阂障碍。


例如在医疗影像筛查方面,其便可在充分保护病患隐私的同时,快速实现从特征提取到整体图像识别的完整一体化识别任务。大幅提升医疗影像识别的效率和精准度,加快患者诊疗速度,缓解临床医生工作压力,并为医疗机构、尤其是医疗资源受限和医疗水平偏低的基层医院提供有效的数据支撑和辅助诊断工具。而在金融风险控制方面,其则有助于帮助金融机构安全地与众多数据源合作,获取更多维的用户画像数据,打造更健壮的信贷风险评估模式。

面对已然到来的智能经济时代,数据已经成为企业的核心资产,个人信息保护问题也正为更多人所关注。基于英特尔SGX技术开发的MesaTEE安全计算平台与飞桨深度学习平台的联动,不仅将更好地实现性能与安全的统一,也将大大延展互联网信任的技术边界,孵化和构建更安全的AI生态。

目前,MesaTEE的社区版已正式成为Apache基金会的孵化器项目(Apache Teaclave),其将有助于汇集更多力量进一步丰富内存安全的SGX技术生态。而随着飞桨深度学习平台即将进入2.0时代,其也将在TEE环境中完整实现其已有的相关功能,并提供musl的预编译版本。

未来,百度也将与英特尔持续加强合作,不断推动机密计算能力与安全计算平台的应用落地,为“新基建”格局下的产业发展贡献力量。

以上是关于百度开源Mesa TEE通用安全计算平台介绍。的主要内容,如果未能解决你的问题,请参考以下文章

Mesa 3D 计算机图形库

快速了解什么是可信执行环境TEE技术

Linux OpenGL 实践篇-1

重磅!蚂蚁开源可信隐私计算框架“隐语”,主流技术灵活组装开发者友好分层设计...

百度开源呼叫中心系统

TrustZone——开源库—Linaro—OP-TEE