鄒志文 莊澤民 吳江
摘 要:分析了RBAC時限訪問控制模型,對時間約束的及時恢復(fù)問題進行了探討。選擇合理的終止會話集合,使系統(tǒng)恢復(fù)到安全狀態(tài)。對多域環(huán)境下面臨的匿名訪問、權(quán)限隱蔽提升和指派傳遞失控等安全問題提出了解決方案:擴展現(xiàn)有安全模型或建立新的安全模型實現(xiàn)多域環(huán)境下的安全管理和協(xié)同操作,允許在不同安全域的個體和系統(tǒng)間進行大量信息交換和數(shù)據(jù)共享等互操作。提出了基于RBAC的時限訪問控制模型的時間判斷點選擇算法,該算法能改善靜態(tài)方式下時間準確性和效率方面的不足。
關(guān)鍵詞:RBAC;時限約束;多域
DOI:10.11907/rjdk.171451
中圖分類號:TP312 文獻標識碼:A 文章編號:1672-7800(2017)009-0087-03
Abstract:Based on the analysis of RBAC time-limited access control model, the Timely recovery of time constraint is discussed. Choosing a reasonable algorithm to terminate the session set to restore the system to the security state and propose a solution to the security problems such as anonymous access, privilege concealment and assignment failure. Extending existing security models or creating new security models is to implement security management and collaboration in a multi-domain environment,to allow interoperability among a large number of information exchange and data sharing between individuals and systems belonging to different security domains. A selection algorithm of time decision point selection based on RBAC time - limited access control model is proposed, which can improve the accuracy of time and efficiency in static mode.
Key Words:RBAC; time constraint; multi-domain
0 引言
基于角色的訪問控制模型(RBAC)是目前安全模型領(lǐng)域的研究熱點。多域間的互操作為分布式環(huán)境下資源和服務(wù)的最大共享創(chuàng)造了條件,大大提高了分布式系統(tǒng)的性能和資源利用率。例如,在P2P網(wǎng)絡(luò)中,節(jié)點間通過交互操作實現(xiàn)資源共享;在分布式數(shù)據(jù)庫中,用戶間通過互操作對多域數(shù)據(jù)庫進行訪問。目前,跨域互操作技術(shù)在政府、軍隊、金融和醫(yī)療等許多重要領(lǐng)域都得到了廣泛應(yīng)用。
RBAC一直以來都是傳統(tǒng)Web應(yīng)用中訪問控制模型的首選。但傳統(tǒng)架構(gòu)風格的諸多不良設(shè)計給權(quán)限檢索及維護帶來一系列問題。文獻[1]在引入時間限制后,模型并沒有考慮隨時間的動態(tài)變化,并且委托授權(quán)也與時間限制無關(guān),這大大降低了系統(tǒng)效率和對無權(quán)訪問的安全性。文獻[2]引入時間約束判定后,雖然考慮了模型的動態(tài)變化,但對于精確程度方面研究略有不足。本文在前人的基礎(chǔ)上進行改進,對如何判斷和找出時間判斷點給出結(jié)論。文獻[3]、文獻[4]采用時間限制的基于角色的轉(zhuǎn)授權(quán)模型,描述了角色授權(quán)和角色撤銷機制,提出了完備的具有時間限制的基于角色的轉(zhuǎn)授權(quán)模型。文獻[5]提出了一種利用概念格將角色權(quán)限和屬性進行關(guān)聯(lián)分析的模型,根據(jù)用戶屬性將滿足需求的角色自動分配給新用戶。文獻[6]通過各種實驗證明利用概念格進行角色挖掘具有非常顯著的效果。文獻[7]、文獻[8]首次提出了沒有角色層次的基于角色的委托模型,并介紹了一些擴展模型,如授權(quán)撤銷、部分委托、多步委托和具有角色層次的委托,但沒考慮到多域環(huán)境下如何提高TRBAC模型的效率和安全性。
本文嘗試在多域環(huán)境下通過動態(tài)計算方式對權(quán)限是否合法進行角色判定,設(shè)計一種時間判斷點選擇算法,盡可能提高系統(tǒng)效率和安全性能。
1 多域環(huán)境下時間判斷點選擇策略
多域由多個互為契約關(guān)系的安全域組成,而安全域就是一個有邊界的、由受保護的客體和用戶群組成,由一位安全管理員來管理和維護一組安全策略的區(qū)域,當一個域需要允許以前不相識的用戶或?qū)嶓w訪問自己的資源時,必須設(shè)置相應(yīng)的安全機制來確保未知的訪問被控制在預(yù)先定義的已知共享策略范疇之內(nèi)。當這樣的跨域訪問在多個域間被允許,并且各系統(tǒng)仍然沿用自身原有的安全策略時,這些域就被看作是組成了一個多域環(huán)境,如圖1所示。
對于兩個來自不同域A和B的客體OA、OB,角色rA和rB對于某權(quán)限a可能存在以下4種關(guān)系[9]:①包含關(guān)系:角色r的權(quán)限集合Pset(r)包括所有直接或間接指派給角色r的權(quán)限;②相等關(guān)系:如果rA包含rB且rB包含rA,那么rA與rB相等;③相交關(guān)系:如果Pset(rA)和Pset(rB)有相同的共享權(quán)限,且rA不包含rB,rB不包含rA,那么rA與rB相交;④無關(guān):如果角色rA和rB不共享任何權(quán)限,那么rA與rB無關(guān)。
因此,在n個協(xié)同域組成的多域環(huán)境中,可借助上述4類角色關(guān)聯(lián)規(guī)則,通過兩兩相關(guān)的迭代方法為不同域的角色建立關(guān)聯(lián),進行角色傳遞和權(quán)限繼承,從而實現(xiàn)跨域安全互操作。在第一次迭代時,用域1和域2的最高級角色合成域1和域2的RBAC安全策略;在隨后的迭代中,一條新的RBAC策略由前面迭代中產(chǎn)生的合成RBAC策略生成;在經(jīng)過n-1次迭代后,n個域的RBAC策略集成為全局性的多域互操作策略。此外,在每次迭代中新產(chǎn)生的冗余角色從集成RBAC策略中刪除,即多域通過定義指派(Credentials)、指派鏈(Credential Chains)、支持鏈(Support Chains)、證據(jù)(Proofs)、子證據(jù)(Sub-Proofs)和證據(jù)監(jiān)控(Proof Monitor)等一系列概念完成多個域間角色轉(zhuǎn)換。如圖2所示,根據(jù)支持鏈(Supporting Chain)對主鏈(Primary Chain)的證明,可推導(dǎo)出“主體A可以獲得主體B所擁有的角色role2”這一結(jié)論。endprint
時間約束分為3大類:①激活時間范圍約束;②激活時間長度約束;③時間范圍內(nèi)激活時間長度限制[10-13]。以往的研究中對于所選會話是否符合當前的時限約束,經(jīng)常選擇一段固定時間進行判斷,但這段時間中包含n個會話,每個會話的結(jié)束時間和持續(xù)時間又都不相同,如果按照一個相同的時間段去判斷可能造成比較大的誤差。如果所選的時間段相隔時間較長,會導(dǎo)致不應(yīng)繼續(xù)的權(quán)限仍然處于允許狀態(tài),使系統(tǒng)安全性下降;所選時間間隔較短,則會導(dǎo)致系統(tǒng)頻繁不斷地判斷,雖從某種程度上保證了系統(tǒng)的安全性,但大大降低了系統(tǒng)的工作效率。
比如,將同一時間段內(nèi)所有會話結(jié)束時間值放入集合s1={10:01,10:02,10:03,10:04,10:05,10:06,10:09,10:16,10:25,10:26,10:36},按以往方式經(jīng)常會選擇一段固定時間(下文以△T法簡稱)判斷會話是否還在條件允許內(nèi)。假設(shè)從10:00開始,選取固定時間t1=1分鐘和t2=1秒,當選取t=t1時,每隔一分鐘就去判斷會話是否符合規(guī)則,而當選取t=t2時,每隔一秒鐘就要去判斷會話是否符合規(guī)則,t2相對于t1對于集合s1來說,效率明顯低了很多。而當面對的集合并非是整數(shù)間隔,比如s2={10:01:30,10:02:21,10:03:29,10:04:33,10:05:41,10:06:46,10:09:48,10:16:21,10:25:01,10:26:03,10:36:08}時,如此不規(guī)則的時間間隔還像往常一樣選取t1或t2,選取t1的話,后續(xù)會話總會慢上幾秒鐘或幾分鐘,對安全性略顯無力,而選取t2則可滿足一切要求。但是當會話集合時間段再往下細分,那么t2也無法滿足需求了。
為解決TRBAC模型中出現(xiàn)的效率和安全性不足,可設(shè)計如下辦法:不論集合如何變動,設(shè)計一種動態(tài)方式隨著會話時間的改變而相應(yīng)改變判斷的時機,本文提出時間判斷點這個概念,即在這個時間點來判斷當前會話是否滿足當前權(quán)限要求。
當不存在時間判斷點時,將會話集合中首先結(jié)束的會話時間點作為第一個時間判斷點,之后將第一個判斷點之后新產(chǎn)生的會話加入到集合中,再對兩個時間判斷點之間產(chǎn)生的新會話進行統(tǒng)計,重新進行新一輪篩選,選出下一個時間判斷點。本文對以往靜態(tài)式的處理進行改進,采用動態(tài)手段增加其安全性和有效性。
查找動態(tài)判斷點算法描述如下:
Tpo=Sort(Tpo) // 對Tpo進行排序
Tpn=Sort(Tpn) //對Tpn進行排序
If(Tpn!=Φ) //求下一個時間判斷點t
Merger-T(Tpo,Tpn) //合并2個集合到Tpo中
t=FindMin(Tpo) //在Tpo中找到最小值作為時間判斷點
Tpo=Tpo-{t} //從集合中去掉所選時間判斷點
while((currenttime=GetCurTime())<=t)//求Tpn:在判斷點前出現(xiàn)新的會話,加 入Tpn
if Endtime(s)<=t //如果在判斷點之內(nèi)結(jié)束
Merger-T(Tpo,Tpn) //合并2個集合到Tpo中
t=FindMin(Tpo) //在Tpo中找到最小值作為時間判斷點
ifelse Endtime(s)>t //如結(jié)束時間點大于判斷點
Insert(Tpn,|t-Endtime(s)|) //將與時間判斷點的差值放入Tpn
Merger-T(Tpo,Tpn) //合并2個集合到Tpo中
t=FindMin(Tpo) //在Tpo中找到最小值作為時間判斷點
2 算法分析
按照固定△T進行安全性檢查,效率和安全往往不能令人滿意,本文提出的時間點選擇算法描述如下:
對一段時間內(nèi)不同的會話結(jié)束時間的不同,可將會話結(jié)束時間段放入一個數(shù)組進行管理,對于每個元素的排列規(guī)則分為以下幾個類型:double a[]={t1, t2, t3,…, tn}(排好序),用△T法時取時間T:
(1)當T< t1,在最短會話結(jié)束前就開始判斷是否符合規(guī)則,而動態(tài)方式則從時間點t1開始判斷,相對于△T法效率略高。
(2)當T= t1,兩種方式都在時間點t1進行判斷,△T法過時間T后再進行判斷,而動態(tài)方式則重新計算新的時間判斷點,對后續(xù)的{t2,t3....tn}所在數(shù)組重新進行判斷,對于后續(xù)的t2依舊是動態(tài)方式比較高效。
(3)當T> tn,動態(tài)方式如前,而△T法則等待所有會話結(jié)束后再進行判斷,故不考慮T> tn的情況。
(4)當t1≤T≤ t2,相比情況(2),從t2往后的各個時間段效率降低。
綜上幾種情況看,當t(n/2)≤T≤ t(n/2+1)時,平均效率最高。為了便于描述,取T=t(n/2)時△T法效率最高。
對于動態(tài)方式,相比于△T法,需要對時間段數(shù)組進行排序,當數(shù)據(jù)過多時排序時間會延長,效率降低。
根據(jù)會話與客戶端的數(shù)量規(guī)模,依次挑選幾個有代表性的數(shù)據(jù)進行系統(tǒng)性能測試,主要記錄系統(tǒng)各主要操作的響應(yīng)時間,以及根據(jù)實際使用情況估算出在各數(shù)據(jù)量下的操作時間和系統(tǒng)響應(yīng)時間,系統(tǒng)性能測試結(jié)果如表1所示。
從表1可以看出,相對于△T法而言,動態(tài)時間點法在修改權(quán)限以及權(quán)限檢測的時間上大多比前者快,但是當會話數(shù)量較多時,△T法則更有優(yōu)勢。
權(quán)限檢查測試是檢查系統(tǒng)中的會話是否依照規(guī)則下放或獲得權(quán)限。驗證會話是否有客戶端授權(quán),用戶是否有操作該客戶端的權(quán)限。根據(jù)動態(tài)方式的權(quán)限檢查,可以攔截非法的執(zhí)行操作,保護數(shù)據(jù)安全。只有符合權(quán)限驗證的備份任務(wù)能夠正常執(zhí)行。權(quán)限檢查測試用例如表2所示。endprint
從表2可知,對于△T法而言,動態(tài)時間點法在權(quán)限分發(fā)時可能會有短時間安全隱患的真空期,時間判斷點算法相對于△T法安全性有所提高。
由表 1 可以看出,當會話數(shù)量為1 000,客戶端數(shù)量為1 000 時,系統(tǒng)整體性能較好,響應(yīng)時間較短。當會話數(shù)量和客戶端數(shù)量增多時,系統(tǒng)性能明顯下降。因為在新建會話時需要向數(shù)據(jù)庫中插入數(shù)據(jù),插入性能隨著會話數(shù)量的增多而降低,會話與權(quán)限的關(guān)聯(lián)表數(shù)量也急劇增多,因為每個會話都對應(yīng)了多個關(guān)聯(lián)記錄。當會話數(shù)量大量增大時,動態(tài)耗時明顯上升,可見會話數(shù)量上升會影響其效率,但是多數(shù)情況還是優(yōu)于前者。
如表2所示,當從未授權(quán)轉(zhuǎn)換成已授權(quán)時,動態(tài)方式比靜態(tài)方式成功率更高,動態(tài)方式的安全性相對于以往的靜態(tài)方式安全可靠性更高。
3 結(jié)語
本文在多域情況下對動態(tài)時間判斷點給出了解決算法,與以往研究相比,解決了文獻[2]中對于精確程度方面的不足,使之更高效合理。本文在前人研究基礎(chǔ)上,對如何判斷和找出時間判斷點給出了方案。
今后的研究應(yīng)解決以下問題:①如何縮短排序時間,避免影響效率;②對于時間判斷點的動態(tài)變化,時間變化如何引起模型變化還有待進一步研究。
參考文獻:
[1] 馮俊,王箭.一種基于T-RBAC的訪問控制改進模型[J].計算機工程,2012,38(16):138-141.
[2] 高利軍,徐蕾.TRBAC中翻轉(zhuǎn)點選擇和安全恢復(fù)算法的研究[J].軟件學報,2013,24(3):564-574.
[3] 陳學龍,鄭洪源,丁秋林.一種基于T-RBAC的動態(tài)多級Web服務(wù)訪問控制模型[J].計算機科學,2014,41(3):181-222.
[4] 任海鵬.訪問控制模型研究現(xiàn)狀及展望[J].計算機與數(shù)字工程,2013,41(3):452-456.
[5] 李雙.一種擴展的基于角色的訪問控制模型[J].計算機工程與應(yīng)用,2012,48(19):54-60.
[6] 趙衛(wèi)東,畢曉清,盧新明.基于角色的細粒度訪問控制模型的設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,2013,34(2):474-479.
[7] BARKAE, SANDHUR. A role-based delegation model and some extensions[C].Proc of the 23rd National in formation Systems Security Conference. Baltimore,MD:NIST,2000:168-177.
[8] BARKA E, SANDHU R. Role-based delegation model/hierarchicalroles(RBDM 1)[C].Procofthe 20th Annual Computer Security Applications Conference.Tucson,Arizona:IEEE ComputerSociety,2004:396-404.
[9] 道煒,湯庸,冀高峰,等.基于時限的角色訪問控制委托模型[J].計算機科學,2008,35(3):277-279.
[10] 夏啟壽,范訓禮,殷曉玲.基于時間的RBAC轉(zhuǎn)授權(quán)模型[J].西北大學學報:自然科學版,2009,38(6): 932-936.
[11] ERFANI S. Security management system functional architecturefor enterprise network[C].The 7th IEEE/IFIP Network Opera-tions and Management Symposium.Honolulu,USA,2000.
[12] 李鳳華,蘇铓,史國振,等.訪問控制模型研究進展及發(fā)展趨勢[J].電子學報,2012,40(4):805-813.
[13] 鄧勇,張琳,王汝傳,等.網(wǎng)格計算中基于信任度的動態(tài)角色訪問控制的研究[J].計算機科學,2010(1):51-54.
(責任編輯:杜能鋼)endprint