0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

小型和受限嵌入式系統(tǒng)的固件驗(yàn)證

科技綠洲 ? 來源:Microchip微芯 ? 作者:Microchip微芯 ? 2022-04-18 14:46 ? 次閱讀

在當(dāng)今市場上,嵌入式電子系統(tǒng)種類繁多,需要接受的認(rèn)證也日益增加,如適用于工業(yè)應(yīng)用的 IEC62443 安全標(biāo)準(zhǔn),有時(shí)法規(guī)也取決于系統(tǒng)工作方式的關(guān)鍵特性。然而,要確保安全性,不僅需要依靠法規(guī),還應(yīng)該實(shí)施負(fù)責(zé)任的基本做法。今天我們來介紹一下小型和受限嵌入式系統(tǒng)的固件驗(yàn)證。每個(gè)嵌入式系統(tǒng)都基于其執(zhí)行的代碼(固件、軟件和 RTL 等)運(yùn)行。在本系列的第一部分中,我們將介紹當(dāng)連接的心臟起搏器、工業(yè)網(wǎng)關(guān)、IoT 嬰兒監(jiān)視器,甚至工業(yè)機(jī)器電機(jī)的固件遭到攻擊時(shí),這些設(shè)備會(huì)發(fā)生什么。請留意第二部分,我們將在其中介紹如何在各種嵌入式系統(tǒng)上實(shí)現(xiàn)這些用例。

很多公司的知識產(chǎn)權(quán)(IP)處于產(chǎn)品的代碼中。連接的心臟起搏器的代碼可掌控人的生死,其重要性非同小可。同樣,心臟起搏器也要接受認(rèn)證。在工業(yè)泵中,代碼可以處理速度和扭矩調(diào)整率,提高電機(jī)的性能,從而領(lǐng)先競爭對手。工業(yè)網(wǎng)關(guān)代碼的架構(gòu)能夠以市場領(lǐng)先的速度處理復(fù)雜智能工廠網(wǎng)絡(luò)中的海量有效載荷,但網(wǎng)關(guān)背后是一個(gè)覆蓋多個(gè)機(jī)器和操作員的工業(yè)網(wǎng)絡(luò)。現(xiàn)在,如果機(jī)器操作被更改,很快就會(huì)給工廠中的人員帶來安全隱患。 IoT 嬰兒監(jiān)視器代碼可確保網(wǎng)絡(luò)連接的穩(wěn)健性,同時(shí)還能為父母提供與新生兒相關(guān)的隱私信息。我們在下文中介紹了一家公司的代碼對其 IP 至關(guān)重要的四個(gè)原因。公司應(yīng)該考慮本文提到的各種現(xiàn)有標(biāo)準(zhǔn)所定義的威脅模式:

1. 遠(yuǎn)程數(shù)字攻擊:漏洞是否在遠(yuǎn)程訪問代碼,以試圖影響目標(biāo)或整個(gè)產(chǎn)品群?

2. 遠(yuǎn)程邏輯攻擊:漏洞是否在重點(diǎn)攻擊代碼中的某個(gè)錯(cuò)誤,從而幫助黑客將攻擊范圍遠(yuǎn)程擴(kuò)展到整個(gè)網(wǎng)絡(luò)?

3. 本地物理攻擊:如果黑客對產(chǎn)品有物理訪問權(quán)限,可以對代碼做什么(不一定要利用錯(cuò)誤)?

4. 本地邏輯攻擊:如果黑客對產(chǎn)品有物理訪問權(quán)限,可以利用代碼錯(cuò)誤做什么?

近年來,為了解決上述問題,政府和許多行業(yè)已經(jīng)著手制定 IoT 安全法規(guī)以創(chuàng)建相關(guān)標(biāo)準(zhǔn)。例如,在工業(yè)領(lǐng)域,ISA/IEC62443 標(biāo)準(zhǔn)載明了設(shè)計(jì)工業(yè)產(chǎn)品時(shí)要遵守的安全規(guī)范。歐洲的 EN303656 標(biāo)準(zhǔn)依據(jù)歐洲政府有關(guān)在當(dāng)?shù)叵M(fèi)市場銷售 IoT 產(chǎn)品的安全法規(guī)和指南制定。 UL2900 起初主要關(guān)注軟件安全規(guī)范,現(xiàn)在大型公司正在將其用于消費(fèi)市場。在所有的主要標(biāo)準(zhǔn)或法規(guī)中,您會(huì)發(fā)現(xiàn),建議驗(yàn)證代碼的真實(shí)性是其共同要求。

那么,可以采取哪些措施來保護(hù)這些代碼?這些措施各有哪些優(yōu)缺點(diǎn)?

代碼將需要通過加密操作進(jìn)行驗(yàn)證,以確保其真實(shí)性。驗(yàn)證可以在嵌入式系統(tǒng)操作過程中的不同時(shí)間點(diǎn)執(zhí)行。

何時(shí)驗(yàn)證代碼的真實(shí)性?

1. 引導(dǎo)時(shí):常見的技術(shù)術(shù)語是安全引導(dǎo),它有多種實(shí)現(xiàn)方法:可以使用對稱密鑰,也可以使用非對稱密鑰,可以只驗(yàn)證摘要、簽名,也可以驗(yàn)證整個(gè)代碼映像。安全引導(dǎo)過程是為了確保只有真實(shí)代碼可以在目標(biāo)嵌入式設(shè)計(jì)上執(zhí)行。

2. 運(yùn)行時(shí):更通用的術(shù)語是 IP 保護(hù)。除了安全引導(dǎo)和無線(OTA)更新之外,固件工程師可以決定在系統(tǒng)運(yùn)行期間的任何相關(guān)時(shí)間點(diǎn)執(zhí)行代碼驗(yàn)證,以確保代碼沒有被篡改。

3. OTA 更新之后:在 IoT 環(huán)境中,如果通過網(wǎng)絡(luò)以“無線”方式推送新的代碼映像來取代現(xiàn)有的代碼,則在運(yùn)行此新代碼之前必須先驗(yàn)證其真?zhèn)巍?/p>

上面描述的三種嵌入式安全功能總體上與代碼驗(yàn)證規(guī)范有關(guān)。

現(xiàn)在,我們來介紹一下實(shí)現(xiàn)技術(shù),然后再評價(jià)一下各自的優(yōu)缺點(diǎn)。從根本上說,需要在安全性比較理想的企業(yè)環(huán)境中對代碼進(jìn)行“簽名”,然后在嵌入式系統(tǒng)中對代碼進(jìn)行“驗(yàn)證”。這些“簽名”和“驗(yàn)證”操作通過加密算法和對稱或不對稱密鑰集實(shí)現(xiàn)。如下圖所示,有四個(gè)主要步驟。第一步關(guān)注的是制造過程中發(fā)生的情況,以及代碼加密和簽名的處理方式。第二步是如何將代碼加載到嵌入式系統(tǒng)中(安全加載程序)。第三步涉及如何將代碼下載到嵌入式系統(tǒng)中。第四步側(cè)重于嵌入式系統(tǒng)制造完成后內(nèi)部發(fā)生的情況,以確保在目標(biāo)應(yīng)用程序上運(yùn)行的代碼確實(shí)是真實(shí)的。

在制造過程中使用對稱密鑰進(jìn)行簽名操作

對稱加密基于共享密鑰架構(gòu),換言之,兩個(gè)相同的密鑰構(gòu)成一個(gè)密鑰對(對稱密鑰或也稱為共享密鑰)。主要缺點(diǎn)是,如果有人可以訪問其中一個(gè)密鑰,另一個(gè)共享密鑰也是相同的,系統(tǒng)很容易遭到破壞。此外,基本做法要求為每個(gè)設(shè)備使用不同的對稱密鑰,這會(huì)產(chǎn)生邏輯悖論:如何在整個(gè)設(shè)備群中分配惟一對稱密鑰。因此,由于對稱密鑰易于實(shí)現(xiàn)和項(xiàng)目進(jìn)度的限制,開發(fā)人員會(huì)在整個(gè)設(shè)備群中使用相同的對稱密鑰,因此這些密鑰暴露的情況變得更加嚴(yán)重。接下來具體分析一下。第一步發(fā)生在公司環(huán)境中。?

作為原始終端制造商(OEM),您的代碼將通過“哈?!焙瘮?shù)傳遞。我們在本文中以 SHA256 為例。此哈希函數(shù)的輸出是代碼映像的 32 字節(jié)摘要。?

此哈希使用對稱密鑰(用于簽名的 OEM 密鑰)執(zhí)行。?

輸出是“報(bào)文驗(yàn)證代碼”(MAC)。?

MAC 提供給合約制造商(CM),合約制造商將在生產(chǎn)基地把 MAC 刷寫到主控制器上。MAC 和對稱密鑰均由 CM 在此階段加載。?

請注意,這是供應(yīng)鏈中容易出現(xiàn)漏洞的環(huán)節(jié),因?yàn)闊o論是在制造過程中,還是在單片機(jī)中,密鑰都不應(yīng)該暴露。此時(shí)密鑰會(huì)暴露給工廠內(nèi)的操作員和將執(zhí)行 MAC(如果 OEM 尚未完成)的設(shè)備。

在制造過程中使用非對稱密鑰進(jìn)行簽名操作

這是一種更穩(wěn)健且可擴(kuò)展的方法,包括利用非對稱密鑰取代對稱密鑰。非對稱密鑰是由兩個(gè)不同的密鑰構(gòu)成的一個(gè)密鑰對,但兩個(gè)密鑰通過某種加密算法在數(shù)學(xué)上相關(guān)。我們將以 ECC-P256 為例,對于嵌入式系統(tǒng)來說,這是最常用,也是最有效的算法之一。私鑰將用于對代碼進(jìn)行簽名,公鑰(根據(jù)私鑰計(jì)算得出)將用于驗(yàn)證簽名和/或摘要。

想一想,在生產(chǎn)過程中,誰有密鑰的訪問權(quán)限?

無論選擇的是對稱架構(gòu)還是非對稱架構(gòu),都有幾個(gè)重要的問題需要思考。由于需要將加密密鑰加載到嵌入式系統(tǒng)以驗(yàn)證映像,請想一想:?

能否相信掌握保護(hù)您已簽名代碼的密鑰的合約制造商?切記,代碼是公司的 IP。如果擁有密鑰,他們就可以訪問您的代碼。?

CM 是否擁有簽名密鑰或用于驗(yàn)證的密鑰的訪問權(quán)限?如果您想更換一家或多家合約制造商,密鑰怎么辦?? 您是否因合約制造商掌握了密鑰而依賴他們??

如果雇用了多家合約制造商,如何管理各種密鑰對集??

密鑰在合約制造商那里有哪些保護(hù)措施?安全審計(jì)的結(jié)果會(huì)是什么?

涉及到制造過程中處理密鑰的物流時(shí),還有許多供應(yīng)鏈問題需要考慮。簽名密鑰永遠(yuǎn)是最關(guān)鍵的密鑰,要盡可能地與一切事物和人員隔離,最好是使用 HSM。但現(xiàn)在您面臨的情況是代碼驗(yàn)證成為非常重要的目標(biāo),因?yàn)樗梢詻Q定您對代碼(記住這是公司的 IP)的保護(hù)程度?,F(xiàn)在,密鑰已交給合約制造商,此時(shí)漏洞暴露的可能性會(huì)增加。有幾個(gè)問題可能需要您思考一下,包括:

? 您是否清楚密鑰是否已妥善存儲(chǔ)或在員工之間安全共享??

您的密鑰是否因制造設(shè)備的網(wǎng)絡(luò)保護(hù)不力,可以從工廠外部遠(yuǎn)程訪問??

您的員工是否有可能簡單地使用 U 盤將驗(yàn)證密鑰帶出工廠?如何對這種情況進(jìn)行審計(jì)和確保員工可信??

如果掌管密鑰的員工從合約制造商離職,密鑰怎么辦?

密鑰位于嵌入式系統(tǒng)中的哪個(gè)位置?

如果將用于驗(yàn)證固件的公鑰存儲(chǔ)在傳統(tǒng)單片機(jī)的閃存內(nèi),請慎重考慮。這將使加密成為代碼二進(jìn)制映像的一部分。傳統(tǒng)工程師只是將密鑰(公鑰或?qū)ΨQ密鑰)加載到單片機(jī)或處理器的閃存中。我們來介紹一下您應(yīng)該思考的問題和應(yīng)該全盤考慮的答案。

密鑰的價(jià)值有多大?攻擊者能用它做什么?

時(shí)至今日,仍有大量設(shè)備將密鑰存儲(chǔ)在閃存中。攻擊者的一些基本策略是嘗試使用各種技術(shù)訪問設(shè)備的存儲(chǔ)器,如利用緩沖區(qū)溢出(示例:Heartbleed)、HEX 文件提取或其他方法來訪問位于存儲(chǔ)器中的密鑰。這些都是非常真實(shí)的攻擊,一些公司反映其系統(tǒng)中存在此類漏洞。在這種情況下,攻擊者完全有可能開始發(fā)起可擴(kuò)展攻擊。如果每個(gè)密鑰都像在二進(jìn)制映像中一樣容易訪問,它們就會(huì)變得可更改、可復(fù)制,對大型機(jī)群進(jìn)行遠(yuǎn)程訪問的可能性也越來越高。如果我們對本文前面的內(nèi)容還有印象,就會(huì)記得對于代碼簽名來說,使用對稱密鑰并不是最穩(wěn)健的策略。現(xiàn)在,我們假設(shè)用于驗(yàn)證代碼的密鑰位于控制器的 OTP 內(nèi)。OTP 方法是比較合理的初步措施,可以提高系統(tǒng)的穩(wěn)健性,因?yàn)楝F(xiàn)在密鑰位于不可變的存儲(chǔ)區(qū)域。不可變并不意味著不可訪問或不可讀取,只是意味著不可更改。代碼的價(jià)值決定對密鑰的重視程度,具體視代碼的價(jià)值或其中的 IP 含量而定。

如果密鑰可訪問,它就可能被讀取、復(fù)制和重復(fù)使用。現(xiàn)在任何惡意用戶都可以合法地使用該密鑰來驗(yàn)證他們自己的代碼。? 如果是對稱密鑰,情況將糟糕至極,特別是如果系統(tǒng)連接到云,更是雪上加霜?,F(xiàn)在,當(dāng)密鑰被訪問時(shí),攻擊者可以執(zhí)行其惡意代碼的 MAC,并且由于用于簽名的對稱密鑰與用于驗(yàn)證代碼的對稱密鑰相同,他們可以輕而易舉地使用 checkMAC 驗(yàn)證其惡意代碼。更糟糕的是,如果沒有采取密鑰多樣化措施,那么十分有必要仔細(xì)考慮擁有整個(gè)設(shè)備群的密鑰的人員名單。所有與嬰兒監(jiān)視器連接的工業(yè)機(jī)器都可能被偽造,所有 OTA 更新都可能遭到破壞,而且情況可能會(huì)惡化。

? 現(xiàn)在,如果被訪問的是控制器閃存甚至是 OTP 中的公鑰,那么惡意用戶便可以隨意復(fù)制和重復(fù)使用密鑰以使用戶授權(quán)合法化,并隨后在目標(biāo)單片機(jī)上安裝和運(yùn)行惡意代碼。

與使用對稱密鑰架構(gòu)相比,使用公鑰架構(gòu)要更加穩(wěn)健,因?yàn)橛糜趯Υa進(jìn)行簽名的私鑰與用于驗(yàn)證代碼的公鑰不同,但二者在數(shù)學(xué)上相關(guān)。也就是說,訪問公鑰允許攻擊者查看并觸發(fā)代碼驗(yàn)證,以及在執(zhí)行之前進(jìn)行解密。此時(shí),問題變成了:“現(xiàn)在我看到了代碼,要是我能更改代碼并繞過公鑰驗(yàn)證該怎么辦?”要解決這一問題,除了適當(dāng)?shù)募用芗铀倨鳎ㄈ?Microchip 安全元件的 ECC-P256)外,還需要單片機(jī)或處理器內(nèi)的 BootROM 功能。 BootROM 將確??刂破靼l(fā)出驗(yàn)證命令的存儲(chǔ)區(qū)域也是不可變的,無法被繞過。然而,公鑰被訪問仍然是一個(gè)基本問題。

使用對稱密鑰與非對稱密鑰進(jìn)行固件驗(yàn)證分別有哪些優(yōu)缺點(diǎn)?

密鑰 優(yōu)點(diǎn) 缺點(diǎn)對稱 較少:

- 加密簡單 - 易于實(shí)現(xiàn)很多:

- 密鑰被盜時(shí)非常容易被復(fù)制 - 可擴(kuò)展攻擊的風(fēng)險(xiǎn)較高 - 難以部署和管理惟一密鑰群非對稱 很多:

- 加密穩(wěn)健 - 密鑰架構(gòu)可擴(kuò)展 - 可使用 ECC 密鑰優(yōu)化存儲(chǔ)器占用空間較少:

- 固件驗(yàn)證沒有缺點(diǎn) - ECDSA 的時(shí)間比 SHA256 長

在第一部分中,我們已經(jīng)詳細(xì)介紹了在應(yīng)用中實(shí)現(xiàn)固件驗(yàn)證的重要性。應(yīng)用程序代碼將需要通過加密操作進(jìn)行驗(yàn)證,以確保其真實(shí)性。驗(yàn)證可以在嵌入式系統(tǒng)運(yùn)行過程中的不同時(shí)間點(diǎn)執(zhí)行,如啟動(dòng)時(shí)、運(yùn)行時(shí)和安全固件升級時(shí)。有許多技術(shù)可以使用非對稱和對稱的加密算法來實(shí)現(xiàn)固件驗(yàn)證。這些技術(shù)都有各自的優(yōu)缺點(diǎn)。在本博客的第二部分,我們將介紹如何使用 Microchip 的安全元件和單片機(jī)實(shí)現(xiàn)固件驗(yàn)證。

審核編輯:彭菁
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635353
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16361

    瀏覽量

    178070
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3593

    瀏覽量

    129476
收藏 人收藏

    評論

    相關(guān)推薦

    小型嵌入式操作系統(tǒng)中斷管理的實(shí)現(xiàn)

    小型嵌入式操作系統(tǒng)中斷管理的實(shí)現(xiàn)
    發(fā)表于 04-22 12:57

    嵌入式系統(tǒng)的特點(diǎn)

    1.嵌入式系統(tǒng)的特點(diǎn)、分類、發(fā)展與應(yīng)用,熟悉嵌入式系統(tǒng)的邏輯組成。(1)特點(diǎn):專用性隱蔽性(嵌入式系統(tǒng)
    發(fā)表于 07-27 06:57

    簡述嵌入式系統(tǒng)的概念及組成

    目錄嵌入式第1章作業(yè)嵌入式第1章作業(yè)201班 董洪任1、簡述嵌入式系統(tǒng)的概念。嵌入式系統(tǒng)是一種專
    發(fā)表于 10-27 09:34

    嵌入式系統(tǒng)的特點(diǎn)

    ,以計(jì)算機(jī)技術(shù)為基礎(chǔ),適應(yīng)不同應(yīng)用功能、可靠性、成本、梯級、功耗等方面的要求,集可配置、可裁剪的軟硬件于一體的專用計(jì)算機(jī)系統(tǒng)嵌入式、專用性、計(jì)算機(jī)系統(tǒng)嵌入式
    發(fā)表于 10-27 06:53

    如何構(gòu)造一個(gè)小型嵌入式硬件系統(tǒng)

    迫切需要解決的問題。 龍芯系列處理器是我國第一款兼顧通用及嵌入式CPU特點(diǎn)的新一代32位CPU,本文以龍芯GS32I SoC處理器為核心,探討并設(shè)計(jì)如何構(gòu)造一個(gè)小型嵌入式硬件系統(tǒng),同時(shí)
    發(fā)表于 11-05 06:35

    嵌入式系統(tǒng)具有哪些特點(diǎn)應(yīng)用

    嵌入式系統(tǒng)01011.嵌入式系統(tǒng):為特定應(yīng)用而設(shè)計(jì)開發(fā)的專用計(jì)算機(jī)系統(tǒng),它和通用計(jì)算機(jī)一樣,由硬件和軟件兩部分組成。2.
    發(fā)表于 11-09 07:53

    嵌入式系統(tǒng)固件的開發(fā)與調(diào)試相關(guān)資料分享

    嵌入式系統(tǒng)固件的開發(fā)與調(diào)試主要學(xué)習(xí)? ? 嵌入式系統(tǒng)的質(zhì)量屬性(quality attributes)? ?
    發(fā)表于 12-14 07:26

    嵌入式系統(tǒng)概論與嵌入式系統(tǒng)的特點(diǎn)

    嵌入式系統(tǒng)概論嵌入式系統(tǒng)的特點(diǎn):專用性:與具體應(yīng)用緊密結(jié)合,具有很強(qiáng)的專用性隱蔽性:嵌入式系統(tǒng)
    發(fā)表于 12-21 08:21

    基于ARM的嵌入式系統(tǒng)設(shè)計(jì)

    碩士學(xué)位論文基于ARM的嵌入式系統(tǒng)設(shè)計(jì)摘要嵌入式系統(tǒng)以其小型、專用、易攜帶、可靠性高的特點(diǎn),已經(jīng)在各個(gè)領(lǐng)域得到了廣泛的應(yīng)用,如軍事國防、消費(fèi)
    發(fā)表于 12-22 06:59

    嵌入式小型TCPIP協(xié)議棧

    一個(gè)專為嵌入式系統(tǒng)編寫的小型TCP/IP協(xié)議棧 TCP/IPLean
    發(fā)表于 10-08 17:23 ?50次下載

    基于嵌入式系統(tǒng)小型服務(wù)器的搭建

    基于嵌入式系統(tǒng)小型服務(wù)器的搭建.....
    發(fā)表于 01-04 15:25 ?18次下載

    基于嵌入式ARM&WinCE的小型監(jiān)控系統(tǒng)的設(shè)計(jì)

    本文介紹了嵌入式操作系統(tǒng)WinCE的技術(shù)特性、構(gòu)建基于WinCE的嵌入式平臺以及在構(gòu)建的平臺上開發(fā)嵌入式應(yīng)用程序和基于微處理器ARM硬件平臺的設(shè)計(jì)。最后以WinCE
    發(fā)表于 04-18 14:12 ?1次下載

    嵌入式設(shè)備固件的安全分析和測評技術(shù)

    繁多、專用性強(qiáng)、源碼或設(shè)計(jì)文檔往往不公開、運(yùn)行環(huán)境受限等諸多因素的影響,通用漏洞挖掘技術(shù)無法直接適配。近年來,國內(nèi)外安全專家和學(xué)者針對嵌入式設(shè)備及其固件的安全分析和測評技術(shù)提出了很多切實(shí)可行的解決方案,但
    發(fā)表于 06-07 16:31 ?8次下載

    嵌入式系統(tǒng)

    緊密結(jié)合。嵌入式系統(tǒng)通常是計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)、電力電子技術(shù)及機(jī)械技術(shù)與各行業(yè)的具體應(yīng)用相結(jié)合的產(chǎn)物。(6)系統(tǒng)透明性。(7)系統(tǒng)資源受限
    發(fā)表于 10-14 13:49 ?2次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>

    嵌入式作業(yè)

    目錄嵌入式第1章作業(yè)嵌入式第1章作業(yè)201班 董洪任1、簡述嵌入式系統(tǒng)的概念。嵌入式系統(tǒng)是一種專
    發(fā)表于 10-20 16:35 ?10次下載
    <b class='flag-5'>嵌入式</b>作業(yè)