SOFAEnclave:螞蟻金服新一代可信編程環(huán)境,讓機(jī)密計(jì)算為金融業(yè)務(wù)保駕護(hù)航102年

導(dǎo)讀:近日,Linux 基金會(huì)宣布全球多家巨頭企業(yè)成立機(jī)密計(jì)算聯(lián)盟(Confidential Computing Consortium),在對(duì)于數(shù)據(jù)安全和隱私擔(dān)憂的不斷增長(zhǎng)下,基于可信執(zhí)行環(huán)境技術(shù)的機(jī)密計(jì)算作為一種可行的解決方案,成為互聯(lián)網(wǎng)巨頭關(guān)注的焦點(diǎn)。螞蟻金服很早就關(guān)注此類(lèi)技術(shù),并基于機(jī)密計(jì)算打造了螞蟻金服新一代可信編程中間件 SOFAEnclave,為金融業(yè)務(wù)保駕護(hù)航。機(jī)密計(jì)算是螞蟻安全計(jì)算的一環(huán),也是金融級(jí)云原生的一塊重要版圖,螞蟻金服表示:相信未來(lái)機(jī)密計(jì)算將和 HTTPS 一樣,成為云計(jì)算的標(biāo)配。
一、引言

互聯(lián)網(wǎng)金融本質(zhì)上是對(duì)大量敏感數(shù)據(jù)的處理以及由此沉淀的關(guān)鍵業(yè)務(wù)智能。近年來(lái)涌現(xiàn)出來(lái)的新業(yè)態(tài)更是將數(shù)據(jù)處理的范疇從單方數(shù)據(jù)擴(kuò)展到了涉及合作方的多方數(shù)據(jù)。

另一方面,從 GDPR 到 HIPAA,數(shù)據(jù)隱私監(jiān)管保護(hù)的范圍愈加擴(kuò)大,力度日益增強(qiáng)??梢?jiàn),對(duì)金融數(shù)據(jù)和關(guān)鍵業(yè)務(wù)智能的安全保護(hù),不僅是互聯(lián)網(wǎng)金融業(yè)務(wù)的基礎(chǔ),也是其創(chuàng)新發(fā)展的依托,更是攸關(guān)合規(guī)的關(guān)鍵因素。

近年來(lái)迅速發(fā)展的機(jī)密計(jì)算技術(shù)是一種創(chuàng)新的數(shù)據(jù)隔離和加密處理技術(shù),其重要特點(diǎn)是,TCB(trusted computing base 可信計(jì)算基) 中僅包含應(yīng)用自身和基礎(chǔ)硬件,即使 OS kernel、Hypervisor、甚至 BIOS 等特權(quán)軟件都已經(jīng)遭到破壞甚至本來(lái)就是惡意的,敏感數(shù)據(jù)和代碼依然能安全無(wú)虞。

螞蟻金服在自身的實(shí)踐過(guò)程中,基于機(jī)密計(jì)算底層技術(shù)發(fā)展出金融級(jí)的機(jī)密計(jì)算中間件,確保金融應(yīng)用數(shù)據(jù)和代碼的機(jī)密性和完整性,為關(guān)鍵業(yè)務(wù)提供易用、安全、集群化的計(jì)算環(huán)境。

本文從機(jī)密計(jì)算的技術(shù)背景、關(guān)鍵問(wèn)題、螞蟻的技術(shù)突破、以及典型應(yīng)用場(chǎng)景等方面展開(kāi)。

二、機(jī)密計(jì)算的技術(shù)背景

隨著云計(jì)算的快速發(fā)展,越來(lái)越多的關(guān)鍵性服務(wù)和高價(jià)值數(shù)據(jù)被遷移到了云端。云安全也因此成為學(xué)術(shù)界和工業(yè)界關(guān)注的一個(gè)焦點(diǎn)。

近年來(lái),云安全領(lǐng)域最重要的一項(xiàng)技術(shù)進(jìn)展名為機(jī)密計(jì)算(Confidential Computing)。機(jī)密計(jì)算填補(bǔ)了當(dāng)前云安全的一項(xiàng)空白——使用中數(shù)據(jù)(Data-in-use)的加密。過(guò)去通行的做法是對(duì)數(shù)據(jù)在存儲(chǔ)中(比如硬盤(pán))和傳輸中(比如網(wǎng)絡(luò))加密,而在使用中(比如內(nèi)存)解密,以便處理。而機(jī)密計(jì)算可以保護(hù)使用中數(shù)據(jù)的機(jī)密性和完整性。

目前,多家云計(jì)算巨頭都在不約而同地推廣這項(xiàng)技術(shù):微軟已于 2017 年 7 月宣布開(kāi)始接受 Azure 機(jī)密計(jì)算的早期試用申請(qǐng);IBM 于 2017 年 12 月宣布 IBM 云數(shù)據(jù)保護(hù)(Cloud Data Guard)的預(yù)覽版;谷歌也于 2018 年 5 月開(kāi)源了名為 Asylo 的機(jī)密計(jì)算框架。

那么,機(jī)密計(jì)算究竟是如何實(shí)現(xiàn)的呢?

實(shí)際上,上述所有云計(jì)算巨頭在實(shí)現(xiàn)機(jī)密計(jì)算時(shí)都離不開(kāi)一種稱(chēng)為“可信執(zhí)行環(huán)境(TEE)”的技術(shù)。

顧名思義,TEE 提供一種與不可信環(huán)境隔離的安全計(jì)算環(huán)境,正是這種隔離和可信驗(yàn)證機(jī)制使得機(jī)密計(jì)算成為可能。

TEE 一般是直接基于硬件實(shí)現(xiàn)的,比如 Intel SGX,AMD SEV,ARM TrustZone,以及 RISC-V Keystone 等;基于虛擬化技術(shù)也可以構(gòu)造 TEE,比如微軟的 VSM,Intel 的 Trusty for iKGT & ACRN,但尚不能匹敵硬件 TEE 的安全性。

其中,Intel 軟件防護(hù)拓展(Software Guard Extensions,簡(jiǎn)稱(chēng) SGX)是目前商用 CPU 中最為先進(jìn)的 TEE 實(shí)現(xiàn),它提供了一套新的指令集使得用戶(hù)可以定義稱(chēng)為 Enclave 的安全內(nèi)存區(qū)域。CPU 保證 Enclave 與外界隔離,從而保護(hù)其中的代碼和數(shù)據(jù)的機(jī)密性、完整性和可驗(yàn)證性。不同于之前的 TEE 實(shí)現(xiàn),比如 ARM TrustZone,SGX 每個(gè) APP 都可以有自己獨(dú)立的 TEE,甚至可以創(chuàng)建多個(gè) TEE,而 TrustZone 是整個(gè)系統(tǒng)有一個(gè) TEE;這里也省去了向設(shè)備廠商申請(qǐng)將 TA 裝入 TEE 的過(guò)程。由于 SGX 的先進(jìn)性,目前云端機(jī)密計(jì)算領(lǐng)域甚至已公認(rèn)用 Enclave 這個(gè)詞來(lái)指代 TEE。

圖片1.png

圖 1  典型 TEE 安全特性和使用流程 [1]

典型的 Enclave 達(dá)到的安全目標(biāo)可以用 CIA 概括,即機(jī)密性(Confidentiality)、完整性(Integrity)和真實(shí)性(Authenticity)。在實(shí)現(xiàn)上具有以下基本要求:

1) Enclave 內(nèi)存保護(hù)

Enclave 內(nèi)存只有 Enclave 本身的代碼可以訪問(wèn)。CPU 通過(guò)內(nèi)存隔離和加密來(lái)防止對(duì)安全內(nèi)存的軟件攻擊和硬件嗅探。SGX 更通過(guò)內(nèi)存控制器的 integrity tree 防止了對(duì) Enclave 內(nèi)存的物理篡改。

2) Enclave 的可信驗(yàn)證

CPU 支持對(duì) Enclave 中數(shù)據(jù)和代碼的測(cè)量,以及對(duì) Enclave 合法性的本地或遠(yuǎn)程驗(yàn)證。有了測(cè)量和驗(yàn)證,本地的 Enclave 之間、客戶(hù)端與遠(yuǎn)程 Enclave 之間,就可以認(rèn)證身份,進(jìn)而建立安全的通信信道。

如何開(kāi)發(fā)受 Enclave 保護(hù)的應(yīng)用程序呢?

以 SGX 為例,其中一種方法是利用 Intel SGX SDK。如下圖所示,基于 SGX SDK 的應(yīng)用程序分為兩部分:Enclave 外的不可信組件(左邊黃色部分)和 Enclave 內(nèi)的可信組件(右邊綠色部分)。兩邊可以通過(guò)跨 Enclave 的函數(shù)調(diào)用通信:不可信組件可以通過(guò) ECall 調(diào)用可信組件中定義的函數(shù);反之,可信組件也可以通過(guò) OCall 調(diào)用不可信組件中定義的函數(shù)。

圖片2.png

圖 2  Enclave 編程模型 [2]

三、機(jī)密計(jì)算面臨的關(guān)鍵問(wèn)題

Enclave 給我們帶來(lái)了前文所謂 CIA 的安全保障,但是目前面臨較大的易用性問(wèn)題。主要體現(xiàn)在幾個(gè)方面。

第一,需要將原有應(yīng)用分割成兩部分,一部分是 enclave 外的 untrusted 部分,一部分在 enclave 里面作為 trusted 部分;

第二,需要精心設(shè)計(jì)兩部分之間的接口,規(guī)劃好什么時(shí)候進(jìn)入 Enclave,什么時(shí)候退出 Enclave——這存在一定技術(shù)門(mén)檻,而且比較繁瑣容易出錯(cuò);

第三,即使我們做了完美的分割, Enclave 里面的環(huán)境相對(duì)于我們熟悉的通常的 Linux 運(yùn)行環(huán)境來(lái)說(shuō)是非常受限的。例如,enclave 里面不能進(jìn)行系統(tǒng)調(diào)用,libc、pthread 不完整,沒(méi)有 openmp,多進(jìn)程支持欠缺等等。

可見(jiàn),把應(yīng)用移植到 Enclave 里面是極具挑戰(zhàn)的,在某些時(shí)候甚至是不可能做到的。而且,由于開(kāi)發(fā)過(guò)程中必須考慮業(yè)務(wù)無(wú)關(guān)的繁雜瑣細(xì)的方面,即使最終能完成應(yīng)用開(kāi)發(fā)移植目標(biāo),也會(huì)導(dǎo)致低下的開(kāi)發(fā)效率,極高的開(kāi)發(fā)成本,這對(duì)于快節(jié)奏的互聯(lián)網(wǎng)業(yè)務(wù)來(lái)說(shuō)是難以接受的。

機(jī)密計(jì)算走向工程實(shí)用面臨的另一較大問(wèn)題是,如何將機(jī)密計(jì)算從單節(jié)點(diǎn)向集群擴(kuò)展。由于缺乏標(biāo)準(zhǔn)的做法,或者沒(méi)有一個(gè) best practice 作為參考,很多時(shí)候各個(gè)業(yè)務(wù)不得不各自從頭造輪子,搭建跟業(yè)務(wù)邏輯過(guò)度耦合的 Enclave 集群基礎(chǔ)設(shè)施。從而導(dǎo)致低下的開(kāi)發(fā)效率和重復(fù)的資源投入。

另一方面,互聯(lián)網(wǎng)業(yè)務(wù)日趨云原生化,越來(lái)越多地采用云原生的 container->k8s->serverless 技術(shù)棧,機(jī)密計(jì)算集群如何跟云原生技術(shù)棧相結(jié)合,目前仍然是較為棘手的問(wèn)題。

四、SOFAEnclave:螞蟻金服的機(jī)密計(jì)算創(chuàng)新

螞蟻金服作為中國(guó)互聯(lián)網(wǎng)金融領(lǐng)導(dǎo)企業(yè),對(duì)于數(shù)據(jù)保護(hù)有大量的需求,因此圍繞機(jī)密計(jì)算進(jìn)行了豐富的業(yè)務(wù)創(chuàng)新和技術(shù)探索。本節(jié)針對(duì)上面提到的機(jī)密計(jì)算面臨的關(guān)鍵問(wèn)題,主要介紹螞蟻金服在這方面的創(chuàng)新性成果,即 SOFAEnclave 機(jī)密計(jì)算中間件。

SOFAEnclave 屬于螞蟻金服金融級(jí)分布式架構(gòu) SOFAStack 的一環(huán),從 2007 年開(kāi)始,SOFAStack 產(chǎn)生于螞蟻金服內(nèi)部需求,起初是為了解決高速發(fā)展下的業(yè)務(wù)問(wèn)題。到 2019 年,已經(jīng)歷 12 年的業(yè)務(wù)錘煉,是一套成熟的金融級(jí)最佳實(shí)踐。從 2018 年起,螞蟻金服宣布將 SOFAStack 貢獻(xiàn)給開(kāi)源社區(qū),目前已貢獻(xiàn)出超過(guò) 10 個(gè)核心項(xiàng)目,受到社區(qū)廣泛關(guān)注。

SOFAEnclave 主要關(guān)注底層基礎(chǔ)設(shè)施的安全防護(hù),為數(shù)據(jù)和代碼打造一層可信中間件。我們的總體目標(biāo)是通過(guò)易用性的提升,向業(yè)務(wù)屏蔽 Enclave 開(kāi)發(fā)挑戰(zhàn)和機(jī)密計(jì)算集群復(fù)雜性,使業(yè)務(wù)保持原有開(kāi)發(fā)部署習(xí)慣。用一句話總結(jié)就是,使業(yè)務(wù)只需關(guān)注業(yè)務(wù)。

圖片3.png

圖 3  SOFAEnclave

SOFAEnclave 的核心包括三部分,Enclave 內(nèi)核 Occlum,云原生機(jī)密計(jì)算集群 KubeTEE,以及安全測(cè)試和分析框架。這里主要介紹 Occlum 和 KubeTEE。

1. Occlum LibOS:安全高效的機(jī)密計(jì)算內(nèi)核

針對(duì) Enclave 易用性問(wèn)題,我們?cè)O(shè)計(jì)了一個(gè)名為 Occlum 的 Enclave 內(nèi)核,并將其作為一個(gè)開(kāi)源項(xiàng)目采用社區(qū)模式開(kāi)發(fā)。類(lèi)比操作系統(tǒng)內(nèi)核,Occlum LibOS 向 Enclave 內(nèi)的可信應(yīng)用提供完整的系統(tǒng)服務(wù),應(yīng)用不需要分割和修改即可得到 Enclave 保護(hù)。

Occlum 兼容 POSIX 編程接口,并支持多線程、OpenMP、和多進(jìn)程;同時(shí),Occlum 實(shí)現(xiàn)了多進(jìn)程隔離機(jī)制,使得多個(gè)可信應(yīng)用之間可以相互隔離。Occlum 使得開(kāi)發(fā)者方便利用 Enclave 的 CIA 能力,達(dá)到可用不可見(jiàn)、可用不可攻的效果,使數(shù)據(jù)保護(hù)能真正得到落實(shí)。

目前,Occlum 可輕松支持大型人工智能框架,例如 XGBoost、TensorFlow 等,也可支持大型服務(wù)器應(yīng)用例如 Shell, GCC,Web Server 等。Occlum 具有如下技術(shù)特點(diǎn):

1)    內(nèi)存安全

內(nèi)存安全問(wèn)題是系統(tǒng)軟件中最常見(jiàn)的安全隱患。競(jìng)態(tài)條件、緩沖區(qū)溢出、空指針、棧溢出、堆耗盡、釋放后訪問(wèn)、或重復(fù)釋放,這些術(shù)語(yǔ)都用于描述內(nèi)存安全漏洞。微軟 2019 年 2 月表示,在過(guò)去 12 年里,微軟所有補(bǔ)丁中大約 70% 是針對(duì)內(nèi)存安全漏洞的。因此,防范內(nèi)存安全問(wèn)題對(duì)系統(tǒng)軟件的安全性和健壯性非常重要。

Occlum 是業(yè)界首個(gè)內(nèi)存安全的 SGX LibOS。Occlum LibOS 是基于保證內(nèi)存安全的 Rust 語(yǔ)言開(kāi)發(fā),只包含極少量的 Unsafe Rust、C 和匯編代碼(小于 1000 行)。這使得 Occlum 難以出現(xiàn)最底層的內(nèi)存安全相關(guān)的 bug 和漏洞。因此,相比使用 C/C++ 開(kāi)發(fā)的傳統(tǒng) SGX LibOS(如 Graphene-SGX 和 SCONE),Occlum 更值得開(kāi)發(fā)者信賴(lài),作為開(kāi)發(fā)高安全應(yīng)用的基礎(chǔ)。

2)    簡(jiǎn)單易用

Occlum LibOS 使得 Linux 應(yīng)用程序在只修改少量代碼或者完全不修改代碼的情況下運(yùn)行于 Enclave 安全環(huán)境中。用戶(hù)只需使用 Occlum 工具鏈(occlum-clang)編譯應(yīng)用程序,并使用名為 occlum 的命令行工具在 SGX enclave 中運(yùn)行該應(yīng)用程序。該命令行工具提供了諸多子命令,其中最重要的三個(gè)是:occlum init:初始化 Occlum 的上下文occlum build:制作 Occlum 的可信鏡像和 enclaveocclum run:在 enclave 中運(yùn)行 Occlum 可信鏡像中的一個(gè)程序。

Occlum 大大降低了為 Enclave 開(kāi)發(fā)應(yīng)用的開(kāi)發(fā)成本。我們以一個(gè)最簡(jiǎn)單的 Hello World 為例說(shuō)明。使用 Intel SGX SDK 開(kāi)發(fā)的 SGX Hello World 工程包含 10 個(gè)左右的文件,300 行左右的代碼;使用百度的 Rust SGX SDK 需要 200 行左右的代碼;Google 的 Asylo 也需要 100 行左右的代碼。相比之下,Occlum 不要求用戶(hù)給 Linux 版本 Hello World(5 行代碼)增加任何額外的代碼,并且只需三行命令即可將 Linux 版的 Hello World 程序運(yùn)行于 SGX enclave 中,效果如下:

動(dòng)圖4.gif

圖 4  3行命令在 Enclave 里跑 5 行代碼的 Hello World

3)    高效多進(jìn)程

任何應(yīng)用程序在 LibOS 上都是作為進(jìn)程運(yùn)行的,而應(yīng)用程序往往又由多個(gè)進(jìn)程組成。因此,LibOS 對(duì)多進(jìn)程的高效支持就顯得至關(guān)重要了。然而,現(xiàn)有 SGX LibOS 對(duì)多進(jìn)程的支持并不能令人滿意。閉源的 SCONE 只支持多線程,尚不支持多進(jìn)程。開(kāi)源的 Graphene-SGX 是目前最成熟的 SGX LibOS,且能夠支持多進(jìn)程,但它的每個(gè) LibOS 進(jìn)程必須在一個(gè)單獨(dú)的 SGX enclave 中運(yùn)行,且每個(gè) enclave 中必須運(yùn)行一個(gè)獨(dú)立的 LibOS 實(shí)例。這種 N 進(jìn)程 -N enclave 的架構(gòu)雖然保證了 LibOS 進(jìn)程之間的強(qiáng)隔離,但也導(dǎo)致了性能和功能方面的問(wèn)題:

①進(jìn)程啟動(dòng)慢:Graphene-SGX 要為每個(gè) LibOS 進(jìn)程創(chuàng)建一個(gè)單獨(dú)的 enclave,而創(chuàng)建 enclave 的開(kāi)銷(xiāo)非常高,因此 Graphene-SGX 的 LibOS 進(jìn)程啟動(dòng)極慢(比 Linux 啟動(dòng)進(jìn)程慢接近 10,000 倍)。

②IPC 開(kāi)銷(xiāo)高:Graphene-SGX 的每個(gè) LibOS 進(jìn)程都被一個(gè) enclave 同外界完全隔離,因此 LibOS 進(jìn)程間通信必須借助于 enclave 外的不可信緩存,并傳輸加密數(shù)據(jù)。加密解密大大增加了進(jìn)程間通信的開(kāi)銷(xiāo)。

③難保證一致性:Graphene-SGX 有 N 個(gè)進(jìn)程就有 N 個(gè) LibOS 實(shí)例,而原則上來(lái)講,這 N 個(gè) LibOS 實(shí)例應(yīng)該向上層的應(yīng)用程序提供一致的 OS 狀態(tài),比如加密文件系統(tǒng)。但顯然在多個(gè) LibOS 實(shí)例之間同步文件系統(tǒng)的狀態(tài)(比如每個(gè)文件塊的密鑰)是困難的。這也是為什么 Graphene-SGX 至今都未提供加密文件系統(tǒng)。

與 Graphene-SGX 不同,Occlum 是一個(gè)單地址空間 LibOS,即在同一個(gè) enclave 中運(yùn)行多個(gè) LibOS 進(jìn)程。該架構(gòu)特別適用于多進(jìn)程協(xié)作的使用場(chǎng)景,即多個(gè)互信的進(jìn)程組成同一個(gè)應(yīng)用或服務(wù)。這個(gè)“多進(jìn)程共享 enclave”的架構(gòu)為 Occlum 的多進(jìn)程支持帶來(lái)了三個(gè)優(yōu)勢(shì):

①進(jìn)程啟動(dòng)快:Occlum 的進(jìn)程啟動(dòng)比 Graphene-SGX 快 13-6600 倍(圖 4);

②IPC 開(kāi)銷(xiāo)低:Occlum 的進(jìn)程間通信帶寬是 Graphene-SGX 的 3 倍(圖 5);

③加密文件系統(tǒng):Occlum 支持對(duì)應(yīng)用透明的、可寫(xiě)加密文件系統(tǒng),保證文件系統(tǒng)的元數(shù)據(jù)與數(shù)據(jù)的機(jī)密性和完整性。

圖片4.png

圖 5  進(jìn)程啟動(dòng)時(shí)延比較 程序大小分別為 14KB、400KB 和 14MB

圖片5.png

圖 6  進(jìn)程間通信 (pipe) 帶寬比較

2.KubeTEE:金融級(jí)云原生的機(jī)密計(jì)算集群

針對(duì) Enclave 集群化方面的問(wèn)題,我們思考如何能更高效和簡(jiǎn)潔的使用 TEE 資源提供機(jī)密計(jì)算服務(wù),我們的解決方法是 KubeTEE——結(jié)合云原生,提供機(jī)密計(jì)算集群服務(wù)。

一方面避免了業(yè)務(wù)用戶(hù)重復(fù)進(jìn)行基礎(chǔ)設(shè)施建設(shè),另一方面用戶(hù)注冊(cè)賬號(hào)即可使用機(jī)密計(jì)算集群服務(wù),大大降低了機(jī)密計(jì)算門(mén)檻,提高了易用性和利用率。KubeTEE 為了更高效的使用物理資源,基于 k8s + container 更優(yōu)雅地部署和管理機(jī)密計(jì)算鏡像和 EPC 資源?;?k8s 的容器調(diào)度能力,KubeTEE 可以快速實(shí)現(xiàn)機(jī)密計(jì)算服務(wù)資源的橫向擴(kuò)縮容。概括來(lái)說(shuō),我們希望以一種更加云原生的方式來(lái)使用 Enclave 和機(jī)密計(jì)算集群資源。

1)提供基于 Enclave Container 的業(yè)務(wù)部署能力,基礎(chǔ)設(shè)施運(yùn)維和業(yè)務(wù)無(wú)感知升級(jí)等能力

2)提供 Serverless 機(jī)密計(jì)算服務(wù),基于通用的機(jī)密計(jì)算資源池支持業(yè)務(wù)服務(wù)

3)基于通用的機(jī)密計(jì)算組件、中間件服務(wù)和研發(fā)流程結(jié)合提供平臺(tái)化的業(yè)務(wù)開(kāi)發(fā)能力

圖片6.png

圖 7 KubeTEE 系統(tǒng)架構(gòu)

上圖中描述了我們實(shí)現(xiàn) Serverless 機(jī)密計(jì)算集群的過(guò)程,我們一方面提供最終態(tài)的機(jī)密計(jì)算服務(wù),同時(shí)將過(guò)程中積累的組件抽象化為可復(fù)用模塊,應(yīng)對(duì)不同業(yè)務(wù)的定制化需求,提升機(jī)密計(jì)算業(yè)務(wù)的 Enclave 開(kāi)發(fā)效率。

五、典型應(yīng)用場(chǎng)景

機(jī)密計(jì)算應(yīng)用場(chǎng)景非常廣泛,常見(jiàn)的應(yīng)用有基于 Enclave 的版權(quán)保護(hù)、生物識(shí)別保護(hù)、基因數(shù)據(jù)處理、密鑰保護(hù)、密鑰管理系統(tǒng)、隱私保護(hù)的機(jī)器學(xué)習(xí)、加密數(shù)據(jù)分析、以及保密數(shù)據(jù)庫(kù)等。其他如區(qū)塊鏈隱私計(jì)算、區(qū)塊鏈 +AI、隱私邊緣計(jì)算等都可以構(gòu)建在機(jī)密計(jì)算技術(shù)基礎(chǔ)上,以更好的服務(wù)應(yīng)用場(chǎng)景。這一節(jié)結(jié)合互聯(lián)網(wǎng)業(yè)務(wù)探討兩個(gè)略微復(fù)雜的應(yīng)用場(chǎng)景。

1.基于 Enclave 的多方競(jìng)合學(xué)習(xí)

眾所周知,人工智能能發(fā)展到今天,有兩個(gè)原因:一個(gè)是算力的提高,另一個(gè)就是數(shù)據(jù)規(guī)模的增長(zhǎng)。但是,單一機(jī)構(gòu)的業(yè)務(wù)領(lǐng)域和業(yè)務(wù)受眾是有限的,因此其數(shù)據(jù)積累一方面是不全面的,另一方面也是難以形成規(guī)模的。

為了發(fā)揮數(shù)據(jù)的更大價(jià)值,一個(gè)自然的想法就是匯聚多方數(shù)據(jù)進(jìn)行集中挖掘。但是,機(jī)構(gòu)之間出于業(yè)務(wù)保密以及行業(yè)競(jìng)爭(zhēng)的顧慮,又不可能把自己的數(shù)據(jù)無(wú)保留分享給別人。

這導(dǎo)致了一種看似不可思議的矛盾局面:多個(gè)機(jī)構(gòu)既競(jìng)爭(zhēng)又合作,既數(shù)據(jù)共享又?jǐn)?shù)據(jù)保密(圖 6)——我們將其稱(chēng)為多方競(jìng)合學(xué)習(xí)。

怎么解決這種矛盾呢?一種方案是,把各自加密的數(shù)據(jù)導(dǎo)入 Enclave,在 Enclave 內(nèi)解密、匯聚、并挖掘。具體實(shí)現(xiàn)細(xì)節(jié)可以參考螞蟻金服共享智能團(tuán)隊(duì)的文章。

圖片7.png

圖 8 多方競(jìng)合學(xué)習(xí)

2.AI 模型安全保護(hù)

對(duì)外部署的 AI 模型攜帶大量知識(shí)產(chǎn)權(quán),一旦被逆向或泄露,既會(huì)對(duì)技術(shù)護(hù)城河造成破壞,也會(huì)降低對(duì)抗性樣本攻擊的難度,導(dǎo)致安全問(wèn)題。

應(yīng)對(duì)這種威脅的一種方案是,使用方把 AI 模型和訓(xùn)練 / 預(yù)測(cè)數(shù)據(jù)加密存儲(chǔ),只有在使用時(shí)才將其輸入 Enclave,在 Enclave 里面解密,由 Enclave 中運(yùn)行的 AI 框架處理,結(jié)果根據(jù)具體場(chǎng)景需求以明文返回或加密返回并在使用方本地解密。這要求 Enclave 能支持常見(jiàn)的 AI 框架,而要做到這一點(diǎn)極為挑戰(zhàn)——一方面是因?yàn)檫@些 AI 框架一般使用了復(fù)雜的多線程、OpenMP 等性能優(yōu)化的運(yùn)行環(huán)境,另一方面是因?yàn)?Enclave 又偏偏難以提供這些支撐環(huán)境。這就是為什么市面上很多 Enclave 支撐系統(tǒng)難以支持(或難以高效支持)AI 框架的原因。

如前所述,Occlum LibOS 在這方面取得了一定的進(jìn)展,可以較為輕松的高效運(yùn)行常見(jiàn) AI 框架。

圖片8.png

圖 9 AI 模型安全保護(hù)

六、總結(jié)與展望

機(jī)密計(jì)算方興未艾,學(xué)術(shù)界的研究如火如荼,工業(yè)界的應(yīng)用也日益豐富和實(shí)際。螞蟻金服在機(jī)密計(jì)算領(lǐng)域是技術(shù)的探索者和業(yè)務(wù)的先行者,我們?nèi)杂兄T多問(wèn)題需要整個(gè)生態(tài)的合作。

我們正在逐步將 SOFAEnclave 里的模塊貢獻(xiàn)給開(kāi)源社區(qū),歡迎行業(yè)和學(xué)術(shù)同仁聯(lián)系合作。希望合作伙伴向 Occlum 項(xiàng)目提出反饋并貢獻(xiàn)代碼,一起利用 Occlum LibOS 來(lái)支持更多實(shí)際應(yīng)用,實(shí)現(xiàn) Enclave 保護(hù)的安全容器 Enclave Container。在 KubeTEE 方面,希望能與合作伙伴共建生態(tài),維護(hù)可信應(yīng)用和鏡像倉(cāng)庫(kù),推進(jìn)機(jī)密計(jì)算集群方案的實(shí)用化標(biāo)準(zhǔn)化。

極客網(wǎng)企業(yè)會(huì)員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。

2019-09-30
SOFAEnclave:螞蟻金服新一代可信編程環(huán)境,讓機(jī)密計(jì)算為金融業(yè)務(wù)保駕護(hù)航102年
導(dǎo)讀:近日,Linux 基金會(huì)宣布全球多家巨頭企業(yè)成立機(jī)密計(jì)算聯(lián)盟(Confidential Computing Consortium),在對(duì)于數(shù)據(jù)安全和隱私擔(dān)憂的不斷增長(zhǎng)下,基于可信執(zhí)行環(huán)境技術(shù)的機(jī)密計(jì)算作為一種可行的解決方案

長(zhǎng)按掃碼 閱讀全文