鄒志文 莊澤民 吳江
摘 要:分析了RBAC時(shí)限訪問(wèn)控制模型,對(duì)時(shí)間約束的及時(shí)恢復(fù)問(wèn)題進(jìn)行了探討。選擇合理的終止會(huì)話集合,使系統(tǒng)恢復(fù)到安全狀態(tài)。對(duì)多域環(huán)境下面臨的匿名訪問(wèn)、權(quán)限隱蔽提升和指派傳遞失控等安全問(wèn)題提出了解決方案:擴(kuò)展現(xiàn)有安全模型或建立新的安全模型實(shí)現(xiàn)多域環(huán)境下的安全管理和協(xié)同操作,允許在不同安全域的個(gè)體和系統(tǒng)間進(jìn)行大量信息交換和數(shù)據(jù)共享等互操作。提出了基于RBAC的時(shí)限訪問(wèn)控制模型的時(shí)間判斷點(diǎn)選擇算法,該算法能改善靜態(tài)方式下時(shí)間準(zhǔn)確性和效率方面的不足。
關(guān)鍵詞:RBAC;時(shí)限約束;多域
DOI:10.11907/rjdk.171451
中圖分類號(hào):TP312 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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 引言
基于角色的訪問(wèn)控制模型(RBAC)是目前安全模型領(lǐng)域的研究熱點(diǎn)。多域間的互操作為分布式環(huán)境下資源和服務(wù)的最大共享創(chuàng)造了條件,大大提高了分布式系統(tǒng)的性能和資源利用率。例如,在P2P網(wǎng)絡(luò)中,節(jié)點(diǎn)間通過(guò)交互操作實(shí)現(xiàn)資源共享;在分布式數(shù)據(jù)庫(kù)中,用戶間通過(guò)互操作對(duì)多域數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)。目前,跨域互操作技術(shù)在政府、軍隊(duì)、金融和醫(yī)療等許多重要領(lǐng)域都得到了廣泛應(yīng)用。
RBAC一直以來(lái)都是傳統(tǒng)Web應(yīng)用中訪問(wèn)控制模型的首選。但傳統(tǒng)架構(gòu)風(fēng)格的諸多不良設(shè)計(jì)給權(quán)限檢索及維護(hù)帶來(lái)一系列問(wèn)題。文獻(xiàn)[1]在引入時(shí)間限制后,模型并沒有考慮隨時(shí)間的動(dòng)態(tài)變化,并且委托授權(quán)也與時(shí)間限制無(wú)關(guān),這大大降低了系統(tǒng)效率和對(duì)無(wú)權(quán)訪問(wèn)的安全性。文獻(xiàn)[2]引入時(shí)間約束判定后,雖然考慮了模型的動(dòng)態(tài)變化,但對(duì)于精確程度方面研究略有不足。本文在前人的基礎(chǔ)上進(jìn)行改進(jìn),對(duì)如何判斷和找出時(shí)間判斷點(diǎn)給出結(jié)論。文獻(xiàn)[3]、文獻(xiàn)[4]采用時(shí)間限制的基于角色的轉(zhuǎn)授權(quán)模型,描述了角色授權(quán)和角色撤銷機(jī)制,提出了完備的具有時(shí)間限制的基于角色的轉(zhuǎn)授權(quán)模型。文獻(xiàn)[5]提出了一種利用概念格將角色權(quán)限和屬性進(jìn)行關(guān)聯(lián)分析的模型,根據(jù)用戶屬性將滿足需求的角色自動(dòng)分配給新用戶。文獻(xiàn)[6]通過(guò)各種實(shí)驗(yàn)證明利用概念格進(jìn)行角色挖掘具有非常顯著的效果。文獻(xiàn)[7]、文獻(xiàn)[8]首次提出了沒有角色層次的基于角色的委托模型,并介紹了一些擴(kuò)展模型,如授權(quán)撤銷、部分委托、多步委托和具有角色層次的委托,但沒考慮到多域環(huán)境下如何提高TRBAC模型的效率和安全性。
本文嘗試在多域環(huán)境下通過(guò)動(dòng)態(tài)計(jì)算方式對(duì)權(quán)限是否合法進(jìn)行角色判定,設(shè)計(jì)一種時(shí)間判斷點(diǎn)選擇算法,盡可能提高系統(tǒng)效率和安全性能。
1 多域環(huán)境下時(shí)間判斷點(diǎn)選擇策略
多域由多個(gè)互為契約關(guān)系的安全域組成,而安全域就是一個(gè)有邊界的、由受保護(hù)的客體和用戶群組成,由一位安全管理員來(lái)管理和維護(hù)一組安全策略的區(qū)域,當(dāng)一個(gè)域需要允許以前不相識(shí)的用戶或?qū)嶓w訪問(wèn)自己的資源時(shí),必須設(shè)置相應(yīng)的安全機(jī)制來(lái)確保未知的訪問(wèn)被控制在預(yù)先定義的已知共享策略范疇之內(nèi)。當(dāng)這樣的跨域訪問(wèn)在多個(gè)域間被允許,并且各系統(tǒng)仍然沿用自身原有的安全策略時(shí),這些域就被看作是組成了一個(gè)多域環(huán)境,如圖1所示。
對(duì)于兩個(gè)來(lái)自不同域A和B的客體OA、OB,角色rA和rB對(duì)于某權(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相交;④無(wú)關(guān):如果角色rA和rB不共享任何權(quán)限,那么rA與rB無(wú)關(guān)。
因此,在n個(gè)協(xié)同域組成的多域環(huán)境中,可借助上述4類角色關(guān)聯(lián)規(guī)則,通過(guò)兩兩相關(guān)的迭代方法為不同域的角色建立關(guān)聯(lián),進(jìn)行角色傳遞和權(quán)限繼承,從而實(shí)現(xiàn)跨域安全互操作。在第一次迭代時(shí),用域1和域2的最高級(jí)角色合成域1和域2的RBAC安全策略;在隨后的迭代中,一條新的RBAC策略由前面迭代中產(chǎn)生的合成RBAC策略生成;在經(jīng)過(guò)n-1次迭代后,n個(gè)域的RBAC策略集成為全局性的多域互操作策略。此外,在每次迭代中新產(chǎn)生的冗余角色從集成RBAC策略中刪除,即多域通過(guò)定義指派(Credentials)、指派鏈(Credential Chains)、支持鏈(Support Chains)、證據(jù)(Proofs)、子證據(jù)(Sub-Proofs)和證據(jù)監(jiān)控(Proof Monitor)等一系列概念完成多個(gè)域間角色轉(zhuǎn)換。如圖2所示,根據(jù)支持鏈(Supporting Chain)對(duì)主鏈(Primary Chain)的證明,可推導(dǎo)出“主體A可以獲得主體B所擁有的角色role2”這一結(jié)論。endprint
時(shí)間約束分為3大類:①激活時(shí)間范圍約束;②激活時(shí)間長(zhǎng)度約束;③時(shí)間范圍內(nèi)激活時(shí)間長(zhǎng)度限制[10-13]。以往的研究中對(duì)于所選會(huì)話是否符合當(dāng)前的時(shí)限約束,經(jīng)常選擇一段固定時(shí)間進(jìn)行判斷,但這段時(shí)間中包含n個(gè)會(huì)話,每個(gè)會(huì)話的結(jié)束時(shí)間和持續(xù)時(shí)間又都不相同,如果按照一個(gè)相同的時(shí)間段去判斷可能造成比較大的誤差。如果所選的時(shí)間段相隔時(shí)間較長(zhǎng),會(huì)導(dǎo)致不應(yīng)繼續(xù)的權(quán)限仍然處于允許狀態(tài),使系統(tǒng)安全性下降;所選時(shí)間間隔較短,則會(huì)導(dǎo)致系統(tǒng)頻繁不斷地判斷,雖從某種程度上保證了系統(tǒng)的安全性,但大大降低了系統(tǒng)的工作效率。
比如,將同一時(shí)間段內(nèi)所有會(huì)話結(jié)束時(shí)間值放入集合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)常會(huì)選擇一段固定時(shí)間(下文以△T法簡(jiǎn)稱)判斷會(huì)話是否還在條件允許內(nèi)。假設(shè)從10:00開始,選取固定時(shí)間t1=1分鐘和t2=1秒,當(dāng)選取t=t1時(shí),每隔一分鐘就去判斷會(huì)話是否符合規(guī)則,而當(dāng)選取t=t2時(shí),每隔一秒鐘就要去判斷會(huì)話是否符合規(guī)則,t2相對(duì)于t1對(duì)于集合s1來(lái)說(shuō),效率明顯低了很多。而當(dāng)面對(duì)的集合并非是整數(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}時(shí),如此不規(guī)則的時(shí)間間隔還像往常一樣選取t1或t2,選取t1的話,后續(xù)會(huì)話總會(huì)慢上幾秒鐘或幾分鐘,對(duì)安全性略顯無(wú)力,而選取t2則可滿足一切要求。但是當(dāng)會(huì)話集合時(shí)間段再往下細(xì)分,那么t2也無(wú)法滿足需求了。
為解決TRBAC模型中出現(xiàn)的效率和安全性不足,可設(shè)計(jì)如下辦法:不論集合如何變動(dòng),設(shè)計(jì)一種動(dòng)態(tài)方式隨著會(huì)話時(shí)間的改變而相應(yīng)改變判斷的時(shí)機(jī),本文提出時(shí)間判斷點(diǎn)這個(gè)概念,即在這個(gè)時(shí)間點(diǎn)來(lái)判斷當(dāng)前會(huì)話是否滿足當(dāng)前權(quán)限要求。
當(dāng)不存在時(shí)間判斷點(diǎn)時(shí),將會(huì)話集合中首先結(jié)束的會(huì)話時(shí)間點(diǎn)作為第一個(gè)時(shí)間判斷點(diǎn),之后將第一個(gè)判斷點(diǎn)之后新產(chǎn)生的會(huì)話加入到集合中,再對(duì)兩個(gè)時(shí)間判斷點(diǎn)之間產(chǎn)生的新會(huì)話進(jìn)行統(tǒng)計(jì),重新進(jìn)行新一輪篩選,選出下一個(gè)時(shí)間判斷點(diǎn)。本文對(duì)以往靜態(tài)式的處理進(jìn)行改進(jìn),采用動(dòng)態(tài)手段增加其安全性和有效性。
查找動(dòng)態(tài)判斷點(diǎn)算法描述如下:
Tpo=Sort(Tpo) // 對(duì)Tpo進(jìn)行排序
Tpn=Sort(Tpn) //對(duì)Tpn進(jìn)行排序
If(Tpn!=Φ) //求下一個(gè)時(shí)間判斷點(diǎn)t
Merger-T(Tpo,Tpn) //合并2個(gè)集合到Tpo中
t=FindMin(Tpo) //在Tpo中找到最小值作為時(shí)間判斷點(diǎn)
Tpo=Tpo-{t} //從集合中去掉所選時(shí)間判斷點(diǎn)
while((currenttime=GetCurTime())<=t)//求Tpn:在判斷點(diǎn)前出現(xiàn)新的會(huì)話,加 入Tpn
if Endtime(s)<=t //如果在判斷點(diǎn)之內(nèi)結(jié)束
Merger-T(Tpo,Tpn) //合并2個(gè)集合到Tpo中
t=FindMin(Tpo) //在Tpo中找到最小值作為時(shí)間判斷點(diǎn)
ifelse Endtime(s)>t //如結(jié)束時(shí)間點(diǎn)大于判斷點(diǎn)
Insert(Tpn,|t-Endtime(s)|) //將與時(shí)間判斷點(diǎn)的差值放入Tpn
Merger-T(Tpo,Tpn) //合并2個(gè)集合到Tpo中
t=FindMin(Tpo) //在Tpo中找到最小值作為時(shí)間判斷點(diǎn)
2 算法分析
按照固定△T進(jìn)行安全性檢查,效率和安全往往不能令人滿意,本文提出的時(shí)間點(diǎn)選擇算法描述如下:
對(duì)一段時(shí)間內(nèi)不同的會(huì)話結(jié)束時(shí)間的不同,可將會(huì)話結(jié)束時(shí)間段放入一個(gè)數(shù)組進(jìn)行管理,對(duì)于每個(gè)元素的排列規(guī)則分為以下幾個(gè)類型:double a[]={t1, t2, t3,…, tn}(排好序),用△T法時(shí)取時(shí)間T:
(1)當(dāng)T< t1,在最短會(huì)話結(jié)束前就開始判斷是否符合規(guī)則,而動(dòng)態(tài)方式則從時(shí)間點(diǎn)t1開始判斷,相對(duì)于△T法效率略高。
(2)當(dāng)T= t1,兩種方式都在時(shí)間點(diǎn)t1進(jìn)行判斷,△T法過(guò)時(shí)間T后再進(jìn)行判斷,而動(dòng)態(tài)方式則重新計(jì)算新的時(shí)間判斷點(diǎn),對(duì)后續(xù)的{t2,t3....tn}所在數(shù)組重新進(jìn)行判斷,對(duì)于后續(xù)的t2依舊是動(dòng)態(tài)方式比較高效。
(3)當(dāng)T> tn,動(dòng)態(tài)方式如前,而△T法則等待所有會(huì)話結(jié)束后再進(jìn)行判斷,故不考慮T> tn的情況。
(4)當(dāng)t1≤T≤ t2,相比情況(2),從t2往后的各個(gè)時(shí)間段效率降低。
綜上幾種情況看,當(dāng)t(n/2)≤T≤ t(n/2+1)時(shí),平均效率最高。為了便于描述,取T=t(n/2)時(shí)△T法效率最高。
對(duì)于動(dòng)態(tài)方式,相比于△T法,需要對(duì)時(shí)間段數(shù)組進(jìn)行排序,當(dāng)數(shù)據(jù)過(guò)多時(shí)排序時(shí)間會(huì)延長(zhǎng),效率降低。
根據(jù)會(huì)話與客戶端的數(shù)量規(guī)模,依次挑選幾個(gè)有代表性的數(shù)據(jù)進(jìn)行系統(tǒng)性能測(cè)試,主要記錄系統(tǒng)各主要操作的響應(yīng)時(shí)間,以及根據(jù)實(shí)際使用情況估算出在各數(shù)據(jù)量下的操作時(shí)間和系統(tǒng)響應(yīng)時(shí)間,系統(tǒng)性能測(cè)試結(jié)果如表1所示。
從表1可以看出,相對(duì)于△T法而言,動(dòng)態(tài)時(shí)間點(diǎn)法在修改權(quán)限以及權(quán)限檢測(cè)的時(shí)間上大多比前者快,但是當(dāng)會(huì)話數(shù)量較多時(shí),△T法則更有優(yōu)勢(shì)。
權(quán)限檢查測(cè)試是檢查系統(tǒng)中的會(huì)話是否依照規(guī)則下放或獲得權(quán)限。驗(yàn)證會(huì)話是否有客戶端授權(quán),用戶是否有操作該客戶端的權(quán)限。根據(jù)動(dòng)態(tài)方式的權(quán)限檢查,可以攔截非法的執(zhí)行操作,保護(hù)數(shù)據(jù)安全。只有符合權(quán)限驗(yàn)證的備份任務(wù)能夠正常執(zhí)行。權(quán)限檢查測(cè)試用例如表2所示。endprint
從表2可知,對(duì)于△T法而言,動(dòng)態(tài)時(shí)間點(diǎn)法在權(quán)限分發(fā)時(shí)可能會(huì)有短時(shí)間安全隱患的真空期,時(shí)間判斷點(diǎn)算法相對(duì)于△T法安全性有所提高。
由表 1 可以看出,當(dāng)會(huì)話數(shù)量為1 000,客戶端數(shù)量為1 000 時(shí),系統(tǒng)整體性能較好,響應(yīng)時(shí)間較短。當(dāng)會(huì)話數(shù)量和客戶端數(shù)量增多時(shí),系統(tǒng)性能明顯下降。因?yàn)樵谛陆〞?huì)話時(shí)需要向數(shù)據(jù)庫(kù)中插入數(shù)據(jù),插入性能隨著會(huì)話數(shù)量的增多而降低,會(huì)話與權(quán)限的關(guān)聯(lián)表數(shù)量也急劇增多,因?yàn)槊總€(gè)會(huì)話都對(duì)應(yīng)了多個(gè)關(guān)聯(lián)記錄。當(dāng)會(huì)話數(shù)量大量增大時(shí),動(dòng)態(tài)耗時(shí)明顯上升,可見會(huì)話數(shù)量上升會(huì)影響其效率,但是多數(shù)情況還是優(yōu)于前者。
如表2所示,當(dāng)從未授權(quán)轉(zhuǎn)換成已授權(quán)時(shí),動(dòng)態(tài)方式比靜態(tài)方式成功率更高,動(dòng)態(tài)方式的安全性相對(duì)于以往的靜態(tài)方式安全可靠性更高。
3 結(jié)語(yǔ)
本文在多域情況下對(duì)動(dòng)態(tài)時(shí)間判斷點(diǎn)給出了解決算法,與以往研究相比,解決了文獻(xiàn)[2]中對(duì)于精確程度方面的不足,使之更高效合理。本文在前人研究基礎(chǔ)上,對(duì)如何判斷和找出時(shí)間判斷點(diǎn)給出了方案。
今后的研究應(yīng)解決以下問(wèn)題:①如何縮短排序時(shí)間,避免影響效率;②對(duì)于時(shí)間判斷點(diǎn)的動(dòng)態(tài)變化,時(shí)間變化如何引起模型變化還有待進(jìn)一步研究。
參考文獻(xiàn):
[1] 馮俊,王箭.一種基于T-RBAC的訪問(wèn)控制改進(jìn)模型[J].計(jì)算機(jī)工程,2012,38(16):138-141.
[2] 高利軍,徐蕾.TRBAC中翻轉(zhuǎn)點(diǎn)選擇和安全恢復(fù)算法的研究[J].軟件學(xué)報(bào),2013,24(3):564-574.
[3] 陳學(xué)龍,鄭洪源,丁秋林.一種基于T-RBAC的動(dòng)態(tài)多級(jí)Web服務(wù)訪問(wèn)控制模型[J].計(jì)算機(jī)科學(xué),2014,41(3):181-222.
[4] 任海鵬.訪問(wèn)控制模型研究現(xiàn)狀及展望[J].計(jì)算機(jī)與數(shù)字工程,2013,41(3):452-456.
[5] 李雙.一種擴(kuò)展的基于角色的訪問(wèn)控制模型[J].計(jì)算機(jī)工程與應(yīng)用,2012,48(19):54-60.
[6] 趙衛(wèi)東,畢曉清,盧新明.基于角色的細(xì)粒度訪問(wèn)控制模型的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),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] 道煒,湯庸,冀高峰,等.基于時(shí)限的角色訪問(wèn)控制委托模型[J].計(jì)算機(jī)科學(xué),2008,35(3):277-279.
[10] 夏啟壽,范訓(xùn)禮,殷曉玲.基于時(shí)間的RBAC轉(zhuǎn)授權(quán)模型[J].西北大學(xué)學(xué)報(bào):自然科學(xué)版,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] 李鳳華,蘇铓,史國(guó)振,等.訪問(wèn)控制模型研究進(jìn)展及發(fā)展趨勢(shì)[J].電子學(xué)報(bào),2012,40(4):805-813.
[13] 鄧勇,張琳,王汝傳,等.網(wǎng)格計(jì)算中基于信任度的動(dòng)態(tài)角色訪問(wèn)控制的研究[J].計(jì)算機(jī)科學(xué),2010(1):51-54.
(責(zé)任編輯:杜能鋼)endprint