馬卓然,馬建峰,,苗銀賓,孫 聰
(1. 西安電子科技大學(xué) 計(jì)算機(jī)學(xué)院,陜西 西安 710071;2. 西安電子科技大學(xué) 網(wǎng)絡(luò)與信息安全學(xué)院,陜西 西安 710071)
隨著無人機(jī)(Unmanned Aerial Vehicle, UAV)的快速發(fā)展,無人機(jī)網(wǎng)絡(luò)安全得到了學(xué)術(shù)界和企業(yè)界的廣泛關(guān)注. 在無人機(jī)網(wǎng)絡(luò)中,UAV節(jié)點(diǎn)包含飛行控制器、聲納傳感器、紅外線傳感器和相機(jī)等眾多資源模塊[1-3],而其中不同類型資源模塊的訪問控制需求各不相同,如圖1所示. 傳感器數(shù)據(jù)允許多個(gè)請求者同時(shí)訪問;相機(jī)資源禁止多個(gè)請求者在同一時(shí)間內(nèi)訪問;而飛行控制器為了完成對緊急情況的及時(shí)處理,必須保證時(shí)刻被主體訪問[4]. 同時(shí)由于無人機(jī)網(wǎng)絡(luò)資源的請求者眾多,比如,地面控制站終端和UAV自身的應(yīng)用程序[5],在完成飛行任務(wù)的過程中,請求者會產(chǎn)生不同緊急程度的請求. 此外,無人機(jī)網(wǎng)絡(luò)具有高速移動(dòng)的特點(diǎn)[6],隨著UAV的位置移動(dòng),授權(quán)者權(quán)限會發(fā)生改變.而且為了延長UAV的任務(wù)執(zhí)行時(shí)間,UAV之間存在任務(wù)轉(zhuǎn)移. 面對無人機(jī)網(wǎng)絡(luò)復(fù)雜的訪問控制環(huán)境,傳統(tǒng)的訪問控制方法無法針對眾多資源類型與權(quán)限變更而提供彈性的權(quán)限管理. 因此,無人機(jī)網(wǎng)絡(luò)亟需一種靈活且細(xì)粒度的訪問控制方案.

圖1 無人機(jī)網(wǎng)絡(luò)結(jié)構(gòu)圖
在已有的訪問控制方案中,文獻(xiàn)[7]在無人機(jī)群體中通過UAV位置信息與手勢識別技術(shù)提出基于身份的訪問控制(Identity-Based Access Control, IBAC)方案,用戶根據(jù)手勢識別實(shí)現(xiàn)對UAV飛行控制模塊的安全訪問,但無法應(yīng)對無人機(jī)網(wǎng)絡(luò)眾多資源類型與授權(quán)者發(fā)生變更的情況; 文獻(xiàn)[8]在多用戶訪問多UAV的背景下提出具有獨(dú)占性的基于角色的訪問控制(Role-Based Access Control, RBAC)方案,克服了其他RBAC方案中因多個(gè)用戶同時(shí)訪問同一資源而引發(fā)的操作混亂問題,但RBAC方案未考慮UAV資源完整性的特點(diǎn),而不能及時(shí)為此類資源分配權(quán)限,易導(dǎo)致完整性資源模塊不能及時(shí)得到監(jiān)控處理而威脅UAV的安全; 文獻(xiàn)[9]提出在多無人機(jī)系統(tǒng)中基于任務(wù)的訪問控制(Task-Based Access Control,TBAC)方案,通過中央任務(wù)管理器將任務(wù)分配到具體的UAV,方案中將訪問權(quán)限與任務(wù)相結(jié)合,每個(gè)任務(wù)都被看作主體使用權(quán)限訪問資源的過程,根據(jù)任務(wù)的緊急程度實(shí)現(xiàn)了主體的優(yōu)先級劃分,但未解決無人機(jī)網(wǎng)絡(luò)資源具有多種訪問控制需求的問題. 在其他領(lǐng)域的訪問控制中,文獻(xiàn)[10-11]根據(jù)資源被用戶訪問的情況而提出基于狀態(tài)的訪問控制模型(State-Based Access Control Model, SBACM),但該方案針對單一類型的資源,不能滿足無人機(jī)網(wǎng)絡(luò)資源類型復(fù)雜的實(shí)際場景. 為了解決以上問題,筆者提出一種基于狀態(tài)遷移的訪問控制模型(State Transition-Based Access Control Model,STBACM),實(shí)現(xiàn)對無人機(jī)網(wǎng)絡(luò)多種類型資源的安全訪問,而且確保了主體優(yōu)先級訪問控制. 表1給出該方案與其他方案的功能比較.

表1 不同方案的功能比較
在介紹文中方案之前,首先給出主體、客體、請求、權(quán)限、狀態(tài)以及狀態(tài)遷移6個(gè)術(shù)語的定義.
定義1 主體:系統(tǒng)中請求者的集合S. 其中S∈S,S= {Sid,Sp},S指系統(tǒng)中一個(gè)可以獨(dú)立訪問無人機(jī)網(wǎng)絡(luò)資源的主體,其由主體身份Sid和主體優(yōu)先級Sp組成.
定義2 客體:系統(tǒng)中可被請求者訪問的資源集合O. 其中O∈O,O= {Oid,A},客體O是由客體身份Oid和客體屬性集A= {A1,A2}構(gòu)成.A1表示資源的訪問性質(zhì),A2= {con,uncon},表示主體被訪問的情況(con表示客體已有主體訪問,uncon表示客體未被主體訪問).
定義3 請求: 系統(tǒng)為了變更權(quán)限而發(fā)起請求,請求集合R=RA×S×O. 授予或撤銷權(quán)限是由操作模式RA= {add,delete}所決定.r= {ra,S,O},表示r是由主體S發(fā)出的對客體O進(jìn)行ra權(quán)限操作的請求,其中r∈R且ra∈RA.
定義4 權(quán)限: 權(quán)限P=S×O,是系統(tǒng)中的主體對客體進(jìn)行訪問的許可. 其中,P∈P,P= (S,O),表示主體S訪問客體O的權(quán)限.
定義5 狀態(tài): 某個(gè)時(shí)間點(diǎn)內(nèi)系統(tǒng)中客體被系統(tǒng)主體授權(quán)的情況通過狀態(tài)表示,狀態(tài)集合表示為V. 其中,V∈V,V= {O,So},So表示系統(tǒng)當(dāng)前授權(quán)訪問O的主體集,So?S.
根據(jù)系統(tǒng)中客體類型,定義了4條訪問性質(zhì),當(dāng)且僅當(dāng)客體滿足至少一條訪問性質(zhì)時(shí)為安全狀態(tài):
(1) 共享性訪問性質(zhì)(Shared Access Property, SAP): 共享性客體可被多個(gè)主體同時(shí)訪問且不發(fā)生訪問控制沖突. 共享性客體O∈O,O的狀態(tài)V= {O,So}滿足SAP. SAP表示如下:
SAP?V∈V,?S,S′∈S,S≠S′?S∈So∧S′∈So.
(2) 獨(dú)占性訪問性質(zhì)(Exclusive Access Property, EAP): 獨(dú)占性客體至多被一個(gè)主體所訪問. 獨(dú)占性客體O∈O,O的狀態(tài)V= {O,So}滿足EAP,EAP表示如下:
EAP?V∈V,?S,S′∈S,S≠S′?S∈So∧S′?So∪S?So∧S′∈So.
(3) 完整性訪問性質(zhì)(Completeness Access Property,CAP): 完整性客體必須保證至少被一個(gè)主體訪問. 當(dāng)完整性客體出現(xiàn)沒有主體訪問的情況時(shí),將被授權(quán)到默認(rèn)主體Sd. 完整性客體O∈O,O的狀態(tài)V= {O,So}滿足CAP,CAP表示如下:
CAP???So.
(4) 非完整性訪問性質(zhì)(Incompleteness Access Property,IAP): 非完整性客體不需要保證始終被主體訪問.非完整性客體O∈O,O的狀態(tài)V= {O,So}滿足IAP,IAP表示如下:
IAP??∈So.
定義6 狀態(tài)遷移: trans:V×R→V,表示在請求觸發(fā)下客體從一個(gè)狀態(tài)到另一個(gè)狀態(tài)的遷移函數(shù).

圖2 系統(tǒng)模型
針對無人機(jī)網(wǎng)絡(luò)復(fù)雜的訪問控制情況[12],筆者提出基于狀態(tài)遷移的訪問控制模型,系統(tǒng)模型結(jié)構(gòu)如圖2所示,模型由主體、客體資源與訪問控制層組成. 其中系統(tǒng)通過主體發(fā)出請求的執(zhí)行次序滿足了主體優(yōu)先級,并根據(jù)客體訪問性質(zhì)實(shí)現(xiàn)對客體的分類,而且訪問控制層根據(jù)狀態(tài)遷移規(guī)則限制主體對資源的訪問. 模型在訪問控制層中引入訪問控制管理器(Access Control Manager, ACM)集中管理所有權(quán)限. 當(dāng)請求出現(xiàn)異常時(shí),ACM拒絕請求;否則,ACM將執(zhí)行狀態(tài)遷移,對請求進(jìn)行處理. 由于主體和資源之間沒有靜態(tài)映射,該映射由ACM執(zhí)行. 在主體允許訪問一個(gè)資源模塊之前,需要在ACM中存儲相對應(yīng)的權(quán)限. 模型中各模塊的作用將于下文中介紹.
在系統(tǒng)模型中,訪問控制的主體為請求者,其可以是地面控制站終端或UAV自身的應(yīng)用程序[13-14],根據(jù)請求的緊急程度和重要程度對主體進(jìn)行優(yōu)先級劃分. 主體可以發(fā)送訪問請求到ACM,在資源權(quán)限請求過程中,主體間可能會發(fā)生資源競爭. 此時(shí),ACM根據(jù)主體優(yōu)先級決定執(zhí)行請求的次序,在主體間優(yōu)先級相同的情況下,將按照主體間請求發(fā)送的先后次序執(zhí)行請求,即先到先得規(guī)則.

圖3 無人機(jī)網(wǎng)絡(luò)資源性質(zhì)分類圖
系統(tǒng)模型中的客體為無人機(jī)網(wǎng)絡(luò)的整體資源,根據(jù)資源的訪問性質(zhì),系統(tǒng)對無人機(jī)網(wǎng)絡(luò)的資源進(jìn)行分類,如圖3所示,客體資源分為4種類型.
在無人機(jī)網(wǎng)絡(luò)執(zhí)行飛行任務(wù)時(shí),由于單個(gè)UAV的續(xù)航時(shí)間有限,為了延長UAV任務(wù)執(zhí)行時(shí)間并提供不間斷的服務(wù),無人機(jī)網(wǎng)絡(luò)會將飛行任務(wù)從一架UAV轉(zhuǎn)交給另一架UAV[9],這個(gè)過程伴隨著權(quán)限轉(zhuǎn)移. 且隨著UAV的高速移動(dòng),系統(tǒng)中的請求者會發(fā)生變更. 如圖4所示,在權(quán)限轉(zhuǎn)移和授權(quán)者變更時(shí)將觸發(fā)一系列的客體狀態(tài)遷移,比如,系統(tǒng)將撤銷已退出系統(tǒng)的授權(quán)者的權(quán)限,并添加新加入系統(tǒng)的主體的權(quán)限. 在狀態(tài)遷移的過程中將根據(jù)客體狀態(tài)執(zhí)行訪問控制策略.

圖4 系統(tǒng)狀態(tài)遷移圖
系統(tǒng)狀態(tài)遷移如圖4所示,生成步驟如下:
步驟1 創(chuàng)建客體的初始狀態(tài):將系統(tǒng)客體集合中的一個(gè)客體O∈O和訪問該客體的主體集So?S視為該客體的初始狀態(tài)V0∈V.
步驟2 觸發(fā)狀態(tài)遷移:當(dāng)無人機(jī)網(wǎng)絡(luò)中授權(quán)者發(fā)生變更和UAV間出現(xiàn)任務(wù)轉(zhuǎn)移時(shí),需要進(jìn)行一系列的權(quán)限變更. 在變更訪問客體O的權(quán)限時(shí),主體發(fā)送的請求r∈R. 當(dāng)r滿足狀態(tài)遷移規(guī)則的條件時(shí),則生成一條由O當(dāng)前狀態(tài)Vi∈V指向Vj∈V的有向邊trans(Vi,r)=Vj.其表示在請求r的觸發(fā)下,執(zhí)行訪問控制策略中的狀態(tài)遷移規(guī)則,響應(yīng)請求r,客體O從狀態(tài)Vi遷移至狀態(tài)Vj.
步驟3 生成新狀態(tài):執(zhí)行狀態(tài)遷移后,訪問客體O的主體集發(fā)生改變,此時(shí)生成新狀態(tài),客體狀態(tài)遷移至新的狀態(tài)節(jié)點(diǎn)Vj.
ACM在處理請求和權(quán)限更新時(shí)需要訪問控制策略判斷是否接收請求以及如何執(zhí)行狀態(tài)遷移. 在STBACM中介紹了訪問控制策略中狀態(tài)遷移規(guī)則的具體實(shí)現(xiàn),相關(guān)參數(shù)的定義見表2.

表2 參數(shù)定義表
以下為STBACM的遷移規(guī)則,其中規(guī)則1定義如何添加共享性客體的權(quán)限,規(guī)則2定義如何添加獨(dú)占性客體的權(quán)限,規(guī)則3定義如何刪除非完整性客體的權(quán)限,而規(guī)則4是對完整性客體的權(quán)限撤銷的定義,確保完整性客體在撤銷權(quán)限后的完整性. 當(dāng)請求r滿足狀態(tài)遷移規(guī)則條件時(shí),將ACM按狀態(tài)遷移規(guī)則執(zhí)行遷移.其中ACM處理請求執(zhí)行狀態(tài)遷移規(guī)則的流程如圖5所示.

圖5 ACM處理請求流程圖
規(guī)則1 添加共享性客體權(quán)限.若主體S需要添加共享性客體O的權(quán)限,S發(fā)送請求r∈R,r= (add,S,O).如果r滿足狀態(tài)遷移規(guī)則條件1,ACM將執(zhí)行狀態(tài)遷移,調(diào)用函數(shù)addSAP(S,O)添加權(quán)限P= (S,O)到ACM,其中P∈P. 條件1可表示為
(1)
規(guī)則2 添加獨(dú)占性客體權(quán)限.若主體S需獲得獨(dú)占性客體O的權(quán)限,S發(fā)出的請求r∈R,r= (add,S,O).根據(jù)客體O的權(quán)限是否已授予給其他主體分為以下兩種情況:
規(guī)則2.1 當(dāng)獨(dú)占性資源O尚無其他主體訪問時(shí),則調(diào)用函數(shù)addUncontrolledExclusiveRes(S,O)將O的權(quán)限授予給主體S.如果滿足條件2.1,它將添加P= (S,O)到ACM,P∈P. 條件2.1可表示為
(2)
規(guī)則2.2 獨(dú)占性客體O此時(shí)已被主體S′訪問控制;如果S′優(yōu)先級小于S,則依次調(diào)用函數(shù)delPermiss(S′,O)和addUnconEAP(S,O),將O的權(quán)限授予給優(yōu)先級高的S,如果滿足條件2.2,則它將添加S到O的授權(quán)集中; 如果S′優(yōu)先級不低于S,則根據(jù)先到先得的策略,S將無法獲得O的權(quán)限. 條件2.2可表示為
(3)
規(guī)則3 撤銷非完整性客體權(quán)限.若主體S需要將非完整性客體O的權(quán)限進(jìn)行撤銷.這由請求r∈R,r= (delete,S,O)所表示. 在這種情況下,調(diào)用一個(gè)函數(shù)delPermiss(S,O). 如果滿足條件3,它將從ACM中移除權(quán)限P= (S,O).條件3可表示為
(4)
規(guī)則4 撤銷完整性客體權(quán)限.若主體S需要將完整性客體O的權(quán)限進(jìn)行撤銷. 這由請求r∈R,r= (delete,S,O)所表示. 若滿足條件4,它將在ACM中移除權(quán)限P= (S,O),并將O的權(quán)限授予給O默認(rèn)的主體Sd,保證O的完整性訪問性質(zhì). 條件4可表示為
(5)
當(dāng)且僅當(dāng)主體發(fā)送的請求r滿足狀態(tài)遷移規(guī)則的條件時(shí),才能夠調(diào)用相應(yīng)的函數(shù),觸發(fā)狀態(tài)之間的遷移.
對STBACM方案的性能進(jìn)行測試與評估.實(shí)驗(yàn)在Eclipse 4.6.1(Windows 8,主頻為 2.30 GHz,內(nèi)存為 4.00 GB) 上計(jì)算了STBACM方案在仿真環(huán)境下處理請求時(shí)執(zhí)行狀態(tài)遷移的計(jì)算開銷. 為了對STBACM方案更好地進(jìn)行分析,文中將實(shí)驗(yàn)方案部署于由多個(gè)地面控制終端(Windows 8,主頻為 2.30 GHz,內(nèi)存為 4.00 GB) 和3個(gè)無人機(jī)(主處理器STM32F427,協(xié)處理器STM32F100)組成的無人機(jī)網(wǎng)絡(luò)上,并與RBAC方案進(jìn)行對比,其中無人機(jī)網(wǎng)絡(luò)采用MAVLink協(xié)議[15]. 下面從系統(tǒng)客體和主體兩個(gè)角度來測試系統(tǒng)在不同數(shù)量規(guī)模主體|S|與客體|O|情況下的性能,并給出與RBAC方案性能的比較,實(shí)驗(yàn)結(jié)果如圖6所示,其中圖6(a)和(b)為仿真環(huán)境下的STBACM的遷移規(guī)則執(zhí)行時(shí)間,圖6(c)和(d)對比了實(shí)際無人機(jī)網(wǎng)絡(luò)與仿真環(huán)境下STBACM和RBAC兩種方案的執(zhí)行時(shí)間. 在圖6(a)中發(fā)現(xiàn)客體規(guī)模 |O|= 50,|S|∈ [10,50]的情況下,規(guī)則執(zhí)行時(shí)間隨著|S|規(guī)模的擴(kuò)大而增長趨勢逐漸變緩,在圖6(b)中得知,當(dāng)主體規(guī)模 |S|= 10,|O|∈ [50,250]時(shí),規(guī)則執(zhí)行時(shí)間隨著|O|規(guī)模的變化而呈近似線性的增長. 從圖6(a)和(b)中發(fā)現(xiàn)STBACM的遷移規(guī)則執(zhí)行時(shí)間與系統(tǒng)主體和客體數(shù)量規(guī)模相關(guān),其隨著主體和客體數(shù)量規(guī)模的增加而增加,且通過對方案中狀態(tài)遷移規(guī)則執(zhí)行時(shí)間的比較中發(fā)現(xiàn),在撤銷權(quán)限時(shí),規(guī)則4由于需要保證客體資源的完整性,因而時(shí)間開銷高于規(guī)則3; 在對獨(dú)占性資源授權(quán)時(shí),規(guī)則2.2需要比較主體間的優(yōu)先級,如果符合條件則執(zhí)行規(guī)則2.1,否則拒絕請求,所以平均執(zhí)行時(shí)間明顯低于規(guī)則2.1; 規(guī)則1對共享性資源進(jìn)行權(quán)限授予,無需比較主體間的優(yōu)先級,因而計(jì)算時(shí)間介于規(guī)則2.1與規(guī)則2.2之間. 在圖6(c)和(d)中,STBACM和RBAC均隨著主體與客體數(shù)量規(guī)模的擴(kuò)大執(zhí)行時(shí)間隨之增加.在仿真環(huán)境中,當(dāng)主體 |S|= 10,客體 |O|= 50時(shí),RBAC方案的時(shí)間開銷為 6.1 ms,STBACM方案的時(shí)間開銷為 11.5 ms;STBACM執(zhí)行時(shí)間略高于RBAC,這是因?yàn)镾TBACM方案是根據(jù)客體狀態(tài)和主體優(yōu)先級而進(jìn)行彈性權(quán)限管理,彌補(bǔ)了RBAC方案無法保證客體資源的完整性和獨(dú)占性的不足,所以時(shí)間開銷略有增長,該增長可接受. 而且在無人機(jī)網(wǎng)絡(luò)中,當(dāng)主體 |S|= 10,客體 |O|= 50時(shí),RBAC方案的時(shí)間開銷為 8.3 ms,STBACM方案的時(shí)間開銷為 13.6 ms,從中可知,實(shí)際無人機(jī)網(wǎng)絡(luò)中方案的執(zhí)行時(shí)間高于仿真環(huán)境,其原因是在無人機(jī)網(wǎng)絡(luò)環(huán)境中需要通過系統(tǒng)創(chuàng)建階段為無人機(jī)網(wǎng)絡(luò)創(chuàng)建主體和客體,系統(tǒng)創(chuàng)建階段存在時(shí)間開銷和通信延遲. 無人機(jī)網(wǎng)絡(luò)中STBACM方案的時(shí)間開銷為 13.6 ms,這在實(shí)際無人機(jī)網(wǎng)絡(luò)應(yīng)用場景中可行,因此,文中的STBACM方案在實(shí)際無人機(jī)網(wǎng)絡(luò)應(yīng)用場景中是可行的.

圖6 請求執(zhí)行時(shí)間隨主體客體規(guī)模的變化趨勢
針對傳統(tǒng)訪問控制機(jī)制不能滿足無人機(jī)網(wǎng)絡(luò)中復(fù)雜的訪問控制環(huán)境及權(quán)限變更的需求,筆者提出了基于狀態(tài)遷移的訪問控制模型,并確保了細(xì)粒度的訪問權(quán)限管理和主體優(yōu)先級控制,且實(shí)驗(yàn)性能測試表明文中方案在實(shí)際無人機(jī)網(wǎng)絡(luò)應(yīng)用場景中具有可行性. 進(jìn)一步研究工作將提高方案中遷移規(guī)則的執(zhí)行效率,并結(jié)合實(shí)際無人機(jī)網(wǎng)絡(luò)的上下文環(huán)境對文中方案進(jìn)行擴(kuò)展.