基于FPGA的身份識(shí)別及防拷貝機(jī)制
摘要:本文描述了如何利用安全存儲(chǔ)器來完成身份識(shí)別功能,以實(shí)現(xiàn)對FPGA設(shè)計(jì)的保護(hù)。在完成身份識(shí)別特性的同時(shí),還可實(shí)現(xiàn)軟功能管理和電路板識(shí)別功能。本文所涉及的FPGA均來自Xilinx, Inc.。
動(dòng)機(jī)
開發(fā)電子產(chǎn)品,包括嵌入式FPGA的配置代碼,其成本是相當(dāng)高的。因此應(yīng)當(dāng)防止未經(jīng)授權(quán)的機(jī)構(gòu)對這些設(shè)計(jì)和配置進(jìn)行拷貝,以保護(hù)設(shè)計(jì)者的知識(shí)產(chǎn)權(quán)。有很多種方法能實(shí)現(xiàn)這樣的保護(hù)功能。如在Xilinx Virtex-II®和Virtex-4®這類的高端FPGA中,支持對配置數(shù)據(jù)流的加密操作。這樣僅當(dāng)FPGA中含有相同的密鑰時(shí),這些數(shù)據(jù)流才可以工作。但是這種加密的方法對更為廣泛的、對成本很敏感的應(yīng)用場合來說不甚合適。因此,這里利用另一種可行的身份識(shí)別法來防止意外拷貝。這種方法對所有FPGA家族都適用,包括低端的Xilinx Spartan-3®系列FPGA。
前提
在身份識(shí)別的概念中,要求FPGA的設(shè)計(jì)者實(shí)現(xiàn)與一個(gè)安全存儲(chǔ)器通訊的功能以進(jìn)行認(rèn)證工作。圖1是實(shí)現(xiàn)該設(shè)計(jì)的一個(gè)簡化原理圖。
圖1. Dallas Semiconductor的1-Wire存儲(chǔ)器件為FPGA提供安全控制和保護(hù)的簡化框圖
安全存儲(chǔ)芯片需滿足下列要求:
包含用于芯片內(nèi)部操作的密鑰,該密鑰對外界不可見。
包含一個(gè)唯一的不可改變的識(shí)別號(hào)??捎迷撟R(shí)別號(hào)來計(jì)算一個(gè)與設(shè)備綁定的密鑰。
能夠進(jìn)行包含密鑰、隨機(jī)數(shù)(用做質(zhì)詢機(jī)制)、唯一識(shí)別號(hào)及附加數(shù)據(jù)(常數(shù))在內(nèi)的HASH運(yùn)算。
為了滿足應(yīng)用所需的安全性,該HASH算法應(yīng)滿足:
不可逆 - 要使從一個(gè)HASH結(jié)果逆推出與之相關(guān)的輸入數(shù)據(jù)在計(jì)算上是不可行的。
防“碰撞” - 使用另外一組輸入數(shù)據(jù)來產(chǎn)生一個(gè)相同的HASH結(jié)果是不可行的。
具有極高的雪崩效應(yīng) - 輸入數(shù)據(jù)的任何變化,都會(huì)極大的影響到HASH運(yùn)算結(jié)果。
SHA-1算法 - 一個(gè)被全面而廣泛驗(yàn)證的單向HASH算法可以滿足上述需求。該算法由美國國家標(biāo)準(zhǔn)技術(shù)局開發(fā),被ISO/IEC 10118-3:2004國際標(biāo)準(zhǔn)所采用。公眾可在NIST的網(wǎng)站上獲得該算法的數(shù)學(xué)原理。
DS28E01-100和DS2432是達(dá)拉斯半導(dǎo)體提供的內(nèi)置SHA-1算法的安全存儲(chǔ)器。這些器件的單總線接口非常適合此類應(yīng)用,因?yàn)樗麄冎恍鐵PGA的一根引腳就可實(shí)現(xiàn)這些功能。
FPGA需實(shí)現(xiàn)下述功能,以利用這些器件的安全特性:
產(chǎn)生隨機(jī)數(shù)。
知道一個(gè)用于芯片內(nèi)部運(yùn)算的密鑰,且該密鑰對外界不可見。
同安全存儲(chǔ)器一樣進(jìn)行包含密鑰、隨機(jī)數(shù)、附加數(shù)據(jù)及器件識(shí)別號(hào)在內(nèi)的HASH計(jì)算。
比較HASH計(jì)算結(jié)果。
以上對FPGA的功能要求需要FPGA具備微控制器的性能,例如PicoBlaze™,它是Xilinx專用于Spartan-3,Virtex-II,Virtex-II Pro®,Virtex-4 FPGA和CoolRunner™-II CPLD的自由宏。PicoBlaze使用192個(gè)邏輯單元,僅為Spartan-3 XC3S200器件的5%。
技術(shù)的實(shí)現(xiàn)
當(dāng)器件上電后,F(xiàn)PGA從Flash PROM中讀取數(shù)據(jù)對自己進(jìn)行配置。配置完成后FPGA的微處理器功能被啟動(dòng)并進(jìn)行認(rèn)證工作,該認(rèn)證工作包括下列步驟:
產(chǎn)生一組隨機(jī)數(shù)并作為一個(gè)質(zhì)詢機(jī)制(Q)發(fā)送給安全存儲(chǔ)器。
向安全存儲(chǔ)器發(fā)出指令,要求其計(jì)算一個(gè)基于密鑰、質(zhì)詢機(jī)制、唯一識(shí)別號(hào)和固定附加數(shù)據(jù)的HASH結(jié)果。
FPGA本身計(jì)算一個(gè)基于其自身存儲(chǔ)密鑰、發(fā)送給安全存儲(chǔ)器的相同數(shù)據(jù)和固定附加數(shù)據(jù)的期望HASH結(jié)果(E)。
讀取由安全存儲(chǔ)器件所計(jì)算出的HASH結(jié)果作為響應(yīng)(A)與期望HASH結(jié)果(E)做比較。
如果A和E相匹配,微控制器認(rèn)為該電路是“友方”電路,因?yàn)樗鼡碛姓_的密鑰。此時(shí)FPGA進(jìn)入正常工作狀態(tài),開啟/執(zhí)行其配置數(shù)據(jù)中的所有功能。如果A和E不匹配,則該電路被認(rèn)為是一個(gè)“敵方”電路。此時(shí)FPGA進(jìn)入非正常運(yùn)行狀態(tài),只執(zhí)行有限的功能。
此過程的安全性何在?
對于每個(gè)制造單元,設(shè)計(jì)所有者(OEM)必須為制造帶有嵌入式FPGA產(chǎn)品的一方(制造商或CM)提供一個(gè)正確預(yù)編程的DS28E01-100或DS2432。這種一對一的關(guān)系限制了CM可以制造的授權(quán)產(chǎn)品的數(shù)量。為防止CM竄改安全存儲(chǔ)器(或許CM會(huì)以存儲(chǔ)器沒有被正確編程為由申請需要更多存儲(chǔ)器),因此建議對密鑰進(jìn)行寫保護(hù)。即使不進(jìn)行寫保護(hù),也無需擔(dān)心單總線EEPROM中數(shù)據(jù)的安全性。在設(shè)計(jì)上就保證了,只有在知道密鑰的情況才可更改存儲(chǔ)器中的數(shù)據(jù)。由此產(chǎn)生一個(gè)很有用的附加功能,設(shè)計(jì)者可以利用此特性實(shí)現(xiàn)軟特性控制:FPGA可以根據(jù)從受SHA-1保護(hù)的存儲(chǔ)器中讀出的數(shù)據(jù)來開啟/關(guān)閉FPGA中的相應(yīng)功能。
由OEM來對這類器件在分發(fā)到CM手上之前進(jìn)行編程是不方便或不可行的。為了能較好的解決該問題,達(dá)拉斯半導(dǎo)體為OEM客戶提供SHA-1密鑰及EEPROM陣列的預(yù)編程服務(wù)。在這種服務(wù)下,達(dá)拉斯半導(dǎo)體的工廠按照客戶的要求對這類器件進(jìn)行注冊和配置,然后Dallas Semiconductor直接把器件運(yùn)到CM手里。這類服務(wù)的優(yōu)勢如下:
OEM無需向CM泄漏SHA-1密鑰。
OEM無需執(zhí)行系統(tǒng)預(yù)編程。
只有經(jīng)過OEM授權(quán)第三方才可以訪問登記的器件。
Dallas Semiconductor保存發(fā)送單元的數(shù)量紀(jì)錄,以備OEM查賬之需。
除了SHA-1本身所具有的安全特性,上述類型的身份識(shí)別認(rèn)證的安全特性依賴于密鑰,而該密鑰不可能從安全存儲(chǔ)器,也不可能從FPGA中讀出。更進(jìn)一步,該密鑰不可能在FPGA進(jìn)行配置時(shí),利用竊聽其配置數(shù)據(jù)流的手段而被發(fā)現(xiàn)。如同從一個(gè)可執(zhí)行代碼開始,嘗試破解Windows®應(yīng)用程序的C++源代碼一樣,通過數(shù)據(jù)流的反向工程(在該過程中會(huì)試圖略去認(rèn)證過程)來判斷系統(tǒng)設(shè)計(jì),將是一個(gè)十分艱巨的任務(wù)。
另一個(gè)至關(guān)重要的安全因素是隨機(jī)質(zhì)詢機(jī)制Q。一個(gè)可預(yù)測的質(zhì)詢機(jī)制(如一個(gè)常數(shù))會(huì)引發(fā)一個(gè)可預(yù)測的響應(yīng)結(jié)果,因?yàn)樵摻Y(jié)果可被記錄,然后由一個(gè)微控制器來取代安全存儲(chǔ)器。在這種可預(yù)測的情況下,微控制器可以讓FPGA認(rèn)為其是一個(gè)“友方”電路。而隨機(jī)的質(zhì)詢機(jī)制消除了這種可能性。
如果為每個(gè)器件綁定一個(gè)唯一密鑰就可以進(jìn)一步提高安全級別。唯一密鑰由公共密鑰(主密鑰)、器件的唯一識(shí)別號(hào)和由應(yīng)用所指定的常數(shù)計(jì)算得來。在這種條件下,如果有一個(gè)密鑰被破解,則只會(huì)有一個(gè)器件受到影響,從而不破壞整個(gè)系統(tǒng)的安全性。為實(shí)現(xiàn)這種功能,F(xiàn)PGA需要知道主密鑰,并在計(jì)算期望響應(yīng)(E)之前計(jì)算存儲(chǔ)器所用的密鑰。
更多內(nèi)容
這里提供的信息在一個(gè)相當(dāng)抽象的水平上給出了通過FPGA和安全存儲(chǔ)器實(shí)施的IFF認(rèn)證的概念。 欲了解更多信息,請參見以下文件:
Dallas應(yīng)用筆記3675,保護(hù)您的研發(fā)成果 - 雙向認(rèn)證及軟件功能保護(hù)(安全和系統(tǒng)方面)。
Dallas應(yīng)用筆記1201,白皮書8:1-Wire SHA-1概述(HASH,SHA-1,可信任令牌,交易細(xì)節(jié),信息和產(chǎn)品數(shù)據(jù)手冊的進(jìn)一步鏈接)。
XILINX應(yīng)用筆記XAPP780, FPGA IFF Copy Protection Using Dallas Semiconductor/Maxim DS2432 Secure EEPROMs (概念的成功實(shí)施,如何用FPGA執(zhí)行的詳細(xì)資料)。
安全散列標(biāo)準(zhǔn) (English only),聯(lián)邦信息處理標(biāo)準(zhǔn)出版物180-1。
Dallas Semiconductor應(yīng)用筆記178,利用1-Wire產(chǎn)品標(biāo)識(shí)印刷電路板(概念,定義數(shù)據(jù),外部測點(diǎn))。
Dallas Semiconductor應(yīng)用筆記3522,白皮書9: SHA-1器件的安全性是否依然足夠安全? (防“碰撞”,對SHA-1摘要的攻擊)。
結(jié)語
利用身份識(shí)別(IFF)概念可以保護(hù)知識(shí)產(chǎn)權(quán),使之免受非法克隆,這只需要增加一塊低成本的芯片并更新FPGA配置代碼。安全存儲(chǔ)芯片及其在線可編程性使設(shè)計(jì)者可以通過遠(yuǎn)程修改配置來實(shí)現(xiàn)軟件功能管理,而無需派出技術(shù)人員到場。對于那些沒有應(yīng)用于軟件功能管理的安全存儲(chǔ)空間,就可應(yīng)用于電路板身份標(biāo)識(shí)。
評論