ITBear旗下自媒體矩陣:

“三清”博士與支付寶機密計算背后的故事

   時間:2020-04-17 19:30:18 來源:互聯(lián)網(wǎng)編輯:星輝 發(fā)表評論無障礙通道

在坊間,對于本科、碩士、博士都出自清華的人有一個稱呼,叫“三清團”,他們是招聘市場上炙手可熱的天團。在支付寶的機密計算團隊,也有這樣一位同學,他就是田洪亮。今天,我們就來聊聊他的故事。

多重身份,是頂尖Coder也是Rust布道師

2019年10月24日,支付寶大樓的一個會場里,十名選手面對電腦,或運指如飛,或苦苦思索,空氣里彌漫著緊張的氣氛。

原來,這是支付寶“超級MA力大賽”的決賽現(xiàn)場。

每年的10月24日是支付寶的“代碼節(jié)”, “You are your code.” 以匠心精神對待coding,就是支付寶代碼文化的一部分。2019年的代碼節(jié),支付寶在公司內(nèi)部舉辦了一個最強coder大賽,從全公司數(shù)萬名研發(fā)人員海選出100名參賽者,經(jīng)過多輪PK,最后10名實力強勁的選手進入決賽。

田洪亮正是十名選手之一,說起這個,還有一段小插曲。

在支付寶Java技術棧是主流,而他則是Rust語言的忠實擁躉,雖然公司允許他用Rust開展工作,但知音難覓,有點小郁悶。

Rust是Mozilla公司發(fā)布的一種系統(tǒng)編程語言,同時具備高性能和易讀性,同時又注重安全,程序bug少,被廣泛認為是C++語言的繼任者。在田洪亮看來,這么好的語言卻沒有人討論和嘗試,實在是太遺憾了。

不過很快,他的機會來了,正是“超級MA力大賽”。

100名參賽者里面只有他一個人用Rust參加比賽,其他人要么用Java要么用Python,從性能上來說,要比Rust慢很多。這一下他相當于開掛,當然是大殺特殺。

(中間者為田洪亮)

但是,正是因為這個優(yōu)勢,讓他有些輕敵,沒有優(yōu)化算法性能,在決賽中與冠軍失之交臂,最終屈居亞軍。這也說明支付寶內(nèi)部牛人輩出,并不是只有他一個人有絕活。

不過,Rust的名聲卻在公司內(nèi)打響了,有不少人對Rust表示興趣。趁熱打鐵,田洪亮在公司內(nèi)分享了關于Rust的公開課,還成為阿里云的Rust布道師。


(田洪亮正在向大家分享Rust)

“國內(nèi)大學CS的科班教育一直都缺失一個重要的環(huán)節(jié),即對工程能力的培養(yǎng)。”本科碩士博士都就讀于清華計算機系的田洪亮,對這句話當然有發(fā)言權。

大學強調(diào)的是算法競賽(比如ACM)和科研能力(發(fā)paper),但公司需要的是能寫架構(gòu)合理、實現(xiàn)健壯、代碼可讀的合格工程師。在賽后的分享中,他推薦了《可讀代碼的藝術》以及《代碼大全》。前者培養(yǎng)對好代碼的品味,后者指導如何做好的軟件設計。

至于代碼為什么能寫的這么好,要從他所研究的領域說起。

五年如一日,專注機密計算

在博士期間,田洪亮研究的方向是操作系統(tǒng)領域,這一領域又被稱為計算機科學皇冠上的明珠,我們耳熟能詳?shù)腖inux和它的創(chuàng)始人Linus的傳奇經(jīng)歷,激勵著人們進入這一領域。

系統(tǒng)領域的研究不僅注重理論功底,還重視編程動手能力。想出了一個新的idea,還要把它實現(xiàn)出來,跑一跑benchmark看和之前有多少提升,這樣才會得到業(yè)界的認可,這也正是田洪亮代碼基本功扎實的原因。

不過,操作系統(tǒng)領域已經(jīng)發(fā)展多年,相關的理論和實踐都很成熟,想要找到創(chuàng)新的突破口并不容易,田洪亮把目光投到了更底層的硬件上。

“新的硬件能夠帶來新的能力,但要發(fā)揮這種能力需要系統(tǒng)軟件與之配合,然后上層應用就可以通過操作系統(tǒng)利用這個能力。”田洪亮解釋道。從硬件到系統(tǒng)再到應用,這就是計算機技術的發(fā)展之道。

經(jīng)過一番探索,他很快鎖定了Intel x86 CPU芯片上的一個小小的指令集擴展Software Guard Extensions,簡稱SGX。

SGX由英特爾于2013年提出,是為了解決軟件運行過程中的安全問題。通常,一個應用程序在運行過程中,需要信任硬件,比如CPU、內(nèi)存都是沒有問題的;還需要信任操作系統(tǒng),程序所調(diào)用的系統(tǒng)接口沒有被篡改;同時還需要相信系統(tǒng)里沒有惡意的特權程序在一旁虎視眈眈。如果需要用到網(wǎng)絡,那么要操心的安全問題就更多了。

在過去,為了解決這些基礎安全問題,除了安全軟件外,還發(fā)展出了可信執(zhí)行環(huán)境技術TEE

,CPU作為計算機的心臟,在這項技術中扮演著重要角色。SGX正是英特爾的TEE實現(xiàn),極大的縮小了需要信任的范圍,只需要信任CPU,甚至是CPU上的一小塊地方,這個地方被形象的稱為“飛地”,英文叫Enclave.

(SGX Enclave原理圖)

Enclave可以鎖定一段內(nèi)存,將需要保護的數(shù)據(jù)放到受保護內(nèi)存里進行計算,這樣的技術叫做機密計算。

SGX和機密計算的出現(xiàn),將系統(tǒng)安全帶到了一個新的高度,對于云計算更是有非凡的意義——因為云上運行著不同歸屬的系統(tǒng)和程序,無法確認它們是否惡意,而一旦云的安全被攻破,損失將無法承受。

在了解了一番SGX之后,田洪亮很快就意識到這項技術擁有改變世界的潛力,于是決定研究的方向轉(zhuǎn)到機密計算上,沒想到這一轉(zhuǎn),就是五年時間。

當時SGX剛出現(xiàn)不久,還停留在理論實驗階段,洪亮對其進行了一番理論修補和實驗研究,很快臨近畢業(yè),他干脆加入了英特爾,在這個SGX發(fā)源的地方繼續(xù)研究。

時間轉(zhuǎn)瞬即過,2017年英特爾第六代Skylake架構(gòu)的CPU發(fā)布,其中內(nèi)置了SGX技術,SGX終于正式走向大眾。

不過,這樣平靜的生活某天突然被打破,已經(jīng)加入支付寶的前主管閆守孟有一天突然找到他,伸出了橄欖枝:“支付寶正在落地機密計算,急需人才,不來產(chǎn)業(yè)界看一看嗎?”

讀書時的田洪亮,曾以為技術是創(chuàng)新驅(qū)動的;工作后,才發(fā)現(xiàn)技術是需求驅(qū)動的。支付寶正有著機密計算技術創(chuàng)新的土壤。金融行業(yè)極為重視數(shù)據(jù)安全,支付寶在向云原生架構(gòu)遷移的過程中,需要保障整個系統(tǒng)和數(shù)據(jù)絕對不能出問題,而機密計算正符合相關的需求。另外,支付寶的另一個技術投入方向是區(qū)塊鏈,區(qū)塊鏈也有機密計算的需求。

對于工程師和研究者來說,有機會親眼看著自己的勞動成果惠及大眾,當然是很有吸引力的,而隨后閆守孟的主管,支付寶操作系統(tǒng)領域負責人何征宇和他的談話,讓他下定了決心:“機密計算未來一定會是云計算的主流技術,而我們將是這一潮流的開創(chuàng)者!”

“連續(xù)創(chuàng)業(yè)”,帶領學弟沖刺頂會論文

在清華的時候,田洪亮還參加過不少創(chuàng)業(yè)訓練營,也讀過不少相關書籍,其中《精益創(chuàng)業(yè)》對他的影響最大。

書中提到,創(chuàng)業(yè)最重要的就是要減少不確定性,用最少的代價去不斷的探索產(chǎn)品的可行性,也就是所謂的“最小可行產(chǎn)品”。田洪亮將這套理論用到了他參與的一個個項目中。

由于他一直從事前沿的技術創(chuàng)新,而創(chuàng)新的方向是非常重要的,如果方向錯誤,很可能花了很大力氣,最后還是一無所獲。

田洪亮將自己的項目視為創(chuàng)業(yè),像打造產(chǎn)品一樣,在不斷完善項目的同時,他也在不斷的與外部互動,獲取反饋。

他近幾年的方向是Enclave libOS,但并不是一次就完工,在英特爾他有了這個想法后,發(fā)了一篇小論文,在和業(yè)內(nèi)同行交流中,獲得了肯定的反饋。

于是,他開始編寫具體代碼,在代碼框架雛形搭建好之后,在征得公司同意后將之開源,看是否有類似想法的人。

在加入支付寶后,他需要能在生產(chǎn)環(huán)境中運行的代碼,同時也需要在學術界完整的闡述他的理念和相關實現(xiàn),這次,他找到了清華的學弟。

在找學弟的過程中,最讓他感動的就是母校的支持。在和陳康、陳渝兩位教授聊過之后,教授們很支持他的想法,將他的課題加入到本科生的畢設選題中,最終吸引了三位學弟來參與。

經(jīng)過幾個月的緊張開發(fā),他們終于如期完成了項目,也就是Occlum,并且將成果投遞到ASPLOS會議,結(jié)果高分錄用!

ASPLOS大會全稱是ACM編程語言和操作系統(tǒng)大會,是計算機系統(tǒng)領域的頂級國際會議,注重體系結(jié)構(gòu)、編程語言、和操作系統(tǒng)之間的交叉。大會無論在學術還是工業(yè)界都具有巨大的影響力,也一直屬于中國計算機學會(CCF)推薦的A類國際會議。ASPLOS 論文遴選非常嚴格,錄用率長期維持在20%以下。

論文所介紹的Occlum,也就是Enclave libOS,可以讓應用直接管理和調(diào)用硬件資源,而不需要對應用進行大規(guī)模的調(diào)整和修改,從而解決了之前SGX落地的最大難點,因為大量的存量應用很難進行這樣的修改。

對于新應用的開發(fā),Occlum也可以大幅降低開發(fā)成本。以一個最簡單的 Hello World 為例。使用 Intel SGX SDK 開發(fā)的Hello World工程包含 10 個左右的文件,300 行左右的代碼。相比之下,Occlum 不增加任何額外的代碼,只需三行命令即可將 Linux 版的 Hello World 程序運行于 SGX enclave 中。

(3 行命令讓代碼在 Enclave 里跑起來)

展望未來,機密計算前景廣闊

Occlum已經(jīng)加入到支付寶打造的機密計算中間件SOFAEnclave當中,會在運行XGBoost、TensorFlow等程序時保護用戶的數(shù)據(jù)。并且Occlum已經(jīng)對外開源:

https://github.com/occlum/occlum

SOFAEnclave則和其它安全技術一起,成為支付寶構(gòu)建“可信原生”的基石。

隨著企業(yè)對于機密計算的嘗試,它也逐漸引起了業(yè)界的重視,在研究機構(gòu)Gartner發(fā)布的2019年云安全技術成熟度曲線報告中,首次將機密計算列入其中,并作為云安全技術模型中最初始的一環(huán)出現(xiàn),說明了機密計算在整個云安全鏈路中起到的根本性作用。阿里云等云廠商也推出了自己的機密計算服務。

學術界也給予了機密計算極高的評價,來自加州伯克利大學的Dawn Song教授表示:“保守估計,10年內(nèi)絕大多數(shù)的芯片都將支持機密計算能力。”

支付寶的機密計算也正處于大規(guī)模落地前夕,田洪亮和他的小伙伴們急需各類人才加入,歡迎應屆同學踴躍投遞簡歷,和大牛一起,攻關這個世界前沿課題!

加入支付寶機密計算

團隊介紹:

螞蟻金服安全計算團隊,致力于打造金融級的可信基礎設施,研發(fā)獨創(chuàng)性的安全底層技術,為了億萬客戶和海量數(shù)據(jù)保駕護航。

* 這是一個成立不久的團隊,因此你有機會隨團隊一同快速成長,在項目中扮演重要角色;

* 這是一個有戰(zhàn)斗力的集體,技術骨干均畢業(yè)于國內(nèi)外頂尖高校;

* 這是一個原創(chuàng)技術的搖籃,團隊成員曾多次在頂級學術會議上發(fā)表學術論文。

如果你熱衷系統(tǒng)軟件,或熟悉底層技術,或深諳安全之道,歡迎加入我們!

崗位要求:

如果你將于2020.11~2021.10期間畢業(yè),且滿足以下條件,請盡快聯(lián)系我們。

* 大學本科或以上學歷,計算機或相關專業(yè);

* 熟悉如下編程語言語言中的至少一種:C/C++、Java、Go和Rust;

* 熟悉如下技術領域中的至少一種:操作系統(tǒng)、容器、虛擬化、編譯器、體系結(jié)構(gòu)、程序分析、形式化驗證、安全攻防、可信計算等;

* 現(xiàn)有研究成果優(yōu)秀者優(yōu)先。

工作地點:

北京、上海、和杭州。

簡歷投遞:

shoumeng.ysm@antfin.com

舉報 0 收藏 0 打賞 0評論 0
 
 
更多>同類資訊
全站最新
熱門內(nèi)容
網(wǎng)站首頁  |  關于我們  |  聯(lián)系方式  |  版權聲明  |  網(wǎng)站留言  |  RSS訂閱  |  違規(guī)舉報  |  開放轉(zhuǎn)載  |  滾動資訊  |  English Version