關(guān) 閉

新聞中心

EEPW首頁 > 安全與國防 > 基于FPGA的身份識別及防拷貝機制

基于FPGA的身份識別及防拷貝機制

——
作者:Maxim 時間:2007-05-28 來源:Maxim 收藏

摘要:本文描述了如何利用存儲器來完成身份識別功能,以實現(xiàn)對FPGA設(shè)計的保護(hù)。在完成身份識別特性的同時,還可實現(xiàn)軟功能管理和電路板識別功能。本文所涉及的FPGA均來自, Inc.。 

動機
開發(fā)電子產(chǎn)品,包括嵌入式FPGA的配置代碼,其成本是相當(dāng)高的。因此應(yīng)當(dāng)防止未經(jīng)授權(quán)的機構(gòu)對這些設(shè)計和配置進(jìn)行拷貝,以保護(hù)設(shè)計者的知識產(chǎn)權(quán)。有很多種方法能實現(xiàn)這樣的保護(hù)功能。如在 Virtex-II®和Virtex-4®這類的高端FPGA中,支持對配置數(shù)據(jù)流的加密操作。這樣僅當(dāng)FPGA中含有相同的密鑰時,這些數(shù)據(jù)流才可以工作。但是這種加密的方法對更為廣泛的、對成本很敏感的應(yīng)用場合來說不甚合適。因此,這里利用另一種可行的身份識別法來防止意外拷貝。這種方法對所有FPGA家族都適用,包括低端的 Spartan-3®系列FPGA。 

前提
在身份識別的概念中,要求FPGA的設(shè)計者實現(xiàn)與一個存儲器通訊的功能以進(jìn)行認(rèn)證工作。圖1是實現(xiàn)該設(shè)計的一個簡化原理圖。 

Figure 1. Simplified schematic of a Dallas Semiconductor 1-Wire memory device providing secure control and protection for an FPGA.

圖1. Dallas Semiconductor的1-Wire存儲器件為FPGA提供控制和保護(hù)的簡化框圖 

安全存儲芯片需滿足下列要求: 

包含用于芯片內(nèi)部操作的密鑰,該密鑰對外界不可見。 
包含一個唯一的不可改變的識別號??捎迷撟R別號來計算一個與設(shè)備綁定的密鑰。 
能夠進(jìn)行包含密鑰、隨機數(shù)(用做質(zhì)詢機制)、唯一識別號及附加數(shù)據(jù)(常數(shù))在內(nèi)的HASH運算。 
為了滿足應(yīng)用所需的安全性,該HASH算法應(yīng)滿足: 

不可逆 - 要使從一個HASH結(jié)果逆推出與之相關(guān)的輸入數(shù)據(jù)在計算上是不可行的。 
防“碰撞” - 使用另外一組輸入數(shù)據(jù)來產(chǎn)生一個相同的HASH結(jié)果是不可行的。 
具有極高的雪崩效應(yīng) - 輸入數(shù)據(jù)的任何變化,都會極大的影響到HASH運算結(jié)果。 
SHA-1算法 - 一個被全面而廣泛驗證的單向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算法的安全存儲器。這些器件的單總線接口非常適合此類應(yīng)用,因為他們只需FPGA的一根引腳就可實現(xiàn)這些功能。 

FPGA需實現(xiàn)下述功能,以利用這些器件的安全特性: 

產(chǎn)生隨機數(shù)。 
知道一個用于芯片內(nèi)部運算的密鑰,且該密鑰對外界不可見。 
同安全存儲器一樣進(jìn)行包含密鑰、隨機數(shù)、附加數(shù)據(jù)及器件識別號在內(nèi)的HASH計算。 
比較HASH計算結(jié)果。 
以上對FPGA的功能要求需要FPGA具備微控制器的性能,例如PicoBlaze™,它是Xilinx專用于Spartan-3,Virtex-II,Virtex-II Pro®,Virtex-4 FPGA和CoolRunner™-II CPLD的自由宏。PicoBlaze使用192個邏輯單元,僅為Spartan-3 XC3S200器件的5%。 


技術(shù)的實現(xiàn)
當(dāng)器件上電后,F(xiàn)PGA從Flash PROM中讀取數(shù)據(jù)對自己進(jìn)行配置。配置完成后FPGA的微處理器功能被啟動并進(jìn)行認(rèn)證工作,該認(rèn)證工作包括下列步驟: 
產(chǎn)生一組隨機數(shù)并作為一個質(zhì)詢機制(Q)發(fā)送給安全存儲器。 
向安全存儲器發(fā)出指令,要求其計算一個基于密鑰、質(zhì)詢機制、唯一識別號和固定附加數(shù)據(jù)的HASH結(jié)果。 
FPGA本身計算一個基于其自身存儲密鑰、發(fā)送給安全存儲器的相同數(shù)據(jù)和固定附加數(shù)據(jù)的期望HASH結(jié)果(E)。 
讀取由安全存儲器件所計算出的HASH結(jié)果作為響應(yīng)(A)與期望HASH結(jié)果(E)做比較。 
如果A和E相匹配,微控制器認(rèn)為該電路是“友方”電路,因為它擁有正確的密鑰。此時FPGA進(jìn)入正常工作狀態(tài),開啟/執(zhí)行其配置數(shù)據(jù)中的所有功能。如果A和E不匹配,則該電路被認(rèn)為是一個“敵方”電路。此時FPGA進(jìn)入非正常運行狀態(tài),只執(zhí)行有限的功能。 


此過程的安全性何在?
對于每個制造單元,設(shè)計所有者(OEM)必須為制造帶有嵌入式FPGA產(chǎn)品的一方(制造商或CM)提供一個正確預(yù)編程的DS28E01-100或DS2432。這種一對一的關(guān)系限制了CM可以制造的授權(quán)產(chǎn)品的數(shù)量。為防止CM竄改安全存儲器(或許CM會以存儲器沒有被正確編程為由申請需要更多存儲器),因此建議對密鑰進(jìn)行寫保護(hù)。即使不進(jìn)行寫保護(hù),也無需擔(dān)心單總線EEPROM中數(shù)據(jù)的安全性。在設(shè)計上就保證了,只有在知道密鑰的情況才可更改存儲器中的數(shù)據(jù)。由此產(chǎn)生一個很有用的附加功能,設(shè)計者可以利用此特性實現(xiàn)軟特性控制:FPGA可以根據(jù)從受SHA-1保護(hù)的存儲器中讀出的數(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直接把器件運到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本身所具有的安全特性,上述類型的身份識別認(rèn)證的安全特性依賴于密鑰,而該密鑰不可能從安全存儲器,也不可能從FPGA中讀出。更進(jìn)一步,該密鑰不可能在FPGA進(jìn)行配置時,利用竊聽其配置數(shù)據(jù)流的手段而被發(fā)現(xiàn)。如同從一個可執(zhí)行代碼開始,嘗試破解Windows®應(yīng)用程序的C++源代碼一樣,通過數(shù)據(jù)流的反向工程(在該過程中會試圖略去認(rèn)證過程)來判斷系統(tǒng)設(shè)計,將是一個十分艱巨的任務(wù)。 

另一個至關(guān)重要的安全因素是隨機質(zhì)詢機制Q。一個可預(yù)測的質(zhì)詢機制(如一個常數(shù))會引發(fā)一個可預(yù)測的響應(yīng)結(jié)果,因為該結(jié)果可被記錄,然后由一個微控制器來取代安全存儲器。在這種可預(yù)測的情況下,微控制器可以讓FPGA認(rèn)為其是一個“友方”電路。而隨機的質(zhì)詢機制消除了這種可能性。 

如果為每個器件綁定一個唯一密鑰就可以進(jìn)一步提高安全級別。唯一密鑰由公共密鑰(主密鑰)、器件的唯一識別號和由應(yīng)用所指定的常數(shù)計算得來。在這種條件下,如果有一個密鑰被破解,則只會有一個器件受到影響,從而不破壞整個系統(tǒng)的安全性。為實現(xiàn)這種功能,F(xiàn)PGA需要知道主密鑰,并在計算期望響應(yīng)(E)之前計算存儲器所用的密鑰。 


更多內(nèi)容
這里提供的信息在一個相當(dāng)抽象的水平上給出了通過FPGA和安全存儲器實施的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/ DS2432 Secure EEPROMs (概念的成功實施,如何用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ù)據(jù),外部測點)。 
Dallas Semiconductor應(yīng)用筆記3522,白皮書9: SHA-1器件的安全性是否依然足夠安全? (防“碰撞”,對SHA-1摘要的攻擊)。 

結(jié)語
利用身份識別(IFF)概念可以保護(hù)知識產(chǎn)權(quán),使之免受非法克隆,這只需要增加一塊低成本的芯片并更新FPGA配置代碼。安全存儲芯片及其在線可編程性使設(shè)計者可以通過遠(yuǎn)程修改配置來實現(xiàn)軟件功能管理,而無需派出技術(shù)人員到場。對于那些沒有應(yīng)用于軟件功能管理的安全存儲空間,就可應(yīng)用于電路板身份標(biāo)識。 



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉