如何為基于FPGA的嵌入式系統(tǒng)進(jìn)行安全升級(jí)?
圖4 美高森美SmartFusion2 SoC FPGA擁有主流特點(diǎn)及可靠的安全和遠(yuǎn)程更新能力
利用“在應(yīng)用中編程”來實(shí)現(xiàn)安全可靠的升級(jí)
SmartFusion2和IGLOO2提供的IAP機(jī)制是一種安全可靠地遠(yuǎn)程更新配置比特流的方法。IAP在FPGA內(nèi)由專用系統(tǒng)控制器執(zhí)行,因此并不需要使用任何FPGA結(jié)構(gòu)或其它用戶可配置邏輯。IAP功能采用一個(gè)外部SPI閃存器件,是一個(gè)兩步過程。在第一步中,外部SPI閃存器件通過任何可用的接口,比如PCIe、USB、JTAG甚至以太網(wǎng),用需要的比特流編程。用于SmartFusion2器件編程的所有比特流都進(jìn)行了加密,以確保它們不會(huì)被篡改。
在第二步中,系統(tǒng)控制器通過系統(tǒng)服務(wù)請(qǐng)求執(zhí)行IAP服務(wù)。用戶向系統(tǒng)控制器提供指針,指向外部SPI閃存內(nèi)比特流位置的初始地址。IAP系統(tǒng)服務(wù)請(qǐng)求也有三個(gè)用戶選項(xiàng):認(rèn)證、編程或驗(yàn)證。認(rèn)證通常是在FPGA配置存儲(chǔ)器編程之前執(zhí)行的,以驗(yàn)證SPI閃存內(nèi)的比特流適用于正在編程的器件。在認(rèn)證期間,器件正常運(yùn)行。
包含新比特流的外部SPI閃存還包含一個(gè)額外的鏡像,即用作恢復(fù)目的的一個(gè)好版本。用戶可以在任何時(shí)間點(diǎn)使用恢復(fù)鏡像將FPGA配置為良好狀態(tài)。恢復(fù)鏡像可以 “原樣”保存,也可在需要時(shí)進(jìn)行更新以便用于關(guān)鍵漏洞的修復(fù)。
IAP功能實(shí)施期間可以使用程序恢復(fù)功能。若編程期間斷電,啟動(dòng)編程恢復(fù),系統(tǒng)控制器會(huì)以可控的方式將編程FPGA的內(nèi)部電荷泵禁動(dòng)。在接下來的供電周期中,在啟動(dòng)FPGA結(jié)構(gòu)之前,系統(tǒng)控制器將檢測(cè)到器件編程操作已經(jīng)被中斷,它將從外部SPI閃存中的比特流啟動(dòng)編程周期。用戶可選擇從好的鏡像進(jìn)行更新或從剛剛推送到SPI閃存的遠(yuǎn)程更新鏡像進(jìn)行更新。當(dāng)外部比特流被載入到SmartFusion2 FPGA內(nèi)時(shí),它采用內(nèi)置的DPA對(duì)抗邏輯,以確保沒有電磁探針能夠?qū)⒓用艹捉饷?,從而?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/嵌入式">嵌入式系統(tǒng)提供可信任的安全器件。
與安全加密比特流和比特流驗(yàn)證一起使用,程序恢復(fù)可提供目前連接的嵌入式系統(tǒng)需要的安全可靠的遠(yuǎn)程編程更新機(jī)制,即使FPGA配置存儲(chǔ)器在編程的過程中斷電也一樣。
評(píng)論