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