文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.171962
中文引用格式: 劉志強,徐金甫,戴強,等. 基于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)的嵌入式軟件防護能力較弱,具有較大的延遲,易對系統(tǒng)造成性能損失,因此單純依靠軟件層面的安全機制已很難有效應(yīng)對層出不窮的攻擊手段。
目前,已有眾多學(xué)者在不修改處理器結(jié)構(gòu)的基礎(chǔ)上,提出了基于總線的硬件安全增強機制。Fiorin提出一種基于NoC(Network-on-Chip)總線的安全探針和安全管理單元的保護機制[3],通過安全探針監(jiān)控總線數(shù)據(jù)進出信息,安全管理單元收集探針信息來檢測沖突與錯誤。Coburn J基于AHB總線提出了SECA的安全總線結(jié)構(gòu)[4],在各個IP模塊總線接口配置了安全增強接口(Security-Enhanced Interface,SEI),同時設(shè)計了安全增強模塊(Security-Enhanced Module,SEM)作為中央管控模塊協(xié)調(diào)各SEI模塊工作。Cotret P、Crenne J等人在Coburn研究的基礎(chǔ)上,引入基于總線的分布式防護結(jié)構(gòu)[5],在各IP總線接口設(shè)置局部防火墻,實現(xiàn)地址的訪問控制,并在片外存儲器接口設(shè)計了局部密碼防火墻,保護重要數(shù)據(jù)的機密性和完整性。但是該方案只是對地址進行監(jiān)控,在多任務(wù)處理下,單獨的地址訪問操作可能屬于不同的任務(wù)行為,因此不能實現(xiàn)任務(wù)的隔離。
本文借鑒了網(wǎng)絡(luò)防火墻的安全隔離思想與Cotret P的分布式架構(gòu),提出了基于AXI總線的分布式安全總線防火墻架構(gòu),制定了多級可動態(tài)更新的安全策略,設(shè)計了具有較低延時的高速總線防火墻接口,實現(xiàn)了面向多任務(wù)處理的任務(wù)隔離機制。
1 總線防火墻架構(gòu)設(shè)計
1.1 防火墻總體架構(gòu)
總線防火墻部署于SoC通信鏈路上,介于總線與IP之間,是嵌入式系統(tǒng)的硬件底層安全防線。為減輕總線防火墻負載,并利用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,一條策略占用一個字空間,由一個地址標識。每條策略為每個給定的物理地址空間(帶下邊界與上邊界)設(shè)定訪問權(quán)限。
安全策略根據(jù)任務(wù)分組,同一任務(wù)的策略稱之為一個策略組,由任務(wù)ID尋址標識。安全策略組在上電時由安全更新模塊配置,運行過程中只可由安全更新模塊更新,是一個可信區(qū)域。
面對復(fù)雜的SoC系統(tǒng),安全策略數(shù)量眾多,策略存儲會占用大量的存儲空間。為減少策略存儲空間,本文提出策略組間白名單、組內(nèi)黑名單的混合存儲策略。策略組存儲采取白名單策略,只有在白名單之列的任務(wù)可以訪問該模塊,否則直接拒絕訪問,具有更高的安全性。安全策略組內(nèi)采用黑名單存儲策略,不在黑名單中的訪問行為默認可讀可寫,直接允許。
為了增加安全策略的安全性與靈活性,本文設(shè)計了多級可動態(tài)更新的安全策略。安全策略設(shè)定3個安全等級:正常級別、警告級別、錯誤級別。正常級別為系統(tǒng)初始化后的各模塊的安全級別,表示系統(tǒng)任務(wù)處于正常狀態(tài)。警告級別表示系統(tǒng)出現(xiàn)了非法訪問行為,并禁止該危險任務(wù)對該模塊的所有訪問權(quán)限。錯誤級別表示出現(xiàn)了較為嚴重的安全威脅,系統(tǒng)所有任務(wù)的訪問都將禁止,只有關(guān)機重啟有效。安全級別的更新是發(fā)生訪問違規(guī)后作出的反應(yīng)行為。當非關(guān)鍵任務(wù)出現(xiàn)訪問違規(guī)時,則將其安全級別由正常級別提升為警告級別;當關(guān)鍵任務(wù)出現(xiàn)訪問違規(guī)時,則將正常級別直接跳躍提升為錯誤級別,強制終止系統(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所示。
行為分析模塊是判斷當前訪問的讀或?qū)懶袨椤r鐘同步模塊,用于延遲握手信號,滿足AXI總線的傳輸時序。讀模塊讀取安全策略內(nèi)容,需要消耗一個時鐘周期。校驗?zāi)K則根據(jù)讀取到的安全策略與訪問的地址進行比對。校驗成功,決策模塊則允許訪問行為,否則終止行為并將數(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è)計
當系統(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)機狀態(tài),包括noID信號、check_out等信號。當check_out為0或者noID為1,則表示有攻擊事件發(fā)生,并將監(jiān)控結(jié)果保存在相應(yīng)任務(wù)的IP監(jiān)控寄存器當中。防火墻監(jiān)控模塊一旦檢測到攻擊,產(chǎn)生中斷通知SMCU,SMCU執(zhí)行中斷服務(wù)程序,啟動策略更新。
策略更新過程必須保證兩個安全策略之間切換時數(shù)據(jù)可用性。因此在切換過程中,首先使能update_en后決策模塊阻塞當前地址訪問,待策略更新完畢后關(guān)閉阻塞,將update_down置1表示更新完成。阻塞機制通過延時ready信號實現(xiàn)。更新1條安全策略消耗1個時鐘周期,更新n條策略則至少需要n個時鐘周期,這些時間損耗雖會降低性能,但從安全角度考慮,非法的訪問行為得到阻止,安全效益提高。
2 基于總線防火墻的任務(wù)隔離機制
任務(wù)作為系統(tǒng)運行的一個行為事務(wù)實體,結(jié)合防火墻的功能,通過在總線上增加任務(wù)標識,可實現(xiàn)任務(wù)隔離機制。
2.1 面向任務(wù)標識的總線傳輸
總線上的主從訪問行為通過主設(shè)備DeviceID或系統(tǒng)TaskID、總線地址、總線控制信號等,構(gòu)成了防火墻的訪問主體和被訪問客體??偩€防火墻根據(jù)安全策略監(jiān)視所有總線傳輸,裁決發(fā)起傳輸?shù)娜蝿?wù)能否訪問目標資源。
為了標明發(fā)起總線傳輸?shù)倪M程,需要對總線傳輸任務(wù)進行標識,將ID嵌入傳輸事務(wù)中,該ID信號稱為總線邊帶信號。如圖7所示,各主設(shè)備維護一個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注冊作為進程調(diào)度的一部分。
2.2 任務(wù)隔離機制實現(xiàn)
實現(xiàn)任務(wù)隔離機制需要軟硬件協(xié)同配合。
系統(tǒng)內(nèi)核執(zhí)行可信進程,在創(chuàng)建、執(zhí)行各個任務(wù),統(tǒng)一管理和分配TaskID,任何發(fā)起引起總線傳輸?shù)娜蝿?wù),首先對調(diào)用的總線主設(shè)備的TaskID寄存器進行注冊。任務(wù)發(fā)起的整個總線傳輸期間保持TaskID信號不變,進程切換時TaskID寄存器同步進行更新,時間上TaskID寄存器更新先于被調(diào)度進程的執(zhí)行,即確保被調(diào)度執(zhí)行的新進程在發(fā)起總線傳輸之前完成相應(yīng)TaskID寄存器的更新。
在總線防火墻監(jiān)控過程中,同一任務(wù)的TaskID邊帶信號保持不變,邊帶信號驅(qū)動各個從接口的防火墻模塊,根據(jù)ID號完成面向任務(wù)的策略組尋址,配置快速查找單元的地址和長度參數(shù)。該過程可在2個時鐘周期完成,可隱藏于任務(wù)切換的過程時間。
任務(wù)切換完成后,發(fā)起總線傳輸,防火墻接口則可快速讀取該任務(wù)下的地址的安全策略,迅速完成地址策略校驗。當系統(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)一個可信進程,將任務(wù)標識寫入TaskID寄存器。
3.2 實驗結(jié)果
防火墻接口占用的FPGA資源如表1所示,由于ARM為硬核,綜合結(jié)果暫用Mciroblaze軟核計入資源總量。增加防火墻接口所增加的資源比例較小,寄存器與LUT增加比例分別為9.0%和5.2%。安全更新模塊增加的主要單元為軟核處理器與BRAM控制器,占用資源較大。單個防火墻接口的資源占用與P Cotret[5]比較如表2所示,本文的防火墻的寄存器資源占用偏多,但占有更少的LUT資源。
根據(jù)防火墻接口的電路設(shè)計,快速查找單元需要2個時鐘周期,決策模塊與同步模塊各需要一個時鐘周期,共需要4個時鐘周期。當傳輸突發(fā)長度較大時,性能損耗比例較小,如表3所示。
在安全策略配置完成后,在debug調(diào)試下,模擬攻擊者,將task3任務(wù)訪問的明文地址修改為task2的密鑰地址區(qū),結(jié)果顯示讀取到的數(shù)據(jù)為0。當再次執(zhí)行該任務(wù),程序進入異常,這表明任務(wù)隔離有效。
4 結(jié)論
本文提出了基于AXI總線的分布式安全總線防火墻架構(gòu),制定了面向任務(wù)的多級安全策略,可通過安全更新模塊實現(xiàn)策略動態(tài)更新,提出了黑白名單混合的策略存儲規(guī)則,設(shè)計了具有較低延時的高速總線防火墻接口。在防火墻功能基礎(chǔ)上,增加了面向任務(wù)標識的總線傳輸功能,實現(xiàn)了任務(wù)隔離機制。由于安全更新子系統(tǒng)功能較為單一,下一步將充分利用其安全的隔離環(huán)境增加安全服務(wù)相關(guān)功能,并進一步優(yōu)化防火墻安全策略。
參考文獻
[1] 鄭顯義,李文,孟丹.TrustZone技術(shù)的分析與研究[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.
作者信息:
劉志強,徐金甫,戴 強,李軍偉
(解放軍信息工程大學(xué),河南 鄭州450001)