作為唯一安全技術入選IEEE,機密計算為什麼如此重要?

作者 | 藍晏翔 邵樂希

出品 | IDEA研究院

大規模AI計算中的資料和模型安全

大規模AI計算中的資料和模型安全

人工智慧技術(AI)作為這個時代最具影響力的技術,滲透到了我們生活的方方面面。特別是2022年底,OpenAI發佈的ChatGPT表現出了驚人的資訊分析、整合、決策和對話能力。隨著人工智慧模型規模和能力的進一步增強,AI未來將幫助人們完成一系列個性化的複雜工作,諸如資訊諮詢、任務代辦等等。

AI技術的演變離不開大資料和大模型的支撐,動輒上千億參數的大模型的訓練需要消耗上萬億的高質量資料,並在面向市場的過程中不斷根據使用者的反饋進行調整升級。在這裡,整個AI服務涉及到資料的提供者、模型的擁有者和算力的提供者三個角色。對於資料的提供者來說,資料包含了其個人的敏感資料或者企業經過多年運營沉澱下來的資料,蘊含著巨大的商業價值;對於模型的擁有者來說,模型包含著擁有者對於AI演算法以及應用行業的深刻理解,以及為了訓練模型所付出的巨大開銷,是企業寶貴的智慧財產權。

參與的各方都希望在模型的訓練和應用過程中保護自身資料隱私,因為資料和模型本身被視為參與方的寶貴資產。從另一方面來說,隨著《網路安全法》《資料安全法》和《個人資訊保護法》的頒佈和實施,對於資料隱私的保護,實現資料「可用不可見」「可控可計量」也成為法律法規的要求,資料和模型一旦洩露,將會帶來嚴重的社會負面影響以及巨大的經濟損失。

隨著雲端運算的發展和模型訓練對於超大規模算力的需求增長,絕大部分的模型訓練工作已遷移到雲上進行。另外,基於對服務實時性和可靠性的要求,大量的AI模型被部署在IoT設備端(例如在自動駕駛場景中)。在大多數情況下,雲端運算基礎設施和IoT設備並不被資料和模型所有者所擁有和控制,如何在一個不可信的環境中保證資料和模型的安全隱私,成為了大規模機器學習和應用的挑戰。

什麼是機密計算?

什麼是機密計算?

為了應對上述挑戰,一系列相關技術逐漸受到學術界和工業界的關注,機密計算技術便是其一。機密計算(Confidential Computing)是指在基於硬體的可信執行環境(Trusted Execution Environment, TEE)中執行計算來保護使用中的資料(data in use)的一種技術。基於硬體的可信執行環境保證了機密計算的任務和資料不會被惡意程序竊取,硬體級的安全保障使得即使高許可權的作業系統甚至是虛擬機器監視器(hypervisor),也無法窺探和篡改機密計算中的資料和程式碼。

自2002年ARM提出TrustZone技術以來,機密計算已經走過了20多個年頭。2015年,Intel推出了SGX,機密計算技術進入了快速發展的階段。2019年8月,Linux基金會聯合國內外科技巨頭宣佈成立「機密計算聯盟」(Confidential Computing Consortium),標誌著機密計算在工業界的進一步發展和壯大。

2022年,NVIDIA推出的新一代GPU H100集成了機密計算模組,標誌著機密計算將成為未來AI計算的基礎設施之一。在2022年IEEE的技術預測中,評選了16項將在未來幾年(短期)產生重大影響的技術,機密計算技術作為唯一的安全技術入選其中。如今,ARM、Intel、AMD、華為等廠商都推出了自己的機密計算技術,在伺服器端和終端分別是Intel的SGX技術和ARM的TrustZone技術佔據了主要的市場份額。

Intel SGX技術簡介

Intel的SGX技術通過CPU的硬體擴展,允許應用程序創建一個叫Enclave的安全容器,並將敏感資料和程式碼放到該容器中。在Enclave中,程式碼和資料的機密性和完整性只依賴硬體保障,BIOS、OS等特權應用都無法直接訪問到Enclave的內容。也就是說SGX技術的TCB(Trusted Computing Base, 可信計算基)僅為CPU廠商和Enclave本身,即使伺服器的根許可權被攻擊者竊取了,也不能直接獲取Enclave中的保密資料。

SGX應用的工作原理可以由下圖說明。應用在實現時就需要區分可信和不可信兩個部分,可信的部分需要使用EDL(Enclave-Definition Language)實現邏輯,並使用ECALL和OCALL進行可信部分和不可信部分的互動,見下圖1。

圖1  SGX應用模型

圖1 SGX應用模型

ARM TrustZone技術簡介

ARM的TrustZone技術提供了硬體隔離區分的安全世界(Secure World)和不安全世界(Normal World)。TrustZone在處理器架構上將每個物理核虛擬成一個安全核(Secure Core)和一個非安全核(Non-Secure Core),並通過了Monitor Mode實現兩個世界之間的切換。除了運算核以外,MMU、GIC、Cache等硬體都進行了兩個世界的隔離操作。在安全世界中,有一個可信核心(TEE Kernel)負責多個可信應用實例的管理,如記憶體分配與隔離、通訊管理等,也屬於TCB的一部分。

TrustZone TEE的應用模型符合Global Platform(GP)規範並可以由下圖2表示。一個應用需要分成運行在富執行環境和運行在TEE中的兩個程序,兩個世界的應用通訊需通過提供的TEE API進行。

圖2  TrustZone應用模型

圖2 TrustZone應用模型

機密計算與其他隱私計算方案的對比

機密計算與其他隱私計算方案的對比

機密計算作為一種基於硬體的隱私計算技術,與其他的隱私計算技術相比,在高效性和普適性上具備較大的優勢。以多方安全計算(Secure Multi-Party Computation, SMPC)和聯邦學習(Federated Learning, FL)為例,SMPC以密碼學為基礎,通過加密狀態下的多輪通訊共同計算一個約定好的任務,而不洩露彼此的隱私資訊。FL基於分散式機器學習,在不交換各資料方本地資料的條件下,僅通過交換本地資料的模型資訊構建基於全體資料樣本的全局模型。從高效性上看,SMPC和FL由於涉及大量的加解密和網路通訊,其綜合的運算性能與基於明文的計算相比會有數百倍以上的損失,這使其難以適應大吞吐量、低延遲的計算場景。對機密計算而言,資料和模型的機密性和完整性由底層硬體進行保證,能夠獲得和明文計算相接近的計算性能。在普適性方面,SMPC和FL對於計算任務的特徵和結構有一定的假設,無法滿足任意的計算需求。相比之下,機密計算沒有這方面的約束,普適性更高。

機密計算的應用與挑戰

機密計算的應用與挑戰

在AI模型的訓練和應用中,機密計算技術已經得到了廣泛的應用。AWS、Google、微軟以及國內的阿里巴巴、騰訊等廠商相繼推出了自身的機密計算產品,並用於多方計算、醫療保健、藥物研發等場景。同時,機密計算技術也是學術界研究的熱點。舉例來說,在模型訓練領域,有學者基於可程式設計總線晶片以及安全控制實現了大規模的異構機密AI模型訓練。在模型應用上,有學者利用IoT設備上的可信執行環境以及可信執行環境的加密通訊,配之以相應的管理和控制模組,同時保護了IoT設備採集的資料和AI模型的安全隱私。

然而,現行的主流機密計算技術還面臨著一些技術挑戰。主流機密計算技術通過「標誌位」「訪問控制」等技術實現了可信應用和不可信應用的邏輯上的硬體隔離。然而,在主流的機密計算技術中,需要被保護的可信應用和不可信應用運行在同一個計算核心上。兩類任務在物理上共享了頁表(page table)、硬體快取(cache)、分支目標快取(Branch target buffer, BTB)等硬體元件。硬體元件的共享可能會導致側頻道攻擊(side-channel attack)風險。研究表明,對於硬體快取等元件的側頻道攻擊會導致輸入資料或者模型的洩露。

研究者提出了一系列方法來應對這類風險:一類方法基於不經意(oblivious)訪問,即通過密碼學的技術和協議來掩蓋可信應用對於共享元件的訪問痕跡,以防止側頻道攻擊的風險;另一類方法則是對於可信應用的構建工具或運行狀態進行一些定製,例如通過地址隨機化、關閉超執行緒、中斷監測等技術來發現和避免側頻道攻擊;同時,對應特定的側頻道攻擊,硬體廠商也會及時發佈相應的補丁。除此之外,隨著機密計算得到廣泛而重要的應用,人們也開始致力於為可信應用設計獨立的記憶體或計算單元。獨立的記憶體和計算單元使得可信應用和不可信應用在硬體層面完全隔離,從根源上解決了側頻道攻擊的風險。

而在工程落地層面,主流的機密計算技術給出了一個新的程式設計正規化。開發者需要自行將應用分為可信部分和不可信部分,並將可信部分顯示放入機密計算框架中,並自行管理可信部分和外界的互動,這大大增加了軟體遷移的成本。雖然有一些基於開發者標註的自動劃分工具,也有人提出了庫作業系統(LibOS)來簡化現有應用的遷移,但是這些方案有著各自的侷限性:自動化劃分工具方案中,目前已有的自動劃分工具只支持C/C++和Java,無法支持更多的語言(例如Python)。庫作業系統的方案中,有的方案需要重編譯程序,這對於商業場景的落地是一個較大挑戰,因為程式碼作為程序所有者的重要智慧財產權,往往無法基於部署環境進行重編譯;有的方案雖然做到了部分二進位制兼容,但在性能上仍然需要做出較大犧牲。

最後,在安全層面,現行的主流機密計算技術的POSIX系統調用(system call)是交由不可信作業系統來完成的,為了應對接口層的Iago攻擊,庫作業系統需要實現相應的防範機制。然而,由於POSIX接口眾多且複雜,如何在庫作業系統上完備地防範接口攻擊也是一個需要繼續研究的課題。

IDEA研究院在機密計算領域的探索

IDEA研究院在機密計算領域的探索

IDEA研究院在機密計算領域也做了一些探索,為了應對機密計算領域的側頻道攻擊和工程落地的挑戰,我們將機密計算任務完全卸載到一個獨立的協處理器(Secure Processing Unit, SPU)上,物理級別的硬體隔離使得機密計算任務避免了側頻道攻擊的風險。

SPU僅通過高速總線和主機通訊,硬體級別的安全訪問圍欄(Secure Enforcement Barrier)防止了非授權和非認證的資料通訊。在系統層面,SPU內定製安全啟動、安全設備抽象和安全容器技術使得原有程式碼無需重新編譯即可運行,POSIX系統調用由SPU自行處理以避免Iago攻擊,這些技術進一步保證了可信應用的機密性和完整性。

總結

總結

在AI技術如火如荼發展的今天,資料作為人工智慧的「石油」,模型作為人工智慧的最終產品,都蘊含著巨大的商業價值。對於資料和模型的機密性的保護,實現資料和模型的「可用不可見」「可控可計量」不僅是法律法規的要求,也是數字經濟發展的需要。

機密計算提供了一種高效普適的解決方案,並隨著人工智慧、大資料、雲端運算技術的發展而快速發展,成為安全隱私計算的一條主流的技術路線。在未來,機密計算技術還將在可信、安全以及工程化落地和可擴展性方面不斷演進,最終成為安全、普適、高性能、可擴展、易部署的AI資料和模型的安全守護者。

參考資料

1、Everest Group. Confidential Computing——The Next Frontier in Data Security[DB/OL]. https://confidentialcomputing.io/wp-content/uploads/sites/85/2021/10/Everest_Group_-_Confidential_Computing_-_The_Next_Frontier_in_Data_Security_-_2021-10-19.pdf

2、IEEE, IEEE Technology Predictions, https://cmte.ieee.org/futuredirections/2022/01/17/2022-technology-predictions/

3、J. Zhu et al., “Enabling Rack-scale Confidential Computing using Heterogeneous Trusted Execution Environment,” 2020 IEEE Symposium on Security and Privacy (SP), San Francisco, CA, USA, 2020, pp. 1450-1465, doi: 10.1109/SP40000.2020.00054.

4、L. Hanzlik et al., “MLCapsule: Guarded Offline Deployment of Machine Learning as a Service,” 2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops (CVPRW), Nashville, TN, USA, 2021, pp. 3295-3304, doi: 10.1109/CVPRW53098.2021.00368.

5、K. Grover et al. 「Privado:Practical and Secure DNN Inference with Enclaves」, https://arxiv.org/abs/1810.00602

6、Yuntao Liu and Ankur Srivastava. 2020. GANRED: GAN-based Reverse Engineering of DNNs via Cache Side-Channel. In Proceedings of the 2020 ACM SIGSAC Conference on Cloud Computing Security Workshop (CCSW’20). Association for Computing Machinery, New York, NY, USA, 41–52. https://doi.org/10.1145/3411495.3421356

7、 S. Sasy, S. Gorbunov, and C. W. Fletcher, 「ZeroTrace: Oblivious Memory Primitives from Intel SGX,」 in Proc. 2018 Netw. Distrib. Syst. Secur. Symp., Reston, VA: Internet Society, 2018, ISBN: 1-891562-49-5. DOI:10.14722/ndss.2018.23239.

8、 J. Seo, B. Lee, S. Kim, M.-W. Shih, I. Shin, D. Han, and T. Kim, 「SGX-Shield: Enabling Address Space Layout Randomization for SGX Programs,」 in Proc. 2017 Netw. Distrib. Syst. Secur. Symp., Reston, VA: Internet Society, 2017, ISBN: 1-891562-46-0. DOI: 10.14722/ndss.2017.23037.

9、G. Chen, W. Wang, T. Chen, S. Chen, Y. Zhang, X.Wang, T.-H. Lai, and D. Lin, 「Racing in Hyperspace: Closing Hyper-Threading Side Channels on SGX with Contrived Data Races,」 in 2018 IEEE Symp. Secur. Priv., vol. 2018-May, IEEE, 2018, pp. 178–194, ISBN: 978-1-5386-4353-2. DOI: 10 . 1109 / SP. 2018 . 00024.

10、 M.-W. Shih, S. Lee, T. Kim, and M. Peinado, 「TSGX: Eradicating Controlled-Channel Attacks Against Enclave Programs,」 March, 2017. DOI: 10.14722/ndss.2017.23193.

11、Hyunyoung Oh, Adil Ahmad, Seonghyun Park, Byoungyoung Lee, and Yunheung Paek. 2020. TRUSTORE: Side-Channel Resistant Storage for SGX using Intel Hybrid CPU-FPGA. In Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security (CCS ’20). Association for Computing Machinery, New York, NY, USA, 1903–1918.https://doi.org/10.1145/3372297.3417265

12、H. Oh, K. Nam, S. Jeon, Y. Cho and Y. Paek, “MeetGo: A Trusted Execution Environment for Remote Applications on FPGA,” in IEEE Access, vol. 9, pp. 51313-51324, 2021, doi: 10.1109/ACCESS.2021.3069223.

13、Joshua Lind, Christian Priebe, Divya Muthukumaran, Dan O’Keeffe, Pierre-Louis Aublin, Florian Kelbert, Tobias Reiher, David Goltzsche, David Eyers, Rüdiger Kapitza, Christof Fetzer, and Peter Pietzuch. 2017. Glamdring: automatic application partitioning for intel SGX. In Proceedings of the 2017 USENIX Conference on Usenix Annual Technical Conference (USENIX ATC ’17). USENIX Association, USA, 285–298.

14、Chia-Che Tsai, Jeongseok Son, Bhushan Jain, John McAvey, Raluca Ada Popa, and Donald E. Porter. 2020. Civet: an efficient Java partitioning framework for hardware enclaves. In Proceedings of the 29th USENIX Conference on Security Symposium (SEC’20). USENIX Association, USA, Article 29, 505–522.

15、 Youren Shen, Hongliang Tian, Yu Chen, Kang Chen, Runji Wang, Yi Xu, Yubin Xia, and Shoumeng Yan. 2020. Occlum: Secure and Efficient Multitasking Inside a Single Enclave of Intel SGX. In Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’20). Association for Computing Machinery, New York, NY, USA, 955–970. https://doi.org/10.1145/3373376.3378469

16、Chia-Che Tsai, Donald E. Porter, and Mona Vij. 2017. Graphene-SGX: a practical library OS for unmodified applications on SGX. In Proceedings of the 2017 USENIX Conference on Usenix Annual Technical Conference (USENIX ATC ’17). USENIX Association, USA, 645–658.

17、Shweta Shinde, Shengyi Wang, Pinghai Yuan, Aquinas Hobor, Abhik Roychoudhury, and Prateek Saxena. 2020. BesFS: a POSIX filesystem for enclaves with a mechanized safety proof. In Proceedings of the 29th USENIX Conference on Security Symposium (SEC’20). USENIX Association, USA, Article 30, 523–540.