IoT設備中嵌入式微控制器的安全機制

2021-01-08 電子工程專輯

電子工程專輯 EE Times China -提供有關電子工程及電子設計的最新資訊和科技趨勢

引言

當今無處不在的線上和永遠在線應用使黑客攻擊感到異常興奮,這為他們提供了可以嘗試攻擊的全球性數量大量的設備。嵌入式設備的安全性對於阻止黑客獲得其控制權至關重要,更糟糕的一種情況是,黑客可能會對設備的連接系統發起更具破壞性的攻擊。但是,遠程攻擊只是對手採取的其中一種方式,對物理硬體設備的本地攻擊則是獲取機密信息的另一種方法,這些攻擊包括訪問系統驗證密碼,甚至包括應用代碼本身的智慧財產權等。

本文將回顧在嵌入式微控制器中配置強大而可靠嵌入式安全機制的基本概念。我們將探討一些安全原則,並深入了解攻擊者使用的攻擊面和攻擊手段。

圖1:在IoT部署中,即便一個受損或不安全的設備也會使整個系統遭受對手攻擊。(來源:意法半導體)

無論安全性設置給嵌入式系統增加多少複雜性也絕不能低估,而且,這不僅涉及保護加密密鑰和嵌入式固件,還包括個人可識別數據。如果對手獲得設備固件的訪問權限,就有可能對代碼進行反向工程。通過了解代碼的工作原理,攻擊者可以發現進一步漏洞,並有機會注入惡意代碼。在取得訪問單個不安全連接IoT設備之後,可能會損害整個IoT網絡部署,參見圖1。

需要保護什麼

在開始探討安全技術之前,我們首先回顧並分類需要保護的對象。黑客可以針對物聯網設備的三個不同方面發動攻擊。一個目標是需要保護的物聯網設備,其中包含的資產需要保護。圖2列出了需要保護的資產以及每個目標受到損害後的相關風險。在實施嵌入式安全技術時,這種分類方法有助於選擇所使用的正確安全方法。

圖2:受保護目標、資產和相關風險的分類有助於確定需要實施的安全方法。(來源:意法半導體)

攻擊類型

對於物聯網設備的攻擊可能出自多種來源,大致可分為基於軟體或基於硬體的攻擊。對設備運行軟體的攻擊可以在本地或通過網絡連接進行,而硬體攻擊類型則進一步可細分為非侵入式或侵入式。非侵入式攻擊一般在本地進行,僅在某些情況下需要與IoT設備的主PCB進行電氣連接。而侵入式硬體攻擊涉及對設備微控制器的物理和電氣訪問。對設備發起侵入式攻擊通常是黑客採用的最昂貴途徑,並且需要特別的專業知識。圖3展示了上面討論的三種攻擊類型,並回顧了攻擊者使用這些攻擊手段的技術和原因。圖3:攻擊類型和成本。(來源:意法半導體)

軟體攻擊往往最為常見,通過利用設備通信管道,找到固件中的錯誤或缺陷(已知的協議漏洞)。由於是遠程攻擊,涉及的成本也可能相對較低,且易於實現。關於設備漏洞的一些信息可以在黑客社區內共享和交流。

實踐中的安全措施

從設備製造商的角度來看,對設備安全驅動程序的了解有助於確定所需的安全功能,以下討論的三種情況突出顯示了每種情況所需的一些安全功能。下一節內容將說明眾多安全功能及其實現方式。

場景一

考慮一家固件銷售公司,其主要收入來源於特許權使用費。該公司生產的固件是一種極其寶貴的智慧財產權(IP)資產,需要加以保護。客戶將固件與應用代碼一起使用。從公司的角度來看,需要將固件與客戶代碼安全地隔離。公司需要不時地發布固件更新,因此需要安全安裝和更新固件。在這種情況下,所需的安全功能包括隔離、軟體IP保護以及安全固件安裝和更新等日常規範。

場景二

IndustrialAdvantage公司出售昂貴的生產控制設備,並希望為客戶提供固件更新服務,但要求提供的設備上僅運行IndustrialAdvantage固件。需要認真處理固件更新過程,並在整個過程中進行身份真實性驗證。通過一個安全啟動功能可確保設備上僅僅運行IndustrialAdvantage固件。安全的安裝和更新功能負責進行完整性和真實性驗證。

場景三

Consumer Tech製造的設備可收集用戶數據,並作為系統擴展的一部分。公司時刻在確保遵守GDPR等消費者數據法規,Consumer Tech還希望確保其設備行為可靠,並且僅僅Consumer Tech固件才可在設備上運行。在設備與主機系統進行通信期間,可能會有暴露用戶數據風險,通過使用加密技術、設備標識和身份驗證可以防止暴露個人身份信息。使用安全啟動功能可以維護平臺完整性。

設置安全框架

對於嵌入式開發人員而言,能夠訪問微軟設備微控制器平臺的一套全面且強大安全功能至關重要。這裡一個案例是意法半導體STM32系列微控制器的「 STM32Trust」生態系統,參見圖4。

圖4:STM32Trust安全功能生態系統。(來源:意法半導體)

STM32L4和STML5 系列微控制器上使用的STM32Trust安全功能已通過Arm PSA Level 2和SESIP Level 3認證,這些安全功能要麼嵌入在微控制器晶片內,要麼作為與器件相關的固件提供。

在本文的剩餘部分,我們將重點介紹STM32Trust提供的兩項基本安全功能:安全啟動(SB)和安全安裝/更新(SBSFU),這些在之前的場景討論中已經進行了重點介紹。

安全啟動

安全啟動的基本原理是,在重置設備時,安全啟動代碼會執行並驗證應用固件是否真實可靠,然後再決定是否啟動。安全啟動取決於兩個參數。首先,安全啟動代碼是重置時執行的唯一代碼。其次,啟動代碼不可改變,這意味著無法以任何方式對其進行修改。啟動代碼地址是唯一的,從而可防止在設備重置時訪問其它固件地址。這兩個方面共同為設備建立了信任根,參見圖5。

圖5:安全啟動功能的基本原理。(來源:意法半導體)

通過類似籤名對比,可進行應用固件完整性和真實性驗證。完整性檢查需要將應用代碼生成的哈希值(有時稱為摘要)與提供的參考基準進行比較。真實性驗證需要檢查根據生成的哈希值和專有密鑰得到的籤名,然後使用關聯的公鑰驗證籤名。參考哈希值和籤名值始終需要固件提供,這些通常存儲在稱為元數據(metadata)或標報頭(header)的容器中,參見圖6。由於生成方法的原因,元數據不需要加密。如果試圖採用惡意固件,則無法使固件哈希值與參考值匹配。圖6說明了使用哈希值固件摘要和私鑰的元數據籤名結構。

圖6:生成元數據籤名。(來源:意法半導體)

在圖7中,安全啟動代碼使用元數據籤名來確認應用固件的完整性和真實性狀態。如果籤名核對過程驗證了有效固件,則啟動過程將繼續,並加載應用代碼,與應用固件或籤名出現差異會導致啟動過程失敗。

圖7:在加載應用之前,使用元數據籤名驗證應用固件。(來源:意法半導體)

安全固件更新

固件更新過程中已經確知的關鍵步驟包括:

●創建應用固件更新

●生成關聯元數據

●將其傳輸到目標設備

●安全啟動功能使用元數據來檢查應用固件完整性和真實性

●如果檢查通過,則安全啟動過程將安裝新固件

新的元數據籤名創建方法與安全啟動中採用的技術相同。對於許多遠程連接的物聯網/工業物聯網(IoT/IIoT)設備,最簡單的傳輸方法是通過無線方式(OTA)更新。沒有網際網路連接的設備則需要本地連接,例如可使用UART、SPI、USB或microSD卡等方式更新。新的應用固件是採用加載程序寫入目標設備快閃記憶體,加載程序通常包含在安全啟動代碼或應用固件中。當前固件仍在運行時,新固件需要在本地存儲。

圖8說明了遠程固件更新的過程,需要兩個內存「插槽」以用於當前固件和更新版本存儲。

圖8:遠程固件更新示例。(來源:意法半導體)

更新過程的最後階段涉及檢查新的應用固件。如果元數據檢查通過,則會進行最新和現有應用固件的交換,表明更新已完成。

結論

嵌入式設備的安全性不再是可選配置,每臺設備都需要防禦惡意攻擊和潛在漏洞。設備的安全性始於啟動,因此在啟動過程中整合安全啟動以及安全固件安裝和更新等安全功能至關重要。STM32Trust能夠為嵌入式開發人員提供保護設備以及滿足法規要求的所有安全功能。

作者:貿澤電子Mark Patrick

相關焦點

  • ARM嵌入式微控制器將帶來一次新的工業技術革命
    打開APP ARM嵌入式微控制器將帶來一次新的工業技術革命 lianzhitongda 發表於 2020-12-17 15:58:13
  • 什麼是嵌入式技術?
    因此嵌入式系統就是針對產品需求而定製的系統。嵌入式技術起源於單片機技術, 是各類數位化的電子、機電產品的核心,主要用於實現對硬體設備的控制、監視或管理等功能。進入21世紀計算機應用的各行各業中90%左右的開發將涉及到嵌入式開發。
  • SIC-V架構新添虎將 兆易創新率先引入32位通用微控制器
    SIC-V架構新添虎將 兆易創新率先引入32位通用微控制器 【TechWeb】8月22日,兆易創新公布在行業內率先將開源指令集架構RISC-V引入通用微控制器領域,並正式推出全球首個基於RISC-V內核的GD32V
  • 嵌入式系統概述及與單片機區別說明
    嵌入式系統的全稱是嵌入式系統。英語是嵌入式系統。它是一種「為特定應用而設計的專用計算機系統,完全嵌入在受控設備中」。根據英國電氣工程師學會的定義,嵌入式系統是用於工廠運行的控制、監控或輔助設備、機器或設備。從這裡我們可以看出兩點。首先,嵌入式不是通用設備。
  • 淺談嵌入式……
    嵌入式系統是一種專用的計算機系統,作為裝置或設備的一部分。通常,嵌入式系統是一個控制程序存儲在ROM中的嵌入式處理器控制板。事實上,所有帶有數字接口的設備,如手錶、微波爐、錄像機、汽車等,都使用嵌入式系統,有些嵌入式系統還包含作業系統,但大多數嵌入式系統都是由單個程序實現整個控制邏輯。從應用對象上加以定義,嵌入式系統是軟體和硬體的綜合體,還可以涵蓋機械等附屬裝置。
  • 單片機和嵌入式都是什麼?
    什麼是嵌入式首先,我們來看看什麼是嵌入式。嵌入式,一般是指嵌入式系統,英文叫作:embedded system。嵌入式開發,其實就是對嵌入式系統的開發。IEEE(美國電氣和電子工程師協會)對嵌入式系統的定義是:「用於控制、監視或者輔助操作機器和設備的裝置」。
  • 嵌入式作業系統是什麼_嵌入式作業系統有哪些
    嵌入式作業系統是什麼   嵌入式作業系統(Embedded OperatingSystem,簡稱:EOS)是指用於嵌入式系統的作業系統。嵌入式作業系統是一種用途廣泛的系統軟體,通常包括與硬體相關的底層驅動軟體、系統內核、設備驅動接口、通信協議、圖形界面、標準化瀏覽器等。
  • 新款TI C2000™ Piccolo™微控制器 幫助開發人員在成本敏感的...
    德州儀器(TI)近日推出C2000™ Piccolo™微控制器(MCU)產品組合的最新產品。新型C2000 F28004x MCU系列針對電動汽車車載充電器、電機控制逆變器和工業電源等成本敏感型應用的電源控制進行優化,具有卓越的性能。
  • 典型的嵌入式系統設計和實現
    tcn在列車控制系統中的地位相當與can總線在汽車電子中的地位。多功能車輛總線mvb是用於在列車上設備之間傳送和交換數據的標準通信介質。附加在總線上的設備可能在功能、大小、性能上互不相同,但是它們都和mvb總線相連,通過mvb總線來交換信息,形成一個完整的通信網絡。
  • 《國產嵌入式微系統msOS成型記》之一 何為嵌入式微系統
    在此,與非網推出《嵌入式微系統msOS成型記》系列,我們邀請與非網資深網友--王紹偉(鳳舞天),介紹一款基於開源概念,此前在國內幾為空白的,從實際需求出發的嵌入式作業系統--msOS,自誕生到完善成熟的成長故事,讓大家看到國內這樣一批務實的開發者們在做什麼。
  • 工業嵌入式系統
    目前嵌入式系統廣泛應用於機器人系統、數控設備、智能儀器儀表、交通監控、遠程醫療等領域。往往一個強大、高效、複雜且低成本的工業嵌入式系統能對工業生產以及產業發展產生極大的推動作用。本文引用地址:http://www.eepw.com.cn/article/202002/410261.htm
  • 嵌入式系統在物聯網中的作用是什麼
    打開APP 嵌入式系統在物聯網中的作用是什麼 lianzhitongda 發表於 2020-12-09 14:39:18 物聯網的產生是嵌入式系統高速發展的必然產物,更多的嵌入式智能終端產品有了聯網的需求,催生了物聯網這個概念的產生。從智能交通到車載信息設備,從「物聯網」到智能家電,嵌入式移動互聯在中國發展前景廣闊。那麼嵌入式系統在物聯網中有何作用呢?
  • 關於單片機和嵌入式,它們的區別是什麼
    (文章來源:信盈達科技)        嵌入式是什麼? 1、從系統組成上區別,單片機由控制器、運算器、存儲器、輸入輸出設備構成,而嵌入式第一步需要結合具體的應用,考慮成本,性能,可擴展性,開發周期等各方面的要求,確定系統的主控器件後,加入微處理器,外圍硬體設備,嵌入式作業系統,應用程式組成。 2、從硬體組成上區別,單片機是由一塊集成電路晶片組成,具體包含微控制器電路,輸入輸出接口控制項。
  • BlackBerry QNX嵌入式軟體組合再獲認證
    原始設備製造商(OEM)和其他嵌入式軟體供應商可藉助該款最新版安全可靠的作業系統,打造安全關鍵型系統,加快開發時間,降低項目從研究到生產的成本。BlackBerry QNX功能安全產品組合現已涵蓋經安全認證的C++運行庫,從而進一步完善了作業系統的產品交付。目前,部分一級汽車供應商正將QNX OS for Safety 2.2應用於下一代汽車的技術開發中。
  • 「知識科普」嵌入式軟體開發是什麼?
    嵌入式軟體研發就是在一定硬體條件下的系統化設計和軟體研發。主要使用的語言是C/C++、Ada。嵌入式系統是一個控制程序存儲在ROM中的嵌入式處理器控制板。事實上,所有帶有數字接口的設備,如手錶、微波爐、錄像機、汽車等,都使用嵌入式系統,有些嵌入式系統還包含作業系統,有些嵌入式系統都是由單個程序實現整個控制邏輯。
  • 威勝小型低壓集抄智能採集控制器威勝能源管理及系統解決方案(WFCP...
    威勝小型低壓集抄智能採集控制器威勝能源管理及系統解決方案(WFCP9000-T/ WFCP9000-G)    慧聰供熱採暖網 智能採集控制器是在多年專業水電氣遠程抄表系統研發應用的基礎上,精心研製而成的一款高性能智能採集控制設備,其硬體平臺採用高端
  • 淺談微控制器/模擬應用中電源、接地和噪聲的管理
    除了微控制器,微控制器應用經常包括低電平傳感器信號和適當的電源驅動電路,需要小心設計電源和接地。然後,該接口將測量結果傳送到微控制器。微控制器把傳感器的結果發送到LED顯示器和筆記本電腦。整個電路還包括風扇電機驅動器電路。
  • 嵌入式指紋鎖的設計與實現
    指紋識別門鎖系統的硬體結構指紋識別門鎖系統的硬體結構主要包括:指紋識別模塊、微控制器、讀寫模塊、電源管理和電控鎖機構以及門鎖功能所需的紅外感應電路和液晶LCD顯示等,其中核心部分是指紋識別模塊和微控制器。指紋識別門鎖系統的結構框圖如圖1所示,虛線內是指紋識別功能模塊。
  • 關於嵌入式系統的分類與特點
    如按其複雜程度的不同,又可將嵌入式系統分為以下四類:   (1)、主要由微處理器構成的嵌入式系統,常常用於小型設備中(如溫度傳感器、煙霧和氣體探測器及斷路器);(2)、不帶計時功能的微處理器裝置,可在過程控制、信號放大器、位置傳感器及閥門傳動器等中找到;(3)、帶計時功能的組件,這類系統多見於開關裝置、控制器、電話交換機、包裝機、數據採集系統、醫藥監視系統、診斷及實時控制系統等等;
  • 嵌入式學習培訓要學多久?嵌入式學習哪些內容?
    以手機為例,典型的嵌入式產品,我們看看上面集成了多少模塊:觸控螢幕、LCD、USB、WiFi、4G等無線通信、音視頻編解碼IP、DDR、存儲控制器、3D/2D加速、GPS、指紋識別、NFC、DMA、G-sensor各種傳感器.......。隨著嵌入式的火熱,參加嵌入式培訓的很越來越多,嵌入式學習培訓要學多久呢?對於嵌入式的學習一般都是4-6個月的時間。