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

就現在!螞蟻「校招季」重磅來襲!除了介紹螞蟻的技術大咖,我們還邀請了一些通過校招來到螞蟻的過來人分享他們的通關經驗和心得,這裡隨時可能有行業技術大咖和你的直系學長學姐出沒哦~

「校招季」欄目會持續輸出有關“螞蟻校招”的豐富內容,敬請期待!

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

多重身份,是頂尖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已經對外開源(點擊“瞭解更多”獲得開源地址)

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

隨著企業對於機密計算的嘗試,它也逐漸引起了業界的重視,在研究機構Gartner發佈的2019年雲安全技術成熟度曲線報告中,首次將機密計算列入其中,並作為雲安全技術模型中最初始的一環出現,說明了機密計算在整個雲安全鏈路中起到的根本性作用。阿里雲等雲廠商也推出了自己的機密計算服務。

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

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

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

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

加入支付寶機密計算

團隊介紹:

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

  • 這是一個成立不久的團隊,因此你有機會隨團隊一同快速成長,在項目中扮演重要角色;
  • 這是一個有戰鬥力的集體,技術骨幹均畢業於國內外頂尖高校;
  • 這是一個原創技術的搖籃,團隊成員曾多次在頂級學術會議上發表學術論文。

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

崗位要求:如果你將於2020.11~2021.10期間畢業,且滿足以下條件,請儘快聯繫我們。

  • 大學本科或以上學歷,計算機或相關專業;
  • 熟悉如下編程語言語言中的至少一種:C/C++、Java、Go和Rust;
  • 熟悉如下技術領域中的至少一種:操作系統、容器、虛擬化、編譯器、體系結構、程序分析、形式化驗證、安全攻防、可信計算等;
  • 現有研究成果優秀者優先。

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

簡歷投遞:

點擊“瞭解更多”獲取~


分享到:


相關文章: