共计 3808 个字符,预计需要花费 10 分钟才能阅读完成。
在坊间,对于本科、硕士、博士都出自清华的人有一个称说,叫“三清团”,他们是招聘市场上煊赫一时的天团。在支付宝的秘密计算团队,也有这样一位同学,他就是田清脆。明天,咱们就来聊聊他的故事。
多重身份,是顶尖 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 年内绝大多数的芯片都将反对秘密计算能力。”
原文链接
本文为阿里云原创内容,未经容许不得转载。