惡意軟件注入已成為嵌入式系統的關鍵威脅。實現基于非對稱加密的安全啟動是針對此類攻擊的最佳保護。本應用筆記描述了這種安全啟動的關鍵原理,并解釋了如何使用DeepCover MAXQ1050安全微控制器實現它。
嵌入式系統安全性日益受到關注。每天都有針對嵌入式系統的新攻擊,包括涉及健康或安全的系統。一種類型的攻擊是惡意軟件注入,即將惡意代碼插入網頁。一旦攻擊者成功使設備運行欺詐性軟件,此未經授權的軟件就可以:
向外部發送機密數據。如果在醫療行業使用,惡意軟件注入可能會導致設備(如便攜式心電圖機)無意中傳輸個人健康信息。在更廣泛的努力中,惡意軟件可以使公眾可以訪問加密密鑰。
強制設備運行不正確。一個著名的例子是Stuxnet病毒,它在感染可編程邏輯控制器(PLC)后,迫使離心機以與預期不同的速度運行。
引發不可預測的設備行為。這包括可能威脅人類生命的行為。
正確安全的引導過程僅允許授權軟件在給定設備上運行。因此,即使在更新階段,它也可以防止惡意軟件注入。若要帶來高級別的信任,安全啟動必須依賴于經過驗證的加密算法。然而,這帶來了一些挑戰:
最合適的算法是不對稱算法,需要密集的計算能力。
必須保護與這些算法關聯的密鑰。
實施必須完美無缺。
在許多系統中,這些要求可能難以實現。但是,增加安全微控制器作為協處理器,如MAXQ1050,可以有效地支持安全啟動實現,同時保證非常高的安全性。
固件的身份驗證和數字簽名
為了確保目標嵌入式設備僅運行授權軟件,我們需要提供一種驗證所述固件的方法。這意味著確保軟件是正版的,并且是由授權實體編寫或批準的。向固件添加數字簽名(類似于在字母底部添加印章或手動簽名)可以實現這一點。
在制造階段加載的軟件應進行數字簽名,并且還應應用于每個固件更新。這樣,數字簽名就可以在設備的整個生命周期內實現信任。
強數字簽名必須由加密算法計算。為了帶來最高級別的安全性,算法必須是公開的并且經過充分驗證。在這里,我們將研究非對稱加密算法,即橢圓曲線數字簽名算法(ECDSA)和與SHA相關的RSA。
應用于安全啟動的非對稱加密
基于非對稱加密的安全啟動的關鍵原則是,軟件開發人員持有用于簽名的私鑰,而嵌入式設備存儲公鑰以進行驗證。這樣做的主要優點(與基于對稱加密的安全啟動相比)是機密元素(即私鑰)永遠不會存儲在最終產品中。因此,當使用ECDSA或RSA時,攻擊者無法檢索私鑰,即使通過最復雜的侵入性攻擊也是如此。秘密只是沒有存儲在現場設備的任何地方!攻擊者可以從設備獲得的只是公鑰,而使用非對稱加密,當只知道公鑰時,幾乎不可能檢索私鑰。這是非對稱加密的一個基本好處。
圖 1 顯示了基于非對稱加密的安全啟動流程。固件真實性通過 ECDSA 或 RSA 進行驗證,只要密鑰長度足夠(RSA 通常為 2048 位,ECDSA 通常為 224 位),它們就提供了極高的信任級別。ECDSA和RSA由SHA-256高效安全地維持。對完整的固件進行數字簽名是不切實際的,因此我們計算一個摘要(“哈希值”),該摘要通過 SHA-256 哈希算法的基本屬性保證是唯一且不可偽造的。然后通過 ECDSA 或 RSA 對本摘要進行簽名。相同的流程適用于固件更新,但固件加載不適用于制造設施。人們還會注意到私鑰永遠不需要離開軟件設計中心。
圖1.跨設備生命周期階段的安全啟動流。
雖然非對稱加密提供了關鍵優勢,但它確實需要密集的計算資源。通過軟件在大型軟件上計算 SHA-x 非常耗時。RSA 或 ECDSA 簽名也需要資源,尤其是在主系統微控制器沒有乘數的情況下。
另一個挑戰是公鑰及其證書的完整性。可以想象,公鑰不需要保密。公鑰可以透露給任何人,因為它只允許驗證。但是,攻擊者可以嘗試用個人公鑰替換原始公鑰。如果此替換成功,設備將對攻擊者私鑰簽名的軟件進行身份驗證。為了避免這種情況,必須保護公鑰、完整性。換句話說,我們必須保證它不會被修改或替換。
為什么使用MAXQ1050進行安全啟動?
DeepCover MAXQ1050安全微控制器滿足這些要求。圖2所示為嵌入式器件實現MAXQ1050安全啟動的典型框圖。
圖2.MAXQ1050安全微控制器用作安全協處理器的典型框圖
由于MAXQ1050具有嵌入式安全哈希引擎,可加速固件哈希的計算,從而縮短器件啟動時間。MAXQ1050還可以執行快速ECDSA或RSA簽名驗證,因為它具有用于模塊化算術運算的MAA硬件加速器。
MAXQ1050執行圖1“現場使用”部分所示的步驟。除了固件的哈希計算和數字簽名驗證之外,MAXQ1050還通知主系統微控制器和/或電源管理IC(PMIC)固件認證狀態。實現示例包括:
MAXQ1050 (通過GPIO)允許PMIC為微控制器供電。
MAXQ1050的GPIO可以連接到主微控制器的復位引腳。只有在驗證固件真實性后,才會釋放重置。
上述兩個選項后跟MAXQ1050在多個GPIO上發送的數字序列。
由于產品的安全存儲功能,公鑰、關聯證書和引用哈希值的完整性得到保證。
以適當的安全級別為目標
產品的預期安全級別通常難以定義 - 達到盡可能高的安全級別通常會導致高昂的開發和制造成本。因此,必須找到權衡。這種權衡通常基于攻擊的可能性和成功攻擊造成的損害。要確定適當的安全級別,需要考慮許多風險因素,包括:
攻擊者的工具:如果攻擊者可以使用復雜的設備,例如掃描電子顯微鏡(SEM)或聚焦離子束(FIB),則可以產生更大的影響。
攻擊者配置文件:攻擊者可以是單獨行動的人,也可以是擁有強大財務支持的黑手黨/犯罪組織的成員。
攻擊者的動機:攻擊者可能期望獲得經濟利益或僅對其技能的認可。
成功的軟件攻擊的財務影響。
在本應用筆記中,我們將考慮三種攻擊潛力級別:
基本:攻擊者能夠通過所有軟件手段攻擊系統,包括惡意軟件注入。但是,他/她無法或沒有工具修改系統的任何物理特性。
中等:除了軟件攻擊外,攻擊者還可以執行物理攻擊,例如探測印刷電路板(PCB)軌道以讀取信號,強制數字引腳的電平或從PCB中移除IC。
高:攻擊者能夠執行高度侵入性攻擊,例如對 IC 鍵合線上的信號進行微探測或對 IC 本身進行微探測。
對于每個級別的攻擊潛力,Maxim Integrated都可以實施足夠的保護級別:
基本潛力:圖 2 中提出的實現提供了足夠的保護級別,無需進一步的具體建議。
中等潛力:基本實現提供針對某些攻擊的保護(例如,代理將包含系統的串行閃存替換為包含攻擊者軟件的偽造軟件的攻擊)。這是因為我們的安全啟動序列會檢測到任何假冒軟件。為了在不增加開發或制造成本的情況下提高系統對硬件攻擊的抵抗力,我們建議采取一些布局預防措施。以下是一些示例:
將MAXQ1050連接到PCB內層的PMIC或主系統微控制器的信號走線,以防止信號被輕易訪問。這樣,攻擊者就無法輕松地將它們連接到探測并強制它們。
使用動態信號(即脈沖或脈沖序列)通知主微控制器啟動成功。這可以防止攻擊者將信號引腳連接到固定電平,例如接地或 VDD.
使用多個帶有不同動態信號的引腳通知主控制器啟動成功。以攻擊者難以同時控制兩個引腳的方式路由軌道。
高潛力:針對最復雜的攻擊提供保護將包括符合 FIPS 140-2 級別 3 或 4 的實施。此實現應檢測任何物理篡改嘗試,并通過銷毀任何敏感信息立即做出反應,從而使系統無法運行。由于使設備再次可操作需要經過維護階段,因此僅當安全性超過系統可用性時,才應實施此級別的保護。
MAXQ1050安全微控制器具有自毀輸入和可即時擦除的NV SRAM,可以滿足這些高級安全要求。
審核編輯:郭婷
-
微控制器
+關注
關注
48文章
7841瀏覽量
153309 -
處理器
+關注
關注
68文章
19726瀏覽量
232751 -
PCB
+關注
關注
1文章
1923瀏覽量
13204
發布評論請先 登錄
相關推薦
MAXQ1050 安全USB微控制器
MAXQ612/MAXQ622低功耗、16位MAXQ微控制器

MAXQ1050評估套件和面向MAXQ30入門的CrossStudio編譯

評論