基于Blackfin Lockbox的IP保護(hù)技術(shù)
隨著集成電路芯片技術(shù)的飛速發(fā)展、電子產(chǎn)品設(shè)計(jì)業(yè)也越來(lái)越開(kāi)放,很多硬件解決方案已經(jīng)成為公開(kāi)的資料,產(chǎn)品設(shè)計(jì)者的核心技術(shù)往往集中在嵌入式軟件內(nèi)。然而,在行業(yè)競(jìng)爭(zhēng)日益激烈的今天,很多公司發(fā)現(xiàn)自己的產(chǎn)品投放市場(chǎng)后不久就被盜版,對(duì)公司造成巨大的損失,因此如何保護(hù)自己的產(chǎn)品已經(jīng)成為嵌入式產(chǎn)品領(lǐng)域一個(gè)迫切需要解決的問(wèn)題。
本文主要介紹了目前一些嵌入式系統(tǒng)中IP保護(hù)的方法,從安全性的角度進(jìn)行了分析,并為產(chǎn)品開(kāi)發(fā)者介紹基于ADI公司Blackfin處理器Lockbox的IP保護(hù)安全技術(shù)。
一、目前IP保護(hù)的方法
嵌入式系統(tǒng)的IP保護(hù)方法有很多,這些方法通常是從系統(tǒng)級(jí)別,硬件設(shè)計(jì)級(jí)別,芯片級(jí)別來(lái)防止反向工程或者是盜取IP。
1. 系統(tǒng)級(jí)別的IP保護(hù)
系統(tǒng)級(jí)別IP保護(hù)的一個(gè)典型案例是在產(chǎn)品設(shè)計(jì)上嵌入硬件安全芯片,應(yīng)用軟件和該芯片通過(guò)密鑰認(rèn)證的方式來(lái)控制程序的流程,從而實(shí)現(xiàn)軟件保護(hù),防止軟件被抄襲、篡改。并且利用安全芯片片內(nèi)的自帶的EEPROM,實(shí)現(xiàn)用戶關(guān)鍵數(shù)據(jù)的安全存放。
這種通過(guò)增加額外芯片的方法具有較高的安全性和實(shí)用性,但是增加了一塊芯片,產(chǎn)品的成本增加了,并且系統(tǒng)不能關(guān)閉JTAG, Hacker可以通過(guò)JTAG進(jìn)行有效地跟蹤,通過(guò)花費(fèi)一定的時(shí)間和精力,可以了解并篡改系統(tǒng)的運(yùn)行流程,因此在安全性上也存在一定的缺陷。
2. 硬件設(shè)計(jì)級(jí)別的IP保護(hù)
硬件設(shè)計(jì)級(jí)別的IP保護(hù)主要是采取一些措施,比如設(shè)計(jì)硬件平臺(tái)的布線,選取芯片的封裝格式,來(lái)防止外部通過(guò)儀器測(cè)量存儲(chǔ)設(shè)備的數(shù)據(jù)線或者處理器的管腳來(lái)獲取信息。
首先當(dāng)關(guān)鍵信息在外部的存儲(chǔ)器設(shè)備和處理器之間以明文的形式通過(guò)數(shù)據(jù)線進(jìn)行傳輸,這些數(shù)據(jù)線可以被儀器探測(cè)并中途截取,而通過(guò)采取一些布線技巧則可以避免,比如,采用多層制板,把電源層和接地層作為外層來(lái)屏蔽掉中間的銅層,并把關(guān)鍵的信號(hào)線,比如flash的數(shù)據(jù)線,JTAG的信號(hào)線放在中間層,以避免關(guān)鍵的信息被儀器探測(cè)并讀取。
其次選取小管腳間距的BGA封裝的芯片,把關(guān)鍵的信號(hào)管腳設(shè)計(jì)在最里側(cè),這樣的芯片能進(jìn)一步防止企圖通過(guò)探測(cè)處理器和FLASH,DRAM這樣的存儲(chǔ)芯片之間的信號(hào)線來(lái)獲取數(shù)據(jù)信息。并且通過(guò)在處理器以及存儲(chǔ)芯片之間硬件布線時(shí),盡可能的放得互相接近的位置,可以進(jìn)一步增加探測(cè)攻擊關(guān)鍵信號(hào)的難度。
通過(guò)設(shè)計(jì)硬件平臺(tái)的布線,選取芯片的封裝形式這些措施能夠有效地防止探測(cè)攻擊,但是BGA芯片封裝的選取,多層制板以及布線技巧都會(huì)增加硬件平臺(tái)的成本。
3. 芯片級(jí)別的IP保護(hù)
大多數(shù)的處理器都包含有片內(nèi)的存儲(chǔ)器,比如SRAM, ROM或者是FLASH,這些存儲(chǔ)器很難從芯片外面被讀取,因此可以在這些片內(nèi)的存儲(chǔ)器存放一些關(guān)鍵代碼和數(shù)據(jù),這些片內(nèi)數(shù)據(jù)和代碼,通過(guò)一定的技術(shù),可以限制被外部主機(jī)設(shè)備,仿真器或者其他測(cè)試設(shè)備通過(guò)JTAG測(cè)試端口來(lái)讀取。
更進(jìn)一步的,可以通過(guò)片內(nèi)熔絲,斷掉芯片JTAG管腳的外接來(lái)徹底的關(guān)掉JTAG功能,但是這樣將無(wú)法進(jìn)行系統(tǒng)出錯(cuò)分析以及調(diào)試。
同樣,通過(guò)片內(nèi)熔絲的方法,可以讓芯片從片內(nèi)的FLASH或者ROM啟動(dòng)。這些可以把一些帶解密功能的Bootload放在片內(nèi)FLASH中,而在片外SDRAM中放置以密文形式存放的代碼。
我們從安全性,可行性,以及成本三個(gè)方面對(duì)上述的三種級(jí)別的IP保護(hù)技術(shù)進(jìn)行了比較,如表1-1所示。我們可以看到芯片級(jí)別的IP技術(shù)保護(hù)具有較高的安全性、可行性,以及較低的成本,是一種好的IP保護(hù)方式,我們接著要介紹的Analog Device公司的Blackfin處理器提供的Lockbox就是基于芯片級(jí)別的安全技術(shù)。
表1-1
二、Lockbox安全技術(shù)介紹
ADI公司Blackfin處理器采用的Lockbox安全技術(shù)是從芯片級(jí)別出發(fā),基于標(biāo)準(zhǔn)算法的數(shù)字簽名認(rèn)證概念,為執(zhí)行代碼與需要保護(hù)的數(shù)據(jù)提供安全處理環(huán)境,從而實(shí)現(xiàn)嵌入式系統(tǒng)的知識(shí)產(chǎn)權(quán)、電子商務(wù)和社會(huì)聯(lián)網(wǎng)系統(tǒng)中設(shè)備和用戶身份的驗(yàn)證、數(shù)字版權(quán)管理(DRM)等保護(hù)。
首先,Lockbox安全技術(shù)提供單次可編程(OTP)片上存儲(chǔ)器, OTP存儲(chǔ)器分為公有區(qū)域和私有區(qū)域,其公有區(qū)域是公共、非安全、用戶可以無(wú)條件訪問(wèn)的區(qū)域,適合于存儲(chǔ)用于對(duì)系統(tǒng)進(jìn)行鑒定的公共密鑰,這樣開(kāi)發(fā)人員可以用可控制與可配置的方式鑒別系統(tǒng)。OTP存儲(chǔ)器的私有區(qū)域是安全、用戶可編程區(qū)域,并只有系統(tǒng)在進(jìn)入安全模式下才能被訪問(wèn)的,使開(kāi)發(fā)人員可以保存私人密鑰等私有設(shè)備資源,并保證這些資源的機(jī)密性和完整性。
同時(shí),每一片Blackfin芯片都有一個(gè)唯一的CHIP ID,存放在OTP公有區(qū)域的特定某個(gè)頁(yè)面,系統(tǒng)開(kāi)發(fā)人員可以充分利用這個(gè)芯片編號(hào),實(shí)現(xiàn)軟件和硬件平臺(tái)的綁定。
其次,Lockbox?安全技術(shù)提供片上的指令ROM存儲(chǔ)器,并把密碼學(xué)的一些標(biāo)準(zhǔn)算法放在指令ROM存儲(chǔ)器里面。在指令ROM存儲(chǔ)器中,提供了經(jīng)過(guò)優(yōu)化處理的橢圓曲線數(shù)字簽名(ECDSA)認(rèn)證算法, 該認(rèn)證算法主要是由以下2個(gè)密碼學(xué)算法組成,
* 橢圓曲線加密法(ECC)的非對(duì)稱密碼算法
* SHA-1安全單向Hash算法
這些算法都是公開(kāi)的,并且經(jīng)過(guò)實(shí)踐驗(yàn)證過(guò)的,具有非常高的安全性。ECDSA數(shù)字簽名認(rèn)證主要用來(lái)驗(yàn)證代碼和數(shù)據(jù)來(lái)源的可靠性,以及代碼和數(shù)據(jù)的完整性。整個(gè)數(shù)字簽名的認(rèn)證流程已經(jīng)固化在Blackfin片內(nèi)的ROM中,系統(tǒng)開(kāi)發(fā)人員只需要出發(fā)一個(gè)相應(yīng)的中斷觸發(fā)即可。Lockbox技術(shù)確保只有成功通過(guò)ECDSA數(shù)字簽名的應(yīng)用程序才可以運(yùn)行在安全模式下,這樣運(yùn)行在安全模式下面的代碼其來(lái)源一定是可靠的,并且沒(méi)有被篡改過(guò)。
同時(shí),Lockbox的片上ROM里面也提供一些標(biāo)準(zhǔn)的密碼學(xué)算法,AES,RC4算法,這些算法都是經(jīng)過(guò)與處理器相關(guān)的性能優(yōu)化,具有較高的處理性能,并以API的形式提供給系統(tǒng)開(kāi)發(fā)人員使用。
最后,Lockbox安全技術(shù)通過(guò)采用軟硬件結(jié)合提供一種安全處理模式(Blackfin安全模式)。正常開(kāi)機(jī)流程下,系統(tǒng)運(yùn)行在公開(kāi)模式下,在這種模式下面,系統(tǒng)不能訪問(wèn)OTP私有區(qū)域,不能控制JTAG的關(guān)閉,只有成功通過(guò)ECDSA數(shù)字簽名認(rèn)證的代碼和數(shù)據(jù)才能進(jìn)入安全模式下,在安全模式下,系統(tǒng)才可以動(dòng)態(tài)控制JTAG的關(guān)閉或打開(kāi),訪問(wèn)OTP私有的存儲(chǔ)區(qū)域,動(dòng)態(tài)配置片上SRAM的外部DMA訪問(wèn)控制等各種操作。
這樣在Blackfin處理器進(jìn)入安全模式后,處理器只能在安全處理環(huán)境內(nèi)執(zhí)行授權(quán)的可靠代碼,配置JTAG打開(kāi)或者關(guān)閉,并與片內(nèi)安全存儲(chǔ)器比如片上SRAM,OTP私有存儲(chǔ)區(qū)域配合使用,進(jìn)一步實(shí)現(xiàn)系統(tǒng)機(jī)密性。比如通過(guò)進(jìn)入安全模式,讀取存在OTP私有區(qū)域的密鑰,來(lái)進(jìn)行放在片外的部分關(guān)鍵代碼的解密,并放在片內(nèi)運(yùn)行,而密碼加密/解密過(guò)程只能被身份認(rèn)證成功的用戶看到并使用。當(dāng)用戶不需要運(yùn)行在安全模式下,可以動(dòng)態(tài)的退出安全模式,進(jìn)入公開(kāi)模式。
三、基于Lockbox的IP保護(hù)認(rèn)證技術(shù)
Lockbox提供了一系列的芯片級(jí)別的安全技術(shù),基于這些安全技術(shù),開(kāi)發(fā)人員可以設(shè)計(jì)靈活的產(chǎn)品IP保護(hù)方案。我們將介紹基于Lockbox上的ECDSA數(shù)字簽名認(rèn)證流程的IP保護(hù)技術(shù)。
Lockbox上的ECDSA數(shù)字簽名產(chǎn)生以及認(rèn)證流程具體分為片外數(shù)字簽名準(zhǔn)備階段和片上數(shù)字簽名認(rèn)證階段。在片外數(shù)字簽名準(zhǔn)備階段,首先通過(guò)橢圓曲線加密法(ECC)產(chǎn)生一對(duì)非對(duì)稱密鑰,公有密鑰和私有密鑰,公有密鑰寫入基于Blackfin處理器終端的OTP公有區(qū)域某個(gè)特定的位置,私有密鑰則由產(chǎn)品開(kāi)發(fā)公司安全保管。對(duì)需要認(rèn)證的應(yīng)用程序,通過(guò)SHA-1計(jì)算產(chǎn)生一個(gè)數(shù)字摘要,然后用私有密鑰對(duì)數(shù)字摘要進(jìn)行加密,產(chǎn)生一個(gè)數(shù)字簽名信息。最后把數(shù)字簽名信息以及對(duì)應(yīng)的應(yīng)用程序通過(guò)DMA或者其他的方式放入片內(nèi)存儲(chǔ)區(qū)域,觸發(fā)一個(gè)相應(yīng)的中斷,由對(duì)應(yīng)的已經(jīng)寫入片內(nèi)ROM的中斷處理程序(ECDSA數(shù)字簽名認(rèn)證算法)將會(huì)自動(dòng)地進(jìn)行數(shù)字簽名認(rèn)證。
在片上的數(shù)字簽名認(rèn)證階段,中斷處理程序通過(guò)讀出OTP存儲(chǔ)器中的公有密鑰對(duì)數(shù)字簽名信息進(jìn)行解密,得到一個(gè)解密后的數(shù)字摘要,同時(shí),對(duì)片上的應(yīng)用程序進(jìn)行SHA-1的數(shù)字摘要計(jì)算,并與解密后的數(shù)字摘要進(jìn)行比較,如果相等,則數(shù)字簽名認(rèn)證成功,表明,片上的應(yīng)用程序來(lái)源得到驗(yàn)證,并且確認(rèn)片上的應(yīng)用程序的內(nèi)容不會(huì)以任何方式被改變,從而對(duì)應(yīng)用程序的完整性進(jìn)行檢驗(yàn)。
經(jīng)過(guò)ECDSA數(shù)字簽名成功認(rèn)證的應(yīng)用程序?qū)?huì)獲得系統(tǒng)運(yùn)行權(quán),并運(yùn)行在Blackfin提供的安全模式下,控制整個(gè)系統(tǒng)的安全訪問(wèn),比如可以關(guān)閉JTAG和片上SRAM的外部DMA訪問(wèn),讀取預(yù)先存放在OTP私有區(qū)域的AES 密鑰,調(diào)用AES解密算法解密放在片外的預(yù)先經(jīng)過(guò)加密的部分代碼和數(shù)據(jù),并把解密后的明文放在片內(nèi)運(yùn)行,以實(shí)現(xiàn)代碼的機(jī)密性,從而實(shí)現(xiàn)產(chǎn)品的IP保護(hù),當(dāng)機(jī)密性的代碼運(yùn)行完畢以后,可以通過(guò)調(diào)用系統(tǒng)提供的清除函數(shù),清除當(dāng)前的關(guān)鍵信息,退回到公開(kāi)模式下面運(yùn)行。系統(tǒng)也可以根據(jù)需要,多次靈活地進(jìn)入和退出安全模式。
由此可見(jiàn),基于Blackfin Lockbox的安全技術(shù)可以從以下三個(gè)方面來(lái)提供安全特性。
* 真實(shí)性/來(lái)源驗(yàn)證
Lockbox安全技術(shù)支持對(duì)一段應(yīng)用程序的數(shù)字簽名進(jìn)行驗(yàn)證,來(lái)確認(rèn)應(yīng)用程序和數(shù)據(jù)來(lái)源的真實(shí)性。
* 完整性
開(kāi)發(fā)人員可使用數(shù)字簽名認(rèn)證技術(shù)來(lái)確保存儲(chǔ)介質(zhì)的消息或內(nèi)容不會(huì)以任何方式被改變。利用Lockbox數(shù)字簽名鑒定的真實(shí)性可以對(duì)完整性進(jìn)行檢驗(yàn)。
* 機(jī)密性
在安全模式下面,加密/解密服務(wù)能防止未經(jīng)批準(zhǔn)的用戶看到并使用特定數(shù)據(jù)。
產(chǎn)品設(shè)計(jì)者可以根據(jù)自己的系統(tǒng)安全性的需要,靈活的運(yùn)用這些芯片級(jí)別的安全技術(shù),設(shè)計(jì)出具有良好安全魯棒性的產(chǎn)品,實(shí)現(xiàn)嵌入式產(chǎn)品的IP保護(hù)。
結(jié)論
嵌入式系統(tǒng)可以通過(guò)采用各種安全技術(shù),從不同的級(jí)別來(lái)增加系統(tǒng)的安全性,實(shí)現(xiàn)IP保護(hù)?;谔幚砥骷?jí)別的安全技術(shù)能夠從系統(tǒng)設(shè)計(jì)一開(kāi)始就引入安全性的考慮,使系統(tǒng)具有更強(qiáng)的魯棒性。Blackfin處理器提供的Lockbox安全技術(shù)的能夠從系統(tǒng)的來(lái)源性,完整性,機(jī)密性提供全方位的安全保護(hù),不僅可以應(yīng)用于嵌入式系統(tǒng)的IP保護(hù)中,而且也可以應(yīng)用在數(shù)據(jù)的安全傳輸,電子商務(wù)的身份認(rèn)證、數(shù)字版權(quán)管理(DRM)內(nèi)容保護(hù)等各種應(yīng)用場(chǎng)景中。
評(píng)論