文獻標識碼: A
文章編號: 0258-7998(2013)11-0013-04
隨著通信技術(shù)的發(fā)展,信息安全問題愈發(fā)突出。安全SoC是加密技術(shù)與片上系統(tǒng)SoC(System on Chip)技術(shù)相結(jié)合的產(chǎn)物,是執(zhí)行密碼運算、提供密碼服務(wù)、保證數(shù)據(jù)安全的可信控制平臺。采用安全SoC芯片作為密碼處理設(shè)備具有安全性高、密碼運算速度快、使用方便等特點。而隨著側(cè)信道能量攻擊和電磁攻擊等攻擊技術(shù)的發(fā)展,安全SoC芯片的自身安全受到嚴重威脅,系統(tǒng)自身的安全成為未來信息系統(tǒng)設(shè)計的核心問題之一。參考文獻[1]中對SoC芯片進行功能塊劃分,設(shè)計固件防火墻保護敏感信息的安全,可以對任何SoC設(shè)備進行保護。ARM公司2003年開發(fā)的Trust Zone技術(shù)[2]為用戶提供了一個安全構(gòu)架,能夠抵抗多種安全威脅,但其結(jié)構(gòu)要求微處理器提供特殊支持。
通過數(shù)據(jù)加密、在操作系統(tǒng)中植入安全特性等軟件方法,在有限的嵌入式資源環(huán)境下大大增加了系統(tǒng)的復雜性和成本。由于其數(shù)據(jù)交互的實時性和開放性,使之無法從根本上實現(xiàn)真正的安全系統(tǒng)。增加安全硬件模塊的方法靈活性較差,需要重新進行硬件設(shè)計才能滿足新的安全功能,同時新增的硬件IP加重了設(shè)計開銷,增加了系統(tǒng)功耗。
本文針對計算密集型任務(wù)和信息安全的系統(tǒng)問題,基于安全SoC芯片設(shè)計技術(shù)[3-4]和安全硬件結(jié)構(gòu)思想,從系統(tǒng)、整體的角度來解決安全問題。
1 體系結(jié)構(gòu)
1.1 總體結(jié)構(gòu)
為了滿足高性能密碼處理需要,在SoC系統(tǒng)中集成更多的處理器核等硬件資源,MPSoC(MultiProcessor SoC)己成為片上系統(tǒng)發(fā)展的主流,越來越多面向特定應(yīng)用的系統(tǒng)采用多核的方式來提升系統(tǒng)的計算能力[5]。多核系統(tǒng)中原來的軟件工作量分到了多片處理器上,對單個處理器性能要求大大降低。而且可以靈活選擇處理器以適應(yīng)不同系統(tǒng)任務(wù)的需要,從而提高軟件執(zhí)行效率[6-7]。
本文設(shè)計的多核SoC采用精簡指令處理器+協(xié)處理器結(jié)構(gòu)。如圖1所示,通用RISC處理器負責數(shù)據(jù)流控制和數(shù)據(jù)分配,專用密碼協(xié)處理器負責密碼處理,兩種類型處理器通過高帶寬的多層系統(tǒng)總線連接,通過共享存儲器的緩存區(qū)進行數(shù)據(jù)交互。整個芯片分為密碼服務(wù)區(qū)和應(yīng)用開發(fā)區(qū),兩個區(qū)域通過用安全控制單元和enhanced AHB-to-AHB(eH2H)總線橋[8]連接。從圖1中可以看出,整個SoC相當于完整的個人終端計算機系統(tǒng),而密碼服務(wù)區(qū)相當于TPM(Trusted Platform Module),是保障系統(tǒng)安全的關(guān)鍵。
1.2 應(yīng)用開發(fā)區(qū)
應(yīng)用開發(fā)區(qū)連接各種通信接口,提供給用戶進行開發(fā)。整個區(qū)域構(gòu)成主處理器系統(tǒng),在任務(wù)執(zhí)行過程中,用戶通過主處理器系統(tǒng)運行的操作系統(tǒng)對整個安全SoC芯片進行控制。主處理器系統(tǒng)負責整個應(yīng)用開發(fā)區(qū)的設(shè)備管理、通信管理及控制任務(wù)的處理,并對應(yīng)用程序進行調(diào)度和劃分,是整個SoC系統(tǒng)的控制核心[8]。
如圖2所示,主處理器系統(tǒng)包括通用處理器、DMA控制器、高速系統(tǒng)總線、USB控制器、存儲器控制器、低速外設(shè)總線與外部設(shè)備接口。DMA控制器接受通用處理器的配置控制,負責大批量數(shù)據(jù)的傳輸。存儲控制器管理SRAM和Flash存儲器,為提高存儲控制器效率和工作頻率,采用獨立的通用存儲控制器。USB控制器管理USB接口,負責與外部進行數(shù)據(jù)快速交換。
1.3 密碼服務(wù)區(qū)
密碼服務(wù)區(qū)提供密碼處理服務(wù),并存儲密碼算法、密鑰等敏感信息。密碼服務(wù)區(qū)構(gòu)成協(xié)處理器系統(tǒng),在應(yīng)用開發(fā)區(qū)的請求下自動完成密碼處理服務(wù)。
如圖3所示,協(xié)處理器系統(tǒng)包括微控制器、局部總線、專用密碼協(xié)處理器、隨機數(shù)發(fā)生器、存儲控制器和UART控制器。微控制器是密碼服務(wù)區(qū)的控制核心,具有上電信息加載控制、數(shù)據(jù)調(diào)度控制等功能。隨機數(shù)發(fā)生器提供協(xié)處理器加解密所需要的密鑰。存儲控制器主要存儲密碼算法、密鑰和明文等敏感信息。協(xié)處理器系統(tǒng)通過UART接口注入算法配置信息、密鑰、用戶信息、設(shè)備信息等關(guān)鍵數(shù)據(jù),并以密文的形式存放,主要完成主處理器系統(tǒng)劃分好的加解密等計算任務(wù),是整個SoC系統(tǒng)的計算核心。
2 密碼服務(wù)區(qū)的安全保護
2.1 安全威脅分析
SoC芯片面臨的安全問題可歸結(jié)為如下幾個方面:
(1)SoC芯片的狀態(tài)被非法讀取或更改,如以各種手段破解敏感數(shù)據(jù)和用戶密鑰;
(2)SoC芯片被改造以欺騙應(yīng)用終端或芯片發(fā)行方從而非法獲得服務(wù);
(3)SoC芯片被應(yīng)用終端欺騙從而造成用戶利益被損害。
上述幾個問題中,解決好SoC芯片安全狀態(tài)被非法讀取或更改最為關(guān)鍵。在此基礎(chǔ)上可以進行擴展以解決其他安全問題[2]。
為了保護密碼處理過程中敏感信息的安全,方便用戶使用和二次開發(fā)芯片,本文基于安全域劃分技術(shù)在硬件層面設(shè)置專用的密碼服務(wù)區(qū)和應(yīng)用開發(fā)區(qū),設(shè)計安全控制單元對來自CPU的總線請求進行安全訪問控制過濾。
2.2 安全邊界控制
融合安全機制和安全硬件結(jié)構(gòu)的思想,采用安全邊界控制——硬件隔離機制,限制應(yīng)用開發(fā)區(qū)的程序?qū)γ艽a服務(wù)區(qū)的訪問,保護敏感信息不被竊取。
安全控制單元的工作原理如圖4所示,應(yīng)用開發(fā)區(qū)的數(shù)據(jù)通過DMA控制器快速傳輸?shù)矫艽a服務(wù)區(qū)進行密碼處理,成功之后輸出數(shù)據(jù)到共享存儲器。由于惡意程序只能運行在應(yīng)用開發(fā)區(qū),而應(yīng)用開發(fā)區(qū)對密碼服務(wù)區(qū)的訪問都要經(jīng)過安全控制單元,安全控制單元過濾掉企圖修改密碼服務(wù)區(qū)的運行狀態(tài)和對密碼服務(wù)區(qū)進行數(shù)據(jù)讀取的指令,從而保證了密碼處理過程中敏感信息和解密數(shù)據(jù)的安全。
安全控制單元按照如下的安全規(guī)則攔截CPU的非法訪問:
(1)如果應(yīng)用開發(fā)區(qū)程序企圖直接控制安全相關(guān)硬件模塊,則阻止該訪問,即安全相關(guān)的硬件模塊對應(yīng)的地址空間對于應(yīng)用開發(fā)區(qū)程序是不可見的,應(yīng)用開發(fā)區(qū)程序只能通關(guān)密碼服務(wù)區(qū)的安全服務(wù)程序獲得相應(yīng)功能。
(2)如果芯片使用者企圖通過CPU單元發(fā)出命令讀取密碼服務(wù)區(qū)的敏感信息或更改密碼服務(wù)區(qū)的狀態(tài),則阻止該請求。
通常權(quán)限生成電路的設(shè)計方法主要有兩種:
(1)查找表方法,即將地址和寫使能信號作為輸入,通過查表輸出相應(yīng)的控制信號。這種方法的優(yōu)點是速度快,但需要事先將控制信號的值存儲于表中,如果需要存儲的內(nèi)容較多,則可能消耗較多的硬件資源。
(2)比較器方法,即將對地址信號的讀寫操作與給定的權(quán)限范圍進行對比,從而輸出相應(yīng)控制信號。這種方法由于要實現(xiàn)多次比較,耗費資源較大,也會帶來較大延時。
由于本文需要存儲的控制信號量不大,而且要求盡可能地減小延遲,因此采用基于真值表的電路設(shè)計方法。將整個總線地址空間按設(shè)計要求進行劃分,根據(jù)提出的地址分配表分別列出不同地址對應(yīng)的訪問權(quán)限真值表,從而設(shè)計對應(yīng)的控制電路。
設(shè)計的安全控制單元如圖5所示。當En1有效時,可以寫入數(shù)據(jù),否則輸入數(shù)據(jù)為0。同理當En2有效時可以讀取數(shù)據(jù),否則讀出數(shù)據(jù)恒為0。如果芯片進行了地址重映射,不論是存儲器內(nèi)部還是從設(shè)備地址重映射,安全控制單元都會在檢測到地址重映射remap信號有效后對原來的地址權(quán)限做出更改。如果CPU的訪問被隔離,安全控制單元會返回中斷信號intc給中斷向量控制器;置位傳輸響應(yīng)信號shresp_0為01,告知CPU傳輸失敗。
不同的地址分配表得出的硬件電路圖不同,簡化的En1硬件電路圖如圖6所示,hwrite為寫使能,Hadd_1、Hadd_2、Hadd_3為地址分配空間的劃分值。En1在remap信號的控制下對不同的地址有不同的權(quán)限值。密碼服務(wù)區(qū)寫信號wen En1與總線讀寫信號hwrite相與生成,shaddr地址信號則由總線地址鎖存一級后直接生成。
芯片的生命周期包括兩個基本階段,即調(diào)試開發(fā)階段和發(fā)行使用階段。在調(diào)試開發(fā)階段,安全控制單元不發(fā)揮作用;當芯片有調(diào)試開發(fā)階段進入發(fā)行使用階段后,發(fā)行者在片內(nèi)非易失存儲中特定位置寫入相關(guān)信息,安全控制單元就會按照上述安全規(guī)則攔截非法訪問請求。
3 仿真驗證
3.1 安全控制單元的功能仿真
采用Verilog語言對SoC設(shè)計進行了RTL級描述,建立仿真模型,使用EDA軟件對安全控制單元進行功能仿真。本文針對安全控制單元的仿真主要從兩個方面進行:有效/無效的寫操作、有效/無效的讀操作。密碼服務(wù)區(qū)的有效/無效寫操作的仿真波形如圖7所示。
在圖7(a)中,對密碼服務(wù)區(qū)進行了一次寫操作,向地址0x000a0000寫入數(shù)據(jù)0x11223344。根據(jù)設(shè)定的安全訪問規(guī)則,由于具有該地址空間的寫入權(quán)限,所以寫使能信號有效,相應(yīng)的數(shù)據(jù)被傳送至數(shù)據(jù)輸入端口,數(shù)據(jù)被正確寫入。圖7(b)中,向地址0x000b0000寫入數(shù)據(jù)0x55667788,由于不具有對該地址空間的寫入權(quán)限,因此寫使能信號和En1無效,中斷信號intc有效,相應(yīng)的總線數(shù)據(jù)無法被傳送至數(shù)據(jù)輸入端口,數(shù)據(jù)鎖定為0。
經(jīng)過仿真驗證讀操作控制也可達到設(shè)計要求。
綜合上述仿真波形可以看出,設(shè)計的安全控制單元能夠正確地實現(xiàn)邊界控制,達到了保護密碼服務(wù)區(qū)安全的目的。而且與軟件方法相比具有先天的安全程度高、不容易被篡改、速度快等優(yōu)點,有效提高了芯片的安全性和性能。與傳統(tǒng)保護電路相比,最大優(yōu)點在于避免了由于電路設(shè)計而引入額外的電路延時和面積增大,電路設(shè)計簡單,功能完善,具有較高的實現(xiàn)價值,而且可以靈活更改以適應(yīng)不同的安全需求。
3.2 性能分析
使用EDA綜合工具,采用0.18 μm CMOS工藝標準單元庫及相應(yīng)負載模型和RAM硬核對SoC進行邏輯綜合,經(jīng)過詳細分析得出綜合結(jié)果如表1所示。
本文提出了多核異構(gòu)安全SoC芯片的硬件結(jié)構(gòu),針對大批量數(shù)據(jù)處理和保護信息安全的需要,采用了層次化總線的互連結(jié)構(gòu)進行優(yōu)化設(shè)計。集成多個異構(gòu)的處理器,將整個芯片劃分為密碼安全區(qū)和應(yīng)用開發(fā)區(qū),并采用安全邊界控制——硬件隔離機制、安全存儲管理等措施,可有效保證密碼安全區(qū)的安全,提高整個系統(tǒng)的安全性和數(shù)據(jù)的完整性。
參考文獻
[1] KONDO H,OTANI S,NAKAJIMA M,et al.Heterogeneous multi-core SoC with SiP for secure multimedia applications[J].IEEE Journal of Solid-State Circuits,2009,44(8):2251-2259.
[2] 童元滿,陸洪毅,王志英,等.基于層次平臺的安全SoC設(shè)計技術(shù)[J].計算機工程與應(yīng)用,2008,44(17):10-14.
[3] Huang Wei,Han Jun,Wang Shuai,et al.The design and implement of a mobile security SoC[C].Solid-State and Integrated Circuit Technology(ICSICT),2010 10th IEEE International Conference 2010,Shanghai,2010:96-98.
[4] 王雪瑞,何永強,公鑫.面向移動安全存儲的密碼SoC設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用.2012,38(4):10-12.
[5] HALFHILL T R.The future of multi-core processors [EB/OL].(2007-12-31)[2013-07-08].http://www.Tensilica.com/uploads/pdf/Multicore_Microprocessor_Rept.pdf.
[6] 劉繼堯,劉雷波,伊首一,等.基于多層AHB架構(gòu)的多核SoC設(shè)計[J].計算機工程.2012,38(9):237-239.
[7] 王超.異構(gòu)多核可重構(gòu)片上系統(tǒng)關(guān)鍵技術(shù)研究[D].合肥:中國科技大學,2011.
[8] 趙為.面向媒體應(yīng)用的多核SoC平臺的設(shè)計與實現(xiàn)[D].浙江:浙江大學,2007.
[9] BALKA A O,Qu Gang,VISHKIN U.Mesh-of-trees and alternative interconnection networks for single-chip paralle lism[J].IEEE Transactions on Very Large Scale Integration (VLSI) Systems,2009,17(10):1419-1432.