使用Spartan FPGA實現(xiàn)靈活的低成本安全解決方案
1.Spartan-3AN FPGA中的Flash存儲器和隱藏比特流
Spartan-3AN器件帶有可以用于存儲配置數(shù)據(jù)的片上Flash存儲器,如果在設(shè)計中Flash存儲器沒有與外部相連,則其無法從I/0引腳讀取數(shù)據(jù)。由于∏ash存儲器在FPGA內(nèi)部,因此配置過程中Spartan-3AN器件比特流處于隱藏狀態(tài)。這一配置成為設(shè)計安全的起點,因為無法直接從Flash存儲器中復(fù)制設(shè)計。
2.配置安全
保護Spartan-3器件不加載未知配置的最簡單方法是硬連接模式引腳,只允許Fash存儲器自動配置和連接數(shù)據(jù)引腳。此外,任何人想要從BGA或CS封裝中直接接入引腳都極其困難,因為所有電路連接都在封裝之下。如果引腳是硬連接,為了加載不同的配置則需要直接攻擊PCB。
3.比特流發(fā)生器的安全級別
在設(shè)計的測試利調(diào)試階段,設(shè)計者可以決定將內(nèi)部配置訪問端口(ICAP)或ChipScope TM Pro分析器核留在設(shè)計以來方便設(shè)計投產(chǎn)后可能進行的維護或隨機檢查。一些軟件工具(如ChipScope Pro分析器)需要這些宏命令來讀取內(nèi)部邏輯的狀態(tài),雖然這為設(shè)計者帶來了方便,但會留下安全漏洞。
比特流發(fā)生器基于名為“NOD”的物理實現(xiàn)文件的內(nèi)容創(chuàng)建配置.bit文件,.bit文件規(guī)定已編程FPGA的行為。比特流發(fā)生器包括許多選項,其中一個選項是安全級別設(shè)置。比特流發(fā)生器有4個安全級別設(shè)置,第1個是默認值,其余3個選項則提供額外的安全保護。讀回命令操作可以被完全禁用,或者僅限于有限訪問。比特流發(fā)生器安全級別設(shè)置如表1所示。
表1 比特流發(fā)生器的安全級別設(shè)置
4. Device DNA安全
Xilinx在Spartan-3A/3AN/3A DSP平臺上提供了Device DNA安全,用于保護設(shè)計、IP和嵌入式代碼等。Device DNA是一個51位ID,每個Spartan-3A/3AN/3ADSP FPGA的DeviceDNA都是獨一無二的,這個ID可以用于將設(shè)計與特定FPGA關(guān)聯(lián)起來。設(shè)計者的個性化算法也存儲在FPGA中,這是一種算法方程式,定義了如何獲得獨一無二的Device DNA并生成結(jié)果。利用設(shè)計者的個性化算法將這個D結(jié)合起來,然后將結(jié)果存儲在設(shè)計者選擇的外部存儲器或內(nèi)部Flash存儲器(僅限于Spartan-3AN FPGA器件)中。該算法是機密的,因為只有設(shè)計者知道。