安全更新基于 FPGA 的嵌入式系統(tǒng)
出處:維庫(kù)電子市場(chǎng)網(wǎng) 發(fā)布于:2023-03-07 16:25:16
“系統(tǒng)更新時(shí)請(qǐng)勿關(guān)閉電源?!?nbsp;我們以前都見(jiàn)過(guò)這個(gè)警告。它通常發(fā)生在我們的電子設(shè)備之一更新其閃存以安裝代碼更新時(shí)。如果此更新被中斷,閃存將無(wú)法正確更新。代碼將被破壞并且設(shè)備無(wú)法操作或“變磚”。熟悉的警告通知的根本原因是,絕大多數(shù)使用閃存的半導(dǎo)體設(shè)備都需要在編程或擦除操作期間始終通電。顯然,避免創(chuàng)建“變磚”設(shè)備很重要。但是,如果僅發(fā)出警告還不夠怎么辦?一些嵌入式設(shè)備甚至沒(méi)有用戶顯示器,因此無(wú)法生成警告。您可以在設(shè)計(jì)中做些什么來(lái)創(chuàng)建可靠、安全和有保障的遠(yuǎn)程系統(tǒng)更新?
遠(yuǎn)程更新在嵌入式系統(tǒng)中的重要性 遠(yuǎn)程
更新對(duì)于連接的嵌入式系統(tǒng)來(lái)說(shuō)是一個(gè)越來(lái)越重要的特性。能夠通過(guò) Internet 遠(yuǎn)程修復(fù)錯(cuò)誤或添加功能,可以節(jié)省大量的服務(wù)調(diào)用費(fèi)用,而當(dāng)部署了數(shù)千個(gè)嵌入式系統(tǒng)時(shí),服務(wù)調(diào)用就會(huì)出現(xiàn)問(wèn)題。針對(duì)嵌入式系統(tǒng)的安全漏洞越來(lái)越頻繁,這也凸顯了對(duì)遠(yuǎn)程安全代碼更新的需求,以修復(fù)潛在的安全漏洞。顯然更新需要安全,否則攻擊算法可以使用不安全的安全更新作為破壞系統(tǒng)的簡(jiǎn)單方法。讓我們看一個(gè)典型的系統(tǒng),以便更好地理解安全、可靠和可靠的遠(yuǎn)程更新設(shè)施的要求。
示例系統(tǒng)——控制平面橋
一個(gè)需要遠(yuǎn)程更新的常見(jiàn)示例系統(tǒng)是通信或網(wǎng)絡(luò)機(jī)箱內(nèi)的控制平面橋。該子系統(tǒng)聚合了許多低速外設(shè)——例如模擬傳感器、電源管理模塊、風(fēng)扇、故障記錄存儲(chǔ)器和使用 I2C、SPI 和 GPIO 接口的狀態(tài)輸出。然后可以使用更高速度的總線,也許是 PCIe——許多通信和網(wǎng)絡(luò)機(jī)箱中非常常見(jiàn)的子系統(tǒng)接口——直接與低速外設(shè)通信。底盤(pán)控制子系統(tǒng)可以實(shí)現(xiàn)智能聚合功能,在指定的觸發(fā)點(diǎn)被激活時(shí)“推送”通信——例如溫度或電壓水平。下面的圖 1 顯示了使用 FPGA 和片上微控制器(通常稱(chēng)為 SoC FPGA)實(shí)現(xiàn)的此類(lèi)系統(tǒng)。
圖 1. 通過(guò) PCIe 進(jìn)行遠(yuǎn)程更新的機(jī)箱控制平面橋
FPGA 和閃存
在上面的示例系統(tǒng)中,遠(yuǎn)程更新是通過(guò) PCIe 總線進(jìn)行的,但在編程過(guò)程中沒(méi)有受到可能的斷電保護(hù)。讓我們看看常見(jiàn)的 FPGA 實(shí)現(xiàn)類(lèi)型,以更好地了解保護(hù)閃存遠(yuǎn)程更新過(guò)程免受斷電期間嚴(yán)重故障影響的要求。
幾乎每個(gè)基于 FPGA 的系統(tǒng)都需要某種形式的非易失性存儲(chǔ)器來(lái)存儲(chǔ)配置存儲(chǔ)器。通常配置存儲(chǔ)器駐留在片外或片上?;?SRAM 的 FPGA 需要外部閃存用于上電配置?;陂W存的 FPGA 要么存儲(chǔ)嵌入在 FPGA 結(jié)構(gòu)中的配置內(nèi)存(結(jié)構(gòu)嵌入式閃存 FPGA),要么使用基于 SRAM 的結(jié)構(gòu),但將閃存塊放在片上(閃存在側(cè)面 FPGA 上)。
對(duì)于基于 SRAM 的 FPGA,通常使用 NOR SPI 閃存,因?yàn)樗牡囊_少,有多個(gè)供應(yīng)商提供相同的引腳分配,并且密度高達(dá) 1 Gb。當(dāng)前的 NOR SPI 閃存設(shè)備具有 32 位地址選項(xiàng),允許在不更改命令和控制協(xié)議的情況下增長(zhǎng)到 4GB 設(shè)備。當(dāng)此 SPI 閃存處于編程或擦除模式(電荷泵處于活動(dòng)狀態(tài))并且電源消失時(shí)會(huì)發(fā)生什么情況?電荷在哪里消散?是否有電路可以檢測(cè)這些閃存中的電源故障并將電荷安全地分流到地面?通常發(fā)生的情況是被寫(xiě)入的頁(yè)面將遇到數(shù)據(jù)損壞。
圖 2. 三種 FPGA 配置選項(xiàng)圖:基于 SRAM 的外部配置閃存、側(cè)面閃存和嵌入式閃存
對(duì)于側(cè)面閃存 FPGA,寬片上數(shù)據(jù)總線用于在加電時(shí)加載基于 SRAM 的配置存儲(chǔ)器。通常配置比使用外部閃存配置設(shè)備的基于 SRAM 的 FPGA 更快。然而,需要詢(xún)問(wèn)有關(guān)編程或擦除周期期間功率損耗的類(lèi)似問(wèn)題。費(fèi)用去哪兒了?閃存是否損壞?只有被寫(xiě)入的頁(yè)面損壞了嗎?還是整個(gè)閃存都處于危險(xiǎn)之中?FPGA 能否檢測(cè)到損壞的片上存儲(chǔ)器,或者損壞的數(shù)據(jù)是否會(huì)在上電過(guò)程中加載到配置存儲(chǔ)器中?
不僅閃存損壞是個(gè)問(wèn)題,如何保護(hù)遠(yuǎn)程數(shù)據(jù)也至關(guān)重要。當(dāng)終用戶可以訪問(wèn)嵌入式產(chǎn)品時(shí),它就有可能被篡改。為防止不必要的攻擊,必須同時(shí)采用軟件和硬件安全措施。僅加密遠(yuǎn)程配置數(shù)據(jù)文件是不夠的。盡管此軟件加密安全性有所幫助,但要解密數(shù)據(jù)的硬件 (FPGA) 也必須內(nèi)置安全保護(hù)。當(dāng)用戶可以訪問(wèn)嵌入式設(shè)備時(shí),可以輕松提取加密數(shù)據(jù)文件的密鑰。這是通過(guò)使用廉價(jià)的電磁探頭和實(shí)施差分功率分析 (DPA) 來(lái)完成的。有許多使用此技術(shù)提取的 FPGA 安全密鑰示例。如果 FPGA 沒(méi)有內(nèi)置 DPA 對(duì)策,那么任何遠(yuǎn)程更新都可能成為安全漏洞。當(dāng)用戶可以訪問(wèn)嵌入式產(chǎn)品時(shí),沒(méi)有 DPA 對(duì)策就等同于沒(méi)有安全性。
對(duì)于閃存嵌入式 FPGA,配置存儲(chǔ)器存儲(chǔ)在芯片上并緊密集成在 FPGA 結(jié)構(gòu)中。例如,在 Microsemi SmartFusion2 和 IGLOO2 閃存 FPGA 上,編程可以通過(guò) USB、PCIe 或 JTAG 等外部通信端口進(jìn)行,整個(gè)編程過(guò)程由片上專(zhuān)用編程接口管理。此外,SmartFusion2 和 IGLOO2 FPGA 上還提供一種稱(chēng)為在應(yīng)用程序編程 (IAP) 的編程工具,即使在編程過(guò)程中出現(xiàn)斷電時(shí),它也能提供所需的可靠、安全和可靠的編程工具。現(xiàn)在讓我們看看如何使用 IAP 設(shè)施來(lái)幫助實(shí)現(xiàn)當(dāng)今嵌入式系統(tǒng)所需的強(qiáng)大的遠(yuǎn)程更新功能。
在基于 FPGA 的嵌入式系統(tǒng)中實(shí)現(xiàn)可靠、安全和安全的遠(yuǎn)程更新 閃存
嵌入式 FPGA 可以提供更輕松地支持安全和強(qiáng)大的遠(yuǎn)程更新所需的關(guān)鍵功能。例如,SmartFusion2 具有實(shí)現(xiàn)關(guān)鍵橋接功能所需的所有主流 FPGA 功能以及所需的安全和 IAP 功能。如下圖 3 所示,低速接口可以使用 I2C 和 GPIO 進(jìn)行連接。高速主機(jī)接口 PCIe 作為專(zhuān)用端口實(shí)現(xiàn),不需要 FPGA 結(jié)構(gòu)。
圖 3. 應(yīng)用程序編程 (IAP) 中的 SmartFusion2 支持底盤(pán)控制平面橋中安全、可靠的遠(yuǎn)程更新
片上處理器可以使用高速內(nèi)存子系統(tǒng) (HSMS) 訪問(wèn)用于代碼存儲(chǔ)的大型內(nèi)部閃存、用于數(shù)據(jù)緩沖的大型內(nèi)部 SRAM 以及專(zhuān)用 DDR 控制器,以便在需要時(shí)訪問(wèn)額外的外部存儲(chǔ)器。專(zhuān)用系統(tǒng)控制器提供編程期間使用的安全功能和遠(yuǎn)程更新期間使用的 IAP 功能。下面的圖 4 顯示了 SmartFusion2 FPGA 上可用的關(guān)鍵功能的更詳細(xì)視圖。
單擊以獲取更大的圖像
圖 4. Microsemi SmartFusion2 SoC FPGA 具有主流特性以及強(qiáng)大的安全性和遠(yuǎn)程更新功能
使用在應(yīng)用程序編程實(shí)現(xiàn)安全、可靠和可靠的更新
SmartFusion2 和 IGLOO2 提供的在應(yīng)用程序編程 (IAP) 工具提供了一種安全可靠地遠(yuǎn)程更新配置比特流的方法。IAP 從 FPGA 內(nèi)的專(zhuān)用系統(tǒng)控制器執(zhí)行,因此它不需要使用任何 FPGA 架構(gòu)或其他用戶可配置邏輯。IAP 功能是兩步過(guò)程,使用外部 SPI 閃存設(shè)備。在步中,外部 SPI 閃存設(shè)備使用任何可用接口(PCIe、USB、JTAG 甚至以太網(wǎng))使用所需的比特流進(jìn)行編程。用于對(duì) SmartFusion2 設(shè)備進(jìn)行編程的所有比特流都經(jīng)過(guò)加密,以確保它們不受篡改,因此該比特流也將采用加密形式。
在下一步中,系統(tǒng)控制器通過(guò)系統(tǒng)服務(wù)調(diào)用執(zhí)行 IAP 服務(wù)。用戶提供一個(gè)指向系統(tǒng)控制器的指針,其中包含外部 SPI 閃存中比特流位置的起始地址。IAP 系統(tǒng)服務(wù)調(diào)用也為用戶提供了三個(gè)選項(xiàng):Authenticate、Program 或 Verify。身份驗(yàn)證通常在對(duì) FPGA 配置存儲(chǔ)器進(jìn)行編程之前執(zhí)行,以驗(yàn)證 SPI 閃存中的比特流是否針對(duì)正在編程的設(shè)備正確構(gòu)建。在驗(yàn)證過(guò)程中,設(shè)備運(yùn)行正常。
包含新比特流的外部 SPI 閃存也可以包含一個(gè)額外的圖像,一個(gè)可以用作恢復(fù)目的的已知良好版本。用戶可以隨時(shí)指向恢復(fù)映像并使用它將 FPGA 配置為已知的良好狀態(tài)。恢復(fù)映像可以從天起“按原樣”保存,也可以根據(jù)需要更新以修復(fù)關(guān)鍵錯(cuò)誤。
在 IAP 功能期間,程序恢復(fù)選項(xiàng)可用。如果在編程期間發(fā)生電源故障,則啟用編程恢復(fù)時(shí),系統(tǒng)控制器將禁用用于以受控方式對(duì) FPGA 進(jìn)行編程的內(nèi)部電荷泵。在下一個(gè)后續(xù)上電周期中,在啟用 FPGA 架構(gòu)之前,系統(tǒng)控制器將檢測(cè)到器件編程操作已被中斷,并將從位于外部 SPI 閃存中的比特流啟動(dòng)編程周期。用戶可以選擇從已知的良好映像或剛剛推送到 SPI 閃存的遠(yuǎn)程更新映像進(jìn)行更新。當(dāng)外部比特流加載到 SmartFusion2 FPGA 時(shí),它會(huì)使用內(nèi)置的 DPA 對(duì)抗邏輯。這確保沒(méi)有電磁探測(cè)器可以破譯加密密鑰,從而產(chǎn)生可信的、
程序恢復(fù)與安全加密的比特流和比特流驗(yàn)證相結(jié)合,即使在 FPGA 配置存儲(chǔ)器編程期間斷電,也能提供當(dāng)今連接的嵌入式系統(tǒng)所需的可靠、安全和可靠的遠(yuǎn)程編程更新工具。
Ted Marena 是 Microsemi 的 FPGA/SOC 營(yíng)銷(xiāo)總監(jiān)。他在 FPGA 領(lǐng)域擁有超過(guò) 20 年的經(jīng)驗(yàn)。此前,Marena 曾在業(yè)務(wù)開(kāi)發(fā)、產(chǎn)品和戰(zhàn)略營(yíng)銷(xiāo)方面擔(dān)任過(guò)職務(wù)。2014 年 2 月,他在 Lattice Semiconductor 工作時(shí)被授予年度創(chuàng)新者獎(jiǎng)。Marena 為垂直市場(chǎng)定義、創(chuàng)建和執(zhí)行獨(dú)特的營(yíng)銷(xiāo)平臺(tái)解決方案,包括消費(fèi)、無(wú)線小型基站、工業(yè)、相機(jī)、顯示器和汽車(chē)應(yīng)用。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.udpf.com.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類(lèi)作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 深入解析嵌入式 OPENAMP 框架:開(kāi)啟異核通信新時(shí)代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識(shí)2025/7/14 16:59:04
- 獨(dú)立 ADC 優(yōu)勢(shì)大揭秘:為何不可替代?2025/7/7 16:21:04
- 深入剖析:嵌入式中 RS485、RS422 和 RS232 的特點(diǎn)差異2025/7/5 15:07:54
- 揭秘嵌入式 MCU:浮點(diǎn)數(shù)據(jù)處理難點(diǎn)及應(yīng)對(duì)策略2025/6/20 15:19:07
- 編碼器的工作原理及作用1
- 超強(qiáng)整理!PCB設(shè)計(jì)之電流與線寬的關(guān)系2
- 三星(SAMSUNG)貼片電容規(guī)格對(duì)照表3
- 電腦藍(lán)屏代碼大全4
- 國(guó)標(biāo)委發(fā)布《電動(dòng)汽車(chē)安全要求第3部分:人員觸電防護(hù)》第1號(hào)修改單5
- 通俗易懂談上拉電阻與下拉電阻6
- 繼電器的工作原理以及驅(qū)動(dòng)電路7
- 電容單位8
- 跟我學(xué)51單片機(jī)(三):?jiǎn)纹瑱C(jī)串口通信實(shí)例9
- 一種三極管開(kāi)關(guān)電路設(shè)計(jì)10