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