Rust SGX SDK 1.0.5 釋出,支援程式碼加密保護和離線密文分發
Rust SGX SDK v1.0.5 釋出了,支援程式碼加密保護和離線密文分發
Rust SGX SDK 是百度安全實驗室開發的一個 Intel SGX 可信計算平臺的 Rust 語言開發工具包。基於 Rust SGX SDK,程式設計師可以快速開發出沒有記憶體安全漏洞的 Intel SGX 可信程式,即使在作業系統被惡意控制時也能提供迄今為止最強大的安全防護能力,避免敏感資料被竊取。Rust SGX SDK 對於資料隱私和雲安全都有著非常重要的意義,能夠很好的支援各種需要隱私保護的雲上資料業務。從去年4月 Rust SGX SDK 第一個開源版本釋出以來,我們獲得了社群很多反饋和支援,也看到了學術界和工業界都在積極的應用 Rust SGX SDK。安全界頂級學術會議 IEEE S&P 2018 上的文章 Oblix 採用 Rust SGX SDK 構建保密且高效的資料庫系統;包括 MIT 的 Engima 和 UC Berkeley 的 OASIS Labs 在內的諸多區塊鏈專案選擇採用 Rust SGX SDK 構建智慧合約執行環境;知名的開源機器學習訓練框架 TVM 已經使用 Rust SGX SDK 支援了在 SGX Enclave 內進行訓練和預測。這次我們釋出的是 1.0.5 版本,支援了最新的 Intel SGX SDK 2.4,首次提供了記憶體安全的 Enclave 程式碼加密能力,以及離線密文分發能力。
我們提供了 Intel Protected Code Loader 的支援。開發人員可以參考程式碼學習如何進行 Enclave 程式碼的整體加密,以及金鑰 provisioning 和啟動 Enclave的過程。同時我們提供了 Enclave 內外的密碼學原語的統一介面,以及 RSA 金鑰序列化/反序列化的統一支援。藉助這些密碼學介面,可以實現安全的離線密文傳輸,以及在 Enclave 內安全的解密。此外我們還移植了 net2 庫,提供了在 Enclave 內主動發起網路連線和監聽埠的能力;移植了 regex,提供了在 Enclave 內進行正則表示式匹配的能力。
著名的記憶體安全 TLS 實現“MesaLink”已經提供了與 Enclave 進行遠端驗證和建立 TLS 連線的能力。藉助 MesaLink,可以在多種平臺上與 Intel SGX Enclave 進行遠端驗證並安全傳輸資料了。
Intel 在 2.4 中修復了 INTEL-SA-000202 。我們強烈建議開發人員升級到 v1.0.5 和 Intel SGX SDK v2.4,以獲得最新的功能支援和 bug 修復。
What's New
-
master 分支支援 Rust nightly-2019-01-28 (rustc 1.34.0)
-
stable 分支支援 Rust stable-2019-01-17 (rustc 1.32.0)
-
支援 Intel SGX SDK v2.4
-
移植了 net2 ,提供直接在 Enclave 裡主動發起網路連線和監聽埠的能力。
-
遠端驗證得到了 MesaLink 的支援。現在可以使用 MesaLink v0.8.0 與 Enclave 進行遠端驗證並建立 TLS 連線了。
-
提供了 sgx_ucrypto 和 sgx_crypto_helper,使得 Enclave 內外有了統一的密碼學原語,並且能夠序列化、反序列化 RSA 金鑰對以及進行加解密。
-
移植了 regex 庫及其所有依賴,提供在 Enclave 裡進行正則表示式匹配的能力。
-
新的程式碼樣例:hello-regex,演示如何在 Enclave 裡進行正則表示式運算。
-
新的程式碼樣例:static_data_distribution,演示如何將 RSA 金鑰安全的 provision 給 Enclave,以及使用這個 RSA 金鑰進行安全的離線密文傳輸。
-
新的程式碼樣例:net2,演示如何使用 net2 在 Enclave 內主動發起網路連線和監聽埠。
-
新的程式碼樣例:PCL,演示如何使用 Intel Protected Code Loader 加密 Enclave 以及啟動加密後的 Enclave。
-
移除了對 posix_memalign 的依賴。
-
重構了 sgx_trts, 將 OCALL 相關的部分移入 sgx_libc。