用安全計算怎麼保護關鍵業務?快來學習!!!

螞蟻金服分散式架構發表於2021-06-02

什麼是安全計算?

Linux 基金會旗下的安全計算聯盟對安全計算下了一個定義:

Confidential Computing protects data in use by performing computation in a hardware-based Trusted Execution Environment.

Confidential Computing Consortium

在這個定義中強調了這麼幾點:

1.安全計算保護的是運算過程中的資料安全; 2.安全計算需要藉助硬體的能力。

下面就對這兩點做一個闡述: 在雲端計算場景,我們可以把雲端計算簡化為三個部分:資料的傳輸,資料的運算和資料的儲存。

這個三個部分的安全解決方案的完整度是有差別的。在資料的傳輸環節,業界有很完整的安全標準和實現比如 SSL, TLS。在資料儲存環節,密碼學也提供了非常好的解決方案,我們可以將資料用恰當的方式加密以後儲存,防止在儲存環節洩密。在資料的運算環節,還沒有和其他兩個環節那樣完整的解決方案。安全計算正是以解決這個問題為目標的。

安全計算是如何實現的呢?

我們以英特爾的 SGX 技術為例來看一下具體的技術方案。

英特爾的 SGX 技術是將 CPU 作為運算的信任起點,在應用程式中構建安全的運算環境(飛地)。從計算機發明的那一天起,我們就假設 CPU 會按照軟體的指令正確地執行,只是沒有強調這一點。在軟體大發展的今天,各種軟體在一臺硬體上協作執行,整個生態越來越複雜,惡意軟體也出現了。為了防止惡意軟體的破壞,CPU 為需要保護的應用隔離出一個獨立的飛地環境。飛地外的應用既不能觀察也不能修改飛地中的程式碼和資料,從而保證了飛地中的資料安全。CPU 對飛地的保護非常強,即使是擁有高特權的作業系統和虛擬化管理軟體也無法突破這種保護。事實上,不僅僅可以防軟體的攻擊,哪怕是外圍硬體提供者(比如:主機板製造者,記憶體提供者)都無法突破這個保護。

英特爾 SGX 是目前最成熟的安全計算產品,但並不是唯一的安全計算產品。其他硬體廠商如 AMD,ARM,Nvidia 都在推出安全計算產品。所有這些產品都是軟硬體一體的解決方案,總結起來有以下這些特點:

在瞭解了安全計算的概念後,介紹一些安全計算的典型場景:

有了安全計算環境,使用者可以放心地將應用放到共有云計算環境中,計算中用到的資料和計算的結果都可以加密傳輸。這樣可以統一基礎設施的架構,避免複雜的混合雲部署方式。

雲上的資料交易和資料服務也成為了可能。資料擁有方和演算法提供方可以分別提供資料和演算法至安全計算平臺完成計算而不用擔心機密洩露的問題。

安全計算也可以促成更多的資料合作。各方資料可以在一個安全的環境中做融合運算,讓資料產生更大的價值。

在邊緣計算場景中,計算節點部署在非常複雜的環境中,機器不受控。安全計算可以有效地保護使用者資料和隱私。

安全計算這麼多的應用場景,為什麼還沒有看到大規模部署呢?這是因為安全計算目前還有一個非常大的短板:易用性不強。具體表現為3點:

**應用分割難:**將一個現有的應用改造為一個安全計算應用的改造難度很大。需要做程式碼分割。

**場景部署難:**安全計算是要依託於硬體的。在實際部署中需要對應用排程系統做改造。

**安全分析難:**一個應用使用了安全計算是不是就一定安全了呢?答案是不確定。這需要對整個應用做非常細緻的安全分析。

針對這些難題,螞蟻集團和阿里巴巴集團的工程師提出了獨到的解決方案。 首先是解決應用分割難的問題。

螞蟻集團開源的 Occlum 專案在飛地中開發了 LibOS 適配層,讓 Linux 下的應用可以無修改地執行在 SGX 環境中,徹底解決了應用分割的問題。Occlum 使用 Rust 語言開發,保證記憶體了安全性;支援多程式和加密檔案系統,應用無需修改。 例如:基於螞蟻集團金融級雲原生框架 SOFABoot 開發的應用可以完全無修改的執行在 Occlum 環境中。

?網站連結?: github.com/occlum/occl…

針對部署難的問題,阿里雲推出了 Inclavare 開源專案。

Inclavare 基於 Occlum,為使用者提供了安全計算容器。使用者只需將關注的重點放在應用本身即可,Inclavare 會將計算排程至合適的計算節點。 針對安全分析難,螞蟻集團的 MORSE 多方安全計算引擎和 MYTF 區塊鏈計算平臺分別為不同的計算場景提供瞭解決方案。使用者無需再承擔高昂的安全分析成本。

螞蟻集團在安全計算領域持續投入,用科技的力量來保護資料安全,保護使用者隱私,給使用者提供更安全的服務。螞蟻集團開源了 TEE 安全 LibOS Occlum。 使用者可以在 github.com/occlum/occl… 找到所有的實現程式碼。使用者既可以審查 Occlum 的原始碼,以確保整體方案的安全性;也可以參考已有的 demo 來學習 Occlum 的使用方法,快速上手安全計算。

本週推薦閱讀

更多文章請掃碼關注“金融級分散式架構”公眾號

相關文章