透視FPGA的安全性
——
這個(gè)增長(zhǎng)在很大程度上是來(lái)自于FPGA本身的特點(diǎn)。由于象全球定位系統(tǒng) (GPS) 導(dǎo)航裝置和DVD播放機(jī)之類設(shè)備的產(chǎn)品壽命相對(duì)較短,因此縮短其開(kāi)發(fā)周期變得非常重要。可編程邏輯便可為設(shè)計(jì)人員提供所需的靈活性,以加速工作進(jìn)度來(lái)配合緊迫的期限。加上AISC 作為這類應(yīng)用的傳統(tǒng)解決方案的掩膜成本飚升,不僅使到成本上漲,而且還增加了風(fēng)險(xiǎn),迫使設(shè)計(jì)人員需要尋求別的替代方案。與此同時(shí),消費(fèi)者開(kāi)始要求產(chǎn)品能提供更多樣化的功能,使到消費(fèi)和汽車電子的制造商不得不基于可變和可配置的成套硬件上開(kāi)發(fā)他們的產(chǎn)品,以滿足不斷變化的需求。
此外,也許令人驚訝的是,電子產(chǎn)品的小型化發(fā)展從未停過(guò)。汽車內(nèi)的空間非常珍貴,而消費(fèi)電子的發(fā)展主要由便攜性所推動(dòng)。這使得FPGA這類能將許多 (多樣化的) 功能集成在單一芯片上的元件更具吸引力。
FPGA 廠家對(duì)這類需求作出了響應(yīng),使到制造的產(chǎn)品更加適用于生產(chǎn)解決方案,并特別考慮了產(chǎn)品的可靠性。汽車和便攜應(yīng)用在溫度范圍、防沖擊和振動(dòng)方面有特定的要求,而且還面對(duì)以SRAM為基礎(chǔ)器件出現(xiàn)軟錯(cuò)誤問(wèn)題的挑戰(zhàn)。降低成本也是一個(gè)需要考慮的問(wèn)題,如Actel便推出了以價(jià)值為基礎(chǔ) (value-based) 的新產(chǎn)品系列 ProASIC3/E,來(lái)配合這個(gè)市場(chǎng)對(duì)于低 FPGA 單位成本應(yīng)用的需求。
設(shè)計(jì)安全性也是人們關(guān)注的一個(gè)問(wèn)題,特別在消費(fèi)和汽車電子市場(chǎng)。在FPGA使用的設(shè)計(jì)和配置數(shù)據(jù)代表了整個(gè)系統(tǒng)中知識(shí)產(chǎn)權(quán)的重要部分?;蛟S是太過(guò)優(yōu)柔寡斷或其它原因,設(shè)計(jì)人員一直都沒(méi)有認(rèn)真考慮設(shè)計(jì)盜竊的問(wèn)題。但事實(shí)上,競(jìng)爭(zhēng)對(duì)手的反向工程是一個(gè)真實(shí)的商業(yè)危機(jī),且已存在好一段時(shí)間。
如果能夠在可編程器件中存取IP核,用戶就有可能得到額外的價(jià)值。制造商利用單個(gè)器件來(lái)實(shí)現(xiàn)產(chǎn)品多元化會(huì)有風(fēng)險(xiǎn),因?yàn)樽罱K用戶可能會(huì)被誘惑進(jìn)行廉價(jià)的非法升級(jí),只需對(duì)其現(xiàn)有產(chǎn)品的部份元件進(jìn)行重編程便可。
圖1
例如,在汽車電子市場(chǎng),非法復(fù)制產(chǎn)品的情況越來(lái)越多;這些低質(zhì)、低成本元件通常針對(duì)售后和非廠家授權(quán)服務(wù)的市場(chǎng)。而未經(jīng)授權(quán)元件的銷售渠道非常難以控制 (盡管并非不可能)。這些復(fù)制的板上系統(tǒng)元件往往都沒(méi)有最新或經(jīng)重新校準(zhǔn)的設(shè)定、測(cè)定燃油傳輸、點(diǎn)火時(shí)間及其它控制功能,有可能導(dǎo)致引擎失效和損壞。
FPGA也越來(lái)越多地用于能夠固有地抵抗外界篡改能力的應(yīng)用中。為了防止盜竊服務(wù),數(shù)字機(jī)頂盒和移動(dòng)電話之類的設(shè)備需要有安全功能。如果黑客能侵入以FPGA為基礎(chǔ)的衛(wèi)星無(wú)線接收總臺(tái),并使用戶的認(rèn)證機(jī)制失效,不道德的用戶就能夠乘機(jī)盜用免費(fèi)的服務(wù)!
系統(tǒng)的安全機(jī)制一旦被擊破,當(dāng)中的技術(shù)通常都會(huì)大規(guī)模地被散布。只要看一看eBay就可找到各種通過(guò)此方法提供的免費(fèi)服務(wù)總臺(tái),例如有線電視的解碼器。
即使在產(chǎn)品上市之前,也存在安全/盜竊風(fēng)險(xiǎn)。許多消費(fèi)和汽車電子廠家都會(huì)將一部份的產(chǎn)品制造外判,這就會(huì)帶來(lái)過(guò)建的問(wèn)題,即是代工一方超額制造客戶所定購(gòu)數(shù)量的產(chǎn)品,然后銷往地下市場(chǎng)。更糟糕的是,第三方器件編程服務(wù)的用戶必須以未經(jīng)保護(hù)的格式提供其FPGA配置數(shù)據(jù),而這些數(shù)據(jù)很容易被機(jī)構(gòu)內(nèi)或外部的人盜取。
圖2
要防止這類非法活動(dòng),設(shè)計(jì)人員必須從元件層面入手。FPGA的三大技術(shù)是反熔絲、Flash和SRAM。其中,反熔絲被公認(rèn)為固有最安全的技術(shù),因?yàn)橐欠ㄗx取以反熔絲為基礎(chǔ)的FPGA狀態(tài)極之困難;舉例說(shuō),一個(gè)200萬(wàn)門(mén)的Actel反熔絲FPGA含有約5300萬(wàn)個(gè)反熔絲,而在一般的設(shè)計(jì)中只有2-5% 會(huì)被用于編程。因此要找出那些經(jīng)編程的反熔絲的概率很低,這使到設(shè)計(jì)的盜取非常困難。
反熔絲FPGA也能抵御過(guò)去用于攻擊ASIC和成品的反向工程技術(shù)。這個(gè)技術(shù)會(huì)對(duì)目標(biāo)芯片進(jìn)行連續(xù)分層剝離,并直接觀察敷涂了金屬的位置、通路孔和其它特點(diǎn)。經(jīng)編程的反熔絲幾乎與未經(jīng)編程的反熔絲沒(méi)有分別,同樣由于找出經(jīng)編程反熔絲的概率很低,使到反向工程的機(jī)會(huì)幾乎不可能出現(xiàn)。
以Flash 為基礎(chǔ)的FPGA一般也被認(rèn)為是完全安全的;當(dāng)對(duì)Flash開(kāi)關(guān)編程后,半導(dǎo)體器件層并不會(huì)出現(xiàn)物理變化,因此與反熔絲一樣,要通過(guò)入侵探測(cè)來(lái)確定經(jīng)編程或運(yùn)行中的器件是非常困難的事。
相反,以SRAM為基礎(chǔ)的FPGA就需要外部配置器件 (通常是板上PROM),在上電時(shí)將配置數(shù)據(jù)碼流傳送給FPGA。這個(gè)碼流很容易被黑客截獲;又或者說(shuō)這個(gè)PROM能夠被復(fù)制或直接被人讀取其內(nèi)容。
有些FPGA還包括各種升級(jí)功能,有助于保證編程過(guò)程中或編程后的安全性。例如,Actel的ProASIC Flash FPGA早就包含了名為FlashLock的功能,采用由用戶定義的密鑰機(jī)制。假如沒(méi)有這個(gè)密鑰,就不能對(duì)器件進(jìn)行讀、寫(xiě)、驗(yàn)證或擦除操作。器件還提供一個(gè)永久性的選項(xiàng),賦予一次性的編程設(shè)定,意味著任何方式都不能讀取其設(shè)計(jì)內(nèi)容。
這類 Flash FPGA通過(guò)物理解構(gòu)的方式來(lái)防止設(shè)計(jì)盜竊;Flash 的單元位于7層金屬之下,幾乎不可能從物理層面被解碼,因?yàn)椴荒茉诓桓蓴_已被編程 (或已被擦除) 的Flash晶體管上的電荷下移除這些金屬層。
這些器件同時(shí)克服了另一個(gè)基本問(wèn)題;沒(méi)有包含能回讀配置數(shù)據(jù)的機(jī)制。傳統(tǒng)的FPGA結(jié)構(gòu)都有一個(gè)回讀功能,讓器件可在編程后進(jìn)行驗(yàn)證。在ProASIC3/E器件中,由于驗(yàn)證過(guò)程屬于器件編程的固有部分,因此毋需額外的回讀功能。
Actel 的ProASIC3/E器件進(jìn)一步擴(kuò)充了這些安全功能,引進(jìn)了AES (先進(jìn)加密標(biāo)準(zhǔn)) 解密核。AES是符合FIPS (聯(lián)邦信息處理標(biāo)準(zhǔn)) 192版的加密算法,該標(biāo)準(zhǔn)由美國(guó)政府機(jī)關(guān)所采用,以保護(hù)那些敏感但并未分類的信息。ProASIC3/E器件采用AES的變種算法,稱為 Rijndael,利用了長(zhǎng)度為128位的密鑰。由于可能的密鑰數(shù)目約在1038量級(jí),因此即使是采用最強(qiáng)大的計(jì)算技術(shù),這種密鑰也是牢不可破。
AES加密核能同時(shí)用于FPGA核本身以及獨(dú)特 FlashROM (FROM) 內(nèi)存的加密中。每個(gè)FPGA都被分成兩部分:FPGA陣列和FlashROM,兩者都可獨(dú)立編程,容許在不改變FPGA核的情況下完成FROM升級(jí)。
AES密鑰本身存儲(chǔ)在專門(mén)的片上非揮發(fā)性Flash內(nèi)存中,并不能被讀取。這就使設(shè)計(jì)人員可保護(hù)其知識(shí)產(chǎn)權(quán),將經(jīng)AES加密的配置文件提供給代工廠商,只有與擁有正確密鑰的器件配合時(shí)才能使用,而這個(gè)密鑰本身可在安全或可信賴的環(huán)境中進(jìn)行編程。
圖3
這個(gè)功能可讓設(shè)計(jì)人員享有將制造外判的成本優(yōu)勢(shì),同時(shí)也為那些想發(fā)揮FPGA可編程特點(diǎn)的公司帶來(lái)更高的安全水平,以便實(shí)現(xiàn)后期的設(shè)計(jì)更改或定制產(chǎn)品配置。
這些設(shè)備還可用來(lái)實(shí)現(xiàn)一個(gè)使FPGA制造商引以自豪的功能,即是可執(zhí)行現(xiàn)場(chǎng)升級(jí)。這個(gè)可能性在理論上已經(jīng)存在一段時(shí)間:以FPGA為基礎(chǔ)的設(shè)備可因應(yīng)標(biāo)準(zhǔn)的改變?cè)诂F(xiàn)場(chǎng)重新配置,又或如客戶決定在訂用服務(wù)中啟動(dòng)升級(jí)功能時(shí)。但缺點(diǎn)是從OEM方獲取新FPGA配置數(shù)據(jù)存在安全風(fēng)險(xiǎn)。AES密鑰的使用可讓 ProASIC3器件支持安全的服務(wù)內(nèi)編程 (ISP)。
制造商利用這個(gè)功能還可在其它方面獲益,例如,訂用式服務(wù)的設(shè)備制造商可利用 FROM空間來(lái)實(shí)現(xiàn)終端設(shè)備的安全序列化管理,而所有產(chǎn)品的FPGA結(jié)構(gòu)都進(jìn)行了相同的編程。AES加密還可以保證數(shù)據(jù)在PCB板上不同元件之間通信的安全性。數(shù)據(jù)本身可能就是敏感的信息,如在客戶的財(cái)務(wù)系統(tǒng)中或按用量付費(fèi)服務(wù)的接入控制設(shè)備中,又或存在數(shù)據(jù)被利用于反向工程的風(fēng)險(xiǎn)。加密的通信提供物理性保護(hù)措施及防篡改技術(shù)以外別具成本效益的保護(hù)方法。
FPGA提供各種先進(jìn)的安全功能,可讓制造商通過(guò)比以前更安全的途徑進(jìn)行設(shè)計(jì)和保護(hù)數(shù)據(jù)。選擇具備固有安全性的FPGA技術(shù),如Flash,并采用目前元件所提供額外的安全功能,設(shè)計(jì)人員就可安全地充分發(fā)揮可編程邏輯的可編程性和現(xiàn)場(chǎng)升級(jí)的靈活性優(yōu)勢(shì)。
評(píng)論