移動設備以及相關的安全標準和協議已經存在多年。保護入站和出站通信以及保護存儲在設備上的永久數據是常見的做法。滿足這些要求的標準和技術定義明確,并已被廣泛采用 - 例如,互聯網工程任務組定義的標準,如互聯網協議安全(IPsec)和傳輸層安全(TLS)或磁盤或閃存的持久性存儲加密技術,如Windows的BitLocker和Linux的dm-crypt。然而,隨著生活方式變得越來越數字化,智能設備已成為我們日常活動中不可分割的一部分,對安全性的需求顯著增加。
隨著技術的不斷發展并啟用了其他用例,越來越多的敏感資產正在進入設備,例如與商業和娛樂相關的憑據。這一發展增加了潛在黑客的圈子,并創建了更廣泛的攻擊媒介,試圖利用現代嵌入式系統的漏洞。
最近一類突出的威脅是由Android等“豐富而開放”的操作系統(OS)的激增引起的。雖然 Android 有意的開放性(表現為代碼和文檔的可用性,以及內置的調試工具)導致了龐大的開發人員社區的突破性創新,但它是以創新攻擊媒介為代價的。這些向量通常會導致一種狀態,即黑帽已設法獲得特權執行權限,并在運行時完全訪問Android操作系統可用的所有資產。
以下討論描述了緩解此威脅或至少限制受損資產范圍并最大限度地降低富操作系統上此類控制損失的相關成本的流行方法。此方法基于敏感信息執行環境的硬件隔離,對于確保最終用戶和服務的數據隱私至關重要,尤其是在視頻點播、商業和銀行服務的情況下。
值得注意的是,設備暴露不斷增長的攻擊面的現象并不局限于移動消費電子領域。過去被公正地歸類為“封閉”的其他嵌入式系統,如汽車控制單元或工業系統,正變得容易受到類似類型的攻擊。由于操作系統的開放性以及大量外部連接,這些設備中的主要代碼執行實體不再安全。
隔離的執行環境
這種安全方法的關鍵是引入可信執行環境 (TEE),正如全局平臺所稱的那樣。此環境與功能豐富、基于性能的豐富執行環境 (REE) 隔離。簡而言之,TEE用于保護敏感的,基于軟件的安全服務免受REE的影響。現代片上系統 (SoC) 通常基于以下硬件措施之一進行這種隔離:
主 SoC 處理器中的硬件分離執行模式:這種方法在 ARM 開發的信任區技術中顯而易見,該技術可用于 Cortex-A 處理器系列的所有成員。請注意,在這種方法中,CPU 內核要么執行屬于 TEE 的代碼,要么執行 REE 代碼(通常在兩個域之間來回切換)。
物理上分離的處理實體(獨立 CPU),專用于安全任務:這種方法更直觀地理解,盡管不一定更好(一如既往,魔鬼 - 又名黑帽 - 在細節中),已經存在了更長的時間,并且仍然在許多設備中使用。請注意,在此方法中,專用安全 CPU 內核僅執行與 TEE 相關的代碼。
這兩種方法的比較與特定的實現細節緊密結合,正確的方法可能因系統而異。實現這種隔離的另一種方法是基于虛擬機管理程序或虛擬機監視器 (VMM),該方法目前在嵌入式空間中不太普遍。使用此方法,執行環境或虛擬機由以較高權限級別運行的軟件層(虛擬機監控程序)分隔。假設虛擬機管理程序的實現是可靠的、經過數學驗證的,這種基于軟件的方法可能非常有效。
在此上下文中,一個有趣的術語相關區別與受信任的 EE 和安全 EE 之間的區別是平行的。術語“受信任”暗指使用模型背后的基本假設:放置在 TEE 中的代碼被信任為非惡意且無 bug。TEE 中沒有固有的任何東西可以防止格式錯誤的 TEE 代碼向 TEE 的“圍墻花園”以外的世界泄露敏感資產。這種信任意味著需要對放置在TEE中的代碼進行詳盡的審查和驗證,特別是如果此代碼為TEE中運行的多個不相關的安全服務提供服務。
三通實施
TEE通常提供稱為安全操作系統的通用安全服務,其中包括處理安全啟動,通信,持久數據存儲,加密,安全平臺管理等。此外,特定的受信任應用程序 (TA) 使用這些服務在 TEE 中運行。TA 通常是在 REE 中運行的更廣泛范圍的應用程序的組件,并與用戶和操作系統的其他部分進行交互。
使用場景的一個例子是用戶嘗試使用高價值內容,例如通過訂閱服務獲得的高清視頻。用戶界面和多媒體框架接口在豐富的操作系統中執行,而數字版權管理 (DRM) 方案的某些部分(如使用策略實施、內容密鑰提取和安全視頻路徑實施)則在 TEE 中由專用 TA 處理。這種分離是必需的,以符合 DRM 方案所有者在開放環境中發布的健壯性規則。
一次性使用方案可能涉及多個 TA。按照高清內容消費示例,用戶可能希望使用Wi-Fi聯盟的Miracast等標準將視頻從手持設備發送到遠程且可能更大的顯示器。為了在開放系統上符合米拉卡斯特安全相關要求,米拉卡斯特軟件堆棧必須位于 REE 上,與 TEE 中的 TA 通信,按照米拉卡斯特規范的要求實施高帶寬數字內容保護 (HDCP) 2.x 規范。
必須特別注意將用例分解為受益于 REE 中執行的部分與強制移植到 TEE 中的部分(參見圖 2):
將過多的代碼推送到 TEE 中可能會導致性能下降(吞吐量和功耗)以及潛在的安全問題。如前所述,對TEE代碼的信任源于對放置在那里的內容的仔細審查,這是一項有利于最少代碼的任務。
TEE中沒有所需的所有部件可能會增加潛在安全漏洞的風險,從而導致更大的財務制裁可能性。大多數(如果不是全部)內容保護計劃的被許可人承擔數百萬美元的責任。一個常見的誤解是,只有與安全相關的協議的加密部分必須得到很好的保護,而將連接加密的邏輯留在TEE之外。事實上,調整“無害”的膠水邏輯完全規避了安全方案。
圖 2:在基于 Android 的設備中,分解 TEE 和 REE 之間的內容保護使用方案,可以發現性能問題和安全問題。
當 TEE 中需要多個 TA 時,復雜性級別會顯著上升。基本要求是這些TA之間的相互不信任(確保受感染的TA不會損害其他TA)。相互不信任通常由安全操作系統安全服務層處理。然而,在某些情況下,不同的TA必須安全地協作和交換信息,例如前面提到的采用DRM和HDCP鏈接保護的內容保護方案。
前方的道路
盡管具有相應的安全優勢,但使用TEE和REE進行分布式嵌入式軟件開發的任務并非微不足道,與傳統開發相比,實際上阻礙了開發周期。作為一項相對較新的技術,這一發現并不令人驚訝。一旦設計團隊更好地了解概念、相關工具和開發環境,這種現象可能會發生變化。如果服務提供商的要求要求,TEE使用率將加快。
服務提供商關注的一個問題是,由于設備及其安全功能的碎片化,其系統的可擴展性。沒有人愿意重復重做應用程序。目前,全球平臺標準組織正在解決這一問題。全球平臺計劃發布一個正式的TEE流程,需要由認可的實驗室進行認證。
現代設備的開放性,以及新用例引入的擴展連接性,要求嵌入式空間具有更高級別的安全性。使用 REE 和基于硬件的 TEE 進行分布式軟件執行有可能形成強大的安全解決方案,在不影響用戶體驗的情況下滿足嚴格的要求。
與其他技術一樣,采用的關鍵是通過標準化進行碎片整理,這是一個持續的過程,其中TEE的概念正在獲得支持。請繼續關注TEE嵌入式軟件開發的更多進展。
審核編輯:郭婷
-
Android
+關注
關注
12文章
3943瀏覽量
127813 -
cpu
+關注
關注
68文章
10901瀏覽量
212810 -
操作系統
+關注
關注
37文章
6889瀏覽量
123653
發布評論請先 登錄
相關推薦
評論