蔡路亭,徐金甫,張立朝
(解放軍信息工程大學(xué),河南 鄭州450004)
嵌入式系統(tǒng)的高效性及其存儲數(shù)據(jù)的機密性、完整性缺一不可。目前,對片外存儲器的安全防護研究有Execute-Only Memory(XOM)[1]、PE-ICE/TEC-tree[2,3]、AESTAC[4]等技術(shù)。以上方案對數(shù)據(jù)的安全性提供一定保障的同時,也都存在不同的缺陷。比如TEC-tree的性能過低,XOM 和AES-TAC無法保障系統(tǒng)的完整性。AES-TAC 安全防護方案中為保障數(shù)據(jù)加密的效率,引入了AESOTP[5]。AES-OTP將AES分組加密后的數(shù)據(jù)充當序列加密運算的密鑰流對明文進行加密處理。該方案將時間戳參數(shù)(TS)、訪問尋址參數(shù)(address)和填充參數(shù)(pad)組合成128比特AES輸入?yún)?shù),AES計算獲得一組加密密鑰。
AES-TAC具有很好的安全防護性能,并且執(zhí)行效率極高,但是不提供完整性安全防護功能。如果存儲器中的數(shù)據(jù)被篡改或被重置,系統(tǒng)將無法解密出正確的數(shù)據(jù)。假如系統(tǒng)無法識別錯誤數(shù)據(jù),也無法提出警報,并強行使用錯誤數(shù)據(jù),將導(dǎo)致不可預(yù)知的后果。因此必須增加完整性安全防護功能,識別上述攻擊,使系統(tǒng)一旦發(fā)現(xiàn)存在上述攻擊,則及時停止運行。Romain Vaslin對AES-TAC 方案進行了改進[6],增加了循環(huán)冗余校驗碼(CRC)校驗機制,對每組數(shù)據(jù)進行CRC計算,生成一組校驗碼,并保存在片內(nèi)專用存儲器中。其優(yōu)點在于CRC 并行化計算效率極高,不足的是CRC基于線性編碼理論,只對數(shù)據(jù)進行奇偶校驗,自身不帶密鑰,校驗?zāi)芰τ邢蕖?/p>
本文提出一種基于AES-TAC 的擴展安全防護方案(AES-TAC/iHASH),在原有功能基礎(chǔ)上增加了完整性校驗功能,能高效識別出篡改后的數(shù)據(jù),解決了嵌入式系統(tǒng)的高效性和安全性問題。
嵌入式系統(tǒng)的安全防護功能不僅要確保系統(tǒng)能抵抗各種攻擊(重放攻擊、碰撞攻擊、重置攻擊、欺騙攻擊等),同時還必須保障系統(tǒng)的運行性能。因此完整性校驗算法必須同時具備安全性和高效性。完整性校驗通常使用標準哈希算法(如MD5、SHA-1、SHA-2等),但是其運算流程較復(fù)雜,效率太低。針對標準哈希算法的上述問題,在此引入增量哈希算法[7]。
多元集合增量哈希算法iHASH(incremental multiset hash functions),是基于偽隨機哈希算法群的擴展算法,能對哈希值構(gòu)成的多元集合進一步執(zhí)行摘要提取,即二次哈希運算。增量哈希算法具有集合的抗碰撞性、高效性和極高的安全性(帶有密鑰)。增量哈希算法的基本定義如下所示
其中隨機選取r←B,r 已知且固定不變。元素b∈B 在M中出現(xiàn)的次數(shù)記為Mb,即元素b在M 中的重數(shù)。HK:{0,1}m+1→是從偽隨機哈希函數(shù)群中隨機選擇的哈希算法。
因為定義中K(M)的哈希值Hk(1,b)總和作為運算中間變量,不可能被攻擊者獲得,因此可以將多項式HK(0,r)從公式中移除。可將式(2)進一步簡化,如式(3)所示
此時經(jīng)過化簡的增量哈希算法非常適宜工程實現(xiàn)。但是偽隨機哈希算法Hk仍然對增量哈希算法的實現(xiàn)及應(yīng)用帶來了很強的限制性,實現(xiàn)Hk需要消耗大量的面積,損失系統(tǒng)的高效性。
通過上述分析可以發(fā)現(xiàn),增量哈希算法能對哈希數(shù)集合執(zhí)行進一步摘要提取計算,從集合中提取出標簽值。運算的安全性非常強,且效率很高。但是哈希數(shù)集合的生成較為復(fù)雜,需要對該算法做進一步的優(yōu)化。
根據(jù)第1節(jié)的分析,在此提出一種將AES-TAC 安全防護技術(shù)和增量哈希算法相結(jié)合的方案[8-11],如圖1所示。其中圖1(a)為系統(tǒng)寫流程,圖1(b)為系統(tǒng)讀流程。
圖1 AES-TAC/iHASH 安全防護方案
本方案在原有AES-TAC 防護流程中增加了完整性校驗步驟。AES-TAC方案中,CPU 生成讀(寫)指令后,安全模塊根據(jù)訪問地址從時間戳中讀取時間參數(shù)TS。結(jié)合讀(寫)訪問地址及填充數(shù)據(jù),生成128比特AES輸入?yún)?shù)并進行分組加密運算。再將加密后的數(shù)據(jù)充當密鑰流與總線讀寫數(shù)據(jù)進行異或,實現(xiàn)數(shù)據(jù)的加密存儲。本方案把加密后的數(shù)據(jù)送入增量哈希算法硬件模塊中,生成完整性校驗標簽值。系統(tǒng)寫操作流程如圖1(a)所示,系統(tǒng)使用加密數(shù)據(jù)生成相應(yīng)的標簽值,并存入片外存儲器。系統(tǒng)讀操作流程如圖1(b)所示,系統(tǒng)根據(jù)讀取的加密數(shù)據(jù),重新生成標簽,并與片外存儲器中保存的標簽相比較。如果兩個標簽值相等則校驗通過,將數(shù)據(jù)送入總線;如果不相等則校驗失敗。
下文將針對算法擴展部分的可行性及安全性做出說明。分析式(1)可知,算法實例化的限制條件為:
強無碰撞性:不存在(x,y)滿足H(y)=H(x)且y≠x,不同類型的增量哈希算法分別具有標準集合抗碰撞性和多元集合抗碰撞性。
單向不可逆性:對于任意的h,無法找到x 滿足H(x)=h,使攻擊者獲知非安全存儲區(qū)域內(nèi)數(shù)據(jù)后不能逆推出原始數(shù)據(jù)。
弱無碰撞性:無法偽造標簽(無法偽造第二原像)。
結(jié)合AES-OTP加密算法,考慮是否可以使用加密后的數(shù)據(jù)替代增量哈希算法中要求的哈希值,以充分利用現(xiàn)有密碼運算資源,更加高效地實現(xiàn)完整性校驗算法。針對上述限制條件的可行性分析如下:
AES分組密碼算法有混亂原則和擴散原則,保證了不同的輸入加密后獲得的密文相關(guān)性極弱,所構(gòu)成的密文集合滿足隨機數(shù)的特性。序列密碼運算流程為:E:ci=di⊕mi,其中mi為明文,di為密鑰流,異或獲得密文ci。只要di滿足隨機性特性,則密文ci就滿足隨機性特性。因此異或加密的數(shù)據(jù)集合符合增量哈希算法中集合的定義。滿足限制條件(1)。
在AES算法密鑰及時間戳安全存儲的前提下,攻擊者無法獲得完整的AES輸入值及密鑰,因此無法獲得密鑰流(AES輸出)。根據(jù)序列密碼算法原則,密鑰流安全的前提下,加密過程安全。攻擊者無法通過大量密文攻擊出密碼參數(shù),更無法功過密文h偽造出明文x。滿足限制條件(2)。
因為增量哈希算法基于AES-OTP 加密后的數(shù)據(jù),哈希值再經(jīng)AES-OTP 加密后存儲在片外,因此攻擊者必須同時獲得AES-OTP密碼參數(shù)和iHASH 初始化向量才能偽造增量哈希算法值。而所有密碼運算單元及參數(shù)都保存在片內(nèi)安全存儲區(qū)域中,因此攻擊者無法偽造標簽。滿足限制條件(3)。
綜上所述,將AES-TAC加密流程和iHASH 算法相結(jié)合(簡稱AES-TAC/iHASH),滿足增量哈希算法的限制條件。結(jié)合后的算法不僅保留了原有的加密功能,而且能安全高效地實現(xiàn)完整性校驗功能。
為了實現(xiàn)第2節(jié)提出的安全防護方案,硬件結(jié)構(gòu)應(yīng)包括數(shù)據(jù)輸入緩存、數(shù)據(jù)輸出緩存、標簽緩存、加(解)密單元、iHASH 引擎、校驗?zāi)K、傳輸控制單元和狀態(tài)機控制器。方案的硬件結(jié)構(gòu)如圖2所示。
圖2 AES-TAC/iHASH 硬件結(jié)構(gòu)
時間戳專用存儲器采用片內(nèi)RAM 實現(xiàn),根密鑰AESkey和填充數(shù)據(jù)Pad保存在片內(nèi)EFlash中,系統(tǒng)啟動時對AES-core初始化。AES-core及iHASH 用硬件模塊實現(xiàn),并編寫專用控制器實現(xiàn)控制。
為盡量減少片內(nèi)安全存儲資源的消耗,將生成的標簽經(jīng)加密后存儲在片外非安全存儲區(qū)域。兩個數(shù)據(jù)緩存分別存儲非密數(shù)據(jù)和加密后的數(shù)據(jù)。
式(3)中,使用模n加的形式進行運算,n可以根據(jù)需要取值。任意模n加運算的硬件電路實現(xiàn)較為復(fù)雜。假設(shè)n=2m,則可以通過高位舍去的方式實現(xiàn),相對較簡單。但是進位仍然可能構(gòu)成影響效率的關(guān)鍵路徑。
式(3)的多項式之間基于模n加運算。取n=2,則條件中的多元集合M 重數(shù)小于2,意味著M 為標準集合,也即推導(dǎo)出其具有標準集合抗碰撞性的哈希算法Mset-XORHash。而且顯然逐位模2加既是異或操作,“XOR ⊕”。算法的定義也作相應(yīng)變化,如式(4)所示
經(jīng)簡化后為
哈希算法Hk(1,b)計算而得的哈希值點乘重數(shù),再與其它多項式異或。在執(zhí)行異或操作前加入初始化向量,增加算法的安全性。
iHASH 引擎的硬件結(jié)構(gòu)如圖3 所示。iHASH 引擎包括輸入單元、輸出寄存器、密鑰管理單元、置換網(wǎng)絡(luò)、路由算法單元及控制狀態(tài)機等。輸入輸出數(shù)據(jù)位寬可根據(jù)需求進行擴展。用戶可事先對密鑰管理單元進行配置,每次運算前密鑰管理單元對引擎進行初始化。路由算法單元可根據(jù)用戶配置自動生成置換網(wǎng)絡(luò)參數(shù),配置后的置換網(wǎng)絡(luò)將完成運算中的移位、置換操作。狀態(tài)機控制器完成整體控制工作。
圖3 iHASH 引擎硬件結(jié)構(gòu)
iHASH 引擎執(zhí)行哈希運算前首先通過密鑰進行初始化,再將需要參與哈希運算的數(shù)據(jù)(n比特位寬)輸入運算單元展開運算。通過路由算法配置的置換網(wǎng)絡(luò)完成移位置換。運算完成后的校驗碼通過數(shù)據(jù)輸出寄存器輸出。
通過先校驗再讀寫的原則,可以防范重放攻擊等多種針對片外存儲器的攻擊。如果所需數(shù)據(jù)(或需要寫入的數(shù)據(jù)組)在緩存中,可以取消校驗的步驟,直接進行讀寫。
AES-TAC/iHASH 讀寫操作流程如圖4所示。讀操作中,從片外讀取的數(shù)據(jù)先經(jīng)過完整性校驗再送入數(shù)據(jù)總線。寫操作中,如果操作地址對應(yīng)的數(shù)據(jù)不在緩存中,先從片外將數(shù)據(jù)讀出,并進行完整性校驗,通過后替換數(shù)據(jù),重新生成標簽,再寫入存儲器中。哈希運算的數(shù)據(jù)集合元素個數(shù)可以根據(jù)需要設(shè)定。
圖4 AES-TAC/iHASH 讀寫流程
讀操作流程如圖4(a)所示。首先把從片外存儲器尋址讀取的數(shù)據(jù)送入加密緩存中,密文輸入iHASH 模塊,最終獲得新的標簽值T’,同時將解密后的數(shù)據(jù)送入非密緩存。標簽值T’經(jīng)加密后生成CT’,標簽值CT’和CT 相比較判定是否通過完整性校驗。
寫操作流程如圖4(b)所示。如果數(shù)據(jù)事先緩存在數(shù)據(jù)緩存中,則將數(shù)據(jù)送入非密緩存中,再將替換后的數(shù)據(jù)經(jīng)密鑰流加密輸入加密緩存。加密數(shù)據(jù)隨后同時送入片外存儲器及iHASH 模塊,最后生成標簽T’,加密成CT’,存儲到片外。
使用綜合工具在0.13μm 工藝條件下,對各硬件單元單獨進行綜合,面積參數(shù)見表1。本方案在系統(tǒng)面積上的消耗主要集中在AES 算法模塊和控制單元。除了新增硬件模塊,方案還占用了部分片內(nèi)安全存儲資源和部分片外非安全存儲資源,分別用以存儲時間戳和加密后的標簽。
表1 AES-TAC/iHASH 面積評估
通過邏輯綜合可知,關(guān)鍵路徑存在于AES模塊內(nèi),安全模塊的最大運行頻率為576MHz。
表2為AES-TAC/iHASH 安全防護方案內(nèi)部參數(shù)取不同值時的性能評估。n表示每組iHASH 運算的數(shù)據(jù)集合元素個數(shù),m 表示處理的數(shù)據(jù)位寬。參數(shù)n和m 取不同值時,內(nèi)存的消耗及處理的性能各不相同。讀(寫)延時中,AESTAC/iHASH 中的兩個數(shù)值分別表示數(shù)據(jù)緩存與不緩存時的延時周期數(shù)?!跋到y(tǒng)性能”項表示加載相應(yīng)安全策略的系統(tǒng)性能與未加載安全策略的系統(tǒng)性能的比值。 “內(nèi)存消耗”項表示相應(yīng)安全策略占用系統(tǒng)內(nèi)存的百分比。
表2 AES-TAC/iHASH 性能評估
分析表2可知,AES-TAC/iHASH 的性能及資源消耗較為理想。內(nèi)存消耗只與集合基數(shù)n相關(guān)。n越小,相同數(shù)據(jù)總量下將生成更多的標簽,則標簽存儲的內(nèi)存消耗越大,滿足關(guān)系式P=1/(n+1)*100%。存儲訪問的性能與n、m的取值相關(guān)。集合基數(shù)越小,則標簽生成及校驗的時間消耗越少,效率越高。數(shù)據(jù)位寬越大,校驗相同數(shù)據(jù)量所需的校驗步驟越少 (每次校驗的數(shù)據(jù)量增大),效率越高。結(jié)合上述評估參數(shù),為盡量平衡內(nèi)存消耗及性能需求,參數(shù)的最優(yōu)取值為n=4、m=32。
當AES-TAC/iHASH 安全防護方案參數(shù)配置為n=4、m=32時,和其它典型安全策略的執(zhí)行性能相對比,綜合分析結(jié)果見表3?!癉ES性能”項表示運行DES軟算法時,加載安全策略的系統(tǒng)性能與未加載安全策略的系統(tǒng)性能的比值。從表3可知,AES-TAC/iHASH 的硬件資源消耗非常少,執(zhí)行性能較高。
表3 性能對比評估
為了保障嵌入式系統(tǒng)的安全性,本文通過將AES-TAC硬件安全防護方案和增量哈希算法相結(jié)合,提出了AESTAC/iHASH 片外存儲器安全防護方案。該方案充分利用密碼運算資源,安全高效地實現(xiàn)了片外存儲器的安全防護,極大地增強了芯片的安全性,使系統(tǒng)免受重放攻擊、重置攻擊和欺騙攻擊的威脅,保障芯片的安全運行,實現(xiàn)了嵌入式系統(tǒng)安全性和高效性的并存。
[1]Doomun M R,Soyjaudah K.Analytical comparison of cryptographic techniques for resource-constrained wireless security[J].International Journal of Network Security,2009,9 (1):82-94.
[2]Elbaz R,Torres L,Sassatelli G,et al.A parallelized way to provide data encryption and integrity checking on a processormemory bus[C]//Proceedings of the 43rd Annual Conference on Design Automation,2006:506-509.
[3]Elbaz R,Champagne D,Lee R B,et al.Tec-tree:A low cost and parallelizable tree for efficient defense against memory replay attacks [C]//Workshop on Cryptographic Hardware and Embedded Systems,2007:289-302.
[4]Liu Zhenglin,Zhu Qingchun,LI Dongfang,et al.Off-chip memory encryption and integrity protection based on AES-GCM in embedded systems [J].Design & Test,IEEE,2013,30(5):54-62.
[5]Lee Sung-Jae,Jae Seong Lee,Lee Mun-Kyu,et al.Low-power design of hardware one-time password generators for card-type OTPs [C]//ETRI Journal,2011,33 (4):611-620.
[6]Romain Vaslin.Hardware core for off-chip memory security management in embedded systems [D].France:European University of Brittany,2008.
[7]Hu Yin,Ghaith Hammouri,Berk Sunar.A fast real-time memory authentication protocol[C]//ACM New York,NY,USA:Proceedings of the 3rd ACM Workshop on Scalable Trusted Computing,2008:31-40.
[8]Elbaz R,Torres L,Sassatelli G,et al.Block-level added redundancy explicit authentication for parallelized encryption and integrity checking of processor-memory transactions [G].LNCS 6340:Trans on Comput Sci X,2010:231-260.
[9]Elbaz R,Champagne D,Gebotys C,et al.hardware mechanisms for memory authentication:A survey of existing techniques and engines [G].LNCS 5430:Trans on Comput Sci IV,2009:1-22.
[10]Romain Vaslin.Hardware core for off-chip memory security management in embedded systems [D].France:University of South Brittany,2008.
[11]Crenne J,Vaslin R,Gogniat G,et al.Configurable memory security in embedded systems[J].ACM Transactions on Embedded Computing Systems,2011,12 (3):71.