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

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

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

超低功耗MCU的安全固件更新注意事項(xiàng)

星星科技指導(dǎo)員 ? 來(lái)源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Bhargavi Nisarga,Lu ? 2022-10-20 11:01 ? 次閱讀

作者:Bhargavi Nisarga,Luis Reynoso

現(xiàn)場(chǎng)固件更新是基于微控制器(基于MCU)的應(yīng)用中越來(lái)越受歡迎的功能。這些更新使新的固件映像能夠下載到設(shè)備的內(nèi)存中,為產(chǎn)品制造商提供了一種有效的方式,可以為已經(jīng)在現(xiàn)場(chǎng)部署的產(chǎn)品提供服務(wù)和支持。物聯(lián)網(wǎng)IoT)時(shí)代正在推動(dòng)嵌入式世界連接性的提高,使其成為當(dāng)今互聯(lián)產(chǎn)品最關(guān)鍵的功能之一,只要它們是安全的。

在部署固件更新機(jī)制時(shí),物聯(lián)網(wǎng)開發(fā)人員通??紤]縮短上市時(shí)間并降低產(chǎn)品維護(hù)成本,因?yàn)樵摴δ茉试S他們分階段推出功能,在現(xiàn)場(chǎng)設(shè)備上啟用/禁用特性或功能,在產(chǎn)品發(fā)布后修復(fù)固件錯(cuò)誤,減少對(duì)昂貴技術(shù)支持的需求,并實(shí)現(xiàn)更好的整體最終用戶體驗(yàn)。但是,如果沒有適當(dāng)?shù)陌踩胧?,則此功能可能會(huì)被濫用,并且成功利用的后果可能是災(zāi)難性的,從知識(shí)產(chǎn)權(quán)(IP)盜竊和產(chǎn)品克隆一直到對(duì)部署系統(tǒng)的未經(jīng)授權(quán)的控制。例如,成功利用不支持在醫(yī)院藥物泵中驗(yàn)證新固件映像的真實(shí)性的固件更新機(jī)制,可能會(huì)導(dǎo)致黑客篡改交付給患者的藥物劑量。

固件更新及其漏洞

圖1顯示了一個(gè)典型的固件更新過(guò)程。這些步驟包括:

產(chǎn)品制造商在受信任的環(huán)境中創(chuàng)建初始固件映像并將其加載到設(shè)備中。

產(chǎn)品與初始固件一起部署到現(xiàn)場(chǎng)。

當(dāng)需要固件更新時(shí),產(chǎn)品制造商會(huì)創(chuàng)建新的固件映像。

制造商將新的固件映像直接通過(guò)不受信任的通信通道發(fā)送給最終用戶/技術(shù)人員或產(chǎn)品。

新固件將加載到現(xiàn)場(chǎng)的設(shè)備上。

潛在的安全威脅在“傳輸”階段通過(guò)不受信任的通信通道傳輸時(shí),或者在“固件加載”階段,當(dāng)新固件下載到現(xiàn)場(chǎng)的設(shè)備上時(shí),潛在的安全威脅是顯而易見的。

正在下載到設(shè)備的新固件映像對(duì)應(yīng)于產(chǎn)品制造商的 IP 和目標(biāo)資產(chǎn)。對(duì)此資產(chǎn)的威脅包括:

將固件二進(jìn)制映像反向工程成匯編或更高級(jí)別的工程語(yǔ)言,以分析其功能和內(nèi)容。

產(chǎn)品克隆,其中將產(chǎn)品制造商的固件映像加載到未經(jīng)授權(quán)的設(shè)備上。

更改產(chǎn)品制造商分發(fā)的固件。

將未經(jīng)授權(quán)的固件映像加載到設(shè)備上,該映像可能對(duì)應(yīng)于產(chǎn)品制造商提供的具有已知錯(cuò)誤或由未經(jīng)授權(quán)方創(chuàng)建的代碼的較舊固件版本,或者不適用于特定設(shè)備的固件(固件降級(jí))。

中斷固件更新過(guò)程,使固件僅部分更新,從而導(dǎo)致設(shè)備無(wú)法提供服務(wù)。

很明顯,上述威脅可能會(huì)對(duì)產(chǎn)品制造商、服務(wù)提供商和最終用戶造成災(zāi)難性后果,因此表明嵌入式設(shè)計(jì)人員迫切需要采取措施來(lái)提高固件更新機(jī)制的整體安全性。

設(shè)計(jì)工程師的安全固件更新注意事項(xiàng)

圖 2 顯示了網(wǎng)絡(luò)連接系統(tǒng)的示例表示形式。在這種情況下,新的固件映像從產(chǎn)品制造商(例如,新功能推出或固件錯(cuò)誤修復(fù))或服務(wù)提供商(例如,啟用/禁用產(chǎn)品中的功能或服務(wù))傳輸?shù)奖镜鼗驈V域網(wǎng)(LAN /WAN)上的終端節(jié)點(diǎn),并且可能涉及來(lái)自最終用戶應(yīng)用程序的身份驗(yàn)證(例如, 通過(guò)移動(dòng)設(shè)備和Web應(yīng)用程序)執(zhí)行固件更新。

pYYBAGNQugGAMpVcAAEZjllQt50304.png

[圖2 |安全固件更新包括由用于網(wǎng)絡(luò)通信接口協(xié)議規(guī)定的安全措施,以及確保在數(shù)據(jù)進(jìn)入網(wǎng)絡(luò)之前保護(hù)固件映像的應(yīng)用程序級(jí)安全性。

為物聯(lián)網(wǎng)系統(tǒng)設(shè)計(jì)固件更新功能的嵌入式系統(tǒng)工程師不僅需要了解需要保護(hù)的資產(chǎn)和潛在威脅,還需要了解其系統(tǒng)的功能和局限性,特別是當(dāng)它們與受限系統(tǒng)的成本、性能或功耗有關(guān)時(shí)。作為起點(diǎn),必須考慮結(jié)合加密算法和協(xié)議級(jí)措施的正確組合的有效安全解決方案。

加密算法提供了一種保護(hù)內(nèi)容隱私的方法,同時(shí)確保其真實(shí)性和完整性。并非所有加密算法都是相同的,但它們基于四個(gè)加密基元,這些原語(yǔ)處理機(jī)密性、完整性和真實(shí)性 (CIA) 三元組的一個(gè)或多個(gè)組件。這些基元是:

加密和解密:加密是將數(shù)據(jù)(明文)轉(zhuǎn)換為隨機(jī)和無(wú)意義(密文)的過(guò)程,而解密則執(zhí)行相反的工作。這些基元提供機(jī)密性和真實(shí)性,并用于防止固件的逆向工程。

單向功能:諸如哈希之類的函數(shù)是數(shù)學(xué)算法,在一個(gè)方向上很容易計(jì)算,但在另一個(gè)方向上很難計(jì)算。它們用于獲取數(shù)字“指紋”,以確保固件在傳輸?shù)浆F(xiàn)場(chǎng)之前的完整性。

數(shù)字簽名:用于檢測(cè)消息在簽名后是否被更改,從而不僅提供完整性,還提供身份驗(yàn)證。這些使用公鑰加密來(lái)生成只能使用制造商的公鑰正確解密的簽名。

消息身份驗(yàn)證代碼: 與數(shù)字簽名類似,只是它使用對(duì)稱密鑰來(lái)加密和解密制造商生成的哈希。如果接收方解密的哈希值與為消息計(jì)算的哈希值匹配,則該消息有效。通過(guò)這種方式,MAC提供了真實(shí)性和完整性。

影響加密算法選擇的一些因素包括性能要求、系統(tǒng)的安全需求、內(nèi)存占用、能耗以及安全社區(qū)(如美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院 (NIST) 等組織)對(duì)算法的可靠性和接受度。

除了加密算法之外,還應(yīng)考慮針對(duì)固件降級(jí)等威脅的協(xié)議級(jí)措施。如前所述,固件降級(jí)是一種攻擊,其中較舊的有缺陷的固件映像(加密或未加密)被重新發(fā)送到設(shè)備以將其恢復(fù)到易受攻擊的狀態(tài)。對(duì)固件和密鑰進(jìn)行版本檢查可以確保在更新期間僅對(duì)新版本進(jìn)行編程。

攻擊者還可以使用多種方法(斷電、物理連接故障、傳輸過(guò)程中的位翻轉(zhuǎn)等)中斷固件更新過(guò)程。這可能導(dǎo)致設(shè)備執(zhí)行不完整或無(wú)效的固件映像,使其無(wú)用或處于受損狀態(tài)。為了解決這種情況,固件更新機(jī)制需要確保不執(zhí)行不完整或損壞的映像,如有必要,應(yīng)將系統(tǒng)還原為以前使用的有效映像。

用于連接的嵌入式系統(tǒng)的加密引導(dǎo)加載程序

固件更新通常由設(shè)備引導(dǎo)加載程序處理。引導(dǎo)加載程序是駐留在設(shè)備內(nèi)存上的一段代碼,能夠重新編程應(yīng)用程序內(nèi)存空間。但是,查找或創(chuàng)建具有網(wǎng)絡(luò)連接系統(tǒng)所需安全性的嵌入式引導(dǎo)加載程序可能具有挑戰(zhàn)性。例如,系統(tǒng)可能需要能夠更新加密密鑰,因此加密功能和引導(dǎo)加載程序協(xié)議應(yīng)支持在固件更新過(guò)程中升級(jí)密鑰和提高網(wǎng)絡(luò)安全性。引導(dǎo)加載程序協(xié)議還應(yīng)適應(yīng)驗(yàn)證固件更新版本和數(shù)據(jù)包跟蹤,以檢查是否接收了特定固件更新映像的所有數(shù)據(jù)包。

如前所述,加密算法的選擇至關(guān)重要,因?yàn)樗粌H設(shè)置了系統(tǒng)的安全級(jí)別,還會(huì)影響其性能、內(nèi)存占用和功耗。考慮到這一點(diǎn),AES-CCM代表了嵌入式引導(dǎo)加載程序的最佳解決方案。AES-CCM 是一個(gè)基于兩個(gè)加密基元構(gòu)建的加密引導(dǎo)加載程序(加密引導(dǎo)加載程序):用于加密的 AES 計(jì)數(shù)器模式 (AES-CTR) 和用于完整性和真實(shí)性驗(yàn)證的密碼塊鏈接消息身份驗(yàn)證代碼 (CBC-MAC)。由于 AES-CCM 提供的低開銷,它在提高安全性與低內(nèi)存占用量、高吞吐量和高效功耗之間實(shí)現(xiàn)了完美平衡(圖 3)。

poYBAGNQugOAMFiIAABws1HPlyc940.jpg

[圖3|AES-CCM 算法用于加密固件數(shù)據(jù),例如固件版本號(hào)、數(shù)據(jù)包編號(hào)和數(shù)據(jù)包總數(shù)。該信息與對(duì)稱數(shù)據(jù)加密密鑰一起輸入算法,以加密數(shù)據(jù)并生成加密的MAC標(biāo)簽,該標(biāo)簽代表德州儀器的Crypto-Bootloader核心命令的一部分。

選擇實(shí)現(xiàn)引導(dǎo)加載程序的MCU也不容忽視。設(shè)計(jì)人員應(yīng)考慮具有硬件加密引擎、存儲(chǔ)器保護(hù)單元(MPU)、低功耗外設(shè)和存儲(chǔ)器技術(shù)等功能的MCU,這些器件允許快速讀/寫周期以提高吞吐量。德州儀器 (TI) 的 MSP430FR5969 MCU 就是此類 MCU 的一個(gè)例子,它集成了 AES-256 協(xié)處理器以加速加密算法,MPU 和 MPU-IP 封裝 (MPU-IPE) 模塊可增強(qiáng)對(duì)內(nèi)存區(qū)域的保護(hù)和封裝,以及高達(dá) 64 KB 的 FRAM 內(nèi)存,可實(shí)現(xiàn)高性能和超低功耗。在 MSP430FR5969 設(shè)備上實(shí)現(xiàn)的加密引導(dǎo)加載程序解決方案封裝了此處概述的大多數(shù)安全功能和注意事項(xiàng)。

保護(hù)物聯(lián)網(wǎng)的固件

總之,越來(lái)越多的網(wǎng)絡(luò)嵌入式產(chǎn)品正在產(chǎn)生潛在的高級(jí)安全威脅,使現(xiàn)場(chǎng)固件更新更容易受到遠(yuǎn)程攻擊和利用。因此,嵌入式設(shè)計(jì)人員必須考慮通過(guò)提供適當(dāng)安全級(jí)別的解決方案來(lái)保護(hù)其固件更新機(jī)制,同時(shí)平衡物聯(lián)網(wǎng)產(chǎn)品的成本、功耗和性能限制。

審核編輯:郭婷

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

    關(guān)注

    48

    文章

    7552

    瀏覽量

    151417
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17148

    瀏覽量

    351181
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2909

    文章

    44634

    瀏覽量

    373311
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    超低功耗MCU選型與設(shè)計(jì)

      循序漸進(jìn)式的功耗優(yōu)化已經(jīng)不再是超低功耗mcu的游戲規(guī)則,而是“突飛猛進(jìn)”模式,與功耗相關(guān)的很多指標(biāo)都不斷刷新記錄。我們?cè)谶x擇合適的超低功耗
    發(fā)表于 07-29 07:27

    如何選擇超低功耗MCU

    在物聯(lián)網(wǎng)的推動(dòng)下,業(yè)界對(duì)各種電池供電設(shè)備產(chǎn)生了巨大需求。這反過(guò)來(lái)又使業(yè)界對(duì)微控制器和其他系統(tǒng)級(jí)器件的能源效率要求不斷提高。因此超低功耗MCU功耗相關(guān)的很多指標(biāo)都不斷得刷新記錄。在選擇合適的
    發(fā)表于 12-28 07:12

    STM32低功耗模式注意事項(xiàng)

    STM32低功耗模式 一、低功耗注意事項(xiàng):1、所有IO管腳,如果高阻狀態(tài)端口是高電平,就設(shè)成上拉輸入;如果高阻狀態(tài)是低電平,設(shè)成下拉輸入;如果高阻是中間狀態(tài),設(shè)成模擬輸入。這個(gè)很多人都提到過(guò),必須
    發(fā)表于 08-18 06:36

    MCU實(shí)現(xiàn)低功耗有哪些注意事項(xiàng)

    MCU實(shí)現(xiàn)低功耗注意事項(xiàng)第一條:掐斷外設(shè)命脈——關(guān)閉外設(shè)時(shí)鐘  先說(shuō)最直觀的,也是工程師都比較注意的方面,就是關(guān)閉MCU的外設(shè)時(shí)鐘,對(duì)于現(xiàn)在
    發(fā)表于 11-01 07:05

    如何選擇超低功耗MCU

    在物聯(lián)網(wǎng)的推動(dòng)下,業(yè)界對(duì)各種電池供電設(shè)備產(chǎn)生了巨大需求。這反過(guò)來(lái)又使業(yè)界對(duì)微控制器和其他系統(tǒng)級(jí)器件的能源效率要求不斷提高。因此超低功耗MCU功耗相關(guān)的很多指標(biāo)都不斷得刷新記錄。在選擇合適的
    發(fā)表于 11-04 07:07

    STM32低功耗模式有哪些注意事項(xiàng)?

    STM32低功耗模式有哪些注意事項(xiàng)
    發(fā)表于 11-23 06:17

    低功耗配置IO的注意事項(xiàng)是什么

    低功耗配置IO注意事項(xiàng)現(xiàn)在,有許多單片機(jī)應(yīng)用領(lǐng)域,都是用電池供電,節(jié)能成為設(shè)計(jì)工程師普遍關(guān)心的問(wèn)題。有些時(shí)候單片機(jī)進(jìn)入低功耗模式后功耗還是很大,可能就是IO的配置有問(wèn)題,下面對(duì)于單片機(jī)
    發(fā)表于 02-11 07:58

    【應(yīng)用筆記】CS32L010 設(shè)計(jì)注意事項(xiàng)

    本技術(shù)文檔描述了CS32L010 在 電路設(shè)計(jì),F(xiàn)lash操作 和 AWK 喚醒低功耗睡眠模式 方面需要注意事項(xiàng)。 參考本文檔提供的注意事項(xiàng),有助于提高電路的穩(wěn)定性和可靠性,也有助于
    發(fā)表于 11-22 16:42

    Apollo2_超低功耗MCU

    超低功耗MCU
    發(fā)表于 08-18 11:11 ?107次下載

    MCU實(shí)現(xiàn)低功耗注意事項(xiàng)

    MCU實(shí)現(xiàn)低功耗注意事項(xiàng)第一條:掐斷外設(shè)命脈——關(guān)閉外設(shè)時(shí)鐘  先說(shuō)最直觀的,也是工程師都比較注意的方面,就是關(guān)閉MCU的外設(shè)時(shí)鐘,對(duì)于現(xiàn)在
    發(fā)表于 10-25 18:21 ?9次下載
    <b class='flag-5'>MCU</b>實(shí)現(xiàn)<b class='flag-5'>低功耗</b><b class='flag-5'>注意事項(xiàng)</b>

    超低功耗MCU安全固件更新注意事項(xiàng)

      總之,越來(lái)越多的網(wǎng)絡(luò)嵌入式產(chǎn)品正在創(chuàng)造潛在的高級(jí)安全威脅,使現(xiàn)場(chǎng)固件更新更容易受到遠(yuǎn)程攻擊和利用。因此,嵌入式設(shè)計(jì)人員必須考慮通過(guò)提供適當(dāng)安全級(jí)別的解決方案來(lái)保護(hù)其
    的頭像 發(fā)表于 06-10 07:33 ?1707次閱讀
    <b class='flag-5'>超低功耗</b><b class='flag-5'>MCU</b>的<b class='flag-5'>安全</b><b class='flag-5'>固件</b><b class='flag-5'>更新</b><b class='flag-5'>注意事項(xiàng)</b>

    低功耗設(shè)計(jì)技術(shù)、多核系統(tǒng)的功耗注意事項(xiàng)

    固件實(shí)施相比,基于硬件的安全性還具有提供更快性能和更低功耗的額外好處。例如,賽普拉斯 PSoC 6 BLE MCU 中的專用加密模塊可加速加密功能。
    的頭像 發(fā)表于 10-05 07:48 ?1309次閱讀
    <b class='flag-5'>低功耗</b>設(shè)計(jì)技術(shù)、多核系統(tǒng)的<b class='flag-5'>功耗</b><b class='flag-5'>注意事項(xiàng)</b>

    微型/超低功耗 E7 仿真器用戶手冊(cè)附加文檔(連接 H8/38602RF 的注意事項(xiàng)

    微型/超低功耗 E7 仿真器用戶手冊(cè)附加文檔(連接 H8/38602RF 的注意事項(xiàng)
    發(fā)表于 05-05 19:37 ?1次下載
    微型/<b class='flag-5'>超低功耗</b> E7 仿真器用戶手冊(cè)附加文檔(連接 H8/38602RF 的<b class='flag-5'>注意事項(xiàng)</b>)

    微型/超低功耗 E7 仿真器用戶手冊(cè)附加文檔(連接 H8/38602RF 的注意事項(xiàng)

    微型/超低功耗 E7 仿真器用戶手冊(cè)附加文檔(連接 H8/38602RF 的注意事項(xiàng)
    發(fā)表于 06-26 19:29 ?0次下載
    微型/<b class='flag-5'>超低功耗</b> E7 仿真器用戶手冊(cè)附加文檔(連接 H8/38602RF 的<b class='flag-5'>注意事項(xiàng)</b>)

    安全光柵選擇注意事項(xiàng)

    安全光柵選擇注意事項(xiàng)
    的頭像 發(fā)表于 07-14 10:24 ?1016次閱讀
    <b class='flag-5'>安全</b>光柵選擇<b class='flag-5'>注意事項(xiàng)</b>