IT之家 12 月 12 日消息,螞蟻集團(tuán)主導(dǎo)開源的可信執(zhí)行環(huán)境(TEE)開源操作系統(tǒng) Occlum v1.0 版正式發(fā)布。該版本與此前版本相比具有更高的穩(wěn)定性和完備性,在線程調(diào)度、網(wǎng)絡(luò)和存儲(chǔ) IO 方面最高有 5 倍的大幅度性能提升。v1.0 版還首次上線螞蟻集團(tuán)與英特爾聯(lián)合研發(fā)的 Spark 大數(shù)據(jù)分析方案,可幫助 Spark 用戶無縫地遷移至 TEE 機(jī)密計(jì)算環(huán)境中。
Occlum 是用于多種 TEE 的內(nèi)存安全多任務(wù)用戶態(tài)的開源操作系統(tǒng),可以讓應(yīng)用負(fù)載很方便地部署在 TEE 中,來保證用戶隱私數(shù)據(jù)在整個(gè)計(jì)算過程中的機(jī)密性和完整性。當(dāng)前 Occlum 可以支持的 TEE 包括 Intel SGX 和螞蟻集團(tuán)自主研發(fā)的國(guó)產(chǎn) TEE-HyperEnclave。
Occlum 是實(shí)現(xiàn)在 Intel SGX 上的單個(gè) Enclave 內(nèi)安全高效的多任務(wù)用戶態(tài)操作系統(tǒng)。因?yàn)?Occlum 采用的是在單個(gè) Enclave 內(nèi)實(shí)現(xiàn) LibOS 的方案,使得 Occlum 在資源占用和運(yùn)行效率上優(yōu)于其他 LibOS 的實(shí)現(xiàn)方案。
2021 年螞蟻集團(tuán)決定將 Occlum 捐獻(xiàn)給 Linux 基金會(huì)機(jī)密計(jì)算聯(lián)盟 CCC,Occlum 發(fā)展到今天已經(jīng)歷時(shí) 4 年的研發(fā)和打磨,在開源社區(qū)上發(fā)布了 40 多個(gè)版本,并獲得了 1000 多的 Github Star。
下面是 Occlum v1.0 技術(shù)亮點(diǎn)詳解
1)支持 150 多個(gè)兼容 Linux 的系統(tǒng)調(diào)用
為了讓 Linux 原生應(yīng)用無需修改和編譯,無縫地遷移到 Enclave 中,在 Occlum v1.0 中已實(shí)現(xiàn) 150 多個(gè)兼容 Linux 的系統(tǒng)調(diào)用。支持了大多數(shù)主流編程語言,包括: C / C++ 、Java、 Python 、Golang 、Rust 、shell 腳本等等。同時(shí) Occlum 開源倉庫中提供了許多 Linux 應(yīng)用,例如:SQLite TensorFlow、OpenVino、PyTorch、Redis、MySQL、Spark、Flink 等是如何運(yùn)行在 Occlum 上的 Demo 演示,以及在 K8S 上部署可擴(kuò)展的基于 Occlum 的安全推理實(shí)例的參考實(shí)現(xiàn)方案。
2)易用、高效、實(shí)用、安全
首先,在易用性上,Occlum 的使用方式是類似容器的使用體驗(yàn)。用戶通過幾個(gè)簡(jiǎn)單命令就可以把應(yīng)用程序部署到 TEE 中。
第二個(gè)特點(diǎn) —— 高效。Occlum 是高性能的多任務(wù)系統(tǒng),支持多進(jìn)程,它采用了單地址空間架構(gòu),因此多個(gè)進(jìn)程共享同一個(gè) Enclave,因此 Occlum 在 TEE 里就可以很快地完成進(jìn)程啟動(dòng)和進(jìn)程間通信。
第三個(gè)特點(diǎn) —— 實(shí)用。Occlum 支持多種文件系統(tǒng),比如:加密文件系統(tǒng)、內(nèi)存文件系統(tǒng)等等,從功能上可以滿足應(yīng)用的各種文件 I / O 需求,并且可以透明的加密應(yīng)用在運(yùn)行中需要存儲(chǔ)在磁盤上的數(shù)據(jù)。
第四個(gè)特點(diǎn) —— 內(nèi)存安全。Occlum 是業(yè)內(nèi)第一個(gè)用內(nèi)存安全語言 Rust 編寫的 LibOS ,Rust 語言是追求內(nèi)存安全,且不帶來額外性能損耗的編程語言。Occlum 采用 Rust 語言編寫可以杜絕低級(jí)的內(nèi)存安全錯(cuò)誤 ,從而提高 Occlum 整體內(nèi)核代碼的安全性,在托管安全關(guān)鍵的應(yīng)用程序時(shí)更值得信賴 。
3)引入 4 大核心技術(shù),讓運(yùn)行用戶的應(yīng)用負(fù)載更加高效
首先,Occlum v1.0 提出了以異步為中心的設(shè)計(jì)思路,重新設(shè)計(jì)了整個(gè) Occlum 代碼架構(gòu),使用了 Rust 語言的異步特性,基于 Rust 輕量級(jí)協(xié)程和異步運(yùn)行時(shí)在 Enclave 里實(shí)現(xiàn)了高效的線程調(diào)度機(jī)制,尤其是對(duì)于機(jī)器學(xué)習(xí)和分布式編排等大型應(yīng)用來說可大幅提高計(jì)算性能。
其次,Occlum v1.0 中創(chuàng)新性地引入了 Linux 新一代異步 I / O 操作接口 io_uring,并且支持了大部分 IO 操作(包括網(wǎng)絡(luò) IO / 磁盤 IO),利用這一新特性,再搭配 Rust 異步運(yùn)行時(shí),Occlum 具有了接近 Linux 原生的網(wǎng)絡(luò) IO 性能。
第三 ,Occlum v1.0 吸收了螞蟻集團(tuán)自主研發(fā)的新一代基于日志結(jié)構(gòu)的可信虛擬塊設(shè)備,可以使現(xiàn)有主流文件系統(tǒng)具有對(duì)磁盤 I / O 的安全保護(hù)能力,安全性高于 Linux 內(nèi)核中現(xiàn)有各種文件 I / O 或磁盤 I / O 保護(hù)方案,同時(shí)也高于同類 TEE 的保護(hù)方案 比如:SGX-PFS。由于可信虛擬塊設(shè)備采用了全新的追加寫式的日志結(jié)構(gòu)設(shè)計(jì),IO 性能也會(huì)有較大提升。
第四,Occlum v1.0 采用了基于按需分配的動(dòng)態(tài)內(nèi)存管理設(shè)計(jì),不僅提高了 Enclave 物理內(nèi)存的利用率,并且可以大大縮短應(yīng)用加載到 TEE 中的時(shí)間。
對(duì)比 Occlum v1.0 和上一個(gè)社區(qū)版本 0.29 性能測(cè)試數(shù)據(jù)??梢钥吹?Occlum v1.0 的線程調(diào)度性能是上一版本的 5 倍,當(dāng)應(yīng)用線程數(shù)量越多時(shí),v1.0 的調(diào)度性能的優(yōu)勢(shì)會(huì)越加明顯。在網(wǎng)絡(luò)傳輸速度和文件 IO 吞吐量上,與上一個(gè)版本相比也有 2 倍和 3 倍的性能提升,尤其是網(wǎng)絡(luò) IO 上,在同等的環(huán)境下可以接近 Linux 原生的網(wǎng)絡(luò)傳輸速度。
4)首次上線螞蟻集團(tuán)與英特爾聯(lián)合研發(fā)的 Spark 大數(shù)據(jù)分析方案
螞蟻集團(tuán)和 Intel BigDL 團(tuán)隊(duì)合作,將 Apache Spark 分布式大數(shù)據(jù)處理應(yīng)用運(yùn)行在 Occlum 中,基于這個(gè)能力,螞蟻集團(tuán)和 Intel 團(tuán)隊(duì)聯(lián)合發(fā)布了《基于 Occlum 和 BigDL 構(gòu)建端到端的安全分布式 Spark 大數(shù)據(jù)分析方案》,這項(xiàng)方案也上線到了 Occlum v1.0 版本中。
與現(xiàn)在業(yè)界已有的 Spark on SGX 的方案對(duì)比,本次方案除了支持多種部署模式外,在 Spark 能力支持上也彌補(bǔ)了上述已有方案的不足。
通過在 Occlum 提供安全運(yùn)行環(huán)境上,基于 BigDL 構(gòu)建了分布式的隱私保護(hù)機(jī)器學(xué)習(xí)平臺(tái) (PPML),能夠保護(hù)端到端的(包括數(shù)據(jù)輸入、數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等各個(gè)階段)的分布式人工智能應(yīng)用。與傳統(tǒng)的隱私計(jì)算框架不同,該方案提供了一個(gè)可以運(yùn)行標(biāo)準(zhǔn)大數(shù)據(jù)應(yīng)用的環(huán)境,希望幫助現(xiàn)有的大數(shù)據(jù) / 分布式應(yīng)用無縫地遷移到端到端安全的環(huán)境中,并且強(qiáng)化每個(gè)環(huán)節(jié)的安全性。
通過 Spark in Occlum 能力,可以讓現(xiàn)有的 Spark 應(yīng)用,直接運(yùn)行到 TEE 環(huán)境中,而不用做任何代碼修改,并且可以根據(jù)數(shù)據(jù)規(guī)模進(jìn)行橫向拓展,從而輕松支持 TB 級(jí)別的數(shù)據(jù)規(guī)模;另一方面,負(fù)責(zé)完整性的遠(yuǎn)程證明功能,也被無感的添加到了整個(gè)流程中,應(yīng)用開發(fā)者不需要顯式的增加遠(yuǎn)程證明代碼,即可通過 Occlum 和 BigDL 提供的遠(yuǎn)程證明功能實(shí)現(xiàn)實(shí)例的遠(yuǎn)程證明和校驗(yàn)。該方案已經(jīng)在微軟 Azure 機(jī)密計(jì)算博客頻道上線,并且該方案也是開源的。
IT之家了解到,隨著當(dāng)前 TEE 硬件架構(gòu)的發(fā)展,為了滿足更多在不同運(yùn)算場(chǎng)景下的安全需求,Occlum 將會(huì)支持 GPU TEE,將 CPU 提供的 TEE 安全能力拓展到 GPU 上,確保數(shù)據(jù)可以安全地轉(zhuǎn)移到更強(qiáng)大的計(jì)算硬件設(shè)備上。
Occlum 也在為明年 Intel 即將帶來的新一代 TEE TDX 做準(zhǔn)備,Occlum 計(jì)劃從用戶態(tài)操作系統(tǒng)向內(nèi)核態(tài)操作系統(tǒng)演進(jìn)。
廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。