对话阿里云安全大牛:从学术、产业、技术三个层面深度了解SGX技术
作者: 日期:2019年12月14日 阅:48,215

最近,阿里云 SGX 应用创意大赛落下帷幕,清华大学 TrustFL 团队以 “基于SGX技术的可靠增强的联邦机器学习” 作品拿下第一名。SGX 与机密计算进一步走进大众的视野。

这一次的比赛是由阿里云、浙江大学网络空间安全学院、阿里巴巴-浙江大学前沿技术联合研究中心联合发起,标志着产业和学术的结合。事实上,一项技术从理论的研究探索,到应用场景的分析,最终产品化为用户所用,离不开学术界和产业界的协作。安全牛记者有幸对阿里云智能首席安全架构师李晓宁与浙江大学网络空间安全研究院周亚金博士进行采访,从机密计算与 SGX 的技术层面、学术界影响与产业的落地和促进三个角度,深入了解机密计算的能力与未来。

什么是机密计算?什么是SGX?

安全牛:首先请介绍一下什么是机密计算?

周亚金:机密计算的意思是在数据进行运算的过程当中,始终要保证数据的安全性,这里的安全性主要是指它的隐私性和完整性。隐私性的意思是指在计算的过程当中数据永远不会泄露;以前传统的做法是通过一些密码学的方法,在密文上直接做运算,但这种方法速度特别慢。英特尔为了解决数据运行时加密问题,在 CPU 层面提供了加密运行环境支持,就是 SGX,全称是 Software Guard Extensions。也就是说通过 SGX 在硬件层面提供了一个加密运行环境,电脑上任何软件,甚至操作系统,都触碰不到可信环境里面的明文内容。所以我们就可以放心地把想要运算的机密内容在这块可信环境里面做明文计算,这样做的优势是速度比较快,同时还能够保证运行在可信环境里的所有数据的安全性。

安全牛: 关于在可信环境中做明文计算是否相当于透明性的计算?

李晓宁:SGX 技术在发布之前,英特尔内部有一个代号是 “Secure Enclave”,意思就是说在今天已有的 X86 环境下单开出一个环境在里面做运算,这个运算是基于明文的,但是剩下的系统是看不到的,所以严格来讲这并不是透明性的计算,反而通过对计算环境的保护,即通过可信执行环境,实现加密计算。但是,这个可信执行环境的位置很重要:英特尔的做法是把它提供在今天 CPU 的硬件里面,通过这个方式在传统的编程模式下开一块飞地出来,把明文计算放在飞地里面;就像银行里面的保险柜,保险柜里面可以放着最关键的信息,这个保险柜是加密的。

安全牛:能这么理解吗:本来要做软件层面提供的东西,现在变成了硬件层面提供了?

周亚金:不能说原来是软件方面提供,可以说是由现代密码学保护的东西,也就是同态计算。但是同态计算的性能慢好几个数量级。

另外有其他类似的运行时环境,包括 ARM 的 TrustZone,但它不能解决运行时数据的机密性问题,它和 SGX 要解决的问题的威胁模型是不一样的。在ARM TrustZone环境中,数据是没有加密的,只是通过一个隔离的办法使得正常软件访问不到这里面的数据,但是数据本身没有加密,这种情况下它就不能抵御硬件嗅探等更高的威胁。

然而,SGX 能比较好地解决运行时数据的安全性问题,同时还能提供非常灵活的编程模型,从而让用户自己去定制化解决需求。它和 TPM 不一样,目前应用的 TPM 大多只能使用预定好操作、加密算法,并且也只能提供系统加载时候的镜像完整性校验。它不提供运行时数据完整性保护,也不提供数据隐私性保护。而 SGX 提供的是运行时环境和数据的安全性保证、灵活的编程模型。

: 机密计算通过在硬件中创建了一块可信环境的计算空间,保障了安全的同时,也提升了计算的安全性。英特尔通过在硬件中提供的Secure Guard Extensions,即 SGX,达成了机密计算的要求。

为什么需要机密计算?

安全牛: 我个人理解,安全一般是跟着需要保护的产品,或者跟着威胁走的。机密计算的出现也是为了应对一些存在的威胁,我想了解一下之前TPM之类的模式它会面临哪些攻击模式的威胁?现在有没有已知案例或者破解的手法造成一些比较严重的损失?

李晓宁: TPM 做的原因是因为系统缺一个信任根,给系统创建信任根和系统本身和硬件的加解密能力是 TPM 的主要功能。在 TPM 制定的过程中,把它作为了一个 Low Pin Count Bus ——即性能需求比较低的很小的设备,其初衷也是做简单的信任根以及加解密。这个设计就导致了在真正的应用环境中,大规模地用 TPM 做高性能加解密这件事情不可行。可信计算为什么推了很多年依然没有非常好的落地?因为没有解决核心问题,核心威胁是今天在运行时环境下怎么样确保数据的操作是被保护的。对 TPM 而言这里面核心数据是密钥——密钥存在硬件 TPM 里面别人看不到,需要通过调 TPM 来做加解密运算,这是 TPM 的功能。但是因为它的性能影响,这件事情并没有很好的做到,这是第一件问题。

第二个问题,TPM是不可能为非标准化的操作提供保护能力的,这是另外一个制约它发展的很重要的原因。

SGX 的出现就是为了这些问题。SGX 核心解决的是运行时的数据保护,运行时的数据泄露问题。数据防泄漏一定要做加解密,然后才做操作。加解密就是明文、密文和密钥,之后才是操作的算法。SGX 通过 CPU 里内含的 TEE,首先解决加解密的问题,只有在 SGX 内部才能用密钥和密文获得明文,然后在保护的环境里对明文做计算;二是 SGX 通过通用的 CPU 计算能力提供了通用的算法解决方案——也就是今天你写一段代码,将算法能够被编译到 SGX 里,这个算法就能被操作。大概核心是这两点,所有解决的核心问题都是在运行时关键数据泄露或者敏感数据泄露威胁上面怎么去保护它,TPM 和它的思路是不一样的,最后导致发展也是不一样的。

行业已经在数据的存储状态和传输状态中做了大量的安全工作,但是在数据计算的过程中的安全工作却依然匮乏。TPM由于无法进行大规模计算,也无法灵活适应各种需求场景,难以满足这一安全要求。SGX 的出现则填补了这一空缺,从而给使用者更大的信心上云。

阿里云对机密计算的落地与推广

安全牛: 能说一下现在阿里云对SGX的实践与推广吗?

李晓宁:在技术方面,其实我们是国内最早推广 SGX 的,在 2017 年我们与英特尔达成技术合作,在云栖大会上联合发布了加密计算技术(即机密计算),代表了阿里云已经在云上有支持机密计算的能力了。

但是仅仅有技术是不够的,还需要有能让客户使用的产品。2018 年 4 月,我们推出了支持机密计算的神龙云服务器。现在上面有大量的客户进行产品开发,阿里云也发布了不同的产品,包括区块链服务、全加密数据库,全部打通了应用改造,因此这些产品可以直接对用户提供服务了。

在生态方面,2019 年,和英特尔合作了 Golang 的开源解决方案。SGX 技术其实当前并不好用,需要通过各个上下游的软件或者配备的硬件设备做大量的修改,代码上的调整才能用;拥有这种人才的企业的相对来讲比较少,所以我们做了开源解决方案,让社区可以使用 SGX 技术进行保护的同时,不需要修改直接复用阿里云上基于 Golang 开发的云原生应用,降低了使用门槛。

另一点是是我们加入了机密计算联盟,希望联合生态一起把这个技术推出去。我们举办这次 SGX 创意应用大赛也是希望能把 SGX 技术进行推广。

安全牛: 能问一下现在客户在云上的操作大概有哪些?他们是基于什么原因来使用机密计算服务器的?在生态层面阿里云做了哪些推动?

李晓宁:现在 SGX 客户主要是做区块链的。区块链解决了可用性和完整性的问题,但是它没有解决机密性的问题,所以大量前沿的研究者在看怎么用 SGX 解决区块链的问题。举个例子,我们早期有个客户是伯克利 Dawn Song 教授的公司 Oasis Labs,他们就是基于开发区块链保护。

还有就是智能设备上做加密计算的。我们已经和 Mellanox 合作,基于智能网卡推出了智能网卡的加密计算技术,从而将系统的可信扩展到网络上,通过智能网卡加密计算技术实现可信网络。

SGX 落地的过程,也是从技术到产品的演化。阿里云在推动 SGX 应用的过程中,与英特尔合作打造开源方案,帮助企业在区块链、智能设备等领域落地。

通过大赛进一步挖掘SGX能力

安全牛: 两位对这次SGX应用大赛项目本身的看法和初衷。另外还想了解一下参赛项目集中在哪些领域?对项目的描述和项目的成果感受是什么?为什么在这些领域使用了SGX技术会比之前更有优势?

李晓宁:阿里云希望更多用户通过 SGX 受益,这基于两方面:一是技术本身的成熟度和普及度;二是行业改造的成熟度。从这两个角度,举办大赛就有重要的意义:首先是通过大赛让更多人知道 SGX,在比赛过程中让更多人了解 SGX、思考怎么用 SGX,这是技术普及的角度。从行业角度,大赛的核心是鼓励大家从各个角度思考怎么用这个技术解决不同行业的安全问题,站在这个角度就是说普惠安全,让更多的人受益。总结而言,通过大赛,SGX 技术能得到更多的推广,更多人能了解这个东西,而且我们也能看到有更多的人才都会涌现出来;第二,他们提交的作品和想法能从不同的角度促进行业在 SGX 的成熟度。

周亚金:我从学术界角度讲讲和阿里云一起办这个比赛的初衷。首先,在学术界,我们也很希望和工业界有更多的联系,能把工业界比较好的技术和我们研究结合起来。SGX 作为当下领先的安全技术,我们想看看都可能有哪些比较好的应用场景。这也是这一次比赛叫创意大赛的初衷。从这次比赛的作品来看,有些应用场景确实是我之前没有想到或者没有接触到的。另一方面,也希望通过这次比赛能推广 SGX 在国内的应用。我们研究团队本身是做 SGX 研究的,我们也很想了解国内外还有哪些高校、企业也在用 SGX,他们用 SGX 在解决什么问题,我们也非常希望能认识志同道合的研究人员,更多在一起交流。最后我们这次比赛是和 IEEE IDC 2019 一起举办的,该会议是由浙江大学承办的安全学术会议。在学术会议中引入 SGX 比赛这样一个比较新的环节,可以搭建学术界和工业界交流沟通的更好平台。

安全牛: 能不能具体评价一下本次大赛参赛的团队及参赛作品涉及到的领域?

周亚金:这次比赛的形式是不命题,由参赛的队伍和选手自己去思考 SGX 可以用在哪些场景、基于 SGX 能开发什么样的应用,或者为了让 SGX 变得更好用有哪些技术——毕竟使用 SGX 会面临着对原来程序改造的过程;那么是否有办法能使这个过程变得更简单,更实用?从最后提交上来的作品来看,我们发现可以分为两大类:第一个类是如何能让 SGX 技术更好用,就是我刚刚提到的如何能让改造的过程变得更自动化、更简单,这既是学术界研究的点,也是当下工业界的需求;第二个分类是基于 SGX 能做新场景的应用,比如 SGX 怎么能和机器学习关联。从我的角度来看觉得这个方向很新颖。今年获得一等奖的作品使用了 SGX 和联邦机器学习来做一些事情,获得了评委的一致好评。

联邦机器学习是指在训练一个机器学习模型的时候让多人共同参与,每个人训练自己的模型,然后可以把这些模型联合在一起形成一个更好的模型。但是在训练的过程当中需要分辨训练者是否诚实可信、是不是少训练或者不训练、是否会弄一个假的模型过来。在这种情况下,SGX 可以确保在这个过程当中参与者不会作弊。这个应用场景我觉得很新颖,也解决了当前面临的一个问题。

本次参赛作品主要分为两块:一块是如何使现在SGX技术更好的落地应用;另外一块是解决了实际问题。

第一类让 SGX 更好用占三成左右,大部分还是新场景比较多。

一个例子是联邦机器学习和 SGX 的结合;第二个例子是和区块链结合;第三个是声纹支付,是参赛厂商用在自己生产的智能电视里,用于保护声纹支付中比较关键的场景。还有一些场景是比较传统的,比如怎么去保护点对点通信之间的密钥。这四个场景是我印象最深刻的。

这次的 SGX 应用创意大赛,作为连接产业界与学术界的桥梁,从 SGX 应用场景与 SGX 落地优化两个方向,进一步探索了 SGX 的各种可能性。

机密计算使用中面临的问题

安全牛: SGX可能会面临哪些问题?同时,阿里云除了做这次大赛以及之前提到的开源解决方案之外,在其他方面会有哪些支持会帮助企业、组织机构更好地落地SGX,或者如何更好的解决您提到的这些困难和麻烦的问题?

李晓宁:SGX 现在有以下几个问题:一是 SGX 技术本身是在更新换代的,现在已经上市的产品化版本,这个东西可能在内存的保护与动态内存的处理上面有一些缺陷。我们现在也在看怎么和英特尔合作把将来的产品更好地用起来。我们在机密计算技术上,不是出一款产品就结束了,而是这个技术的更新换代,我们也会不断地在这上面做技术的升级,确保用户能用更好的技术解决各种问题,包括信任、动态的保护、更灵活的配置等等。

从阿里云的角度,一方面我们想让大家更了解机密计算;另一方面要把机密计算产品化,从而提供大量产品、工具,包括开源、和生态一起合作,让更多人更容易、更简单地用这个技术。这些我们都会推动,而且会持续推动。我们希望看到重要的行业都采用这个技术解决核心的问题;等到都没有严重的数据安全问题了,那可能就是整个机密计算行业发展的差不多了。

安全牛: 刚刚还提到了性能方面的问题,那从性能的角度来说,它会不会影响之前的运算方式?因为刚刚提到了它专门会把一部分敏感的计算放到了安全的芯片上,这个步骤如果到一个量级特别大的时候会不会影响整个计算的效率?

李晓宁:因为今天的处理有加解密的过程,也就是说所有的数据在内存里面是加密的,只有在可信执行环境或者安全环境里做计算的时候,处理器才会根据特定的密钥把内存里面的东西解密出来到 CPU 里面做运算,这时候有一个额外的开销。所以性能影响一定有,影响多少这是一个问题。这和用户使用的方式有关:如果用户频繁地切换到非安全模式到安全模式之间,因模式切换导致的内存效率、性能效率降低,是远远大于一直在安全环境里去调用被加密的数据,然后硬件做解密过程中降低的效率。因为那个过程都是纯硬件做的,所以它的性能消耗其实并没有那么大。但这个回答更多的是技术层面上解释,如果 SGX 有性能问题大概是在什么地方,什么原因引起的。换句话说,现在我们有很多客户在会问我在用的过程中碰到性能问题,我也会告诉他们在各个地方进行配置调节,避免这样的问题,然后性能会更好。

举个例子,你做一个事情只需要一次在 SGX 内部做大量数据处理的事情,硬件就自动把解密做了,你在 SGX 里面一次做大量运算的时候,基本上从实际的角度性能影响很小;但是如果你频繁地切换模式,每次在SGX内部只做少量数据处理,中间切换出去干点别的事再回去,这时候性能下降就很大。

安全牛: 刚刚还提到了基于SGX的编程灵活性的问题,但反过来说,能使用SGX的人才储备也是不够的,如果想做到真正灵活的使用SGX其实本身还是需要一定得比较强的技术方面的能力来对技术进行配置或者对应用进行开发?

周亚金:我个人角度来看使用 SGX 是有一定的技术门槛,特别是要把 SGX 用好、用对,需要有密码学方面的背景知识,所以使用 SGX 确实有技术门槛。第二点人才储备足不足,因为它相对是比较新的技术,即使是相关的高校研究 SGX 也只有几年的时间。尽管在目前状态下确实数量偏少,但我相信懂 SGX 的人一定会越来越多。我们的研究团队,阿里云的李晓宁博士和其他的一些高校都在研发一些工具包或者 SDK,降低开发者使用 SGX 的难度,这也取得了一些的进展。现在开发SGX的程序比从头开始做要简单很多,这是我自己的看法。

机密计算作为一种新兴技术,在其落地与推广过程必然会面临许多问题,包括硬件本身的处理能力、硬件的迭代、应用的改造、性能的配置、人才的培养等等。但是无论是在学术界,还是阿里云引领的产业界,都在尽心帮助用户逐步解决问题,让这项技术更好地落地。

机密计算对网络安全行业发展会有哪些影响?

安全牛: 今天最后一个方面的内容,希望两位从宏观的环境角度能谈一下:首先是机密计算对阿里云将来发展云生态角度会有怎么样的促进;另一个是对整个产业或者整个学术界,未来机密计算的影响可能是怎么样的?

周亚金:我先说一下我们从学校的角度怎么推动这个事情。有几点:第一点是积极研究 SGX 技术的应用场景,并且能解决技术场景中的一些技术难题。比如使用 SGX 和人工智能结合的时候,怎么能让模型更快更好地运行在 SGX 环境中。在这个方向上,我们有了比较不错的进展。我们和香港城市大学王聪教授的研究团队合作,在今年的 iDASH 安全基因比赛中使用 SGX 运行疾病预测的模型获得了比赛的第一名,速度领先第二名数十倍。另外,我们也会积极探索 SGX 的新应用场景。虽然有时候,外界会觉得学术界想的东西不实用或者天马行空,但是这也是学术研究的优点,我们不拘泥于企业当前业务限制,能想出来一些目前看来有点天马行空,但将来确会能开辟一个新方向的东西,这是第一点。

第二是学术界在这个过程中会培养很多 SGX 的人才。我们的课题研究会使用 SGX 技术,我们的研究生博士生会很好掌握这一些技术。另外我们也会在课堂上讲授怎么利用 SGX 做机密计算。在相关课程中适当添加这方面的内容。总而言之,在课题研究和课堂中播下 SGX 技术的种子,这是学术界能做的。

李晓宁:站在产业的角度,其实这是产业和学术研究结合的交叉点。原因是这样:首先这个技术是非常重要的,以后会带来变化,这方面没有产业推动很难最后产生真正的变革,产业推动非常重要。但是推动过程中不是一蹴而就的。机密计算是普惠安全能力,它会应用于很多不同的场景、不同的环境。在这个情况下,对已经有的,或者已经探索清楚的环境或者场景,阿里云会从产业角度做技术、做产品,从商业化角度帮助客户真正使用机密计算解决云上的安全问题,这是实实在在的问题。

云计算是个信任生意,从阿里云生态角度,机密计算会帮助我们在用户上云的过程中给用户更多的信心。另一方面有了这个技术之后我们会给用户更多的技术证明,获得用户更好地信任,这是非常重要的。站在这个角度,我们肯定会从整个生态上大力推动这个技术,希望这个技术能被客户用到,来帮助他们获得在云上更好的安全能力。

学术界与阿里云都会持续推动机密计算技术的落地。学术界会进一步挖掘机密计算的落地场景,培养机密计算的研究与使用人才。阿里云会从产业角度,帮助用户更好地将机密计算技术在各种需要的场景下落地,加强他们在云端的数据安全能力。

安全牛评

机密计算技术通过硬件层开辟的可信计算空间,保证了不仅在系统启动时,更是整个数据处理期间的安全性,加强了用户在使用云的信心。这一技术的推动,离不开学术界的研究、产品化的落地与市场层面的推广,这需要产业界和学术界一起携手进行人才的培养、现有应用的改造、新型应用场景的探索等。阿里云作为国内机密计算落地的先驱,提前数年进行布局与研发,保障用户云端数据安全提供技术支持与落地应用的同时,体现了国内一流云厂商的耐心与格局。

安全牛提示:上周英特尔 SGX 曝出 Plundervault攻击漏洞(CVE-2019-11157)。

采用 Skylake(以及后继型号)处理器以及某些基于 Xeon E的平台的读者请联系厂商尽快安装相关补丁(INTEL-SA-00289)

 

关键词:

申明:本文系厂商投稿收录,所涉观点不代表安全牛立场!


相关文章