你的位置:首頁(yè) > 測(cè)試測(cè)量 > 正文

物聯(lián)網(wǎng)安全基礎(chǔ)知識(shí):確保安全引導(dǎo)和固件更新

發(fā)布時(shí)間:2020-12-17 責(zé)任編輯:lina

【導(dǎo)讀】通過(guò)組合使用,基于硬件的加密技術(shù)與安全存儲(chǔ)可提供實(shí)現(xiàn)安全物聯(lián)網(wǎng) (IoT) 設(shè)計(jì)所需的基本功能。但是,物聯(lián)網(wǎng)設(shè)備一旦部署,就會(huì)面臨多種威脅,這些威脅會(huì)破壞這些設(shè)備,發(fā)起即時(shí)攻擊,或造成更微妙和高級(jí)的持續(xù)性威脅。

通過(guò)組合使用,基于硬件的加密技術(shù)與安全存儲(chǔ)可提供實(shí)現(xiàn)安全物聯(lián)網(wǎng) (IoT) 設(shè)計(jì)所需的基本功能。但是,物聯(lián)網(wǎng)設(shè)備一旦部署,就會(huì)面臨多種威脅,這些威脅會(huì)破壞這些設(shè)備,發(fā)起即時(shí)攻擊,或造成更微妙和高級(jí)的持續(xù)性威脅。
 
本文描述了開(kāi)發(fā)人員應(yīng)如何使用基于底層安全機(jī)制構(gòu)建的信任根來(lái)增強(qiáng)物聯(lián)網(wǎng)設(shè)備的安全性,這個(gè)信任根在 Maxim Integrated、Microchip Technology、NXP Semiconductors 和 Silicon Labs 等廠商推出的安全處理器上可為軟件執(zhí)行提供一個(gè)可信任的環(huán)境。
 
什么是信任根,為什么需要信任根?
 
加密方法和安全密鑰是確保任何互聯(lián)設(shè)備安全性的關(guān)鍵促進(jìn)因素。如本系列文章的第 1 部分和第 2 部分所述,它們提供了更高層次協(xié)議所用的基本機(jī)制,以保護(hù)數(shù)據(jù)和通信。要保護(hù)系統(tǒng)本身,需要開(kāi)發(fā)人員解決可能影響嵌入式系統(tǒng)中的系統(tǒng)操作和軟件執(zhí)行的漏洞。
 
在典型的嵌入式系統(tǒng)中,由于電源故障或關(guān)鍵軟件異常導(dǎo)致的系統(tǒng)復(fù)位最終會(huì)引起軟件引導(dǎo)過(guò)程,從非易失性存儲(chǔ)器重新加載固件映像。通常,軟件重新引導(dǎo)是一種重要的安全機(jī)制,用于恢復(fù)被意外或有意打破穩(wěn)定性的系統(tǒng)功能。在互聯(lián)系統(tǒng)中,黑客使用各種黑帽工具來(lái)破壞軟件,而安全專家通常建議通過(guò)重新引導(dǎo),來(lái)應(yīng)對(duì)影響軟件執(zhí)行的入侵行為。例如,F(xiàn)BI 在 2018 年曾建議消費(fèi)者和企業(yè)主重新啟動(dòng)路由器,以阻止所發(fā)生的大規(guī)模黑客攻擊活動(dòng)。
 
實(shí)際上,重新引導(dǎo)并不能保證系統(tǒng)完整性。在固件映像被盜用的情況下重新引導(dǎo)后,系統(tǒng)仍處于黑客的控制之下。為了緩和此類威脅,開(kāi)發(fā)人員需要確保其軟件在信任鏈上運(yùn)行,而該信任鏈則基于引導(dǎo)時(shí)建立的信任根所構(gòu)建,并延伸至軟件執(zhí)行環(huán)境的所有層面。能否達(dá)到此安全級(jí)別關(guān)鍵取決于,確保使用可信的固件開(kāi)始引導(dǎo)過(guò)程。
 
驗(yàn)證固件映像進(jìn)行安全引導(dǎo)
 
在嵌入式系統(tǒng)中,主機(jī)處理器將固件映像從閃存加載到主存儲(chǔ)器中并開(kāi)始執(zhí)行(或者直接從具有芯片內(nèi)執(zhí)行 (XIP) 功能的閃存開(kāi)始執(zhí)行)。如果黑客已盜用固件映像,則引導(dǎo)過(guò)程將會(huì)導(dǎo)致系統(tǒng)被劫持。
 
為了在引導(dǎo)之前驗(yàn)證固件的完整性,開(kāi)發(fā)人員使用了一個(gè)從供應(yīng)鏈早期開(kāi)始的代碼簽名過(guò)程。在安全的設(shè)施內(nèi),通過(guò)使用橢圓曲線數(shù)字簽名算法 (ECDSA) 之類的加密穩(wěn)健算法創(chuàng)建的私鑰 - 公鑰對(duì),可對(duì)系統(tǒng)的固件映像進(jìn)行簽名。盡管私鑰從未離開(kāi)過(guò)設(shè)施,但系統(tǒng)公鑰會(huì)隨系統(tǒng)一起發(fā)運(yùn)。在引導(dǎo)過(guò)程中,處理器會(huì)在使用映像之前運(yùn)用此系統(tǒng)公鑰來(lái)驗(yàn)證固件簽名。
 
當(dāng)然,在上述過(guò)程中,公鑰本身容易受到攻擊,而且在擴(kuò)展時(shí),這會(huì)使系統(tǒng)固件容易遭到未經(jīng)授權(quán)的替換。如果公鑰在嵌入式系統(tǒng)中繼續(xù)不受保護(hù),黑客可能會(huì)用自己生成的私鑰 - 公鑰對(duì)中的公鑰來(lái)替換它。如果他們以自己擁有的相關(guān)私鑰簽名的惡意固件替換了系統(tǒng)的固件映像,則被盜用的固件簽名將會(huì)通過(guò)驗(yàn)證過(guò)程,并繼續(xù)引導(dǎo)過(guò)程,從而導(dǎo)致系統(tǒng)被劫持。
 
因此,安全系統(tǒng)依賴于在安全設(shè)施內(nèi)的安全元件中預(yù)配置的有效公鑰。Maxim Integrated 的 DS28C36 和 Microchip Technology 的 ATECC608A 這類安全 IC 不僅可以安全地存儲(chǔ)傳統(tǒng)安全元件,還能安全地執(zhí)行 ECDSA 等認(rèn)證算法進(jìn)行固件簽名認(rèn)證。
 
例如,在引導(dǎo)之前,主機(jī)處理器可通過(guò)串行接口將固件發(fā)送到 DS28C36。DS28C36 隨即使用先前在安全設(shè)施中預(yù)配置的系統(tǒng)公鑰,來(lái)驗(yàn)證固件簽名是否確實(shí)由同一安全設(shè)施中的關(guān)聯(lián)私鑰創(chuàng)建。最后,DS28C36 將驗(yàn)證結(jié)果發(fā)送至主機(jī)處理器,如果簽名有效,主機(jī)處理器會(huì)繼續(xù)加載固件映像(圖 1)。
 
 
物聯(lián)網(wǎng)安全基礎(chǔ)知識(shí):確保安全引導(dǎo)和固件更新
 
更安全的引導(dǎo)過(guò)程可保護(hù)固件映像,以消除密鑰或映像被盜用造成的問(wèn)題。通過(guò)使用安全存儲(chǔ)和加密加速器,有效的安全引導(dǎo)功能已內(nèi)置到越來(lái)越多的處理器中,包括 Silicon Laboratories 的 Gecko 系列 2 處理器、NXP 的 LPC55S69JBD100、Maxim Integrated 的 MAX32520 和 Microchip Technology 的 ATSAML11D16A 等等。利用這些功能,此類安全處理器可以提供所需的信任根,以創(chuàng)建用于系統(tǒng)和應(yīng)用軟件執(zhí)行的可信環(huán)境。
 
通過(guò)安全引導(dǎo)提供信任根
 
此類安全處理器提供安全引導(dǎo)選項(xiàng),旨在確保信任根所依托的固件映像的完整性。例如,Silicon Laboratories 的 EFR32MG21A 和 EFR32BG22 Gecko 系列 2 處理器分別通過(guò)基于硬件安全元件和虛擬安全元件 (VSE) 的多級(jí)引導(dǎo)過(guò)程來(lái)構(gòu)建此信任根(圖 2)。
 
物聯(lián)網(wǎng)安全基礎(chǔ)知識(shí):確保安全引導(dǎo)和固件更新
 
在 EFR32MG21A 中,專用處理器內(nèi)核提供加密功能以及用于安全密鑰存儲(chǔ)的硬件安全元件。在此專用功能的支持下,處理器使用只讀存儲(chǔ)器 (ROM) 中存儲(chǔ)的代碼發(fā)起引導(dǎo)過(guò)程,以驗(yàn)證第一級(jí)引導(dǎo)程序 (FSB) 代碼。完成驗(yàn)證后,F(xiàn)SB 代碼即會(huì)運(yùn)行,接著又會(huì)驗(yàn)證第二級(jí)引導(dǎo)程序 (SSB) 的代碼簽名。引導(dǎo)序列繼續(xù)執(zhí)行經(jīng)驗(yàn)證的 SSB,后者進(jìn)而會(huì)驗(yàn)證應(yīng)用程序代碼的簽名,而該代碼通常包括系統(tǒng)級(jí)代碼和更高級(jí)別的應(yīng)用程序代碼。最后,經(jīng)驗(yàn)證的應(yīng)用程序代碼運(yùn)行,系統(tǒng)根據(jù)應(yīng)用程序的要求繼續(xù)執(zhí)行操作。
 
由于此過(guò)程從 ROM 代碼開(kāi)始,而且僅運(yùn)行經(jīng)驗(yàn)證的 FSB、SSB 和應(yīng)用程序代碼,因此該方法將產(chǎn)生經(jīng)驗(yàn)證的信任鏈來(lái)執(zhí)行代碼。由于此信任鏈中的第一環(huán)依賴于無(wú)法修改的 ROM 代碼,因此信任鏈中后續(xù)的每一環(huán)都會(huì)延續(xù)此可信環(huán)境。與此同時(shí),這種方法還允許開(kāi)發(fā)人員安全地更新應(yīng)用程序代碼,甚至是第一級(jí)和第二級(jí)引導(dǎo)程序代碼。只要每個(gè)代碼包都提供經(jīng)驗(yàn)證的簽名,可信環(huán)境就能保持完好。
 
使用信任根提供這種安全引導(dǎo)的處理器,通常支持多種模式和選項(xiàng)。例如,Silicon Laboratories 的 Gecko 系列 2 處理器提供了更強(qiáng)大的基于證書(shū)的安全引導(dǎo)功能。
 
證書(shū)可用于常規(guī)公鑰基礎(chǔ)結(jié)構(gòu) (PKI) 事務(wù)處理,包含公鑰以及對(duì)一個(gè)或多個(gè)相關(guān)證書(shū)的引用,這些證書(shū)最終指向證書(shū)頒發(fā)機(jī)構(gòu) (CA) 授予的根證書(shū)。此鏈中的每個(gè)證書(shū)均用于驗(yàn)證其下面的證書(shū),從而形成基于值得信賴的 CA 的信任鏈。在傳輸層安全性 (TLS) 的認(rèn)證階段,瀏覽器依靠此信任鏈來(lái)確認(rèn) Web 服務(wù)器的身份。嵌入式系統(tǒng)可采用相同的方法使用證書(shū)來(lái)確認(rèn)引導(dǎo)程序或應(yīng)用程序代碼源的身份。在這里,按照前述方式執(zhí)行多級(jí)引導(dǎo)過(guò)程,但需要額外驗(yàn)證與每一級(jí)相關(guān)的證書(shū)(圖 3)。
 
物聯(lián)網(wǎng)安全基礎(chǔ)知識(shí):確保安全引導(dǎo)和固件更新
 
NXP 的 LPC55S69JBD100 等其他處理器支持多種不同的固件映像選項(xiàng)。除了簽名的固件映像外,這些處理器還支持使用可信計(jì)算組織推出的設(shè)備標(biāo)識(shí)符組合引擎 (DICE) 行業(yè)標(biāo)準(zhǔn)的引導(dǎo)映像。第三個(gè)選項(xiàng)允許開(kāi)發(fā)人員將映像存儲(chǔ)在支持 PRINCE 加密的處理器閃存特殊區(qū)域內(nèi),其中 PRINCE 加密是一種低延遲的分組加密,能夠在小得多的硅面積內(nèi)達(dá)到與其他加密相當(dāng)?shù)陌踩珡?qiáng)度。在 LPC55S69JBD100 中可實(shí)現(xiàn) PRINCE 加密,這種技術(shù)能對(duì)處理器專用的 PRINCE 閃存區(qū)中存儲(chǔ)的加密代碼或數(shù)據(jù)執(zhí)行實(shí)時(shí)解密。由于解密使用的密鑰僅供 PRINCE 加密引擎訪問(wèn),因此該解密過(guò)程仍然是安全的。實(shí)際上,這些密鑰由 LPC55S69JBD100 的物理不可克隆功能 (PUF) 生成的密鑰加密密鑰 (KEK) 提供保護(hù)。(有關(guān) PUF 和 KEK 用法的更多信息,請(qǐng)參見(jiàn)第 2 部分。)
 
這種方法使開(kāi)發(fā)人員能夠存儲(chǔ)更多固件映像,而這是在避免“封閉”設(shè)備的風(fēng)險(xiǎn)情況下,為物聯(lián)網(wǎng)設(shè)備提供固件無(wú)線 (FOTA) 更新方法所需的功能。如果處理器只能使用一個(gè)位置來(lái)存儲(chǔ)固件映像,則有缺陷的固件映像會(huì)將處理器置于不確定或鎖定的狀態(tài),從而鎖定或阻塞設(shè)備。通過(guò)將固件映像存儲(chǔ)在 LPC55S69JBD100 中啟用了 PRINCE 的閃存區(qū)內(nèi),開(kāi)發(fā)人員可使用回退策略,即如果新版本引導(dǎo)進(jìn)入無(wú)法工作狀態(tài),則還原固件的上一個(gè)正常工作版本。
 
由于所有這些新固件映像都必須通過(guò)基礎(chǔ)引導(dǎo)過(guò)程中所需的簽名驗(yàn)證檢查,所以開(kāi)發(fā)人員可充分利用安全 FOTA,在不影響系統(tǒng)或其信任鏈的情況下添加新功能或修復(fù)錯(cuò)誤。
 
總結(jié)
 
系統(tǒng)和應(yīng)用級(jí)別的安全性需要一個(gè)只允許授權(quán)軟件運(yùn)行的執(zhí)行環(huán)境。盡管代碼簽名驗(yàn)證是實(shí)現(xiàn)此類環(huán)境的基本功能,但安全系統(tǒng)還需要利用更全面的功能集來(lái)構(gòu)建必要的信任鏈,以確保執(zhí)行的是受信任的軟件。這些可信環(huán)境的基礎(chǔ)在于信任根,而信任根可通過(guò)安全處理器所支持的安全引導(dǎo)機(jī)制提供。使用此類處理器,開(kāi)發(fā)人員可以實(shí)現(xiàn)安全的物聯(lián)網(wǎng)設(shè)備,使其能夠抵御企圖破壞系統(tǒng)中的軟件執(zhí)行或完全劫持系統(tǒng)的攻擊行為。
 
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問(wèn)題,請(qǐng)電話或者郵箱聯(lián)系小編進(jìn)行侵刪。
 
 
推薦閱讀:
新手父母的小幫手:ToF技術(shù)賦能醫(yī)療健康監(jiān)控
雅特力攜高效能AT32 MCU“芯”動(dòng)亮相ICCAD 2020
微波功率放大器發(fā)展概述
磁滯損耗的理解
冰箱壓縮機(jī)設(shè)計(jì)使用數(shù)字信號(hào)控制器實(shí)現(xiàn)高能效等級(jí)
要采購(gòu)工具么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉