隨著組織越來越多地采用多云、混合云和邊緣計算,他們的應用程序在廣泛的環境中跟蹤、存儲和分析敏感的用戶數據。為了確保使用應用程序的個人的合規性和隱私,數據需要在其整個生命周期內得到保護。我們對文件系統和存儲驅動器進行加密,并使用SSH 協議來保持靜止數據和傳輸中的數據即使被盜也能保持安全,從而在沒有加密密鑰的情況下使其無用。但是,使用中的數據通常是未加密的,容易受到攻擊和利用。為了在運行時保護應用程序和數據,開發人員越來越多地轉向可信執行環境,通常被稱為“安全飛地”。
什么是可信執行環境?
可信執行環境 (TEE) 是內存中 CPU 加密的隔離私有飛地,用于在硬件級別保護正在使用的數據。雖然敏感數據位于 enclave 內,但未經授權的實體?無法將其移除、修改或添加更多數據。飛地的內容對外部各方來說是不可見的和不可訪問的,受到保護以免受外部和內部威脅。
?因此,TEE 可確保以下內容:
- 數據的完整性
- 代碼完整性
- 數據保密
根據供應商和底層技術,TEE 可以啟用其他功能,例如:
- 代碼機密性——保護被認為是知識產權的算法。
- Authenticated launch——僅用于啟動已驗證進程的授權或身份驗證強制執行。
- 可編程性——從制造商或其他安全來源訪問 TEE 編程代碼。
- 證明——測量起源和飛地的當前狀態以防篡改。
- 可恢復性——回滾到以前的安全狀態,以防 TEE 受到威脅。
這些功能使開發人員能夠完全控制應用程序的安全性,即使在操作系統、BIOS 和應用程序本身受到威脅的情況下也能保護敏感數據和代碼。
安全飛地如何工作?
要了解 TEE 的工作原理,讓我們看看英特爾? Software Guard Extensions (SGX)。借助英特爾? SGX,應用程序數據分為可信和不可信部分。代碼的受信任部分用于在受保護的飛地內運行應用程序。CPU 拒絕所有其他對 enclave 的訪問,無論請求它的實體的權限如何。一旦處理完畢,可信數據將保存在 TEE 內,而提供給 enclave 外應用程序的信息將再次加密。
Enclave 是通過硬件命令創建和配置的,這些命令支持內存頁面的創建和添加,以及 enclave 初始化、刪除或測量。平臺的固件使用其配置設置來設置 TEE 區域。啟用擴展后,CPU 會保留一部分 DRAM 作為處理器保留內存 (PRM)。PRM 大小可以通過固件工具指定。
然后,CPU 通過設置一對特定于模型的寄存器 (MSR) 來分配和配置 PRM。接下來,在 PRM 中創建 Enclave Page Caches (EPC),其中包含帶有基地址、enclave 大小和數據安全信息的元數據。最后,CPU 創建 enclave 初始狀態的加密散列并記錄隨后的其他狀態。此散列稍后用于通過加密密鑰和硬件信任根進行證明。一旦初始化,飛地就可以托管用戶應用程序。
可信執行環境有多安全?
為了最好地解釋 TEE 的安全性,我們首先需要解決 CPU特權環。加密密鑰傳統上存儲在應用程序中,在環 3 級別。一旦受到損害,這種模型就會危及應用程序中受保護的機密。
在現代架構中,特權環超越了內核和管理程序,擴展到系統管理模式 (SMM) 和管理引擎 (ME)。這允許 CPU 保護 TEE 使用的內存,將攻擊面減少到硬件的最低層,并拒絕訪問除最高級別權限之外的所有權限。TEE 的功能和安全性的另一個關鍵是證明。通過證明,在共享任何數據之前,對整個平臺和飛地進行測量和驗證。
例如,一個 enclave 可以從它自己或同一平臺上的另一個 enclave 請求本地報告,并使用該報告進行數據檢查和驗證。類似地,遠程驗證者可以在從 enclave 請求任何敏感數據之前請求證明報告。一旦建立信任,他們就可以通過外部各方不可見的安全通道共享會話密鑰和數據。
由于未加密的秘密永遠不會離開 TEE,因此安全飛地可以保護數據免受:
- 主機上的其他應用程序
- 主機操作系統或管理程序
- 系統管理員
- 服務供應商
即使是基礎設施所有者和其他對硬件有物理訪問權限的實體也無法訪問數據。
機密計算中的安全飛地
為了實現跨不同云環境的私有工作負載的安全和標準化處理,Linux 基金會于 2019 年成立了一個名為機密計算聯盟 (CCC)的社區。自成立以來,CCC 成員一直致力于加速云計算的采用并實現開放式協作。由于它們提供了高水平的數據保護,基于硬件的安全飛地是該計劃的核心。通過 TEE 支持的機密計算,組織可以在使用其應用程序時保護從單個加密密鑰到整個工作負載的所有內容。
為什么要采用機密計算?
今天,秘密遠遠超出了密碼,包括高度機密和不可替代的信息,例如醫療記錄或生物特征數據。機密計算通過保護這些數據并防止財務損失或聲譽損害為企業提供競爭優勢。但是,這種不斷發展的技術還有其他用例。
多方計算
機密計算使組織能夠處理來自多個來源的數據,而無需將其底層代碼、知識產權或私人客戶信息暴露給合作伙伴。無論競爭與否,政府組織、醫療保健或研究機構都可以利用此功能進行協作和分享見解,以實現聯邦學習的目的。
金融保險
利用機密計算,金融機構可以防止洗錢等欺詐活動。一家銀行可以與其網絡內外的另一家銀行共享一個可疑賬戶,以對其進行審計并最大限度地減少誤報的可能性。保險公司可以使用類似的方法來防止欺詐。他們可以在彼此之間分享一項可疑的聲明以進行模式識別。通過將敏感數據存儲在飛地中并在不同來源之間共享數據記錄,可以在不泄露任何機密信息的情況下獲得結果。
結論
隨著機密計算的發展,不斷開發用于增強安全性的企業工具。這刺激了云計算的采用、增長和安全性,釋放了它的全部潛力。通過在執行期間對敏感數據和代碼提供前所未有的保護,可信執行環境使組織能夠加強其安全態勢并利用當今面向未來的技術。