文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.07.012
中文引用格式: 陳松濤,徐金甫,劉航天. 基于認(rèn)證加密的NoC安全防護(hù)研究[J].電子技術(shù)應(yīng)用,2016,42(7):50-52,56.
英文引用格式: Chen Songtao,Xu Jinfu,Liu Hangtian. NoC security reserch based on authenticated ancryption[J].Application of Electronic Technique,2016,42(7):50-52,56.
0 引言
隨著芯片集成度越來越高,基于傳統(tǒng)共享總線架構(gòu)的片上系統(tǒng)(System on Chip,SoC)已經(jīng)不能滿足日益復(fù)雜的應(yīng)用對(duì)高帶寬的需求,并且規(guī)模擴(kuò)展也出現(xiàn)了瓶頸[1-2]。為了有效解決片上系統(tǒng)規(guī)模擴(kuò)展帶來的問題,基于片上網(wǎng)絡(luò)(Network on Chip,NoC)的通信架構(gòu)被提了出來。
片上網(wǎng)絡(luò)是指由路由器按照一定的拓?fù)浣Y(jié)構(gòu)進(jìn)行互連形成的數(shù)據(jù)通信網(wǎng)絡(luò),它是一種間接互連方式,采用與計(jì)算機(jī)網(wǎng)絡(luò)類似的數(shù)據(jù)包路由方式。相比于傳統(tǒng)的片上共享總線通信技術(shù),NoC具有許多明顯的優(yōu)勢(shì):可擴(kuò)展性好、通信效率高、低功耗、規(guī)則性好。
然而,NoC這種通信架構(gòu)帶來優(yōu)點(diǎn)的同時(shí),也存在相應(yīng)的易攻擊性,給潛在的攻擊者提供了機(jī)會(huì)。目前對(duì)于NoC的研究主要集中于拓?fù)浣Y(jié)構(gòu)、映射算法、路由算法,對(duì)其安全性的研究相對(duì)來說較少?;贜oC的片上系統(tǒng)可能面臨的安全威脅包括拒絕服務(wù)攻擊DoS、竊取秘密信息和修改與安全相關(guān)的系統(tǒng)行為和配置。當(dāng)NoC上的IP核執(zhí)行應(yīng)用任務(wù)時(shí),它們之間有時(shí)需要交換敏感信息,攻擊者可能利用軟件攻擊或者探針攻擊的手段竊取敏感信息[3-4]。本文通過在網(wǎng)絡(luò)接口上增加相應(yīng)的安全模塊,對(duì)攜帶有敏感信息的數(shù)據(jù)包進(jìn)行認(rèn)證加密,利用GCM(Galois/Counter Mode)算法對(duì)數(shù)據(jù)包包頭認(rèn)證處理生成認(rèn)證標(biāo)簽、對(duì)數(shù)據(jù)包數(shù)據(jù)部分進(jìn)行加密處理生成密文,從而保護(hù)NoC敏感數(shù)據(jù)的機(jī)密性和完整性。
1 NoC安全防護(hù)
1.1 認(rèn)證加密方案
為了提高運(yùn)行速度,片上系統(tǒng)把應(yīng)用任務(wù)分布在多個(gè)計(jì)算資源上執(zhí)行。然而,這個(gè)技術(shù)要求不同的IP核相互作用。一些帶有敏感信息的應(yīng)用程序需要通過NoC交換數(shù)據(jù),因此,不同IP核之間的通信需要保持機(jī)密性。
方案的設(shè)計(jì)流程如圖1所示,安全域指的是為保護(hù)不同安全需求的信息與信息載體,將系統(tǒng)中具有相同安全需求的可信或不可信部分劃分成不同的安全區(qū)域。把安全域應(yīng)用到NoC上,就可以把執(zhí)行同一應(yīng)用任務(wù)的幾個(gè)IP核劃分在相同的安全域下。安全域劃分完成以后,安全域內(nèi)的IP核之間需要協(xié)商密鑰,密鑰的協(xié)商采用Diffie-Hellman組密鑰交換協(xié)議[5,7]。敏感數(shù)據(jù)傳輸之前,利用協(xié)商好的密鑰,對(duì)數(shù)據(jù)進(jìn)行加密認(rèn)證,從而保證數(shù)據(jù)的機(jī)密性和完整性傳輸。
認(rèn)證加密(Authenticated Encryption,AE)可以同時(shí)為NoC通信提供機(jī)密性和完整性[6,8],AE的一個(gè)重要優(yōu)點(diǎn)是能夠?yàn)榘^信息提供認(rèn)證。一般來說,包頭信息在數(shù)據(jù)包傳輸過程中不會(huì)改變。包頭是以明文的方式發(fā)送的,用它可以產(chǎn)生認(rèn)證標(biāo)簽。在發(fā)送方,認(rèn)證加密模塊加密數(shù)據(jù)明文和認(rèn)證包頭信息,輸出是密文和一個(gè)認(rèn)證標(biāo)簽。在接收方,認(rèn)證加密模塊將會(huì)處理密文和包頭信息,輸出是明文和一個(gè)認(rèn)證標(biāo)簽。然后接收方比較這兩個(gè)認(rèn)證標(biāo)簽,并且只有這兩個(gè)標(biāo)簽相同時(shí),它才會(huì)接收解密后的明文。在本文的方案里,采用GCM實(shí)現(xiàn)認(rèn)證加密功能。
1.2 安全NoC結(jié)構(gòu)
圖2所示是安全NoC的結(jié)構(gòu)圖,其中網(wǎng)絡(luò)安全管理員NSM(Network Security Manager)是嵌入在安全I(xiàn)P核內(nèi)一個(gè)輕量級(jí)的軟件任務(wù),負(fù)責(zé)安全域的建立以及密鑰的協(xié)商。當(dāng)出現(xiàn)以下情況時(shí),安全域應(yīng)該被修改。
(1)一個(gè)新的應(yīng)用任務(wù)被映射到系統(tǒng)上;
(2)一個(gè)任務(wù)映射到的IP核發(fā)生了變化;
(3)NoC處在特殊的操作條件下,例如受到了攻擊。
安全網(wǎng)絡(luò)接口(Security Network Interface,SNI)嵌入了硬件安全模塊,安全模塊能夠計(jì)算生成協(xié)商密鑰和對(duì)數(shù)據(jù)進(jìn)行加密認(rèn)證。當(dāng)安全域被修改時(shí),密鑰也要被重新協(xié)商。Diffie-Hellman協(xié)議是基于公鑰密碼技術(shù)的密鑰交換協(xié)議[7],安全域內(nèi)多個(gè)IP核之間的組密鑰協(xié)商可以通過它實(shí)現(xiàn)。
2 認(rèn)證加密設(shè)計(jì)與實(shí)現(xiàn)
2.1 安全網(wǎng)絡(luò)接口
方案用到的數(shù)據(jù)包格式如圖3所示,包頭信息包括了狀態(tài)位、明文/密文位、源地址和目標(biāo)地址,這些信息在數(shù)據(jù)包傳輸?shù)倪^程中不會(huì)改變。源IP核要發(fā)送的信息在數(shù)據(jù)位,數(shù)據(jù)包的最后是認(rèn)證標(biāo)簽。
安全網(wǎng)絡(luò)接口SNI可以實(shí)現(xiàn)通信功能和安全功能,它的結(jié)構(gòu)如圖4所示。對(duì)于通信功能,安全網(wǎng)絡(luò)接口負(fù)責(zé)數(shù)據(jù)包的處理,這能夠通過打包/解包模塊實(shí)現(xiàn)。對(duì)于安全功能,網(wǎng)絡(luò)安全接口實(shí)現(xiàn)的安全服務(wù)包括了認(rèn)證和加密。認(rèn)證保證了數(shù)據(jù)包的完整性,接收方通過比較接收到的標(biāo)志位是否與自己計(jì)算得出的進(jìn)行比較,判斷數(shù)據(jù)是否被修改。加密使數(shù)據(jù)以密文的方式傳輸,保證了數(shù)據(jù)的機(jī)密性。認(rèn)證和加密是通過認(rèn)證加密模塊和密鑰處理模塊實(shí)現(xiàn)的,密鑰處理模塊負(fù)責(zé)密鑰的協(xié)商,認(rèn)證加密模塊完成認(rèn)證和加密操作。
2.2 密鑰協(xié)商
Diffie-Hellman組密鑰協(xié)商協(xié)議可以使安全域內(nèi)的IP核共享相同的秘密密鑰,相比于使用固定密鑰通信帶來的安全隱患[8],密鑰交換有利于增強(qiáng)通信的安全性。同時(shí),使用Diffie-Hellman協(xié)商密鑰有助于保證密鑰Kg的安全,這是因?yàn)榘踩騼?nèi)的IP核之間只交換中間生成的密鑰ci,而最后生成的密鑰Kg沒有在網(wǎng)絡(luò)上傳輸。
每次當(dāng)前安全域需要改變時(shí),Diffie-Hellman協(xié)議也要被執(zhí)行。假設(shè)有一個(gè)應(yīng)用A,它是由任務(wù)T1和T2組成,分別被映射到IPa和IPb上。任務(wù)T1和T2必須交換敏感數(shù)據(jù),因此它們需要機(jī)密性安全服務(wù)。網(wǎng)絡(luò)安全管理員NSM為了滿足應(yīng)用A的安全需求,一個(gè)新的安全域必須建立起來。
安全管理員NSM、IPa和IPc分別通過安全網(wǎng)絡(luò)接口SMI、SNIa和SNIc連接到NoC上。如圖5所示,密鑰協(xié)商一共有6步。第一步,安全管理員給SNIa和SNIc發(fā)送一個(gè)控制數(shù)據(jù)包。第二步,每個(gè)SNI用它自己私有的數(shù)字(sa和sc)得到一個(gè)局部密鑰ci,ci=gs mod p。第三步,當(dāng)獲得局部密鑰ca和cc后,把它們發(fā)送給安全域內(nèi)的其他成員,ca被發(fā)送給SNIc,cc被發(fā)送給SNIa。第四步,局部密鑰被接收后,SI可以計(jì)算得到組密鑰kg。第五步,當(dāng)SI得到組密鑰kg,它就通知NSM。第六步,當(dāng)NSM接收到所有安全成員SNIa和SNIc的通知后,NSM釋放通信。SNIa和SNIc得到的密鑰kg,可以用來對(duì)稱加密數(shù)據(jù)。
2.3 GCM認(rèn)證加密
GCM是一種在二元Galois域使用泛散列函數(shù)提供加密認(rèn)證的分組密碼算法,它可以用一個(gè)簡(jiǎn)單的密鑰產(chǎn)生密文和消息摘要。由于其采用CTR模式實(shí)現(xiàn)加密,采用Galois域的泛HASH函數(shù)進(jìn)行認(rèn)證,其硬件實(shí)現(xiàn)上具有低成本、低延時(shí)和高速率的特點(diǎn)。GCM算法包括AES和GHASH,AES可以用來加密數(shù)據(jù),GHASH可以為附加認(rèn)證數(shù)據(jù)提供認(rèn)證。
GCM的硬件實(shí)現(xiàn)結(jié)構(gòu)如圖6所示。為了實(shí)現(xiàn)這個(gè)結(jié)構(gòu),采用128 bit的AES加密模塊。數(shù)據(jù)包中的每個(gè)數(shù)據(jù)也是128 bit,并且數(shù)據(jù)的個(gè)數(shù)是固定的。認(rèn)證標(biāo)簽也被固定在128 bit,這可以提供更好的安全性。在GCM中,128 bit的AES加密模塊可以同時(shí)實(shí)現(xiàn)加解密功能。數(shù)據(jù)包頭中的源地址、目標(biāo)地址等信息在傳輸過程是不變的,因此可以用來生成認(rèn)證標(biāo)簽。這個(gè)結(jié)構(gòu)的一個(gè)優(yōu)點(diǎn)是加解密操作是并行執(zhí)行的,所以當(dāng)數(shù)據(jù)包中的第一個(gè)數(shù)據(jù)加密或解密后,就可以得到密文或明文。當(dāng)加密或解密完成數(shù)據(jù)后,將會(huì)得到認(rèn)證標(biāo)簽。安全網(wǎng)絡(luò)接口SNI加密完成數(shù)據(jù)包中的數(shù)據(jù),并把認(rèn)證標(biāo)簽添加到數(shù)據(jù)包的最后,然后才把數(shù)據(jù)包發(fā)送給路由進(jìn)行傳輸。數(shù)據(jù)包到達(dá)它的目標(biāo)地址后,將會(huì)被GCM認(rèn)證加密模塊處理。接收方的安全網(wǎng)絡(luò)接口解密每個(gè)數(shù)據(jù)并最終產(chǎn)生一個(gè)認(rèn)證標(biāo)簽。兩個(gè)認(rèn)證標(biāo)簽比較之后,安全網(wǎng)絡(luò)接口SNI將會(huì)發(fā)送一個(gè)認(rèn)證狀態(tài)信息給IP核,依據(jù)這個(gè)信息,IP核將會(huì)決定接收還是拒絕這個(gè)數(shù)據(jù)包。
3 實(shí)驗(yàn)結(jié)果
為了綜合評(píng)估該方案對(duì)性能的影響和資源消耗,本文在NoCem(Network on Chip emulator)平臺(tái)上實(shí)現(xiàn)整體方案。NoCem是一個(gè)基于VHDL語(yǔ)言的NoC開源仿真環(huán)境,它的數(shù)據(jù)位寬、拓?fù)浣Y(jié)構(gòu)虛擬通信的數(shù)量都是可配的。圖7所示為帶安全防護(hù)的NoC與一般的NoC數(shù)據(jù)包傳輸時(shí)間的對(duì)比??梢钥闯?,安全NoC傳輸數(shù)據(jù)包時(shí)額外增加的延時(shí)較少,安全模塊對(duì)系統(tǒng)性能的影響很小。
用Xilinx ISE14.2綜合工具對(duì)各硬件模塊進(jìn)行了綜合,目標(biāo)器件是Virtex-6。安全模塊消耗的資源與整個(gè)NoC消耗的資源對(duì)比情況如表1所示。從綜合結(jié)果可知,增加安全模塊并沒有造成明顯的資源開銷。
4 結(jié)束語(yǔ)
本文采用GCM認(rèn)證加密算法對(duì)NoC傳輸?shù)拿舾袛?shù)據(jù)進(jìn)行保護(hù),保證數(shù)據(jù)的機(jī)密性和完整性。并且相比于已有使用固定的密鑰加密的方案[9],本文采用Diffie-Hellman密鑰交換協(xié)議有助于增強(qiáng)加密的安全性。仿真綜合結(jié)果表明,在不對(duì)性能和面積造成明顯影響的情況下,本文提出的方案有效提高了NoC的安全防護(hù)能力。由于認(rèn)證加密會(huì)不可避免地增加了延時(shí),為了進(jìn)一步優(yōu)化性能,未來工作將研究如何優(yōu)化認(rèn)證加密算法,盡可能提高NoC的帶寬。
參考文獻(xiàn)
[1] 李輝楷.基于片上網(wǎng)絡(luò)架構(gòu)的安全存儲(chǔ)系統(tǒng)研究[D].上海:復(fù)旦大學(xué),2012.
[2] FIORIN L,SILVANO C,SAMI M.Security aspects in networks-on-chips: Overview and proposals for secure implementations[C].Digital System Design Architectures,Methods and Tools,2007.DSD 2007.10th Euromicro Conference on.IEEE,2007:539-542.
[3] 李輝楷,韓軍,張隨欲,等.安全的NoC系統(tǒng)的VLSI設(shè)計(jì)[C].中國(guó)電子學(xué)會(huì)電路與系統(tǒng)學(xué)會(huì)第二十二屆年會(huì).2010.
[4] PAPASTEFANAKIS E,MAITRE B,RAGOT D.Security challenges in manycore embedded systems based on Networks-on-Chip(NoCs)[C].Proceedings of the WESS'15:Workshop on Embedded Systems Security.ACM,2015:10.
[5] SEPULVEDA J,F(xiàn)LOREZ D,GOGNIAT G.Reconfigurable security architecture for disrupted protection zones in NoC-based MPSoCs[C].Reconfigurable Communication-centric Systems-on-Chip(ReCoSoC),2015 10th International Symposium on.IEEE,2015:1-8.
[6] 屈善新.基于FPGA的GCM加密認(rèn)證算法的研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2010.
[7] SEPLVEDA J,F(xiàn)L?魷REZ D,GOGNIAT G.Reconfigurable group-wise security architecture for NoC-based MPSoCs protection[C].Proceedings of the 28th Symposium on Integrated Circuits and Systems Design.ACM,2015:26.
[8] SAJEESH K,KAPOOR H K.An authenticated encryption based security framework for NoC architectures[C].Electronic System Design(ISED),2011 International Symposium on.IEEE,2011:134-139.
[9] KAPOOR H K,RAO G B,ARSHI S,et al.A security framework for noc using authenticated encryption and session keys[J].Circuits,Systems,and Signal Processing,2013,32(6):2605-2622.