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