針對FPGA實現(xiàn)安全的系統(tǒng)內(nèi)編程功能
FPGA正越來越多地作為現(xiàn)代電子系統(tǒng)的核心部分。這有多個可能原因:FPGA的成本低、立即可用及精密性不斷提高,但最重要的還是FPGA硬件可重新配置,因此能輕易配合系統(tǒng)規(guī)格隨時改變的要求。
硬件可重編程是FPGA器件的“殺手锏”,其優(yōu)點多不勝數(shù)。除了明顯的優(yōu)勢在于幾乎毋須額外的成本便能更改半導體的功能外 (這遠較傳統(tǒng)的ASIC器件優(yōu)越),F(xiàn)PGA能夠應對規(guī)格改變的能力、增加功能,或快速實時配置客戶的設置,這意味著FPGA產(chǎn)品能延長應用壽命及提高盈利空間。
但有一個很重要的問題需要考慮:我們能在多大程度上安全地配置系統(tǒng)環(huán)境下的FPGA,即實現(xiàn)系統(tǒng)內(nèi)可編程 (ISP),使系統(tǒng)設計人員獲得最大的益處。我們當然希望能夠在系統(tǒng)完全制成后甚至在場地應用時,都可以更改系統(tǒng)編程。也希望在大多數(shù)情況下,在器件重編程時進行安全的控制。換言之,我們需要有完整的手段來控制對FPGA內(nèi)IP的存取及保護,這手段稱之為“安全ISP”。
為什么會有這個需求?因為FPGA的靈活性可為終端用戶帶來許多好處,但也可能在不法分子手上用以進行不法的勾當,例如:
* 過建 (復制盜版)
* 盜取敏感的數(shù)據(jù)
* 篡改產(chǎn)品
* 黑客攻擊
隨著許多公司都在本土之外設立制造基地,過建的行為越來越猖獗。過建是非法的行為,即不道德的合約制造商會在市場上購買額外的芯片來制造合約規(guī)定以外的系統(tǒng)產(chǎn)品,然后在市場上銷售,與OEM廠商進行不公平的競爭。這種行為不僅會使OEM廠商降低所銷售產(chǎn)品的營業(yè)額,同時也因額外的競爭而影響產(chǎn)品的邊際利潤,并且還增加技術支持成本和承擔更多負債責任。
盜取敏感數(shù)據(jù)是電子化數(shù)據(jù)時代中越來越嚴峻的問題。擁有高精技術的犯罪者每每能夠盜取各種特許信息,如銀行帳號、社會安全保險號和其它重要資料。 手持銷售點 (POS) 機可能成為盜取這類信息的一個途徑;因為這些敏感信息一般都保存于系統(tǒng)的非揮發(fā)性片上數(shù)據(jù)存儲器中。如果這些內(nèi)存未經(jīng)高度的加密保護,攻擊者就能夠盜取其中的重要數(shù)據(jù)。由于設備具有便攜式的特性,如容易開啟和接入串連端口,就使問題更加嚴重。
篡改產(chǎn)品是系統(tǒng)易于重新配置引發(fā)的自然結(jié)果。篡改行為范圍廣泛,可以從微小但合法的程度 (如改動引擎控制系統(tǒng)來提高汽車的性能),以至于犯法的行為 (如更改賭博機制的隨機性來牟利)。這種篡改意味著產(chǎn)品制造廠需要承擔被篡改產(chǎn)品的法定或/和產(chǎn)品質(zhì)量責任,嚴重時還會引起公眾安全問題。
黑客攻擊是互聯(lián)網(wǎng)時代中的一個小但卻會不斷擴大的問題。SRAM FPGA更特別易受黑客攻擊。文獻報道過很多黑客攻擊實例,當中,SRAM FPGA屢遭黑客采用隨機位流攻擊的方式實際地摧毀。因此,必須建立適當?shù)南到y(tǒng)保護機制,確保器件只會接受作為授權編程位流經(jīng)的認證信息。
Flash出現(xiàn)前的情況
以SRAM為基礎的 CPLD和FPGA是揮發(fā)性的,需要外部的配置內(nèi)存。因此,它們被公認為最多安全隱憂的可編程器件。例如,要盜取以SRAM為基礎 FPGA的設計十分容易,只要探測FPGA與外部 (非揮發(fā)性) 配置內(nèi)存的接口,截取當中的位流便可。為此,SRAM器件制造商進行了很多嘗試,以防止這些情況發(fā)生。為了保護FPGA上的數(shù)據(jù),有些廠家移除了非揮發(fā)性的配置內(nèi)存,并嘗試用電池來維持FPGA的配置數(shù)據(jù)。這在理論上可行,但在實際應用中卻會顯著增加板級設計的成本:板卡更加復雜、需要添加電源線、采取電隔離措施 (防止其它芯片從器件至器件之間的互連為自己供電),以及電池本身的成本。即使采用這種方法,也不能排除系統(tǒng)因電壓/接地尖峰、物理沖擊或電池失效等問題而遭受瞬間掉電,從而丟失配置數(shù)據(jù)。
對于許多較新的SRAM FPGA產(chǎn)品,制造商引進了以3DES或同類加密方案的位流加密支持,并儲存于外部內(nèi)存中。上電時,可編程器件從內(nèi)存中讀入加密后的配置位流,并在器件中進行解密,然后加載到半導體芯片上。雖然這種方法能防止大部分黑客盜取芯片中的IP,但還是不能阻止他們截獲位流或?qū)肫渌奈涣鳌?
較舊式的SRAM FPGA產(chǎn)品不支持位流加密,制造商因此采用了幾種方法來增加器件的安全性。常用的一種方法是采用所謂“握手令牌” (Handshake token)執(zhí)行設計,即如果沒有收到所預期的令牌,F(xiàn)PGA內(nèi)的設計功能就會失效。握手令牌會在上電時隨機生成,或利用小型的非揮發(fā)性可編程器件 (NVPD) 重置,然后在運行時定時監(jiān)控,以保證令牌沒有改變。假如令牌有變,F(xiàn)PGA的功能 (握手令牌電路除外) 將失效,直到收到正確的令牌為止。FPGA每隔一段時間就會向NVPD請求另一個令牌,以便進行控制。一旦收到正確的令牌,F(xiàn)PGA的功能便會恢復。
這種方法希望能保證即使配置位流被復制并克隆到FPGA中,沒有正確的令牌也不能工作。然而,這種方法不能防止犯罪者將位流從外部配置內(nèi)存中復制,并經(jīng)過逆向工程獲得它在NVPD中的運行算法,然后便可制備新的NVPD,以便在克隆的電路中生成令牌。雖然這種保證方法大幅增加了克隆設計的難度,但不能全面保護FPPGA中的專利IP。其它方法也可以用來保護SRAM FPGA,但也只是提高獲取或使用位流的難度,而不能完全保護IP。諷刺的是,在許多這類方法中,NVPD的內(nèi)容得到保護,因為器件是非揮發(fā)性的;而FPGA的內(nèi)容卻被暴露,因為器件每次上電都需要將配置位流寫入FPGA中。
安全ISP的完整解決方案
能充分保障器件及其編程安全的完整解決方案必須能抗衡這些嚴峻的安全問題。這樣的解決方案必須包含如下要素:
* 安全的基礎構架。Flash FPGA具非揮發(fā)性、上電即行和單芯片等特性,在芯片上擁有一切所需的非揮發(fā)性內(nèi)存,在鎖定后也很安全。
* AES (先進加密系統(tǒng)) 技術。必須采用先進的加密技術確保編程位流的安全傳輸。
* 信息驗證代碼 (MAC)。必須在安全位流傳輸中采用MAC驗證來確保信息在傳輸時沒被更改。
* 非揮發(fā)性內(nèi)存/FlashROM (FROM)。FPGA板上的非揮發(fā)性FROM寄存器可存儲鍵和標識,以實現(xiàn)安全ISP的控制和序列化處理。
AES加密系統(tǒng)
先進加密系統(tǒng) (AES) - 美國聯(lián)邦信息處理標準197 (AES-FIPS 197) 是美國國家標準技術研究院 (NIST) 最新頒布的加密標準。AES算法能夠使用128、192和256位的加密鍵來實現(xiàn)128位數(shù)據(jù)塊的加密和解密,從而保護電子數(shù)據(jù)。AES算法替代了原本安全性較低的DES和3DES算法。AES-128能在多達3.4 * 1038個獨特密碼鍵中任挑一個來加密位流。這樣,每秒能破解一百萬個加密鍵并可用于設計的精密黑客程序 (這已是非常高的并發(fā)算法能力了) 也需要1 * 1025年(即千萬個萬億年) 才能找到AES-128生成的那個加密鍵。
信息驗證代碼 (MAC) 的目的是檢測位流在傳輸過程中有否被更改。如果更改并非惡意,如由傳輸出現(xiàn)的一些問題引起,接收端可以檢測得到并請求重新傳送。如果更改是惡意的,MAC檢測出的改變將拒絕由攻擊者更改的信息被接受。從概念上講,這系統(tǒng)頗為簡單。發(fā)送端和接收端共享一個加密鍵。接收端利用共享的加密鍵計算接收信息的MAC。如果計算出來的MAC與接收到的MAC不匹配,說明信息在傳輸過程中被更改。系統(tǒng)軟件于是會拒絕該位流并請求重新傳輸。
FROM
FlashROM (FROM) 是安全ISP解決方案的一個關鍵組件。作為非揮發(fā)性板級數(shù)據(jù)存儲器,F(xiàn)ROM存儲著諸如加密鍵和獨特設備標識之類的寶貴資源。FPGA通常采用的構架,是讓FROM和FPGA結(jié)構能獨立地進行編程,容許FROM在毋須更改FPGA核心結(jié)構的情況下也可以更新。為了保證FROM內(nèi)容的安全性, FROM只允許采用JTAG編程;并不能通過內(nèi)核來更新。但是為支持某些應用,尤其是依賴于獨特器件標識 (序列化) 的應用,F(xiàn)PGA內(nèi)核應當能讀取FROM的內(nèi)容。
圖1 安全ISP的完整解決方案
采用適當?shù)呐渲弥С?,并結(jié)合基本的編程功能如自動增量和自動減量,F(xiàn)ROM和AES的使用就能支持許多涉及設備序列化的應用,即是支持獨的設備標識。目的是為了更方便地管理大量器件的FROM內(nèi)容。序列化支持在面對下述功能和應用領域時尤其有用:
* 資產(chǎn)管理跟蹤
* 日期和時間戳
* 互聯(lián)網(wǎng)協(xié)議尋址
* 庫存控制
* 基于認購方式的經(jīng)營模式
* 系統(tǒng)校準設置
* 版本管理
真實環(huán)境下的安全ISP
FPGA產(chǎn)品在過去20多年來獲得巨大成功,因為能提供配合客戶所需的生產(chǎn)力和成本優(yōu)勢。這些優(yōu)勢主要分為三大類別,并被認為是更改系統(tǒng)設計或配置變得越來越困難及執(zhí)行也日益昂貴的關鍵階段:
* 在設計接近完成或設計完成并進入組裝的設計工程階段,出現(xiàn)了后來突發(fā)的系統(tǒng)變更需求,或出于制造考慮的變更需求。
* 在次級承包商的據(jù)點,F(xiàn)PGA正進行編程,而系統(tǒng)經(jīng)已組裝、測試及付運至終端用戶,又或分銷商在交貨前必需對系統(tǒng)進行定制的現(xiàn)場。
* 在客戶的應用現(xiàn)場或其它遠程現(xiàn)場,需要按最終客戶的要求變更系統(tǒng),添加所需功能或更新系統(tǒng)參數(shù)。
ISP安全架構的三個級別分別對應了這三個階段:
例1:工廠/可信賴環(huán)境。這是最簡單的選項,器件的編程在可信賴的環(huán)境中進行 (通常是客戶的“工廠”),也是系統(tǒng)設計完成的地方。在這種情況下,并不需要加密。這是保護設計的安全方法,因為設計的編程文檔不會離開這個可信賴的環(huán)境。當OEM廠商不能進行編程時,編程服務通常由FPGA制造商(“IHP”) 提供,也就是向OEM廠商提供另一個安全的可信賴環(huán)境。
圖2 真實環(huán)境下的ISP
例2:合約制造。為了減少制造成本,器件編程一般都不會在實施設計的地方進行。海外編程中心和合約制造商是這個情況的一些例子。在這種情況下,AES加密鍵最先由OEM廠 (可信賴的環(huán)境) 內(nèi)部進行編程。最后的編程則連同AES加密編程檔案在工廠以外“不可信賴”的地點進行。過建的情況不會在這里出現(xiàn),因為合約制造商在市場上購買的任何額外部件由于沒有裝載適當?shù)腁ES加密鍵,因此都無法使用,也不能用AES加密編程檔案進行編程。
例3:現(xiàn)場“訂購”升級。為了提供最高的靈活性,最終用戶必須能在應用現(xiàn)場享用ISP功能。這即是說需要在“不可信賴”的地點來進行編程,包括在有線、互聯(lián)網(wǎng)、衛(wèi)星鏈路等公網(wǎng) (或私網(wǎng)) 的遠程現(xiàn)場據(jù)點進行消費產(chǎn)品/設備的重新配置。與上面的例子一樣,這也需要使用AES加密編程檔案。在這種情況下,當客戶要求系統(tǒng)升級時,在供應商據(jù)點的技術支持便會查詢設備的獨特器件標識,該標識已在可信賴的環(huán)境中安全地寫入FROM。器件的標識將由系統(tǒng)于遠程現(xiàn)場送回,并用來在“器件詞典”中查核對應的AES鍵。該加密鍵會被送到內(nèi)部程序中,根據(jù)所請求的功能取得適當?shù)木幊虣n案,然后利用該加密鍵生成加密位流。這樣器件就能利用加密編程后位流重新編程,并在MAC算法核對過收發(fā)雙方都擁有相同的加密鍵后進行。
明顯地,AES、MAC和FROM非揮性內(nèi)存的結(jié)合能組成安全的可編程解決方案,為系統(tǒng)設計人員及客戶提供重大優(yōu)勢。非揮發(fā)性以Flash為基礎的FPGA,例如Actel的ProASIC3/E系列器件,便能提供所有這些甚至更多功能。以Flash為基礎的FPGA提供高度安全和低成本的單芯片解決方案,并通過非揮發(fā)性Flash技術實現(xiàn)上電即行的功能。AES-128加密技術可在不安全的環(huán)境下進行安全ISP,而芯片上內(nèi)置的FROM可基于獨特的器件標識而實行多種嶄新應用。此外,以Flash為基礎器件能滿足實現(xiàn)安全ISP的所有要求,并主動地保護客戶的產(chǎn)品免受各種棘手的安全問題威脅,包括過建、盜取敏感的數(shù)據(jù)、篡改產(chǎn)品和黑客攻擊等。
評論