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