解讀FPGA設計的安全性
與開(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í)間)和遠程更新的需求。
本文引用地址:http://dyxdggzs.com/article/192091.htm但是,把器件生產(chǎn)、現場(chǎng)更新和固件遠程重構的工作外包可能會(huì )導致FPGA被復制、克隆或盜版。這對某些企業(yè)是個(gè)嚴重的問(wèn)題,因為有些算法對企業(yè)保持競爭優(yōu)勢是必不可少的,而外包可能使這些算法被別人利用。因此,考慮FPGA設計的安全性是一件非常重要的事。
FPGA有兩種類(lèi)型 :基于SRAM、需要用外部引導器件配置的易失FPGA,以及將配置保存在內存中因而不需要外部引導器件的非易失FPGA?;?SRAM的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è)低成本SRAM FPGA?!澳嫦蚬こ獭毙枰斫釬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不同 ,SRAM FPGA和Flash FPGA是可重復編程的,它們允許用戶(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展示了一個(gè)FPGA與微處理器相連的系統 。微處理器通過(guò)一個(gè)外部PHY和一個(gè)集成在FPGA內的MAC 與以太網(wǎng)連接。與競爭者的產(chǎn)品不同,這個(gè)微處理器中還包含用戶(hù)邏輯。 FPGA通過(guò)一個(gè)Flash來(lái)配置。Flash和RAM中包含有微處理器的程序和系統的數據。如果系統需要更新,就通過(guò)以太網(wǎng)來(lái)發(fā)送數據。為了保護設計, FPGA數據和位流都經(jīng)過(guò)了加密。但是,發(fā)送到微處理器的數據和指令未加擾,因此盜版者能夠查看此數據并加以復制。一種可能的解決辦法是在FPGA內實(shí)現軟微處理器,它可以訪(fǎng)問(wèn)FPGA的內部存儲器組,而從外部卻無(wú)法看到存儲器組。這些存儲器組可以用來(lái)存儲重要的算法和數據。
圖1 FPGA與微處理器相連的系統
圖2展示了同一個(gè)設計,但處理器集成在FPGA之中。圖2中采用的軟微處理器是LatticeMico32 。設計師構建了解擾器,因此加擾是機密的。使用解擾器允許加密的指令存儲在外部存儲器。為了加密位流,萊迪思為幾款FPGA提供了128位AES密鑰。
圖2 處理器集成在FPGA之中
評論