解讀FPGA設(shè)計(jì)的安全性
TransFR是一種同時(shí)使用基本任務(wù)編程和邊界掃描單元的技術(shù)?;救蝿?wù)編程修改非易失存儲(chǔ)器的內(nèi)容(內(nèi)部的或外部的) ,以便使FPGA的SRAM部分繼續(xù)工作。萊迪思的FPGA擁有可以取樣和預(yù)加載的邊界掃描單元,可以在編程時(shí)控制FPGA的I/O。
圖6 執(zhí)行TransFR的4個(gè)步驟
執(zhí)行TransFR的4個(gè)步驟:
1,進(jìn)行基本任務(wù)編程。系統(tǒng)對(duì)FPGA的非易失性存儲(chǔ)器再編程,但不會(huì)中斷SRAM的功能。
2,可以鎖定I/O的狀態(tài),用戶可以保持或預(yù)先確定I/O的狀態(tài)。在整個(gè)重新配置過(guò)程中,I/O的值保持不變,以防止系統(tǒng)被關(guān)閉。
3, 接著用JTAG命令把新的配置傳輸至非易失存儲(chǔ)器。一完成對(duì)SRAM就執(zhí)行全局復(fù)位,以便使該器件處于一個(gè)已知的狀態(tài)。然后釋放I/O的狀態(tài),并再次鎖定PLL。
4,釋放輸出,內(nèi)部邏輯停止對(duì)I/O的監(jiān)測(cè)。
要使用TransFR,需要用到ispLEVER開(kāi)發(fā)工具和ispVM。
用戶通過(guò)使用128位AES密鑰加密文件和Lattice TransFR技術(shù)完成了更新過(guò)程,但仍有可能因?yàn)橄到y(tǒng)本身的弱點(diǎn)或違法行為引發(fā)系統(tǒng)故障。雖然FPGA的位流是加密的,但是非法操作或傳輸中的錯(cuò)誤都可能損壞它,從而導(dǎo)致FPGA被阻塞,使系統(tǒng)無(wú)法正確地重啟。為了解決這個(gè)問(wèn)題,萊迪思推出了“雙引導(dǎo) ”功能。
雙引導(dǎo)配置
在配置存儲(chǔ)器中存儲(chǔ)兩個(gè)編程文件。
圖7 雙引導(dǎo)配置
激活PROGRAM引腳或啟動(dòng)JTAG刷新指令后,F(xiàn)PGA下載存儲(chǔ)在Sector 1的位流 。如果CRC出錯(cuò),F(xiàn)PGA自動(dòng)恢復(fù)到Sector 0配置。Lattice XP2非易失FPGA也有此功能。該Flash元件擁有主動(dòng)配置,還有一個(gè)用來(lái)存放安全( “golden” )配置的SPI Flash。
萊迪思擁有許多能幫助設(shè)計(jì)人員保障設(shè)計(jì)安全的產(chǎn)品。Lattice ECP2/M FPGA是一款擁有128位AES密鑰的高安全性器件。這些經(jīng)濟(jì)的器件提供了大存儲(chǔ)容量(高達(dá)5.3 Mbit)、高速I(mǎi)/O和SERDES 。非易失性LatticeXP2 FPGA是市場(chǎng)上一款很獨(dú)特的器件,它有著極高的安全性。由于采用了FlexiFlash技術(shù),位流存儲(chǔ)在器件的Flash中, 并由128位AES密鑰對(duì)它進(jìn)行保護(hù)。此外, TransFR更是保障了絕對(duì)安全的遠(yuǎn)程系統(tǒng)更新。
設(shè)計(jì)的安全性應(yīng)該是設(shè)計(jì)過(guò)程的一部分,而不是事后再去考慮。無(wú)論選擇了哪種技術(shù),最重要的是要防止設(shè)計(jì)被篡改,無(wú)論這個(gè)篡改行為是無(wú)意的還是非法的。
評(píng)論