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