保護互聯嵌入式設備上的數據是當今軟件開發人員和架構師的首要任務。似乎每周都會宣布另一個重大數據泄露事件。嵌入式軟件開發人員正在迅速獲得工具和技術,以設計更安全、更安全的連接設備。開發人員可以使用 ARM TrustZone 技術來保護其設計中的數據,此外還可以通過 Type 1 虛擬機管理程序進行嵌入式虛擬化,通過實時操作系統 (RTOS) 和開源軟件將安全數據、連接和實時操作相結合,以充分利用新興的多核和異構片上系統 (SoC) 架構。
連接設備的功能正在迅速增加,存儲在這些設備上的信息或可通過這些設備訪問的信息的價值也在迅速增加。我們今天使用的大多數設備都連接到至少一種類型的網絡或服務。汽車通常通過藍牙或移動數據網絡連接到設備;便攜式醫療設備相互連接,連接到醫院網絡,連接到云,甚至更遠的地方;智能能源網絡將電力公司連接到家庭內的眾多消費設備。
在多個方面保護數據
在解決如何保護嵌入式連接設備時,首先考慮容易受到攻擊的表面區域非常重要。攻擊區域因設備而異,但通常,設備越復雜,攻擊區域就越大。其次,重要的是要了解當今大多數威脅的目標數據不是為了數據,而是為了操縱數據的能力。第三,通過分層各種安全功能來設計和開發既健壯又安全的設備至關重要。
操作數據
操縱數據的一個例子可能是對算法的攻擊,該算法會影響其所依賴的系統操作,例如ATM終端上的銀行應用程序或控制設備在汽車內如何工作的參數。在保護數據方面,開發人員需要了解三個關鍵階段:靜態數據、使用中的數據和傳輸中的數據。
靜態數據最好描述為設備斷電時。此階段的注意事項包括:
可啟動映像存儲在何處?
是否有用于通知設備是否被篡改的防篡改方法,以及防止其啟動到易受攻擊狀態的方法?
可執行文件是否已加密,或者任何獲得訪問權限的人都可以刪除 EEPROM、轉儲內存或嘗試對應用程序進行反向工程?
使用中的數據是指設備正常運行并生成和處理數據。一些注意事項包括:
混淆方法是否已用于敏感數據?
設備是否在已驗證狀態下執行?是否建立了信任鏈?
傳輸中的數據描述進入或離開設備的數據。一個好的設計應該解決以下問題:
如果數據被劫持,如何保護數據?
加密或隧道協議是否到位?
是否已部署防火墻,拒絕服務攻擊的策略是什么?
創建安全層
在保護設備中的層時,您可能會聽到“深度防御”或“分層安全性”。無論術語如何,它歸結為創建可以防御攻擊的安全層,或者至少延遲攻擊穿透后續層。分層安全模型可能包括:
策略和程序 – 管理設備訪問和使用的規則
物理 - 從字面上看,物理屏障,如柵欄,警衛或鎖門
網絡 – 確保與外部世界的連接
應用程序 – 確保惡意應用程序不會危及系統
數據 – 確保系統中使用或存儲的數據的完整性
在片上系統 (SoC) 中實施的 ARM 信任區技術可用于解決分層安全模型的網絡、應用和數據方面問題。
ARM 信任區技術
ARM 信任區體系結構提供了一種解決方案,該解決方案能夠劃分或隔離完整 SoC 的硬件子集。它通過定義處理器、外設、內存地址,甚至L2緩存區域來做到這一點,以作為“安全”或“非安全”硬件運行。利用 TrustZone 技術的 SoC 能夠動態地向安全軟件公開完整的 SoC,或者向普通軟件公開該 SoC 的子集(圖 1)。
圖 1:ARM 的信任區技術允許開發人員將 SoC 中的功能指定為“安全世界”或“正常世界”。
由 TrustZone 創建和實施的正常世界(非安全世界)通常是 SoC 的已定義硬件子集。例如,普通世界硬件子集可能包括 UART、以太網和 USB 接口,但不包括控制器局域網 (CAN) 訪問。相反,CAN可能專用于安全世界,其中單獨的RTOS或應用程序運行的唯一目的是管理CAN流量,獨立于正常的世界軟件堆棧。
與運行正常世界軟件的硬件子集不同,在安全世界中運行的軟件可以完全訪問所有 SoC 硬件。因此,從安全軟件執行的角度來看,系統的外觀和行為與沒有TrustZone的處理器上看到的幾乎相同。這意味著安全軟件可以訪問與安全和正常世界相關的所有資源。
可信執行環境(TEE)是指在安全世界中運行的軟件堆棧,以及允許安全軟件與正常世界軟件進行交互的通信。TEE軟件通常由一個小型微內核和應用程序以及允許安全軟件與更大的、以用戶為中心的軟件(例如Android)進行通信的API組成。其中一個規范定義了一個TEE產品,有些人可能稱之為“典型的RTOS”API和功能,以及非常適合TEE用例的其他功能和API。
我們中的許多人經常使用安全世界和正常世界處理而沒有意識到這一點。例如,在線購物通常需要用戶名和密碼。當系統提示輸入此身份驗證信息時,移動設備(Android 手機、Apple iPad 等)將切換到安全世界模式,在該模式下,數據在安全鍵盤上輸入并在允許發生任何其他操作之前進行安全處理。銀行應用程序本身可能完全在安全世界中運行,但設備也可以從安全世界切換到正常世界以訪問其他應用程序,例如瀏覽器,電子郵件或執行其他非安全任務。
保護多核架構中的 SoC
單個基于 ARM 的核心可以執行正常的世界上下文或安全的世界上下文,但是在具有多個內核的 SoC 中會發生什么情況?開發人員可能會遇到多個內核訪問同一安全應用程序的情況,這不僅擴展了攻擊的表面,而且可能會使代碼暴露于難以調試的令人討厭的計時問題。為了糾正這一點,開發人員可以如圖 2 所示配置其設備,其中只允許一個內核執行安全的世界內容。在此設計中,當在任何一個內核上運行的應用程序需要啟動安全應用程序時,它必須連接到內核 0,在那里會發生向安全世界的過渡。這將使多核設計更簡單、更穩健。
圖 2:使用指定的核心 (CPU0) 在多核環境中執行安全的世界內容。
在正常世界中運行一個應用程序并在安全世界中隱藏安全密鑰和算法確實很有意義,但不幸的是,它不是很實用。最近出現了一個趨勢,即硅制造商正在出貨更多的多核部件。在許多設計中,使用了多個操作系統 (OS),這就是 SoC 中的虛擬機管理程序模式和虛擬化擴展變得有用的地方。可以在包含對 ARM 信任區技術支持的虛擬機管理程序之上構建更完整的體系結構。然后,設計人員可以在虛擬機之間對應用程序和外圍設備進行分區,同時在安全世界中保護密鑰和專有算法。
將它們放在一起
例如,部署在 ARM Cortex-A15 設備上的設計如圖 3 所示。在正常世界中,我們有虛擬機管理程序與兩個虛擬機一起執行。在正常世界空間中運行虛擬機的兩個 Linux 實例被設置為具有內核和驅動程序,以便在內核模式上下文中執行,而用戶應用程序則映射到用戶模式。TEE 和安全應用程序映射到安全世界空間。目前有許多基于 ARM 的 SoC 處理器圍繞 Cortex-A15 架構構建,可以支持這種類型的配置。TI OMAP5 和哈辛托 6 參考平臺就是兩個例子。
圖 3:將虛擬機管理程序整合到 ARM 的正常和安全世界中。
保護連接的設備
連接的嵌入式設備不僅在功能上,而且在它們生成和傳輸的數據方面都變得越來越豐富。隨著這些設備無縫融入我們的日常生活,軟件開發人員有責任設計每個新設備,將安全性作為首要關注點。通過使用 ARM 的 TrustZone 技術以及 Type 1 虛擬機管理程序,開發人員可以為 SoC 設計提供強大、強大且安全的基礎,以滿足我們不斷擴展的互聯世界的需求。
審核編輯:郭婷
-
嵌入式
+關注
關注
5106文章
19288瀏覽量
310216 -
soc
+關注
關注
38文章
4247瀏覽量
219960 -
RTOS
+關注
關注
23文章
829瀏覽量
120150
發布評論請先 登錄
相關推薦
基于組件的嵌入式移動數據庫怎么實現?
怎么保護嵌入式軟件和電子設備產品不被抄襲
ARM平臺嵌入式Linux下SPI設備連接
如何控制嵌入式設備上的通信?
用于嵌入式設備的JavaScript

評論