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