安全已成為如今的熱門話題。對于電子設(shè)計工程師來說,最大的威脅莫過于市場上出現(xiàn)由于設(shè)計盜版而引起的大量假冒產(chǎn)品。根據(jù)反盜版聯(lián)盟(Ant i -Counterfeiting Coalition)的統(tǒng)計,2003 年,全美國涉及盜版的交易額達2 8 7 0 億美元,占全球盜版產(chǎn)品年銷售總量(4560 億美元)的63%。本文將介紹能夠保護低成本FPGA 設(shè)計的安全措施。
三大安全威脅
電子設(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)的情況下售出。
克隆是指盜版者以相同或不同的品牌復(fù)制設(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)部。這樣更難于被人窺見。
S p a r t a n -3AN FPGA 的第二個安全增強項是兩個特有的序列號,即DeviceDNA和工廠預(yù)設(shè)Flash ID,存儲在Flash 中。這兩個特有的ID 提供長達70個字節(jié)的序列號,可產(chǎn)生大量可能的算法,從而延長了破解認證算法所需的時間。于是,設(shè)計既要受FPGA 約束,又要受Flash ID 的約束。
第三項改進是在存儲的授權(quán)代碼中。在Spartan-3AN 平臺上,可以將授權(quán)代碼存儲在片上一個叫做Flash 用戶字段的專用一次性可編程64字節(jié)寄存器中。這樣可使整個安全系統(tǒng)自成一體。由于不需要外部接口或存儲器,整體安全性得以提高,使反向工程更加困難。
該認證算法由用戶定義,這使用戶能在設(shè)計預(yù)算內(nèi)實現(xiàn)恰當?shù)陌踩燃?。該認證算法也是安全系統(tǒng)中的主要秘密。認證過程中必須有不為人知的秘密,才能保護安全系統(tǒng)不被破解。因為算法是未知的,所以它是設(shè)計級安全性的關(guān)鍵。算法是在FPGA 架構(gòu)中實現(xiàn)的,因此便成為FPGA中數(shù)百萬配置位當中的少數(shù)幾個配置位。除非知道這些位如何組合在一起,或者知道是哪種算法,否則這看起來僅僅是一堆數(shù)字。應(yīng)用Spartan-3AN 器件的一種可能的流程如圖1 所示。
圖1 可用Spartan-3AN FPGA實現(xiàn)的安全設(shè)置
Spartan-3AN 設(shè)計級安全功能是完全自成一體的安全解決方案,如圖2 所示。Flash 中既包含F(xiàn)PGA 配置比特流,也包含預(yù)生成的授權(quán)代碼。此代碼由可信/安全制造商或注冊流程存儲在一次性可編程Flash 用戶字段中。
圖2 安全Spartan-3AN器件
通電后,F(xiàn)PGA 進行正常配置。一旦配置完成,F(xiàn)PGA 應(yīng)用程序便包括了批準已授權(quán)設(shè)計在相關(guān)Spartan-3AN FPGA 上運行的電路。認證算法將讀取DeviceDNA和工廠預(yù)設(shè)Flash ID,然后生成一個主動授權(quán)代碼,并將此授權(quán)代碼與Flash 用戶字段中存儲的預(yù)生成授權(quán)代碼進行比較。如果兩個代碼相等,則器件通過認證。否則,器件屬非法而無法獲得授權(quán)。
拒絕訪問
失敗認證的處理是DeviceDNA 設(shè)計級方案的又一強項。認證可以完全集成到設(shè)計中。這樣
,未經(jīng)授權(quán)的設(shè)計可以引起多種反應(yīng),例如:
- 無功能-該設(shè)計完全停止工作。
- 有限功能-主電路或關(guān)鍵電路被禁用或旁路。
- 定時炸彈-僅在限期內(nèi)提供全部功能。
- 主動防御-系統(tǒng)監(jiān)測各項活動并抵御攻擊。
- 永久性自毀-刪除所有Flash 內(nèi)容,并且將Flash 永遠鎖定在全零狀態(tài)。
本文所述的設(shè)計級安全功能是Spartan-3A 和Spartan-3AN 平臺中可實現(xiàn)的基本安全級別。
結(jié)語
在開始進行下一代電路設(shè)計時,安全是一個重要的問題,Spartan-3A 和Spartan-3AN 平臺中的安全措施為防范反向工程、超量生產(chǎn)和克隆提供了多種方法。