采用Device DNA和Flash存儲(chǔ)器ID保證安全
在非易失性FPGA-Spartan-3AN平臺(tái)中采用了與Spartan-3A器件幾乎相同的工藝,只是進(jìn)行了一些增強(qiáng)。第1種安全增強(qiáng)是比特流隱藏在FPGA內(nèi),使得監(jiān)控變得更加困難。
Spartan-3AN FPGA的第2種安全增強(qiáng)是兩個(gè)獨(dú)一無(wú)二的序列號(hào),即Device DNA和Fash存儲(chǔ)器內(nèi)的工廠Fash ID。這兩個(gè)獨(dú)一無(wú)二的ID序列號(hào)超過(guò)70個(gè)字節(jié),從而實(shí)現(xiàn)了更多的算法可能性,因此大大增加了破解安全算法所需的時(shí)間。該設(shè)計(jì)現(xiàn)在專(zhuān)門(mén)融合了FPGA和Flash ID。
擁有兩個(gè)獨(dú)一無(wú)二的ID就像需要兩張不同的ATM卡才能取錢(qián)一樣。如果想提取現(xiàn)金,必須持有兩張卡。如果其中一張卡丟失,則錢(qián)不會(huì)被取走且仍然是安全的。
第3種改進(jìn)在于存儲(chǔ)的校驗(yàn)碼,在Spartan-3AN平臺(tái)上,安全代碼可以存儲(chǔ)在安全寄存器的特殊一次性可編程64個(gè)字節(jié)的用戶(hù)定義字段中。該寄存器使安全系統(tǒng)保持獨(dú)立,而無(wú)需外部接口或存儲(chǔ)器。該特性增強(qiáng)了總體安全性,使產(chǎn)品的反向工程變得更加困難。
安全算法是用戶(hù)定義的,允許設(shè)計(jì)者以適當(dāng)?shù)南到y(tǒng)成本實(shí)現(xiàn)合適的安全級(jí)別。安全算法也是安全系統(tǒng)的首要機(jī)密,安全流程中的內(nèi)容必須是機(jī)密的,這樣才能保證系統(tǒng)不被破解。由于算法是未知的,因此它是設(shè)計(jì)級(jí)安全的關(guān)鍵所在。算法在FPGA架構(gòu)內(nèi)實(shí)現(xiàn),因此它只是FPGA內(nèi)數(shù)百萬(wàn)個(gè)配置位中的少數(shù)幾位。除非知道比特位是如何連在一起的,或者算法是如何操作的;否則對(duì)于旁觀者或克隆者來(lái)說(shuō),它只是一堆數(shù)字。
圖1所示為采用Spartan-3AN器件的一個(gè)可行流程。
圖1 Spartan-3AN的安全設(shè)置流程
圖2所示的Spartan-3AN設(shè)計(jì)級(jí)安全是一種完全獨(dú)立的安全解決方案,F(xiàn)lash既包含F(xiàn)PGA配置比特流,又包含以前生成的校驗(yàn)碼,該校驗(yàn)碼由可信賴(lài)/安全的制造商或注冊(cè)流程存儲(chǔ)在一次性可編程Flash存儲(chǔ)器用戶(hù)字段中。
圖2 Spartan-3AN的安全解決方案
在通電時(shí),F(xiàn)PGA正常配置。配置完成后,F(xiàn)PGA應(yīng)用包括驗(yàn)證是否批準(zhǔn)設(shè)計(jì)在相關(guān)的Spartan-3AN FPGA上操作的電路。安全算法讀取Device DNA和工廠Fash ID;反過(guò)來(lái),安全算法又會(huì)生成有效代碼,并將該有效代碼與以前生成的存儲(chǔ)在Flash用戶(hù)定義字段中的校驗(yàn)碼進(jìn)行比較。如果這兩個(gè)代碼相同,器件就被授權(quán);否則該器件就是非法的,并且不會(huì)被授權(quán)。
處理授權(quán)失敗是Device DNA設(shè)計(jì)級(jí)安全的另一個(gè)優(yōu)勢(shì),設(shè)計(jì)級(jí)安全的其他優(yōu)勢(shì)是其可以被完全整合到設(shè)計(jì)中。未授權(quán)設(shè)計(jì)可以有多種響應(yīng)模式,這與Spartan-3A平臺(tái)一樣。
Spartan-3AN平臺(tái)中的設(shè)計(jì)級(jí)安全提供了多種保護(hù)設(shè)計(jì)不被用于過(guò)度構(gòu)建、克隆和反向工程的方法,要了解利用3個(gè)系列的產(chǎn)品實(shí)現(xiàn)設(shè)計(jì)安全方面的更多信息,請(qǐng)參照《Spartan ̄3系列配置用戶(hù)指南》。
來(lái)源:ks991次