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

MAXQ1050評(píng)估套件和面向MAXQ30入門的CrossStudio編譯

MAXQ1741 DeepCover磁卡讀取安全微控制器
MAXQ1850-KIT DeepCover安全微控制器(MAXQ1850)評(píng)估套件
MAXQ1050的評(píng)估套件和面向MAXQ30入門的CrossStudio編譯
MAXQ1061加密控制器保護(hù)存儲(chǔ)安全
如何學(xué)會(huì)讓主機(jī)免受惡意軟件的侵害
MAXQ1050英文用戶手冊(cè)
MAXQ1061/MAXQ1062用于嵌入式設(shè)備的DeepCover加密控制器技術(shù)手冊(cè)
MAXQ1741用于磁卡讀卡器的DeepCover安全微控制器技術(shù)手冊(cè)

評(píng)論