為了確保目標嵌入式設備僅運行授權固件或僅使用授權配置數據,我們需要提供一種方法來驗證信息的真實性和完整性。這意味著確保數據是可信的,并且隨后不會被修改。利用加密數字簽名(例如在信件底部蓋章或手動簽名)可以實現這種完整性。
隨著物聯網設備在我們的生活中激增,惡意控制它們的不斷嘗試也擴大了,因此采用嵌入式系統安全性來保護設備勢在必行。例如,當黑客試圖修改物聯網設備固件或操作配置數據時構成的威脅。在制造過程中,這些設備使用的固件和數據的真實性和完整性通常可以被認為是安全可靠的。但是,一旦安裝在現場,設備可能會暴露給黑客訪問,或者可能需要定期更新固件或配置數據。訪問或更新為入侵者提供了修改行為的可能性,甚至更糟的是,完全控制這些設備,并可能帶來災難性的后果。一種這樣的攻擊稱為惡意軟件注入。這涉及將惡意代碼插入固件更新源。一旦攻擊者成功安裝欺詐性固件,此未經授權的配置可以:
輸出機密和敏感數據。例如,如果在醫療行業使用,惡意軟件注入可能會導致便攜式健康監視器等設備無意中傳輸私人醫療信息。在更廣泛的努力中,惡意固件可以使公眾可以訪問加密密鑰。
強制設備運行不正確。最新的事件是Oldsmar水處理設施攻擊,黑客訪問了軟件系統并將氫氧化鈉含量從100 ppm增加到11,100 ppm,這可能會對消化系統造成嚴重損害。
引發不可預測的設備行為。這包括可能威脅人類生命的行為。
固件的身份驗證和完整性
為了確保目標嵌入式設備僅運行授權固件或僅使用授權配置數據,我們需要提供一種方法來驗證信息的真實性和完整性。這意味著確保數據是可信的,并且隨后不會被修改。利用加密數字簽名,例如在信件底部蓋章或手動簽名,可以實現這一點。
使用此方法,對在制造階段加載的固件或配置數據以及所有后續更新進行數字簽名。這樣,數字簽名就可以在設備的整個生命周期內實現信任。強數字簽名必須由加密算法計算。為了帶來最高級別的安全性,算法必須是公開的并且經過充分驗證。在這里,我們研究非對稱加密算法,特別是FIPS 186橢圓曲線數字簽名算法(ECDSA)。
應用于安全啟動和安全下載的非對稱加密
在非對稱(公鑰)密碼學中,數學相關的密鑰對(公鑰和私鑰)用于算法計算。顧名思義,任何實體都可以知道公鑰,而不會帶來安全風險。然而,私鑰是絕對機密的信息,永遠不會被釋放或知道。基于非對稱加密的安全下載的基本原則是,固件開發人員使用私鑰進行簽名,而嵌入式設備存儲并使用公鑰進行驗證。與對稱密鑰加密相比,非對稱加密的主要優點是機密元素(即用于簽名的私鑰)永遠不會存儲在嵌入式設備中。因此,在使用ECDSA時,盡管使用了復雜的侵入性攻擊,但攻擊者無法檢索用于對固件和數據進行簽名的私鑰。攻擊者可以從設備獲得的只是公鑰,而使用 ECDSA,從公鑰中獲取私鑰在數學上是不可行的。這是非對稱加密的一個基本好處。
圖 1 顯示了基于非對稱 ECDSA 的安全啟動和安全下載的使用,如果密鑰長度足夠(通常至少為 256 位),則提供高級別的信任。如圖所示,該解決方案有兩個方面。在開發或生成固件或配置數據的研發設施中,創建ECDSA密鑰對 - 系統私鑰和公鑰。要保護的固件或數據在受控開發環境中使用系統私鑰進行簽名。如圖 2 所示,FIPS 180 SHA-256 算法包含在加密數據路徑中,導致在固件映像或數據文件的 SHA-256 哈希值上計算 ECDSA 簽名。在實踐中,該簽名結果被計算并附加到研發設施的固件或數據文件中,如圖1所示。正是 SHA-256 哈希的這種簽名使最終應用程序中的資源能夠驗證固件或數據文件的真實性和完整性。對于現場使用,最終應用處理器將具有可用的內部或外部資源,以首先執行固件或數據文件的 SHA-256 哈希,然后使用此計算值和可訪問的系統公鑰驗證附加的 ECDSA 簽名是否有效,請參見圖 3。如果此驗證檢查成功,則保證固件或數據文件既真實又未經修改。
圖1.使用 ECDSA 進行安全啟動和安全下載。
不使用過孔的GAIN_SLOT引腳。
圖2.固件/數據文件的 ECDSA 簽名。
圖3.ECDSA 驗證固件/數據文件簽名。
挑戰
顯然,適當安全的啟動或下載過程將只允許授權/真實的固件在嵌入式設備上運行;因此,即使在固件更新期間也能防止惡意軟件注入。與該過程相關的挑戰包括:
SHA-256 哈希 — 在大型固件上計算 SHA-256 哈希可能非常耗時 軟件。
ECDSA 簽名驗證 — ECDSA 簽名驗證是計算密集型的,在嵌入式應用程序中,通常使用合適的數學加速器資源執行。
實施 - 正確實施加密對于避免可能被發現和利用的漏洞至關重要。
保護公共驗證密鑰不被修改 - 公鑰必須與用于對固件或配置數據進行簽名的合法私鑰匹配。生成自己的私鑰并將相應的公鑰注入嵌入式系統的攻擊者將能夠生成自己的任意固件或配置數據,并由嵌入式系統成功驗證它們
使用 DS28C36 進行安全啟動和安全下載
對于沒有具有計算能力的安全微控制器來驗證下載軟件的真實性和完整性所需的計算的嵌入式系統,ADI公司的DS28C36 DeepCover安全認證器是一種經濟高效的基于硬件的IC解決方案。圖4給出了DS28C36如何與主機處理器接口,下圖的步驟說明了該操作的概要版本。?
圖4.將主機處理器與DS28C36接口。
如前所述,在研發設施中建立了用于安全啟動或安全下載功能的系統公鑰-私鑰對。該對的私鑰用于對固件或數據文件進行簽名,最終由嵌入終端系統的DS28C36進行驗證。此系統私鑰永遠不會離開受控開發環境。該對的系統公鑰安裝在DS28C36的密鑰寄存器位置并鎖定,該位置具有“權威密鑰”屬性;這是DS28C36中的可配置設置。
系統私鑰用于計算固件或數據文件的數字簽名。如前所述 前面如圖 2 所示,此簽名是在數據文件的 SHA-256 哈希上計算的。
帶有預編程系統公鑰(配置有權限屬性)的Maxim DS28C36位于 系統主板并與主機處理器接口。
當固件需要由處理器運行,或者系統使用需要配置數據文件時,它會 首先由處理器啟動管理器檢索,并以順序64字節塊的形式傳送到DS28C36 計算 SHA-256 哈希。
DS28C36完成SHA-256哈希計算后,處理器提供ECDSA簽名。 在開發環境中計算并追加到文件的固件或數據。
DS28C36收到ECDSA簽名后,處理器發送命令使用預裝系統 用于執行簽名驗證的公鑰。
如果DS28C36驗證簽名,則GPIO引腳設置為邏輯0,并將傳遞結果參數字節傳送給處理器。此引腳和參數字節結果的狀態充當處理器運行固件或使用配置文件的通過/不通過結果。
上述序列的附加說明如圖4所示。這包括額外的增強 安全步驟,使主機處理器能夠通過單獨的 ECDSA 序列驗證安全啟動結果。
步 | 主機微 | 數據流 | DS28C36 |
1 | 固件或數據文件 | → | SHA-256 使用計算多塊哈希函數對文件進行哈希處理 |
2 | 固件或數據文件 ECDSA 簽名 | → | 驗證固件的 ECDSA 簽名和多塊哈希結果,成功時更改 PIO |
3 | - | - | PIO結果可以由處理器電檢測,也可以通過參數字節進行邏輯檢查。 |
用于提高安全級別并解決 GPIO 狀態更改和/或參數結果的問題 字節可以被欺騙,DS28C36可以選擇對內部狀態結果進行ECDSA簽名,指示安全啟動或安全下載序列的通過或失敗。這個結果是無可辯駁的。
步 | 主機微 | 數據流 | DS28C36 |
4 | 隨機挑戰 | → | 計算存儲安全引導邏輯通過/失敗結果的寄存器數據的 ECDSA 簽名 |
5 | - | ← | 幼兒發展局結果 |
6 |
驗證質疑的 ECDSA 結果。 驗證DS28C36 設置的邏輯PIO狀態是否與物理輸出反饋值匹配 |
- | - |
7 |
成功安全啟動操作后 ,固件繼續運行 |
- | - |
使用DS28C40安全啟動和安全下載,適用于汽車
Maxim的DS28C40是一款符合汽車AEC-Q100 1級標準的安全認證器。它提供了一種經濟高效的基于硬件的IC解決方案,采用ECDSA加密技術,以執行驗證聯網汽車下載軟件的真實性和完整性所需的計算。圖5給出了DS28C40如何與主機ECU接口。
圖5.將ECU主機MCU連接至DS28C40。
工藝流程與前面描述的DS28C36相同。
使用MAXQ1061進行安全啟動和安全下載
MAXQ1061為安全協處理器,提供加密工具箱,支持:
安全啟動和安全下載
通過 TLS 協議實現安全通信
安全密鑰存儲
加密和數字簽名
MAXQ1061設計用于作為嵌入式連接系統的信任根。它回答了上面列出的挑戰。其硬件加速器可實現快速 SHA 和 ECDSA 計算,并將主處理器從這些計算密集型活動中卸載出來。MAXQ1061還支持可靠的離線公鑰基礎設施,使得公鑰證書可以不可變或只能由正式授權方升級。通過確保公鑰不能被偽造的公鑰替換,MAXQ1061使最終產品能夠抵御攻擊,包括注入黑客的公鑰,從而成功驗證不受信任的固件。圖6給出了如何與主機處理器連接MAXQ1061,下圖的步驟說明了該操作的摘要版本。
圖6.主機處理器與MAXQ1061接口。
如前所述,在研發設施中建立了用于安全啟動或下載功能的系統公鑰-私鑰對。使用MAX1061時,ECDSA密鑰對可以有256位、384位或521位密鑰長度。該對的私鑰用于對固件或數據文件進行簽名,最終由嵌入終端系統的MAXQ1061進行驗證。此系統私鑰永遠不會離開受控開發環境。該對的系統公鑰安裝在MAXQ1061中。
如圖2所示,系統私鑰用于計算簽名。它是在數據文件的 SHA-x 哈希上計算的,并附加到固件或數據文件中。
主處理器向MAXQ1061發送“VERIFY BOOT”命令,同時發送待驗證固件及其預期的數字簽名。
MAXQ1061返回操作結果,帶有“成功”或錯誤代碼。(可選)置位RESET_OUT引腳。RESET_OUT引腳可用于觸發主處理器的中斷或將其設置為復位狀態。
如果簽名驗證成功,則滿足常規安全條件“安全啟動”。得益于安全的文件系統,MAXQ1061用戶可以配置對某些對象的訪問,以成功進行固件驗證。當滿足安全啟動條件時,將授予對此類對象的訪問權限,否則將被鎖定。此功能的典型用途是將固件加密密鑰存儲在MAXQ1061中,只有在驗證其簽名后,加密密鑰才能用于解密固件。(可選)將固件發送到 AES-SPI 硬件引擎進行解密。
步 | 主機微 | 數據流 | 最大Q1061 |
1 | 固件或數據文件以及 ECDSA 簽名 | → | 執行固件散列和 ECDSA 簽名驗證 |
2 | 固件或數據文件 ECDSA 簽名 | ← | 返回“驗證啟動”命令狀態:正常或失敗 |
3 | - | → | 授予對具有“安全啟動”條件的對象的訪問權限。例如,可以訪問加密密鑰 |
4 | 可選固件發送至MAXQ1061進行解密 | → | - |
5 | - | ← | MAXQ1061解密固件,并將解密后的固件發送回主微控制器 |
6 | 成功安全啟動操作后,固件繼續運行 | - | - |
使用MAXQ1065進行安全啟動和安全下載
MAXQ1065為低功耗固定功能安全協處理器,為嵌入式連接系統提供邊緣到云的交鑰匙安全解決方案。它使用 TLS/DTLS 1.2 為物聯網設備啟用安全通信。它具有與MAXQ1061類似的加密功能。此外,芯片DNA唰唰??MAXQ1065中的PUF安全技術保護安全密鑰,該密鑰永遠不會靜態駐留在寄存器或存儲器中,也不會離開IC的電氣邊界。ChipDNA技術提供了對黑客應用的侵入性和逆向工程攻擊的指數級保護。
圖7.主機處理器與MAXQ1065接口
處理流程與MAXQ1061非常相似,具有可選的“RESET_OUT”斷言和固定的ECDSA密鑰長度。
當固件需要由主機微控制器運行時,首先由主機MCU引導管理器檢索,并以2048字節的順序模塊形式傳送給MAXQ1065,以計算SHA-256哈希。
MAXQ1065完成SHA-256哈希計算后,處理器提供在開發環境中計算并附加到文件中的固件或數據的ECDSA簽名。
主處理器向MAXQ1065發送“VERIFY BOOT”命令,同時發送待驗證的固件或數據文件及其預期的數字簽名。
MAXQ1065返回操作結果,帶有“成功”或錯誤代碼。
如果簽名驗證成功,則滿足常規安全條件“安全啟動”。安全文件系統允許用戶根據固件驗證的狀態對部分MAXQ1065對象的訪問進行門控。當滿足安全啟動條件時,將授予對此類對象的訪問權限,否則將被鎖定。此功能的典型用途是將固件加密密鑰存儲在MAXQ1065中,只有在驗證其簽名后,該加密密鑰才能用于解密固件。(可選)將固件發送到硬件 AES 引擎進行解密。
步 | 主機微 | 數據流 | 最大Q1065 |
1 | 固件或數據文件以及 ECDSA 簽名 | → | 執行固件散列和 ECDSA 簽名驗證 |
2 | 固件或數據文件 ECDSA 簽名 | ← | 返回“驗證啟動”命令狀態:正常或失敗 |
3 | 復位或接收中斷信號 | ← | 可選RESET_OUT引腳置位 |
4 | - | → | 授予對具有“安全啟動”條件的對象的訪問權限。例如,可以訪問加密密鑰 |
5 | 可選固件發送至MAXQ1065進行解密 | → | - |
6 | - | ← | MAXQ1065解密固件,并將解密后的固件發送回主微控制器 |
7 | 成功安全啟動操作后,固件繼續運行 | - | - |
使用 DS28S60 進行安全啟動和安全下載
DS28S60 DeepCover加密協處理器為物聯網安全應用提供了最簡單的解決方案。DS28S60具有固定的命令集,無需開發器件級固件,能夠快速、輕松地實現物聯網設備的全面安全性。這種安全協處理器提供了一個全面的加密工具箱,用于保護各種嵌入式設備。DS28S60中的硬件加速器可實現快速SHA和ECDSA計算。集成的ChipDNA PUF技術提供了強大的對策,以防止安全攻擊。?
圖8.主機處理器與DS28S60接口
工藝流程與DS28C36類似,具有AES加密/解密功能。
DS28S60帶有預編程的系統公鑰(配置了權限屬性)位于系統主板上,與本地或遠程主機處理器接口。
當固件需要由處理器運行,或者系統使用需要配置數據文件時,處理器引導管理器首先檢索固件,并以64字節順序模塊的形式傳送到DS28S60,以計算SHA-256哈希。
DS28S60完成SHA-256哈希計算后,處理器提供在開發環境中計算并附加到文件中的固件或數據的ECDSA簽名。
DS28S60收到ECDSA簽名后,處理器發送命令,使用預裝的系統公鑰進行簽名驗證。
如果DS28S60驗證了簽名,則向處理器傳送一個傳遞結果參數字節。它向處理器發送 go/no-go 命令以運行固件或使用配置文件。(可選)將固件發送到硬件 AES 引擎進行加密/解密。
步 | 主機微 | 數據流 | DS28S60 |
1 | 固件或數據文件 | → | SHA-256 使用計算多塊哈希函數對文件進行哈希處理 |
2 | 固件或數據文件 ECDSA 簽名 | ← | 驗證固件的 ECDSA 簽名和多塊哈希結果 |
3 | - | → | 如果 ECDSA 身份驗證結果通過,則授予對對象的訪問權限。例如,可以訪問加密密鑰 |
4 | 可選固件發送到DS28S60進行加密/解密 | → | - |
5 | - | ← | DS28S60對固件進行加密/解密,并將固件發送回主微控制器 |
6 | 成功安全啟動操作后,固件繼續運行 | - | - |
結論
安全啟動或安全下載是一種經過驗證的安全解決方案,可解決 IoT 設備面臨的相關威脅。它可以確定安裝或下載到嵌入式系統的固件或配置數據文件的完整性和真實性。在系統中成功實施安全啟動和安全下載可以:
確保下載的數據文件或固件真實且未經修改
防止在設備硬件中安裝被黑客入侵的數據或固件
提高工業和醫療應用的安全性
控制功能啟用
審核編輯:郭婷
-
處理器
+關注
關注
68文章
19312瀏覽量
230033 -
嵌入式
+關注
關注
5085文章
19138瀏覽量
305697 -
接口
+關注
關注
33文章
8612瀏覽量
151293
發布評論請先 登錄
相關推薦
評論