Teaclave 安全計算開源生態 - 由 Teaclave 驅動的開源項目一覽
- Apache Teaclave (incubating) (收錄於OSChina)做爲全球首個開源通用安全計算平臺,起因百度主導研發(原名MesaTEE),於2019年7月開源並進入 Apache 軟件基金會孵化器。此後有國內外多家公司和我的加入項目討論研發,使用開源代碼,而且參與開源社區建設。
Apache Teaclave (incubating) (https://teaclave.apache.org/)是全球首個通用安全計算平臺,爲隱私數據計算賦能,讓安全計算更簡單。Teaclave 基於硬件安全能力(Intel SGX),確保敏感數據在可信域外和離岸場景下安全可控的流通和處理,無需擔憂隱私數據泄露和濫用。同時,Teaclave 還支持多方參與的聯合計算,打破企業和組織中的數據孤島。Teaclave 於 2019 年 8 月進入 Apache 基金會孵化器,2020 年 10 月,Teaclave 社區正式經過併發布了 0.1.0 版。linux
Teaclave 的四大亮點
簡單來講,Teaclave 有四大亮點:git
- 安全性:Teaclave 使用多重安全技術保護隱私數據的計算。咱們使用 Intel SGX,提供基於硬件隔離、內存加密、遠程證明等安全技術保護數據隱私計算任務。不只如此,爲了不內存安全漏洞帶來的安全風險,Teaclave 還使用內存安全編程語言 Rust 編寫。
- 功能性:Teaclave 平臺提供了更加便利的函數即服務(function-as-a-service)接口,大大的下降了使用門檻。平臺中也實現了衆多內置函數,例如機器學習算法,多方聯合求交,加解密計算等等經常使用功能。更重要的是,開發者還可使用 Python 自由編寫函數來操做隱私數據,提交至 Teaclave 平臺執行。與傳統 FaaS 框架不一樣的是,Teaclave 提供了靈活的多方參與計算接口,大大簡化多方安全計算的流程。
- 易用性:Teaclave 提供便利的部署方式,支持在本地和雲上以容器的方式進行部署。項目中還提供了完善的接口,客戶端 SDK 以及命令行工具幫助開發者使用平臺的功能。
- 靈活性:Teaclave 設計了靈活的組件和服務框架,其餘項目僅需少許修改就可使用 Teaclave 中的各類組件。例如,能夠在項目中使用 Teaclave 遠程證明庫做爲第三方依賴庫,或者直接單獨部署使用 Teaclave 中的數據庫服務等。固然,開發者也可以使用 Teaclave SGX SDK (原 Rust SGX SDK)來構建全新的 SGX 應用。
Teaclave 開源生態
Teaclave 提供了一個開放的開源生態,其中既有 Teaclave 項目的開發者,也包括安全計算平臺的用戶、服務提供商,以及在安全計算相關項目中使用了 Teaclave 中的核心庫和第三方經常使用庫的使用者。另外一方面,Teaclave 生態服務於商業產品、學術研究項目、可信計算教學平臺,同時社區也支持由 Teaclave 驅動的第三方開源項目。github
在可信執行環境中,第三方庫的移植、維護、審計尤其重要。咱們爲 Teaclave 生態提供了上百個 Rust 的第三方開發庫,好比密碼學庫,科學計算庫,機器學習庫等等,大大的豐富了 Teaclave 生態,而且驅動了其餘基於 Teaclave 的開源項目發展。除了維護第三方庫,咱們也孵化出了一些重要的 TEE 組件,好比,針對 SGX 環境的 Python 解釋器 - MesaPy (https://github.com/mesalock-linux/mesapy/tree/sgx),以及對 TrustZone 後端 TEE 實現的 SDK - Rust OP-TEE TrustZone SDK (https://github.com/sccommunity/rust-optee-trustzone-sdk)。算法
Teaclave 開源生態也支持着衆多商業產品。好比,基於 Teaclave 開源代碼,百度做爲平臺服務提供商,構建了 MesaTEE 安全計算平臺,該平臺提供了強安全、高性能、易擴展的芯片級數據安全計算解決方案。協助機構之間解決數據合做過程當中數據安全和隱私問題,打破數據孤島。 經過私有化或雲服務幫助金融、政務、互聯網等行業在聯合建模、聯合營銷、聯合風控等場景下一站式完成數據聯合計算,實現 「數據可用不可見」的安全體驗。數據庫
Teaclave 生態也支持着可信計算和系統安全相關的學術研究,其中包括可信執行環境的安全,內存安全的 SGX SDK 設計,SGX 第三方庫生態的安全等等相關課題。其中有多篇學術成果發表在國際頂級會議上。apache
由 Teaclave 驅動的開源項目
正由於 Teaclave 的開源、開放及其靈活性,許多項目基於 Teaclave 平臺或 SGX SDK 構建,如下列舉了幾個由 Teaclave 驅動的開源項目或商業產品。但願更多的公司、項目可以加入安全計算的生態當中,共同推進數據隱私、安全計算的發展。編程
- Advanca 是服務於去中心化應用(Dapps)的一個通用的隱私保護計算/存儲基礎設施。https://github.com/advanca/advanca
- Anonify: 在區塊鏈上利用可信執行環境 (TEE) 技術,向用戶提供防篡改的數據共享技術設施;在靈活執行業務邏輯同時,保證分佈式帳本中各個參與者的數據隱私。https://github.com/LayerXcom/anonify
Anonify: A blockchain-agnostic execution environment with privacy and auditability後端
- Enigma 聯合多個區塊鏈廠商構建去中心化網絡聯盟 — Secret Network,爲區塊鏈用戶提供數據隱私保護服務。在 Secret Network 中,用戶數據密文做爲輸入被智能合約執行,執行結果基於共識協議驗證後上鏈。https://github.com/enigmampc/enigma-core, https://github.com/enigmampc/SecretNetwork
Secret Network is a blockchain-based, open-source protocol that lets anyone perform computations on encrypted data, bringing privacy to smart contracts and public blockchains.安全
- Crypto.com 的試驗性項目 Crypto.com chain 中使用 Teaclave 進行 SGX 應用的開發。https://github.com/crypto-com/chain
- Phala Network 是一個 TEE-區塊鏈混合結構實施的智能合約。https://github.com/Phala-Network/phala-blockchain
- SafeTrace 項目是一個隱私保護的新型冠狀病毒追蹤系統,使用 SGX 保證用戶的位置數據可以安全的進行交換。https://github.com/enigmampc/SafeTrace
- substraTEE 爲 substrate blockchains 提供了可信的 off-chain 計算框架。https://github.com/scs/substraTEE
- Occlum 項目是基於 Teaclave SGX SDK 提供了一個 library OS 類型的 SGX 可信執行環境,使應用程序幾乎不須要修改源代碼便可放入 SGX 上運行。該項目即將加入 Confidiential Computing Consortium 機密計算聯盟。https://github.com/occlum/occlum
- Veracruz 是一個多方不信任環境下的隱私保護的計算框架。該項目即將加入 Confidiential Computing Consortium 機密計算聯盟。https://github.com/veracruz-project/veracruz
以上些項目都是利用 TEE 提供的硬件隔離、內存加密、遠程證明等特性,保護業務中數據計算的隱私。一些項目在 SGX SDK 基礎上提供了更爲便利的可信執行環境框架,好比 Occlum 和 Veracruz。另一些項目使用 SGX SDK 編寫 TEE 應用保護其業務邏輯中的數據隱私,或提供可信的節點,如 Secret Network 和 substraTEE。還有一些項目移植使用 Teaclave 平臺裏的通用模塊,好比遠程證明代碼庫等等。更多關於由 Teaclave 驅動的開源項目列表能夠在官網中查看(https://teaclave.apache.org/community/)。網絡
最後,Teaclave 項目很是歡迎你們共同參與社區,推進隱私安全計算髮展。
Disclaimer: Apache Teaclave (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.