為嵌入式物聯網裝置整合安全功能

作者 : Mark Patrick,貿澤電子

對嵌入式系統進行遠端軟體攻擊正成為一個非常有吸引力手段,足以降低被檢測的可能性。本文介紹攻擊者可能採用的四種攻擊類型以及基於硬體安全功能和架構的安全解決方案...

當下,伴隨有線和無線連接變得無處不在,在任何裝置設計中實施安全性已經不再是事後想法。採用連貫而穩健安全的保護方法至關重要,而且應該成為初始設計規範內的組成部分。

針對系統和應用進行入侵攻擊的新聞報導在全球範圍內已經司空見慣,駭客和其它惡意攻擊都擅長尋找系統中的安全弱點,並與他人合作以進行主動攻擊。

對於所有嵌入式系統而言,無論是否連網,都更容易受到攻擊。這種攻擊不一定都會造成系統或工業過程中斷。最初,它可能包括試圖竊取韌體智慧財產、加密金鑰和其他機密使用者資料。有了這些訊息,就可以進行下一階段攻擊。

物聯網(IoT)/工業物聯網(IIoT)部署特別容易受到攻擊。大規模IIoT實施可能包含數百個負責管理工業過程的連接裝置,其中許多可能位於駭客得以存取的遠端位置,只需成功侵入一個裝置可能就足以置整個製造過程於危險之中,參見圖1

圖 1:對手可能會從單個受損物聯網感測器對實質性工業過程發起攻擊。(圖片來源:STMicroelectronics)

對於工業過程或公用事業服務的成功攻擊後果各不相同,可能會造成廣泛破壞,甚至導致人員傷亡等。

瞭解威脅情勢

圖2說明攻擊對手可能採用的四種攻擊類型。硬體方法需要對嵌入式系統進行體存取,最具侵入性方法存取系統 PCB 和元件。然而,許多軟體攻擊方法則不需要對手在目標系統附近。對嵌入式系統進行遠端軟體攻擊正成為一種更具有吸引力的手段,能夠降低被檢測的可能性。

圖 2:該表顯示危害嵌入式系統的潛在攻擊向量,大致分為四類。(資料來源:Mouser)

有些攻擊向量的另一方面是付諸實現時相對簡單,且所需的成本最低。

軟體攻擊

惡意軟體是指注入嵌入式系統並接管系統控制,同時獲得存取或修改軟體功能、介面和埠,或存取記憶體或微控制器(MCU)或暫存器的任何軟體。這是一種相對成本較低的攻擊向量,依賴於一些共用的知識獲取對電腦的存取。惡意軟體可能首先透過下載加密金鑰或打開先前受保護的通訊埠來存取系統,從而形成反覆運算過程的一部分。惡意攻擊者可能會透過系統除錯埠等實體介面注入惡意軟體,或者為系統創建惡意版本韌體更新以自動啟用。

硬體攻擊

側通道攻擊需要存取嵌入式系統硬體,但不是侵入性。差動功耗分析需要密切監測系統操作時的功耗。隨著時間推移,可以根據功耗變化確定系統中哪些功能正在操作,因而能夠從更細微級瞭解裝置內部的行為及其軟體架構。快速電源故障是另一種攻擊技術,用於強制嵌入式系統進入故障狀態,而此時埠和除錯介面已經不再安全。

硬體侵入式攻擊需要在時間和專業裝置上進行大量投資,這種攻擊還需要對半導體設計和製程技術有深入瞭解,這些通常會超越大多數對手,以及那些通常只是希望竊取智慧財產的攻擊。

網路攻擊

中間人(MITM)攻擊涉及攔截和竊聽嵌入式裝置與主機系統之間的通訊,這種方法需要獲取主機登錄訊息以及加密金鑰。在大多數情況下,MITM攻擊很難被檢測到。然而,資料加密和使用IPsec協定則能夠提供一種有效手段來因應此類攻擊向量。

密碼學的重要性

嵌入式系統用於身份驗證的最常見加密通訊方法是採用公開金鑰基礎設施(PKI)、身份驗證確認訊息發送者身份PKI最常見加密演算法包括RSA (以創始人Rivest、Shamir和Adleman命名)和橢圓曲線密碼術(ECC)。PKI基於一對具有非對稱關係金鑰,一個是私有,一個是公共。創始者保留私密金鑰,但卻與希望共用加密訊息的任何人共用公開金鑰,參見圖3

圖 3:使用PKI進行訊息交換。(來源:STMicro)

任何擁有公開金鑰的人都可以解密用私密金鑰加密的訊息。在圖3中,John Doe2可以使用公開金鑰加密訊息並將其發送給John Doe1,後者可以使用私密金鑰對其進行解碼。但是,JohnDoe3將無法讀取發送給 John Doe1的訊息。

密碼術的另一方面是確認訊息本身在傳輸過程中未被篡改。雜湊(Hashing)演算法可驗證訊息完整性。摘要(digest)是一個固定長度位元串流,專門根據訊息創建,並與訊息一起發送給接收者。請注意,攻擊者無法從雜湊摘要中重新創建訊息。常見的雜湊演算法包括 MD5和 SHA-1/2/3。

添加使用公開金鑰演算法創建簽名,能夠為雜湊演算法完整性添加身份驗證,參見圖 4

圖 4:使用 PKI公開金鑰演算法為訊息完整性添加身份驗證。(圖片來源:STMicro)

實施嵌入式安全

為了協助嵌入式開發人員在新設計中實現可靠和強大安全功能,半導體供應商可提供基於硬體安全功能和架構。這些示例包括來自芯科科技(Silicon Labs)的Secure Vault,以及來自 STMicroelectronics (STMicro)的 STM32Trust。 SecureVault和STM32Trust均經過平台安全架構(PSA) 3級認證。PSA是業界認證合作夥伴,最初由Arm創立,但現在是半導體公司、認證組織和嵌入式安全評估實驗室組成的全球合作機構。

圖 5:Silicon Lab的 Secure Vault嵌入式安全架可用功能列表。(圖片來源:Silicon Labs)

圖5列出Secure Vault中可用的全部功能,從基本的加密到更先進DPA對策和安全金鑰管理功能。

STM32Trust提供了一組類似功能,參見圖6。每個供應商MCU上的可用功能取決於裝置。

圖 6:STMicroelectronics的 STM32Trust安全架功能集。(圖片來源:STMicroelectronics)

儘管每個供應商都可能以特定方式實現一個功能,兩個架構中使用的嵌入式安全基本概念本質上相同。

以Secure Vault為例,即具有信任根功能的安全啟動,它使用來自裝置的不可變閘控ROM初始可啟動程式碼。任何對手都無法更改IC晶片中保存的啟動程式碼,因此開發人員可以非常放心地信任這個啟動階段。 ROM程式碼被視為信任根,用於驗證將要載入的下一段程式碼簽名,這稱為First Stage Bootloader,參見圖7。然後第一階段會驗證第二階段引導載入器(bootloader)簽名,首先檢查是否有任何簽名更新可用。在執行應用程式碼之前,第二階段引導載入器還會檢查是否有任何簽名的無線(OTA)更新。

圖 7:Secure Vault具有信任根功能安全啟動。(圖片來源:Silicon Labs)

另一個Secure Vault功能是Anti-Rollback Prevention,它確保只有新簽名韌體更新才能在裝置上操作。此功能可防止或許已經意識到舊韌體版本中存在漏洞的攻擊者上載並破壞裝置。

STMicroelectronics採用多種系統監控方法來提供異常情況處理(Abnormal Situation Handling)保護,其中包括先進篡改檢測,例如打開產品外殼、異常低電壓電源軌、外部時脈斷開和差動電源攻擊,還會監測裝置溫度。總之,這些形式檢測能夠顯示攻擊者是否試圖創建故障條件或強制IC進入可能使其易受攻擊模式。對潛在篡改攻擊向量可程式回應機制包括中斷、重置或金鑰刪除。

STM32Trust和Secure Vault能夠保護除錯埠和其他周邊介面免受攻擊。這些埠和介面可提供對裝置資源存取,包括記憶體、CPU和暫存器。除錯任何嵌入式系統對於所有設計都必不可少,但對除錯埠的存取通常被鎖定以維護裝置安全。

保護嵌入式SRAM記憶體是STM32Trust另一個關鍵功能,如果檢測到異常事件,具有自動擦除SRAM的功能。

STM32Trust和Secure Vault裝置均具有NIST (美國國家標準與技術研究院)認證的亂數產生器(RNG)。有效RNG是任何加密過程基本要求,不是真正隨機的亂數產生器意味著攻擊者可能會利用並發現隨機序列,從而導致安全協定容易受到攻擊。

保護您的嵌入式裝置

將高度安全性納入嵌入式系統至關重要。對於大多數嵌入式開發者而言,從頭開始學習完成這項工作是一項非常艱巨且耗時任務。然而,Silicon Labs和STMicroelectronics等半導體供應商已經為其MCU開發了經過PSA認證的硬體和基於韌體的安全架構,大幅簡化流程。使用這些架構之一來實施嵌入式安全有助於縮短設計週期,並使開發者能夠將注意力集中在核心應用任務。

加入LINE@,最新消息一手掌握!

發表評論