文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.171962
中文引用格式: 劉志強(qiáng),,徐金甫,,戴強(qiáng),等. 基于AXI總線的安全防火墻研究與設(shè)計[J].電子技術(shù)應(yīng)用,,2017,,43(11):27-30.
英文引用格式: Liu Zhiqiang,Xu Jinfu,,Dai Qiang,,et al. Research and design of security firewall based on AXI bus[J].Application of Electronic Technique,2017,,43(11):27-30.
0 引言
隨著SoC(System-on-Chip)的發(fā)展與廣泛應(yīng)用,SoC面臨的安全威脅與攻擊手段[1-2]也更為復(fù)雜,,嵌入式系統(tǒng)安全已成為不容忽視的重要問題,。由于傳統(tǒng)的嵌入式軟件防護(hù)能力較弱,具有較大的延遲,,易對系統(tǒng)造成性能損失,,因此單純依靠軟件層面的安全機(jī)制已很難有效應(yīng)對層出不窮的攻擊手段。
目前,,已有眾多學(xué)者在不修改處理器結(jié)構(gòu)的基礎(chǔ)上,,提出了基于總線的硬件安全增強(qiáng)機(jī)制。Fiorin提出一種基于NoC(Network-on-Chip)總線的安全探針和安全管理單元的保護(hù)機(jī)制[3],,通過安全探針監(jiān)控總線數(shù)據(jù)進(jìn)出信息,,安全管理單元收集探針信息來檢測沖突與錯誤。Coburn J基于AHB總線提出了SECA的安全總線結(jié)構(gòu)[4],,在各個IP模塊總線接口配置了安全增強(qiáng)接口(Security-Enhanced Interface,,SEI),同時設(shè)計了安全增強(qiáng)模塊(Security-Enhanced Module,,SEM)作為中央管控模塊協(xié)調(diào)各SEI模塊工作,。Cotret P、Crenne J等人在Coburn研究的基礎(chǔ)上,,引入基于總線的分布式防護(hù)結(jié)構(gòu)[5],,在各IP總線接口設(shè)置局部防火墻,實現(xiàn)地址的訪問控制,,并在片外存儲器接口設(shè)計了局部密碼防火墻,,保護(hù)重要數(shù)據(jù)的機(jī)密性和完整性。但是該方案只是對地址進(jìn)行監(jiān)控,,在多任務(wù)處理下,,單獨的地址訪問操作可能屬于不同的任務(wù)行為,因此不能實現(xiàn)任務(wù)的隔離,。
本文借鑒了網(wǎng)絡(luò)防火墻的安全隔離思想與Cotret P的分布式架構(gòu),,提出了基于AXI總線的分布式安全總線防火墻架構(gòu),制定了多級可動態(tài)更新的安全策略,,設(shè)計了具有較低延時的高速總線防火墻接口,,實現(xiàn)了面向多任務(wù)處理的任務(wù)隔離機(jī)制,。
1 總線防火墻架構(gòu)設(shè)計
1.1 防火墻總體架構(gòu)
總線防火墻部署于SoC通信鏈路上,介于總線與IP之間,,是嵌入式系統(tǒng)的硬件底層安全防線,。為減輕總線防火墻負(fù)載,并利用AXI總線的點對點突發(fā)傳輸特性,,本文采用分布式的總線防火墻架構(gòu),,即在每個IP接口與總線之間增加防火墻模塊,如圖1所示,。
安全總線防火墻的架構(gòu)由軟件層和SoC硬件架構(gòu)組成,。軟件層運行多任務(wù)處理的嵌入式操作系統(tǒng),包括安全任務(wù)與非安全任務(wù),,各個任務(wù)之間有不同的資源訪問權(quán)限,。
硬件層由CPU、DMA,、Memory、各個IP模塊組成,,模塊之間通過AXI總線互連,。安全防火墻位于總線與IP模塊之間,由防火墻接口與片上 BRAM(Block RAM)組成,。防火墻接口根據(jù)BRAM的安全策略實施訪問控制,,其基本特征就是阻止非法地址訪問,目的是實現(xiàn)安全任務(wù)與非安全任務(wù)的隔離,。防火墻的安全性由安全策略保證,,安全策略只可由安全更新模塊配置與更新。
1.2 防火墻安全策略設(shè)計
安全策略存儲在片上BRAM,,一條策略占用一個字空間,,由一個地址標(biāo)識。每條策略為每個給定的物理地址空間(帶下邊界與上邊界)設(shè)定訪問權(quán)限,。
安全策略根據(jù)任務(wù)分組,,同一任務(wù)的策略稱之為一個策略組,由任務(wù)ID尋址標(biāo)識,。安全策略組在上電時由安全更新模塊配置,,運行過程中只可由安全更新模塊更新,是一個可信區(qū)域,。
面對復(fù)雜的SoC系統(tǒng),,安全策略數(shù)量眾多,策略存儲會占用大量的存儲空間,。為減少策略存儲空間,,本文提出策略組間白名單,、組內(nèi)黑名單的混合存儲策略。策略組存儲采取白名單策略,,只有在白名單之列的任務(wù)可以訪問該模塊,,否則直接拒絕訪問,具有更高的安全性,。安全策略組內(nèi)采用黑名單存儲策略,,不在黑名單中的訪問行為默認(rèn)可讀可寫,直接允許,。
為了增加安全策略的安全性與靈活性,,本文設(shè)計了多級可動態(tài)更新的安全策略。安全策略設(shè)定3個安全等級:正常級別,、警告級別,、錯誤級別。正常級別為系統(tǒng)初始化后的各模塊的安全級別,,表示系統(tǒng)任務(wù)處于正常狀態(tài),。警告級別表示系統(tǒng)出現(xiàn)了非法訪問行為,并禁止該危險任務(wù)對該模塊的所有訪問權(quán)限,。錯誤級別表示出現(xiàn)了較為嚴(yán)重的安全威脅,,系統(tǒng)所有任務(wù)的訪問都將禁止,只有關(guān)機(jī)重啟有效,。安全級別的更新是發(fā)生訪問違規(guī)后作出的反應(yīng)行為,。當(dāng)非關(guān)鍵任務(wù)出現(xiàn)訪問違規(guī)時,則將其安全級別由正常級別提升為警告級別,;當(dāng)關(guān)鍵任務(wù)出現(xiàn)訪問違規(guī)時,,則將正常級別直接跳躍提升為錯誤級別,強(qiáng)制終止系統(tǒng)運行,。
安全策略的參數(shù)包括策略組參數(shù)與策略參數(shù),,如圖2所示。策略組參數(shù)由任務(wù)ID,、策略數(shù)量組成,;策略參數(shù)由讀寫權(quán)限、安全級別,、策略域值組成,。讀寫權(quán)限采用黑名單存儲策略,包括禁讀,、禁寫,、禁讀寫。策略域值表示策略監(jiān)控的地址空間,包括基地址偏移量和長度,。
1.3 防火墻接口設(shè)計
AXI總線采用突發(fā)傳輸,,因此防火墻只需在握手過程中分析其首地址,、握手信號、突發(fā)傳輸SIZE等總線信號來實現(xiàn)訪問控制,。根據(jù)安全策略規(guī)則,,其設(shè)計原理如圖3所示。
行為分析模塊是判斷當(dāng)前訪問的讀或?qū)懶袨?。時鐘同步模塊,,用于延遲握手信號,滿足AXI總線的傳輸時序,。讀模塊讀取安全策略內(nèi)容,,需要消耗一個時鐘周期。校驗?zāi)K則根據(jù)讀取到的安全策略與訪問的地址進(jìn)行比對,。校驗成功,,決策模塊則允許訪問行為,否則終止行為并將數(shù)據(jù)端置0,。
快速查找單元則是一個類似于TCAM(Ternary Content Addressable Memory)容器的列表,,自身存儲每個任務(wù)安全策略監(jiān)控的地址空間和長度,如圖4所示,,在防火墻監(jiān)控狀態(tài)下,,根據(jù)TaskID選擇安全策略組,通過訪問地址addr,、突發(fā)SIZE長度,可快速定位到其安全策略的地址,。根據(jù)黑白名單存儲策略規(guī)則,,若noID=1,直接拒絕;若noSP=1則直接允許,。
防火墻有3種工作狀態(tài),,包括空閑狀態(tài)、監(jiān)控狀態(tài),、更新狀態(tài),,其狀態(tài)轉(zhuǎn)換圖如圖5所示。
1.4 策略安全更新設(shè)計
當(dāng)系統(tǒng)檢測到攻擊時,,BRAM中的安全策略必須被更新,,并應(yīng)用于新的安全策略。為保證更新環(huán)境的安全,,防火墻增加了安全更新模塊,。
安全更新模塊如圖6所示,所有部件都通過一個AXI-Lite總線連接(也稱為安全總線)和一個可信的安全SMCU構(gòu)成安全子系統(tǒng),。flash存儲著固件程序與防火墻安全策略,,可實現(xiàn)各個防火墻的策略初始化配置和整個SoC的安全啟動,。Monitor模塊監(jiān)控每個防火墻接口的狀態(tài)信號,防火墻的BRAM的另一端連接存儲控制器,,動態(tài)策略更新,。系統(tǒng)上電時,SMCU從flash讀取安全策略,,并將安全策略寫入到各個IP模塊的BRAM中,。
防火墻監(jiān)控模塊監(jiān)控每個IP防火墻接口的狀態(tài)機(jī)狀態(tài),包括noID信號,、check_out等信號,。當(dāng)check_out為0或者noID為1,則表示有攻擊事件發(fā)生,,并將監(jiān)控結(jié)果保存在相應(yīng)任務(wù)的IP監(jiān)控寄存器當(dāng)中,。防火墻監(jiān)控模塊一旦檢測到攻擊,產(chǎn)生中斷通知SMCU,,SMCU執(zhí)行中斷服務(wù)程序,,啟動策略更新。
策略更新過程必須保證兩個安全策略之間切換時數(shù)據(jù)可用性,。因此在切換過程中,,首先使能update_en后決策模塊阻塞當(dāng)前地址訪問,待策略更新完畢后關(guān)閉阻塞,,將update_down置1表示更新完成,。阻塞機(jī)制通過延時ready信號實現(xiàn)。更新1條安全策略消耗1個時鐘周期,,更新n條策略則至少需要n個時鐘周期,,這些時間損耗雖會降低性能,但從安全角度考慮,,非法的訪問行為得到阻止,,安全效益提高。
2 基于總線防火墻的任務(wù)隔離機(jī)制
任務(wù)作為系統(tǒng)運行的一個行為事務(wù)實體,,結(jié)合防火墻的功能,,通過在總線上增加任務(wù)標(biāo)識,可實現(xiàn)任務(wù)隔離機(jī)制,。
2.1 面向任務(wù)標(biāo)識的總線傳輸
總線上的主從訪問行為通過主設(shè)備DeviceID或系統(tǒng)TaskID,、總線地址、總線控制信號等,,構(gòu)成了防火墻的訪問主體和被訪問客體,。總線防火墻根據(jù)安全策略監(jiān)視所有總線傳輸,,裁決發(fā)起傳輸?shù)娜蝿?wù)能否訪問目標(biāo)資源,。
為了標(biāo)明發(fā)起總線傳輸?shù)倪M(jìn)程,,需要對總線傳輸任務(wù)進(jìn)行標(biāo)識,將ID嵌入傳輸事務(wù)中,,該ID信號稱為總線邊帶信號,。如圖7所示,各主設(shè)備維護(hù)一個ID 寄存器,,寄存器輸出驅(qū)動ID邊帶信號,,與總線傳輸保持同步。CPU執(zhí)行任務(wù)時發(fā)起傳輸前首先將TaskID注入CPU的任務(wù)ID 寄存器,;其他主設(shè)備如DMA,、密碼協(xié)處理器等執(zhí)行時則將固定的DeviceID注入設(shè)備專用ID寄存器內(nèi),在各主設(shè)備內(nèi)部增加PID專用寄存器,,TaskID注冊作為進(jìn)程調(diào)度的一部分,。
2.2 任務(wù)隔離機(jī)制實現(xiàn)
實現(xiàn)任務(wù)隔離機(jī)制需要軟硬件協(xié)同配合。
系統(tǒng)內(nèi)核執(zhí)行可信進(jìn)程,,在創(chuàng)建,、執(zhí)行各個任務(wù),統(tǒng)一管理和分配TaskID,,任何發(fā)起引起總線傳輸?shù)娜蝿?wù),,首先對調(diào)用的總線主設(shè)備的TaskID寄存器進(jìn)行注冊。任務(wù)發(fā)起的整個總線傳輸期間保持TaskID信號不變,,進(jìn)程切換時TaskID寄存器同步進(jìn)行更新,,時間上TaskID寄存器更新先于被調(diào)度進(jìn)程的執(zhí)行,即確保被調(diào)度執(zhí)行的新進(jìn)程在發(fā)起總線傳輸之前完成相應(yīng)TaskID寄存器的更新,。
在總線防火墻監(jiān)控過程中,,同一任務(wù)的TaskID邊帶信號保持不變,邊帶信號驅(qū)動各個從接口的防火墻模塊,,根據(jù)ID號完成面向任務(wù)的策略組尋址,配置快速查找單元的地址和長度參數(shù),。該過程可在2個時鐘周期完成,,可隱藏于任務(wù)切換的過程時間。
任務(wù)切換完成后,,發(fā)起總線傳輸,,防火墻接口則可快速讀取該任務(wù)下的地址的安全策略,迅速完成地址策略校驗,。當(dāng)系統(tǒng)受到攻擊時,,任務(wù)訪問了其不允許的空間,則防火墻拒絕訪問行為,,實現(xiàn)了任務(wù)之間的隔離,。在策略更新過程中,,安全更新模塊完成安全級別的更新,限制了該危險任務(wù)的訪問權(quán)限,,實現(xiàn)被攻擊任務(wù)的隔離,。
3 實驗與驗證
3.1 實驗平臺搭建
實驗的硬件平臺為ZYNQ 7c020開發(fā)板,集成了ARMA9處理器等硬核部分和FPGA邏輯部分,。實驗通過Xilinx公司vivado軟件搭建如圖1所示的SoC硬件電路,。SoC以ARMA9為主處理器,分別以RAM,、UART作為存儲單元與外設(shè)接口,。安全區(qū)采用MciroBalze軟核處理器作為安全SMCU,采用RAM代替Flash單元,。
實驗的軟件平臺為FreeRToS實時操作系統(tǒng),,支持多任務(wù)處理。系統(tǒng)共運行3個任務(wù)Task1,、Task2,、Task3,分別完成數(shù)據(jù)的接收,、加密,、發(fā)送過程,其中Task2為安全任務(wù),,任務(wù)切換通過定時器中斷實現(xiàn),。FreeRTos的任務(wù)切換程序是vTaskSwitchContext(),它作為系統(tǒng)一個可信進(jìn)程,,將任務(wù)標(biāo)識寫入TaskID寄存器,。
3.2 實驗結(jié)果
防火墻接口占用的FPGA資源如表1所示,由于ARM為硬核,,綜合結(jié)果暫用Mciroblaze軟核計入資源總量,。增加防火墻接口所增加的資源比例較小,寄存器與LUT增加比例分別為9.0%和5.2%,。安全更新模塊增加的主要單元為軟核處理器與BRAM控制器,,占用資源較大。單個防火墻接口的資源占用與P Cotret[5]比較如表2所示,,本文的防火墻的寄存器資源占用偏多,,但占有更少的LUT資源。
根據(jù)防火墻接口的電路設(shè)計,,快速查找單元需要2個時鐘周期,,決策模塊與同步模塊各需要一個時鐘周期,共需要4個時鐘周期。當(dāng)傳輸突發(fā)長度較大時,,性能損耗比例較小,,如表3所示。
在安全策略配置完成后,,在debug調(diào)試下,,模擬攻擊者,將task3任務(wù)訪問的明文地址修改為task2的密鑰地址區(qū),,結(jié)果顯示讀取到的數(shù)據(jù)為0,。當(dāng)再次執(zhí)行該任務(wù),程序進(jìn)入異常,,這表明任務(wù)隔離有效,。
4 結(jié)論
本文提出了基于AXI總線的分布式安全總線防火墻架構(gòu),制定了面向任務(wù)的多級安全策略,,可通過安全更新模塊實現(xiàn)策略動態(tài)更新,,提出了黑白名單混合的策略存儲規(guī)則,設(shè)計了具有較低延時的高速總線防火墻接口,。在防火墻功能基礎(chǔ)上,,增加了面向任務(wù)標(biāo)識的總線傳輸功能,實現(xiàn)了任務(wù)隔離機(jī)制,。由于安全更新子系統(tǒng)功能較為單一,,下一步將充分利用其安全的隔離環(huán)境增加安全服務(wù)相關(guān)功能,并進(jìn)一步優(yōu)化防火墻安全策略,。
參考文獻(xiàn)
[1] 鄭顯義,,李文,孟丹.TrustZone技術(shù)的分析與研究[J].計算機(jī)學(xué)報,,2016(9):1912-1928.
[2] ELMILIGI H,,GEBALI F,EL-KHARASHI M W.Multi-dimensional analysis of embedded systems security[J].Microprocessors & Microsystems,,2016,,41(C):29-36.
[3] FIORIN L,LUKOVIC S,,PALERMO G.Implementation of a reconfigurable data protection module for NoC-based MPSoCs[C].IEEE International Symposium on Parallel and Distributed Processing.IEEE,,2008:1-8.
[4] Joel Coburn,Srivaths Ravi,,Anand Raghunathan,et al.SECA:security-enhanced communication architecture[C].Proceedings of the 2005 International Conference on Compilers,Architectures and Synthesis for Embedded Systems.New York:ACM,,2005:78-89.
[5] COTRET P,,CRENNE J,GOGNIAT G,et al.Light weight reconfiguration security services for axi-based MPSoCs[C].International Parallel & Distributed Processing Symposium,,Shanghai:IEEE,,2012:326-329.
作者信息:
劉志強(qiáng),徐金甫,,戴 強(qiáng),,李軍偉
(解放軍信息工程大學(xué),河南 鄭州450001)