與開(kāi)發(fā)成本很高的ASIC相比,FPGA可重復編程的性能正受到系統設計者的青睞。此外, FPGA的性能和功能也越來(lái)越強大,包括32位軟處理器、SERDES、DSP塊和高性能的接口,F在的低成本FPGA甚至可以滿(mǎn)足大批量的應用。設計人員采用FPGA能夠快速開(kāi)發(fā)產(chǎn)品,以應對產(chǎn)品快速上市(市場(chǎng)要求縮短產(chǎn)品的開(kāi)發(fā)時(shí)間)和遠程更新的需求。 但是,把器件生產(chǎn)、現場(chǎng)更新和固件遠程重構的工作外包可能會(huì )導致FPGA被復制、克隆或盜版。這對某些企業(yè)是個(gè)嚴重的問(wèn)題,因為有些算法對企業(yè)保持競爭優(yōu)勢是必不可少的,而外包可能使這些算法被別人利用。因此,考慮FPGA設計的安全性是一件非常重要的事。 FPGA有兩種類(lèi)型 :基于SRAM、需要用外部引導器件配置的易失FPGA,以及將配置保存在內存中因而不需要外部引導器件的非易失FPGA;赟RAM的FPGA是易失器件。如果切斷電源,配置即被刪除,必須對器件進(jìn)行重新配置,然后器件才能工作。這類(lèi)器件可以用處理器或使用SPI或并行閃存通過(guò)JTAG端口編程。就安全性而言,它們是很脆弱的。一旦系統上電,盜版者就能輕而易舉地獲取FPGA的位流。Flash和反熔絲FPGA是非易失性的器件,它們上電后即可編程,無(wú)需使用任何外部存儲器。這些非易失器件擁有最高級別的安全性。但是,反熔絲FPGA受到兩個(gè)方面的制約: 1 )它們不能再次編程。2 )它們的性能和內存容量有限。而Flash FPGA和SRAM FPGA是可以重復編程的。 盜版行為分為幾種類(lèi)型:“克隆”復制系統元件的行為,甚至不必知道內部的邏輯。通過(guò)攔截FPGA的位流和復制配置,可以輕松地克隆一個(gè)低成本SRAMFPGA!澳嫦蚬こ獭毙枰斫釬PGA的邏輯功能,以便進(jìn)行修改以滿(mǎn)足盜版者的需要。盜版者可以分析無(wú)保護的位流以復制原先的設計,或解剖器件分析其內容。還有一個(gè)被廣泛使用的盜版手段是“生產(chǎn)超過(guò)客戶(hù)訂購量的系統”,然后向市場(chǎng)出售多余的系統,而專(zhuān)利持有者卻無(wú)法從中取得收益,沒(méi)有任何方法可以阻止不擇手段的分包商這樣做。最后一種盜版方法是“盜竊服務(wù)”,盜版者通過(guò)破解系統的安全設置來(lái)獲得特定的服務(wù),如收看衛星電視節目。 打擊盜版可以采用多種安全措施,最簡(jiǎn)單的方法的是使用一個(gè)保密位,防止FPGA的配置數據被截獲。有了這個(gè)保密位,盜版者如果試圖讀取配置數據,讀出的數據將全部為零。所有的FPGA都有這種類(lèi)型的保護。然而,如果引導文件位于器件的外部,相對就比較容易復制配置,標準的SRAM FPGA就是這種情況。如果配置數據是在器件內部,如非易失FPGA ,保密位就會(huì )有很好的保密效果。 與反熔絲FPGA不同 ,SRAMFPGA和FlashFPGA是可重復編程的,它們允許用戶(hù)調整設計或賦予FPGA一個(gè)全新的功能。此外,現在甚至可以遠程修改FPGA配置文件,從而修改系統。雖然重構對某些應用來(lái)說(shuō)是個(gè)優(yōu)點(diǎn),但它也可能成為一個(gè)安全隱患,因為盜版者可能攔截并獲取新的碼流。不過(guò)這可以通過(guò)在傳輸時(shí)保護位流來(lái)解決。 雖然Flash FPGA比SRAM FPGA更安全 ,它們也有缺點(diǎn)。它們的密度和存儲容量有限,功能和I/O的速度也有限。 針對這些缺點(diǎn),萊迪思半導體公司已經(jīng)開(kāi)發(fā)出一種創(chuàng )新的技術(shù),它結合了以下兩種技術(shù)的優(yōu)點(diǎn): * 性能和存儲器容量較大的低成本SRAM * 可以?xún)炔看鎯χ貥嫈祿腇lash 萊迪思獨特的flexiFLASH技術(shù),將SRAM和Flash整合在同一個(gè)FPGA中,可以同時(shí)實(shí)現以下幾個(gè)方面的優(yōu)點(diǎn): * 位流配置 * 以最短的系統中斷時(shí)間進(jìn)行遠程重新配置 * 數據保護和器件加鎖 復雜系統中的設計安全性 工程師正面臨著(zhù)構建日益復雜的系統的挑戰。 圖1 FPGA與微處理器相連的系統 圖2 處理器集成在FPGA之中 圖3 用128位AES密鑰保護設計 現在密鑰應該已經(jīng)保存在一個(gè)可編程存儲區。編程是通過(guò)器件的JTAG端口進(jìn)行。應該注意到,用密鑰對位流加了密,現在只能通過(guò)加密的位流對FPGA進(jìn)行配置。用sysCONFIG接口或JTAG接口可以對萊迪思的FPGA進(jìn)行編程。該sysCONFIG接口可以讓用戶(hù)使用集中配置模式,或FlashSPI ,或以并行的方式使用并行配置模式重新輸入數據。符合IEEE 1149.1和IEEE1532標準的JTAG端口允許以突發(fā)位流(或快速編程)模式、或用1532模式對數據進(jìn)行編程。JTAG端口用來(lái)對器件中的AES128位密鑰編程。不需要用特別的模式來(lái)保存FPGA中的128位密鑰。 在萊迪思的FPGA中使用一個(gè)編碼位流可以防止器件的配置被重新讀取,但需要一些措施來(lái)確保配置能夠正確地運作。位流未加密時(shí),FPGA執行CRC操作。如果程序不正確,DONE信號保持在0,INITN變?yōu)? 。用戶(hù)仍然可以訪(fǎng)問(wèn)JTAG Usercode寄存器。對FPGA的位流譯碼時(shí),它存儲位流用戶(hù)碼,用來(lái)存放FPGA應用程序的版本號。 圖4 加密位流的數據路徑 萊迪思的經(jīng)濟型ECP2/MFPGA擁有位流加密功能,內置閃存的非易失LatticeXP2 FPGA也有此功能。LatticeXP2FPGA把SRAM映射合并入同一塊芯片,設計和含有位流配置的Flash映射都在此芯片上工作。當設計師重點(diǎn)關(guān)注電路板的面積和快速啟動(dòng)時(shí)間時(shí),這類(lèi)器件特別有用。 內置閃存的FPGA 非易失FPGA提供額外的Flash保護安全功能,可以防止內存因意外或未經(jīng)授權的操作被擦除或重新編程。Flash保護功能采用6?位密鑰。 對器件進(jìn)行刪除或重新編程時(shí), ispVM System會(huì )核查Flash是否被保護。如果是,就要求用戶(hù)輸入6?位密鑰,然后ispVM檢查這個(gè)密鑰是否與存儲在器件中的密鑰一致,如果一致就執行操作。但是,如果丟失了密鑰,器件就再也不能被擦除了。 這些安全性措施不僅保護了用戶(hù)電路板上的設計,而且也防止了試圖修改系統功能的盜版行為。這些功能還有助于遠程的系統更新。萊迪思FPGA提供這一功能,使用戶(hù)可以通過(guò)對FPGA重復編程來(lái)更新他們的系統,而不會(huì )中斷它與周?chē)穆?lián)系。此功能被稱(chēng)為T(mén)ransFR 。 圖5 用最短的中斷系統時(shí)間進(jìn)行遠程更新 TransFR是一種同時(shí)使用基本任務(wù)編程和邊界掃描單元的技術(shù);救蝿(wù)編程修改非易失存儲器的內容(內部的或外部的) ,以便使FPGA的SRAM部分繼續工作。萊迪思的FPGA擁有可以取樣和預加載的邊界掃描單元,可以在編程時(shí)控制FPGA的I/O。 圖6 執行TransFR的4個(gè)步驟 1,進(jìn)行基本任務(wù)編程。系統對FPGA的非易失性存儲器再編程,但不會(huì )中斷SRAM的功能。 2,可以鎖定I/O的狀態(tài),用戶(hù)可以保持或預先確定I/O的狀態(tài)。在整個(gè)重新配置過(guò)程中,I/O的值保持不變,以防止系統被關(guān)閉。 3, 接著(zhù)用JTAG命令把新的配置傳輸至非易失存儲器。一完成對SRAM就執行全局復位,以便使該器件處于一個(gè)已知的狀態(tài)。然后釋放I/O的狀態(tài),并再次鎖定PLL。 4,釋放輸出,內部邏輯停止對I/O的監測。 要使用TransFR,需要用到ispLEVER開(kāi)發(fā)工具和ispVM。 用戶(hù)通過(guò)使用128位AES密鑰加密文件和LatticeTransFR技術(shù)完成了更新過(guò)程,但仍有可能因為系統本身的弱點(diǎn)或違法行為引發(fā)系統故障。雖然FPGA的位流是加密的,但是非法操作或傳輸中的錯誤都可能損壞它,從而導致FPGA被阻塞,使系統無(wú)法正確地重啟。為了解決這個(gè)問(wèn)題,萊迪思推出了“雙引導 ”功能。 雙引導配置 在配置存儲器中存儲兩個(gè)編程文件。 圖7 雙引導配置 萊迪思擁有許多能幫助設計人員保障設計安全的產(chǎn)品。Lattice ECP2/MFPGA是一款擁有128位AES密鑰的高安全性器件。這些經(jīng)濟的器件提供了大存儲容量(高達5.3 Mbit)、高速I(mǎi)/O和SERDES。非易失性L(fǎng)atticeXP2FPGA是市場(chǎng)上一款很獨特的器件,它有著(zhù)極高的安全性。由于采用了FlexiFlash技術(shù),位流存儲在器件的Flash中,并由128位AES密鑰對它進(jìn)行保護。此外, TransFR更是保障了絕對安全的遠程系統更新。 設計的安全性應該是設計過(guò)程的一部分,而不是事后再去考慮。無(wú)論選擇了哪種技術(shù),最重要的是要防止設計被篡改,無(wú)論這個(gè)篡改行為是無(wú)意的還是非法的。 |