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

就现在!蚂蚁「校招季」重磅来袭!除了介绍蚂蚁的技术大咖,我们还邀请了一些通过校招来到蚂蚁的过来人分享他们的通关经验和心得,这里随时可能有行业技术大咖和你的直系学长学姐出没哦~「校招季」栏目会持续输出有关“蚂蚁校招”的丰富内容,敬请期待!

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

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

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

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

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

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

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

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

不过很快,他的机会来了,正是“超级MA力大赛”。

100名参赛者里面只有他一个人用Rust参加比赛,其他人要么用Java要么用Python,从性能上来说,要比Rust慢很多。这一下他相当于开挂,当然是大杀特杀。

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

中间者为田洪亮

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

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

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

田洪亮正在向大家分享Rust

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

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

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

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

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

系统领域的研究不仅注重理论功底,还重视编程动手能力。想出了一个新的idea,还要把它实现出来,跑一跑benchmark看和之前有多少提升,这样才会得到业界的认可,这也正是田洪亮代码基本功扎实的原因。

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

“新的硬件能够带来新的能力,但要发挥这种能力需要系统软件与之配合,然后上层应用就可以通过操作系统利用这个能力。”田洪亮解释道。从硬件到系统再到应用,这就是计算机技术的发展之道。

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

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

在过去,为了解决这些基础安全问题,除了安全软件外,还发展出了可信执行环境技术TEE,CPU作为计算机的心脏,在这项技术中扮演着重要角色。SGX正是英特尔的TEE实现,极大的缩小了需要信任的范围,只需要信任CPU,甚至是CPU上的一小块地方,这个地方被形象的称为“飞地”,英文叫Enclave。

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

SGX Enclave 原理图

Enclave可以锁定一段内存,将需要保护的数据放到受保护内存里进行计算,这样的技术叫做机密计算。

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

在了解了一番SGX之后,田洪亮很快就意识到这项技术拥有改变世界的潜力,于是决定研究的方向转到机密计算上,没想到这一转,就是五年时间。

当时SGX刚出现不久,还停留在理论实验阶段,洪亮对其进行了一番理论修补和实验研究,很快临近毕业,他干脆加入了英特尔,在这个SGX发源的地方继续研究。

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

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

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

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

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

在清华的时候,田洪亮还参加过不少创业训练营,也读过不少相关书籍,其中《精益创业》对他的影响最大。

书中提到,创业最重要的就是要减少不确定性,用最少的代价去不断的探索产品的可行性,也就是所谓的“最小可行产品”。田洪亮将这套理论用到了他参与的一个个项目中。

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

田洪亮将自己的项目视为创业,像打造产品一样,在不断完善项目的同时,他也在不断的与外部互动,获取反馈。

他近几年的方向是Enclave libOS,但并不是一次就完工,在英特尔他有了这个想法后,发了一篇小论文,在和业内同行交流中,获得了肯定的反馈。

于是,他开始编写具体代码,在代码框架雏形搭建好之后,在征得公司同意后将之开源,看是否有类似想法的人。

在加入支付宝后,他需要能在生产环境中运行的代码,同时也需要在学术界完整的阐述他的理念和相关实现,这次,他找到了清华的学弟。

在找学弟的过程中,最让他感动的就是母校的支持。在和陈康、陈渝两位教授聊过之后,教授们很支持他的想法,将他的课题加入到本科生的毕设选题中,最终吸引了三位学弟来参与。

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

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

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

对于新应用的开发,Occlum也可以大幅降低开发成本。以一个最简单的 Hello World 为例。使用 Intel SGX SDK 开发的Hello World工程包含 10 个左右的文件,300 行左右的代码。相比之下,Occlum 不增加任何额外的代码,只需三行命令即可将 Linux 版的 Hello World 程序运行于 SGX enclave 中。

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

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

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

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

https://github.com/occlum/occlum

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

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

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

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

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

支付宝的机密计算也正处于大规模落地前夕,田洪亮和他的小伙伴们急需各类人才加入,欢迎应届同学踊跃投递简历,和大牛一起,攻关这个世界前沿课题!

加入支付宝机密计算

团队介绍:

蚂蚁金服安全计算团队,致力于打造金融级的可信基础设施,研发独创性的安全底层技术,为了亿万客户和海量数据保驾护航。

  • 这是一个成立不久的团队,因此你有机会随团队一同快速成长,在项目中扮演重要角色;
  • 这是一个有战斗力的集体,技术骨干均毕业于国内外顶尖高校;
  • 这是一个原创技术的摇篮,团队成员曾多次在*学术会议上发表学术论文。

如果你热衷系统软件,或熟悉底层技术,或深谙安全之道,欢迎加入我们!

岗位要求:

如果你将于2020.11~2021.10期间毕业,且满足以下条件,请尽快联系我们。

  • 大学本科或以上学历,计算机或相关专业;
  • 熟悉如下编程语言语言中的至少一种:C/C++、Java、Go和Rust;
  • 熟悉如下技术领域中的至少一种:操作系统、容器、虚拟化、编译器、体系结构、程序分析、形式化验证、安全攻防、可信计算等;
  • 现有研究成果优秀者优先。

工作地点:北京、上海、和杭州。

简历投递:

shoumeng.ysm@antfin.com

上一篇:蚂蚁宣布开源KubeTEE:云原生集群化机密计算框架


下一篇:蚂蚁御术:我的前端十年成长之路