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