“三清”博士与支付宝机密计算背后的故事

简介:支付宝机密计算也正处于大规模落地前夕,和大牛一起,攻关这个世界前沿课题!

在坊间,对于本科、硕士、博士都出自清华的人有一个称呼,叫“三清团”,他们是招聘市场上炙手可热的天团。在支付宝机密计算团队,也有这样一位同学,他就是田洪亮。今天,我们就来聊聊他的故事。

多重身份,是顶尖Coder也是Rust布道师

2019年10月24日,支付宝大楼的一个会+ u D % = 5 8 p z场里,十名选手面对电脑,或运指如飞,或苦苦思索,空气里弥漫着紧张的气氛。

原来,这是支付宝“超级MA力大赛”的决赛现场。

每年的10月24日是支付宝的“代码节”, “You are your co1 5 sde.” 以匠心精神对待coding,就V ! 是支付宝代码文化的一部分8 r g , & 8 U ]2019年的代码节,支付宝在公司内f { ] _ p H !部举办了一个最强coder大赛,从全公司数万名研发人员海选出100名参赛者,经过多轮PK,最后10名实力强劲的选手进入决赛。

田洪亮正是十名选手之一,说起这个,还有一| } l ! 7段小插曲。

在支付宝Java技术栈是主流,而他则是Rust语言的忠实拥趸,虽然公司允许他用Rust开展工作,但知音难觅,有点小郁闷。

Rust是Mozilla公司发布的一种系统编程语言,同时具备高性能和易读性,同时又注重安全U ) ! S y V D,程序bug少,被广泛认为是C++语( w B k ` & &言的继任者。在田洪亮看来,这么好的语言却没有人讨论和尝试,实在是太遗憾了。

不过很快,他的机会来z { * $ h % C了,正是“超级MA力大赛”。

100名参赛者里面只有他一个人用Rust参加比赛,其他人要么用} [ v w ^JavD 5 Ua要么用Python,从性能上来k 2 w C *说,要比Rust慢很多。这一下他相当于开挂,当然是大杀特杀。

“三清”博士与支付宝机密计算背后的故事

中间者为田洪亮

但是,正是因为这个优势,让他有些轻敌,没有优化算法性能,在决赛中与冠军失之交臂,最终屈居亚军。这也说明支付宝内部牛人辈出,并不是只有他一个人有绝活。

不过,Rust的名声却在公司内打响了,有不少人对Rust表示兴趣。趁热w ~ n x G d v打铁,田洪亮在公司内分享了关于Rust的公开课,还成为阿里云的Rust布道师。

“三清”博士与支付宝机密计算背后的故事

田洪亮正在向大家分享Rust

“国内大学CS的科班W 9 E T ] W教育一直都缺失一个重要的环节,即对工程能力的培养。”本科硕士博士都就读于清华计算机系的田洪亮,对P I S这句话当然有发言权。

大学强调的是算法竞赛(比如ACM)和V a P H C 科研能9 + ) a [ v力(发paper),但公司需要的是能写架构Z V 6 % B合理、实现健壮、代码可读的合格工程师。在赛后的分享中,他推荐了《可读代码的艺术》以及《代码大全》。前者培4 c - f ] ~ -养对好代码的品味,后者指导如何做好的软件设计。

至于代码为什么能写的这么好,要从他所研究的领域说起。

五年如一日,专注机密计算

在博士期间,田洪亮研究的方向是操作系统领域,这[ @ i ~ 一领域又被称为计算机科学皇冠上的明珠,我们耳熟能详的Linux和它的创始人Linus的传奇经历n % X : f n,激励着人们进入这一领域。

系统领域的研i ( c r W 9究不仅注重理论功底,还重视编程动手能力。想出了一个新的idea,5 } V B X还要把它实现出来,跑一跑benchmark看和之前有多少提升,这! X R D Y样才会得到业界的认可,这也正是田洪亮{ B 7 l C )代码基本功扎实的原因。

不过,操作系统领域已经发展多年,相关的理论和实践都很成K r j熟,想要找到创新的突破口并不容易,田洪亮把目光投到了更底层的硬件上。

“新的硬件能够带来新的能力,@ o L S 7 t # Y但要发挥这种能力需要系统软件与之配合,然后上层应用就可以P [ q ( @ 9 c p通过操作a x F = l 6 c A系统利用这个能力。”田洪亮解释道。从硬件到系统再到应用,这就是计算机技术的发展之道。

经过一番探索,他很快锁定了Intel x86 CPU芯片上的一个小小的指令集扩展Software GuardQ B J } m Extensions,简称SGX。

SGX由英特尔于2013年提出,是为了解决软件运行过程中的安` B ; 8 x i全问题。通常,一个应用程D e @ ? Q Z # L序在运行过程中,需要信任硬件,比如CPU、内存都是没有问题的;还需要信任操作系统,程序所调用的系统接口没有被篡改;同时还需要相信系统里没有恶意的特权程序在一旁虎视眈眈。如果需要用到网络,那么要操心的安全问题就更多了。

在过去,为了解决这些i j N r基础安全问题,除Q C p E ^了安全软件外,还发展出了可信执行环境技术TEE,CPU作为计算机的心脏,在这项技术中扮演着重要角色。SGX正是英特尔的TEE实现,极大的缩小l n s 9 n 3了需要信任的范围,只需要L F 9 c ~ L _ / G信任CPU,甚至是CPU上的一小块地方( T @ ( _ y | t 8,这个地方被形象的称为“飞地”,英文叫Enclave。

“三清”博士与支付宝机密计算背后的故事

SGX Enclave 原理图

Enclave可以锁定一段内存,将需要保护的数据放到受保护内存里进行计算,这样的技术叫做机密计算g P U 4 $ S b T K

SGX和机密计算的出现,将系统安全带到了一个新的高度,对于云计算更是有非凡的意义——因为云上运行着不同归属的系统和程序,无法确认它们是否恶意4 = a F H t,而d { 3 P ]一旦云的安全被攻破,损失- R a f将无法承受。

在了解了一番SGX之后,田洪亮很快就意识到这项技术拥n 5 [ c有改变世界的] 1 m N潜力,于是决0 - % + k t =定研究的方向转到机密计算上,没想到这一转,就是五年时间。

当时SGX刚出现不久,还停留在理论实验阶段,洪亮对其进行了一番理论修补和实验研究,很快临近毕业,? m 8 R : ^ Q & *他干脆加入了英特尔,在这` - g ? B v = v w个SGX发源的地方继续研究。

时间转瞬即过,2017年英特尔第六代Skylake架构的CPU发布,其中内置了SGX技术,SGX终于正式走向大众。

不过,这样平静的生活某天突Z ) ^ _ j O然被打破,已经加入支付宝的前Q D U X , i主管闫守孟有一天突然找到他,伸出了橄榄枝:“支付宝正在落地机密计算,急需人才,不来产业界看一看吗?”

读书时的田洪亮,曾以为技术是创新驱动的;工作后,才发现技术是需求驱动的。 O b支付宝正有着机密计算技术创新的土壤。金融F D W行业极为重视数据安全,支付宝在向云原生架构迁移的过程中,需要保障整个系统和D m P ; . 5 ) k数据绝对不能出问题,而机密计算正符合相关的需求。另外,支付宝的另一个技术投入方向是区块链,区块链也有机密计算的需* $ v n 5 i ; 5求。

对于工程师和研究者来说,有机会亲眼看着自己! [ B Y的劳动成果惠及大众,当然是很有吸引力的,而随后闫守孟的主管,支付宝操作系统领域负责人何征宇和他的谈话,让他下定了决心:“机密计算未来一定会是云计算的主流技术,而我们将是这一潮流的开创者!”

“连续创业”,带领学弟冲刺顶会论文

在清华的时候,田洪亮还参加过不少创业训练营,也读过不少相关书籍m e c 1 2 f [,其中《S X = ^ o精益创业》对他的影响最大。

书中提到,创业最重要的就是要减少不确定性,用最少的代价去不断的} P - V + D @ Q g探索产品的可行性,也就是所谓的“最小可行产品”。田洪亮将这套理论= h s ` . t w用到了他参与的一个个项目中。

由于他一直从事前沿的技术创新,而创新的方向是非常重要的,如果方向错误,很可能花了很大力气,最后还是一无所获。

田洪亮将自己? _ T ! # ! j {的项目视为创业,像打造产% T + o ` ) m @ 4品一样,在不[ i a ! m断完善项目的同时,他也在不断的与外部互动,获取反馈。

他近几年的t k C G ( h H方向是Enclave libOS,但并不是一次就Z , .完工,在英特尔B $ 0他有了这个想法后,发了一篇小论文,在和业内同行交流. 3 ] g i - # g中,获得了肯定的反馈。

于是,他开始编写具体代码, e Z 1 { m ` $ h,在代码框架雏形搭建好之后,在征得公F W I A m司同意后将之开源,看是否有类似想法的人。Q D D p ` &

在加入支付宝后,8 | D l $ = M 9 !他需要能在生产环境中运行的代码,同时也需要在学术界完整的阐述w M t t % N k 5 I他的理念和相关实现,这次,他找到了清华的学弟。

在找学弟的过程中,最让0 R 3 P i他感动的就是母校的支持。在和陈康、陈C 1 ( ^ /渝两位教授聊过之后,教授们很支持他的想法,将他的课题加入到本p R F科生的毕设选题中,` u ) - ` l U Z最终吸( R 1引了三位学弟来参与。

经过几个月的紧张开发,他们终于如期完成了项目,也就是Occlum,并且将成果投递到ASPLOS会. ! $ ; i $ F 1 V议,结果高分录用!

ASPLOS大会全称是ACM编程语言和操作系统大会4 = m . &,是计算机5 # t | _系统领域的顶级国际会议,注重体系结构、编程语言、和操作系统之间的交叉。大会无论在学术还是工业界都具有巨大的影响力,也一直属于中国计算机学会(CCF)推荐的A类国际会议。ASPLOS论文遴选非常严格,录用率长期维持在20%以下。

论文所介绍的Occlum,也就是EnclavelX ? R ~ JibOS,可以让应用直接管理和调用硬件资源,而不需要对应用进行大规模的调整和修改,从而解决了之前SGX落地的最大难点,因为大量的存量应用很难进行这样的修改。

对于新应用的开发,ON u % 4cclum也可以大幅降低开发成本。以一个最简单的 Hello Wor^ v p I Q L P $ Rld 为例。使用G N / A 0 Q Intel SGX SC H F KDK 开发的Hello World工程包含 10 个左右的文件,300 行左右的代码。相比之下,OccB j { [ ! E f /lum 不增加任何额外的代码,只需三行命令即可将 Linux 版的 Helloy J p x J World 程序运行于 SGX en s # & R n z a =nclave 中。

“三清”博士与支付宝机密计算背后的故事

3行命令让代码在Enclave里跑起来

展望未来,机密计算前景广阔

Occlum已经加入到支付宝打造的机密计算中间件SOFAEnclave当中,会在运行XGBoost、TensorFlow等程序& ~ m X {时保护用户的数据。并且Occlum已经对外开源

SOFAEnclave则和其它安全技术一起,成为支付宝} 4 h n构建“可信原生”的基石。

随着企业对于机密计算的尝试,它也逐渐引起了业界的重视,在研究机构Gartner发布的2019年云安全技术成熟度曲线报告中,首次将机密计算列入s q l 9 K l +其中,并作为云安全技术模型中最初始的一环出现,说明了机密计算在整个云安全9 w s 2 W [ M W链路中起到的根本性作用。阿里云等云厂商也推出了自己的机密计算服务。

“三清”博士与支付宝机密计算背后的故事

学术界也给予了机密计算极高的评价,来自加州伯克利大学的Dawn Song教授表示:“保u U ~ P b x 7 t守估计,10年内绝大多数的芯片都将支持机密计算能力。”

“三清”博士与支付宝机密计算背后的故事

作者:缪克卢汉

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