嵌入式系統是許多工業應用程序的核心,這些應用程序需要較長的產品生命周期,同時響應功能更新和錯誤修復。特別是安全問題可以推動頻繁代碼更新的要求,以保持領先于黑客和惡意入侵者。包括遠程更新設施 - 如果它可以被保護 - 可以顯著延長幾乎所有嵌入式系統的使用壽命。
本文將通過展示幾種不同的要求和方法,探討當代嵌入式系統中使用的各種遠程系統更新。還將討論對響應速度更快的嵌入式系統的未來要求,以及可以確定未來增強方向的MCU功能的最新創新。
保護嵌入式系統更新
嵌入式系統通常連接到網絡,以便將信息從“邊緣”設備傳輸到中央控制器。中央控制器又連接到存儲單元,網關和流量聚合單元,所有這些都使用網絡連接。為了簡化代碼更新和錯誤修復的安裝,互連網絡還用于將更新下載到可編程設備。這些更新可以簡單地成為適應環境變化的新參數,也可以是提供新功能的完整代碼“替換”。
更新需要以安全的方式完成,否則攻擊者可能會劫持更新過程,用自己的程序替換可靠的代碼。這些攻擊通常會留下在未來更新之前執行的啟動代碼,以便即使在嘗試更新“受感染”系統之后插入的代碼也可以保留。有幾種方法用于保護遠程更新,它們的復雜程度各不相同,具體取決于系統作為黑客攻擊目標的價值。顯然,處理財務數據的系統顯然需要保護,但即使是您可能不認為易受攻擊的系統,也可能需要提高安全性。通常它是一個更復雜系統外圍的元素,為攻擊者提供了一個簡單的路上。例如,智能恒溫器或建筑物控制系統可以允許攻擊者輕松地進入數據聚合子系統,然后進入金融機構的中央控制器。
遠程更新的安全方法
在嵌入式系統中保護數據的最常用方法之一是使用加密和解密來保護敏感數據。標準加密函數和安全關鍵字通常用于安全算法,嵌入式系統需要提供這些功能才能發送和接收安全數據。諸如AES(高級加密標準)和DES(數據加密標準)之類的安全算法是您應該尋求支持安全通信的最常見功能。
邊緣節點越來越頻繁地使用無線通信最大限度地降低安裝成本并提高部署靈活性。這些設備還可以使用安全的遠程更新功能,甚至可以安全地傳輸常規數據。具有支持通用加密標準和無線連接的嵌入式硬件的設備將非常適合這些應用。
具有這些特性的基于MCU的設備的一個示例是Atmel SMART SAM R21無線MCU。器件的框圖如圖1所示。圖的左側是完整器件,無線部分顯示在頂部,MCU部分顯示在底部。在圖的右側是MCU部分的更詳細視圖,顯示了處理器和所有外設模塊。這兩個部分(實際上是獨立的設備)使用SPI端口連接,使通信非常簡單。
圖1:Atmel SAMR21無線MCU框圖。 (由Atmel提供)
MCU可用于管理無線通信,并使用內置于無線設備中的安全算法(所有數據通信均支持AES)安全遠程更新和安全數據通信可無縫實施。在一些系統中,可以使用片外存儲器來維護多個“引導”圖像。在這些情況下,外部圖像也會被加密,因此黑客無法輕易地復制(甚至替換)具有硬件訪問權限的系統。
以太網連接:主干線
無線連接非常適合邊緣節點設備,但一旦數據聚合,以太網通常用于實現骨干網絡以承載更高帶寬的流量。實現多個以太網連接的MCU(主要支持IEEE1588的工業以太網)對這些類型的系統最有用。當需要在本地控制或監控這些系統時,通常需要大量的片外存儲器,各種串行接口和高級人機界面(HMI)。
幾個現代MCU系列支持這些關鍵功能,飛思卡爾VF6xx MCU系列提供了一個很好的說明性示例(圖2)。這些器件具有基于ARM Cortex-M4和Cortex-A5架構的雙CPU。這些處理器提供了適用于管理高帶寬通信,數據聚合,數據存儲和HMI控制的重要處理能力,可滿足最高級的應用要求。 ARM處理器支持標準的ARM TrustZone安全功能,可以輕松保護和授權機密數據和進程。
圖2:飛思卡爾VF6xx MCU框圖。 (由飛思卡爾提供)
在最安全的應用中,VF6xx上可用的雙處理器可用于將安全相關功能與非安全相關功能分開。通過僅使用指定處理器使用可信內存位置和加密強大的安全進程,遠程攻擊成功就變得更加困難。 VF6xx還具有先進的篡改檢測功能,可用于關閉以未經授權的方式訪問硬件的嘗試。實現多層安全性是保護嵌入式系統免受最具攻擊性攻擊的最佳方法之一。當您需要強大的實施時,請查找具有多層安全性的設備。
其他重要功能
為嵌入式應用選擇MCU時,考慮支持目標應用所需的其他功能仍然很重要 - 而不僅僅是與遠程更新相關的功能。事實上,許多現代MCU現在支持相當強大的遠程功能,您通常可以開始搜索,假設中高端MCU將包含基線遠程更新功能。
例如,讓我們考慮一個需要大量模擬接口功能的健康和保健應用程序。 STMicroelectronics STM32F3x系列MCU支持多種模擬功能,包括16通道12位ADC,9通道基于差分通道sigma-delta轉換器的ADC,3通道12位DAC和2個通用比較器。這些資源適用于各種醫療和健康應用,其中需要模擬傳感器來測量心率,血液氧合和呼吸(僅舉幾例)。
STM32F3x具有一個有用的啟動配置模式選擇功能,如下面的圖3所示,它可以使用閃存,系統內存或嵌入式SRAM作為啟動位置。此工具與片上存儲的嵌入式配置引導加載程序(在生產期間由ST編程)配合使用,以簡化遠程更新。
圖3:STMicroelectronics STM32F373啟動選項。 (由STMicroelectronics提供)
隨著遠程更新變得越來越流行,許多MCU支持引導加載器功能,該功能采用片外映像(通常通過串行接口提供),然后將映像編程到閃存中。 STM32F3x可以使用USART端口或USB端口作為數據源。這大大簡化了遠程更新過程,并且無需自己編寫此類代碼。可以實現額外的安全層(在STM32F內部或使用外部安全存儲器設備),具體取決于目標應用的要求。
并非每個MCU都具有基于硬件的安全性
在查看低端MCU時,支持高級硬件加密功能并不常見。這并不意味著當遠程更新功能很重要時我們無法使用這些設備。通常,低端MCU與其他設備結合使用,可能作為控制或監控較大系統的環境方面的智能外圍設備。在這些情況下,可能存在一種通信和控制低端MCU的高端設備。高端設備可以提供與安全相關的功能,并且可以在其他幾個設備上使用。這可以更具成本效益,并且可以簡化遠程更新的實施和管理。
舉個例子,我們來看一個需要一個功耗極低的智能外設的應用,它可以測量通信機架中的氣流,溫度和電壓。像Renesas RL78/G14這樣的MCU(如下圖4所示)具有定期測量,收集和存儲記錄數據以及在測量超出范圍時與中央控制器通信所需的資源。控制器可以使用串行接口來更新配置信息,可能是為了簡單的錯誤修復“補丁”,甚至是片上程序的完整更新。
圖4:瑞薩RL78 MCU的框圖。 (由Renesas提供)
在RL78/G14上,片上數據閃存可用于存儲記錄的數據以及代碼更新,補丁或配置信息的更改。數據閃存通常更容易編寫,使其成為永久存儲更新信息或更新代碼存儲器之前的階段的有效位置,這需要更長時間并且更復雜。尋找機會使用數據閃存來簡化遠程更新,作為暫存區域或修補程序位置,以便進行簡單的錯誤修復。
結論
遠程更新,無論是簡單還是復雜,都可以顯著延長嵌入式系統的壽命。不要忽視實施各種分層安全功能以保護遠程更新免受惡意實體干擾的需要。現代MCU正在添加新功能,以幫助簡化嵌入式系統的遠程更新,因此請確保您了解目標MCU上可用的功能。
-
mcu
+關注
關注
146文章
17123瀏覽量
350994 -
嵌入式
+關注
關注
5082文章
19104瀏覽量
304823 -
無線
+關注
關注
31文章
5450瀏覽量
173244
發布評論請先 登錄
相關推薦
評論