文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190190
中文引用格式: 劉敏,嚴迎建,南龍梅. 面向CGRCA配置比特流的硬件木馬攻擊防護方法[J].電子技術應用,2019,45(9):39-45.
英文引用格式: Liu Min,Yan Yingjian,Nan Longmei. A hardware Trojan attack protection method for CGRCA configuration bitstream[J]. Application of Electronic Technique,2019,45(9):39-45.
0 引言
粗粒度可重構陣列(CGRA)[1]兼具通用處理器(GPP)和專用集成電路(ASIC)的優勢,在計算機視覺、信號處理和密碼運算等數據密集型應用上,展現了強大的優勢和潛力[1-2]。近年來,基于CGRA的粗粒度可重構密碼陣列(CGRCA)[2]在密碼處理領域發展十分迅速。與傳統密碼芯片相比,CGRCA是專門面向密碼算法高速實現而設計的CGRA,具有可重構、并行度高和效率高的特點。隨著芯片產業全球化的不斷推進,CGRCA也遭受硬件木馬(Hardware Trojan Horse,HTH)[1,3-4]攻擊的潛在威脅。
硬件木馬是對硬件電路的惡意修改或添加以達成攻擊者的目的。CGRCA依賴配置流實現可重構[5],當前針對可重構設備配置流的硬件木馬檢測和防護技術,主要通過認證和編碼實現,大多集中在FPGA領域,難以直接移植應用于CGRCA。如文獻[1]面向CGRCA提出基于動態規劃的安全配置方案,側重于硬件木馬容忍,無法防護攻擊配置流的硬件木馬。文獻[6]提出一種基于軟錯誤容忍的編碼技術,以保護基于SRAM的配置存儲器,但難以防護惡意硬件木馬。文獻[7]、文獻[8]提出采用AES-GCM和AES-CMAC模式對FPGA配置流進行加密認證保護,但難以直接移植于CGRCA。
針對已有工作的不足,為了對CGRCA配置流進行保護,本文提出基于認證和加密安全引擎的硬件木馬攻擊防護方法。首先,綜合分析了CGRCA結構及其配置特點,總結了面向CGRCA未加密原始配置流的安全漏洞,并給出了可能的攻擊流程和植入方法。其次,針對該攻擊流程,本文提出了基于改進CCM安全引擎的硬件木馬防護措施,以軟硬結合的形式實現對配置流完整性和真實性的保護,并通過資源復用進一步優化了面積開銷。
1 CGRCA結構分析
1.1 CGRCA結構分析
CGRCA采用數據流加配置流驅動[2],主要由配置網絡、控制網絡和數據網絡三部分組成[9]。CGRCA的硬件結構如圖1所示。
如圖1所示,配置網絡由配置解析器和4個配置頁面組成,通過配置可重構物理資源,完成對數據網絡和控制網絡的重構。控制網絡經配置網絡配置后,產生數據網絡所需控制信號,以支持數據網絡的正確運算。數據網絡是CGRCA的主要運算部分,其核心是針對密碼運算設計的2D-mesh結構可重構處理單元陣列(Reconfigurable Processing Unit Array,RPUA)。數據網絡經配置網絡配置后,能夠組成特定密碼運算所需的結構,在控制網絡支持下,完成對數據的加解密操作。
1.2 CGRCA配置情況分析
下文以規模為8×8的CGRCA陣列為對象,分析其配置情況。單個規模8×8的陣列由4個規模4×4的小陣列組成,其中單個RPU為最小運算單元和最小配置單元。在具體配置時,陣列實際配置信息來自于陣列外部FIFO,其大小取決于具體映射的密碼算法。所有配置信息采用層次化存儲方式存儲在配置網絡中,其配置網絡分為三層,包括單元配置存儲UCM、局部配置存儲LCM和全局配置存儲GCM,如圖2所示。配置網絡中單元配置存儲UCM負責單個RPU單元單個配置頁面的配置信息寄存,每個RPU單元的配置信息由4個UCM共同負責。局部配置存儲LCM負責陣列的配置信息存儲,全局配置存儲GCM負責陣列的配置信息存儲和4個小陣列的共享存儲。具體配置比特文件由包頭和配置信息塊組成,其組織形式如圖3所示。
圖3中,包頭將配置信息分成不同的模塊。包頭包含配置信息塊的分發和轉移信息,配置信息塊則代表具體配置任務。CGRCA在配置時,首先,在配置端完成從算法DFG圖到配置比特流的轉換,接著通過JTAG端口將外部配置流文件傳輸到CGRCA的輸入FIFO,然后由CGRCA配置端口寫入CGRCA陣列存儲器內,最后,配置解析器解析配置流文件,通過不同單元配置信息的分發和轉移來完成配置。配置信息在分發和轉移時,都以1個配置頁面為最小單元,從而能實現單個RPU的單時鐘周期配置。
2 面向CGRCA配置流的硬件木馬攻擊威脅
2.1 面向CGRCA配置流的硬件木馬分類
面向配置流進行硬件木馬攻擊,通常通過不可信的EDA工具、不可信的傳輸信道或者不可信的使用者實施。其攻擊對象是CGRCA配置流,其主要手段是直接修改配置信息比特流文件。與FPGA配置流的硬件木馬[5]類似,根據硬件木馬電路與原始電路在CGRCA的占用資源是否重疊,可以分為資源相關型硬件木馬(RDH)和資源無關型硬件木馬(RIH)兩類。圖4為兩類硬件木馬的示意圖。
圖4(a)為未受到硬件木馬攻擊時,含有6個節點的原始DFG圖映射到陣列上的情況。資源相關型硬件木馬是指插入的硬件木馬電路與原始電路在CGRCA上占用的資源部分或者完全重疊。此時,硬件木馬電路與原始電路不獨立,而是以某種方式相互連接。如圖4(b)中,RDH型硬件木馬的觸發電路與節點C所在單元重合。資源無關型攻擊是指插入的硬件木馬電路與原始電路在CGRCA上占用的資源無重疊。資源無關型硬件木馬通常不會影響到原始電路功能,和原始電路功能彼此獨立。如圖4(c)中,RIH型硬件木馬電路的觸發單元和有效載荷均不與原始電路相連。考慮到CGRCA主要用于實現密碼算法,因此對攻擊者而言,其主要目的是竊取密鑰或者破壞原始電路邏輯功能。RIH型硬件木馬雖然插入簡單,但是不能破壞原始功能,無法完成上述攻擊目的。因此,本文側重討論資源相關型硬件木馬(RDH型)攻擊。
2.2 RDH型硬件木馬攻擊流程
RDH型硬件木馬插入較為復雜,需要攻擊者熟悉配置比特流與CGRCA架構連接之間的相關性。對于攻擊者而言,即便配置比特流是可獲得的,要成功實施RDH型攻擊,仍然存在兩個主要問題:首先,攻擊者必須熟悉配置比特流的結構;其次,必須在大量原始比特流中找到對應攻擊比特。現有可重構設備的比特流均采用專有文件格式[10],并沒有公開文獻分析比特流與硬件資源的對應關系。因此,即使攻擊者完全獲取到比特流,如何識別和攻擊未知設計中的關鍵部件也是巨大的挑戰。而通過分析CGRCA的結構特征可知,CGRCA中的關鍵加密部件包含密鑰處理單元RKB和非線性部件RSB。假設攻擊者掌握原始比特流中對應包頭信息,則針對特定的RKB和RSB進行攻擊是完全可行的。
為成功實施攻擊,攻擊者首先利用原始比特流文件,通過搜索應RKB對應包頭信息,找到原始陣列平臺中的密鑰處理單元配置流信息,然后通過修改關鍵數據流以針對性地插入硬件木馬,導致最終結果出錯。因此,硬件木馬攻擊的輸入為原始配置信息流文件和硬件木馬數據庫,關鍵步驟為特定資源搜索和比特流修改,其攻擊流程如圖5所示。
圖5中,Golden.bin文件表示與原始映射設計對應的二進制文件,HT.bin文件表示硬件木馬對應的二進制文件。硬件木馬修改程序首先采用資源搜索子程序識別出配置比特流中的關鍵資源,若找到關鍵資源,則順序搜索選定硬件木馬數據庫中的硬件木馬,再通過比特流修改子程序對原始文件進行修改,得到篡改比特流文件Modifiedgolden.bin。如果未找到特定資源或合適的硬件木馬,則退出程序不做修改。資源搜索子程序的目標是利用原始配置比特流識別出關鍵資源塊,比特流修改子程序的目標是利用硬件木馬數據庫修改關鍵資源數據流數據。
根據上述攻擊流程可知,無安全機制的保護時,配置比特流易遭受硬件木馬攻擊。攻擊者能成功實施攻擊的一個重要原因,在于Golden.bin文件和最終輸入的Modifiedgolden.bin文件之間不存在校驗機制,導致應用者不能保證最終配置流就是正確的配置流。
3 面向配置流的硬件木馬防護方法
為了使對手難以通過直接修改比特流來插入硬件木馬,防止配置流出現錯誤或被惡意篡改,可重構設備在配置時必須對配置比特流真實性和完整性進行保護。現有文獻主要有校驗[5,10]和認證[7-8]兩類方法,前者通常在比特流中添加校驗碼,采用的線性函數可以相對容易地偽造,且難以檢測惡意篡改[12]。后者的安全基礎是認證加密算法,不僅能對比特流進行加密和認證,同時能實現比特流信息防篡改,因此本文采用認證加密的方式。
3.1 標準CCM模式原理
早期認證加密主要存在三種模式[5]:加密后認證(Encrypt-Then-MAC,ETM),認證后加密(MAC-Then-Encrypt,MTE)以及加密并認證(MAC-And-Encrypt,MAE),但這些模式難以保證安全性。公鑰密碼(PKC)和哈希消息認證碼(HMAC)理論上適用于比特流認證和加密,但是其硬件成本較高[5],考慮到實現的安全性和硬件實現效率,本文采用國際標準化組織和 NIST收錄的CCM模式[13]進行加密認證。CCM加密認證分別采用計數模式(Counter,CTR)和CBC-MAC模式,均為前向反饋模式,因此其加解密函數相同,適用于資源受限、安全要求高的CGRCA應用場景。
標準CCM模式同時具有加密和認證的功能,是CTR加密模式和CBC_MAC認證模式的組合。下面對CCM模式下的部分變量進行定義。設輸入明文數據為長度為Plen的字符串P,采用格式化函數分塊以后的字符串表示為Bj(1≤j≤),密鑰為K,加密過程生成中間值為Si,其中i的取值范圍是[0,
],認證過程生成的中間值為Yj,其中j的取值范圍也是[0,
],最終加密得到密文數據為C,則基于CTR模式下的加密過程的定義式如式(1)所示:
式中,表示不小于實數x的最小整數,||代表拼接運算,MSBx(y)表示取y數的高x位,CTR(x)代表第x個計數塊,計數塊的值由隨機數Nounce和計數器共同決定,T是由CBC_MAC模式生成的認證碼。
基于CBC_MAC模式下的認證過程的定義式如式(2)所示:
由定義可知,在標準CCM模式下,加密和認證過程采用相同的密鑰,這導致在硬件實現時,一旦攻擊者獲取了密鑰,將導致所有密文和認證碼均失效。同時,標準CCM采用格式化函數統一處理數據,并對處理后的所有數據進行加密。而對于陣列配置文件而言,不同配置文件的數據量由實際算法確定,其采用包頭+數據的形式,若采用全部加密,數據量可能較大,導致加密時間過長,因此數據統一處理無法直接應用于陣列配置流的加密。
基于以上分析,本文提出的改進CCM安全機制對標準CCM模式進行如下調整:(1)加密和認證過程采用不同密鑰;(2)數據加密認證前,首先進行預處理,將包頭與數據分離,僅對數據部分進行加密認證。將調整后的認證加密過程嵌入到原始配置流程中。
3.2 改進CCM機制原理
為了實現對配置比特流文件的保護,防止其被篡改,改進CCM安全機制采用軟硬結合的方式,分別建立了基于加密認證的配置安全保護機制和基于解密驗證的硬件安全防護結構,其安全配置保護機制和硬件安全防護結構如圖6所示。
改進CCM安全機制首先在基于加密認證的配置安全保護下,通過軟件方式對生成的配置比特流進行部分加密并生成消息認證碼,保證配置流難以被篡改。其次,在配置比特流加載到配置端口前,采用基于驗證的硬件安全結構對其進行解密和認證,保證配置流的任何篡改都能被發現。
基于加密認證的配置安全保護流程在原始配置流程中添加了加密和認證的步驟,首先定義配置安全保護流程的先決條件和涉及參數。
先決條件:128位AES分組密碼算法;加密密鑰K1;認證密鑰K2;預處理函數f(x);格式化函數g(x);計數塊生成函數h(x);后處理函數p(x);生成認證碼長度Tlen。
輸入:隨機數N;長度為Plen的配置流數據P;
輸出:加密密文C;
具體步驟如下:
為了正確解密和驗證配置流文件,本文設計了圖6右側的基于解密驗證的硬件安全防護端,其中陰影部分為包含了兩個并行AES核以及一個異或非驗證門的硬件安全引擎。與軟件安全配置流程對應,安全雙引擎的兩個AES核采用不同的密鑰并行工作,一個核用于解密,一個核用于認證。其數據處理過程與加密認證過程相逆,此處不再贅述。
本方案中的加密步驟采用部分加密,即僅對配置流中的配置信息塊進行加密,相比于全部加密,其優勢在保持安全性的同時使得開銷更低。同時,加密和認證使用不同的密鑰,能夠避免漏洞,進一步保證系統的安全性。在實際操作過程中,操作者可以通過配置選擇信號選擇是否進行身份驗證,若不使用身份驗證,可以采用全0替換計算好的認證碼。
3.3 改進CCM硬件實現
本文提出的防護方法采用軟硬結合的方式,在安全配置流程的配合下,采用改進AES-CCM模式實現對配置流數據的加密認證。在硬件實現時,兩個采用前向反饋模式的AES核并行執行操作,極大減小數據處理時間,通過共享S盒查找表和密鑰生成模塊,進一步節省面積開銷。
改進CCM安全機制在實現時,兩個AES核并行工作,其中解密引擎CORE1以CTR模式工作的AES作為數據加密方式,對去掉包頭的信息塊進行解密。認證引擎CORE2以CBC-MAC模式工作的AES對去除MAC的數據部分進行認證,CTR和CBC_MAC并行工作原理如圖7所示。
為了保證CMAC認證過程和CTR解密過程是并行執行的,本文調整了解密塊數據生成的順序。首先通過認證塊B0和解密密文塊C1生成B1,再依次生成Bi(2≤i≤n-1),并生成驗證碼T。同時,通過CTR(0)生成S(0),與密文低Tlen位異或得到傳送過來的驗證碼,最后將傳送驗證碼與計算驗證碼進行異或驗證,得到驗證信號valid。具體時序如圖8所示。在生成CMAC時的具體硬件結構示意如圖9所示。
硬件實現時,為了提高加密和驗證的速度,基于CTR-CMAC模式的雙引擎架構使用4個32位AES實現128位AES運算進行解密和身份驗證。在使用CBC-MAC模式完成認證的同時,使用CTR模式執行解密過程,對于一組128位的數據至少需要12個時鐘周期才能完成解密和驗證工作。因此硬件安全引擎的最大吞吐量為:
其中,fmax為最大工作頻率,block為分組數據長度,T為分組處理時鐘周期數,吞吐量單位為Mb/s。
4 評估與驗證
為了對硬件木馬防護方法進行驗證和評估,本文以規模8×8的CGRCA陣列為目標電路進行仿真實驗。首先,采用C語言編程實現了2.2節中描述的硬件木馬可能攻擊流程,挑選典型密碼算法AES算法、SMS4算法和A5/1算法的無流水配置文件,作為Golden.bin文件。同時,分別設計如圖10、圖11示意的組合觸發功能修改型(C型)和時序觸發功能修改型(S型)硬件木馬,建立CGRCA硬件木馬數據庫,并面向CGRCA生成相應HT.bin文件。該數據庫包含20種硬件木馬,為便于結果檢測,均為功能修改型硬件木馬。表1列舉了硬件木馬數據庫部分信息。
為了對本文的設計方案進行驗證,采用C++在配置端實現了安全配置流程,并采用硬件描述語言Verilog HDL在CGRCA中搭建硬件雙安全引擎架構,按照攻擊流程對CGRCA配置流實施攻擊。為了驗證防護效果,將硬件木馬通過配置流分別插入到原始電路和防護電路中進行多次實驗,將防護前后的平均硬件木馬攻擊成功率RS、平均正確輸出比例APCO[1]作為指標進行對比,表2為待測電路防護前后的對比結果。
表2以插入硬件木馬的個數標識待測電路,如AES(CS5/5)指在原始電路上插入5個C型木馬和5個S型木馬。硬件木馬攻擊成功率RS為對配置流進行硬件木馬攻擊后,成功并實現邏輯功能修改的概率。正確輸出比例APCO是指錯誤輸出個數占總輸出個數的比例。表2的結果表明,在不同的待測電路上,插入不同種類和數量的硬件木馬后,防護后的電路均能有效降低硬件木馬攻擊成功率,并提高平均正確輸出比例。為了進一步評估防護方法的性能,將本文架構的硬件實現結果與現有文獻的加密驗證結構AES-CCM[16]、AES-GCM[7,17]、AES-SHA[7]進行對比,對比指標包括面積、頻率、吞吐率和效率,其中效率的計算方式為吞吐率與面積的比值,具體對比結果如表3所示。
從表3可以看出,本文所用硬件結構在綜合效率上優于文獻[7]、[16]和[17]中的結構,同時本文采用的結構能達到最高的吞吐率。在所選的三項指標上,本文與文獻[7]的GCM結構性能比較接近,但是本文在實現加密認證的同時,首次提出了將其應用于CGRCA配置流的硬件木馬防護。綜合來看,本文結構有較好的優越性。軟件安全配置流程保證了CGRCA配置流難以被篡改,雙安全引擎的構造可實現對配置流的解密和認證,分塊加密增加了硬件處理速度,共享AES加密核進一步減小了硬件面積開銷,提高了硬件結構的整體效率。
5 結論
隨著CGRA越來越多地應用于各領域,面向CGRA的安全防護至關重要。硬件木馬作為主要安全威脅之一,能對無校驗機制的CGRCA配置流實施攻擊。本文首先詳細分析了CGRCA的結構及其配置過程,得出了配置過程中可能的攻擊流程和攻擊方法。然后,針對這種可能的攻擊,提出了一種有效的硬件木馬防護方案,采用軟件上的安全配置流程,結合硬件上共享S盒的雙AES安全引擎,實現對配置流數據的完整性和真實性的保護。該防護方法效率高,面積開銷小,同時對現有配置過程影響較小,適合工程實踐。
參考文獻
[1] Liu Leibo,Zhou Zhuoquan,Wei Shaojun,et al.DRMaSV:enhanced capability against hardware trojans in coarse grained reconfigurable architectures[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2017,37(4):782-795.
[2] 李遠銘,嚴迎建,李偉.基于粗粒度可重構密碼陣列的AES算法映射實現[J].計算機應用與軟件,2018(3):304-308.
[3] XIAO K,FORTE D,JIN Y,et al.Hardware trojans:lessons learned after one decade of research[J].ACM Transactions on Design Automation of Electronic Systems,2016,22(1):1-23.
[4] AGRAWAL D,BAKTIR S,KARAKOYUNLU D,et al.Trojan detection using IC fingerprinting[C].IEEE Symposium on Security and Privacy.IEEE Computer Society,Berkeley,USA,2007:296-310.
[5] CHAKRABORTY R S,SAHA I,PALCHAUDHURI A,et al.Hardware trojan insertion by direct modification of FPGA configuration bitstream[J].IEEE Design & Test,2013,30(2):45-54.
[6] AHILAN A,DEEPA P.Modified decimal matrix codes in FPGA configuration memory for multiple bit upsets[C].IEEE International Conference on Computer Communication and Informatics,2015:1-5.
[7] HORI Y,KATASHITA T,SAKANE H,et al.Bitstream protection in dynamic partial reconfiguration systems using authenticated encryption[J].IEICE Transactions on Information & Systems,2013,E96-D(11):2333-2343.
[8] SAAR D.Security for volatile FPGAs[D].University of Cambridge,2009.
[9] 陳韜,羅興國,李校南,等.一種基于流處理框架的可重構分簇式分組密碼處理結構模型[J].電子與信息學報,2014,36(12):3027-3034.
[10] SWIERCZYNSKI P,FYRBIAK M,KOPPE P,et al.FPGA trojans through detecting and weakening of cryptographic primitives[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2015,34(8):1236-1249.
[11] Xilinx Inc.Virtex-II platform FPGA user guide(v2.2)[DB/OL].(2012-07-xx)[2019-02-25].http://www.xilinx.com/support/documentation/virtex-ii.htm.
[12] SALMANI H,TEHRANIPOOR M,KARRI R.On design vulnerability analysis and trust benchmark development[C].IEEE International Conference on Computer Design(ICCD),2013.
[13] DRIMER S.Authentication of FPGA bitstreams:why and how[C].International Conference on Reconfigurable Computing:Architectures,Tools and Applications.Springer-Verlag,2007:73-84.
[14] DWORKIN M.Recommendation for block cipher modes of operation:the CMAC mode for authentication[DB/OL].[2019-02-25].https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38b.pdf.
[15] PARELKAR M.Authenticated encryption in hardware[D].George Mason University,2005.
[16] ABDELLATIF K M,CHOTIN-AVOT R,MEHREZ H.Protecting FPGA bitstreams using authenticated encryption[C].IEEE International New Circuits and Systems Conference,2013:1-4.
[17] PHAN T T D,HOANG V P,DAO V L.An efficient FPGA implementation of AES-CCM authenticated encryption IP core[C].IEEE Information and Computer Science,2016:202-205.
作者信息:
劉 敏1,嚴迎建1,南龍梅1,2
(1.解放軍信息工程大學,河南 鄭州450001;2.復旦大學 專用集成電路與系統國家重點實驗室,上海200433)