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