用Spartan-3A和Spartan-3AN平臺實現(xiàn)低成本安全解決方案
——
三大安金威脅
電子設(shè)計中最常見的侵權(quán)行為就是反向工程。當盜版者以在公開市場低價銷售為目的而企圖重新設(shè)計或制作某產(chǎn)品時,這種行為就會發(fā)生。通過反向工程,盜版者能夠非常迅速地完成設(shè)計,由于無需研發(fā)經(jīng)費,因此成本可以很低。
目前,許多公司采取了外包生產(chǎn)的方式,因而面臨著兩種新侵權(quán)行為的威脅,即超量生產(chǎn)和克隆。在超量生產(chǎn)中,承包制造商只需生產(chǎn)出多于OEM(原始設(shè)備制造商)訂貨量的產(chǎn)品,這些超量生產(chǎn)的產(chǎn)品會在未經(jīng)OEM授權(quán)的情況下售出。
克隆是指盜版者以相同或不同的品牌復制設(shè)計、IP或產(chǎn)品。同樣,克隆者不必花費任何研發(fā)成本。而且,超量生產(chǎn)和克隆的產(chǎn)品都能快速上市。
還未得到重視的是與這類侵權(quán)行為有關(guān)的無形資產(chǎn)流失。無論產(chǎn)品遭到反向工程、超量生產(chǎn)還是克隆,都意味著OEM銷售額的重大損失。除了損失銷售額,還會發(fā)生以退貨量形式表現(xiàn)出來的質(zhì)量成本,可能會影響品牌形象。并且,隨著RMA(退貨授權(quán)書)數(shù)量增多,OEM需要提供技術(shù)支持以確定癥結(jié)所在并解決最終客戶的問題,又進一步增加了成本。最終,產(chǎn)品可能變得真?zhèn)坞y辨。這些都是無法補償?shù)挠谰眯該p失。
使用Device DNA實現(xiàn)安全功能
傳統(tǒng)的FPGA使用比特流加密技術(shù)來防范反向工程和克隆。雖然以往的效果不錯,但現(xiàn)在,比特流加密已無法保護設(shè)計免遭超量生產(chǎn)的侵權(quán)。
為了保護設(shè)計不被以上三種行為所盜版,Xilinx提供了幾種解決方案,并在最近推出了帶有DeviceDNA的Spartan-3A和Spartan-3AN器件系列,可幫助防范克隆者、超量生產(chǎn)者和反向工程者。這種DeviceDNA設(shè)計級安全功能可以保護設(shè)計、IP和嵌入式代碼。DeviceDNA是一種特殊的57位ID,對于每個器件都是獨一無二的。這種57位ID是在Xilinx工廠中固化或設(shè)定的,因而不能更改。Spartan-3A和Spartan-3AN兩種FPGA在每個出廠的器件中都包含獨一無二的ID。
然后,該ID會與設(shè)計師的個性化算法結(jié)合起來儲存在FPGA上。該算法基本上是一個算術(shù)方程式,它規(guī)定如何提取DeviceDNA,并創(chuàng)建一個結(jié)果。此結(jié)果可以存儲在任何地方,如外部存儲器或Flash中。該算法是安全性的秘密所在,因為只有設(shè)計師才知道它。盡管它存儲在FPGA上,但在旁觀者看來,這只是一部分比特流。
Spartan-3A的安金性
對于Spartan-3A器件,該算法將使用DeviceDNA的結(jié)果與器件配置后存儲在Flash中的結(jié)果相比較。如果二者匹配,則認可該設(shè)計。如果二者不匹配,該設(shè)計會被設(shè)置成多種行為方式,從輕微故障到嚴重功能障礙。
為了便于理解,可以把DeviaDNA比作ATM銀行卡,把個性算法比作ATM卡的密碼。其潛在的弱點是,可能出現(xiàn)有人同時得到了ATM卡和密碼的情況。這個性化算法一旦為人知曉便很容易被克隆,這正是設(shè)計本身集成授權(quán)算法的原因。該算法置于可編程邏輯內(nèi)部最隱秘的位置,可以選擇數(shù)百萬種配置方案。
Spartan-3AN的安全性
對于Spartan-3AN平臺(即新型非易失性FPGA平臺),此過程大同小異,只是有幾個增強項。第一個安全增強項是,比特流隱藏在FPGA內(nèi)部。這樣更難于被人窺見。
Spartan-3AN FPGA的第二個安全增強項是兩個特有的序列號,即DeviceDNA和工廠預設(shè)FlashID,存儲在Flash中。這兩個特有的ID提供長達70個字節(jié)的序列號,可產(chǎn)生大量可能的算法,從而延長了破解認證算法所需的時間。于是,設(shè)計既要受FPGA約束,又要受Flash ID的約束。
第三項改進是在存儲的授權(quán)代碼中。在Spartan-3AN平臺上,可以將授權(quán)代碼存儲在片上一個叫做flash用戶字段的專用一次性可編程64字節(jié)寄存器中。這樣可使整個安全系統(tǒng)自成一體。由于不需要外部接口或存儲器,整體安全性得以提高,使反向工程更加困難。
該認證算法由用戶定義,這使用戶能在設(shè)計預算內(nèi)實現(xiàn)恰當?shù)陌踩燃?。該認證算法也是安全系統(tǒng)中的主要秘密。認證過程中必須有不為人知的秘密,才能保護安全系統(tǒng)不被破解。因為算法是未知的,所以它是設(shè)計級安全性的關(guān)鍵。算法是在FPGA架構(gòu)中實現(xiàn)的,因此便成為FPGA中數(shù)百萬配置位當中的少數(shù)幾個配置位。除非知道這些位如何組合在一起,或者知道是哪種算法,否則這看起來僅僅是一堆數(shù)字。應用Spartan-3AN器件的一種可能的流程如圖1所示。
Spartan-3AN設(shè)計級安全功能是完全自成一體的安全解決方案,如圖2所示。Flash中既包含F(xiàn)PGA配置比特流,也包含預生成的授權(quán)代碼。此代碼由可信/安全制造商或注冊流程存儲在一次性可編程Flash用戶字段中。
通電后,F(xiàn)PGA進行正常配置。一旦配置完成,F(xiàn)PGA應用程序便包括了批準已授權(quán)設(shè)計在相關(guān)Spartan-3AN FPGA上運行的電路。認證算法將讀取DeviceDNA和工廠預設(shè)Flash ID,然后生成一個主動授權(quán)代碼,并將此授權(quán)代碼與Flash用戶字段中存儲的預生成授權(quán)代碼進行比較。如果兩個代碼相等,則器件通過認證。否則,器件屬非法而無法獲得授權(quán)。
拒絕訪問
失敗認證的處理是DeviceDNA設(shè)計級方案的又一強項。認證可以完全集成到設(shè)計中。這樣,未經(jīng)授權(quán)的設(shè)計可以引起多種反應,例如:
評論