謝嘉華,黎明,吳俊,黃剛
(湖南科技學(xué)院電子與信息工程學(xué)院,永州425000)
采用基于角色的訪問控制方法(RBAC)相對于強制或自主訪問控制方法[1],其優(yōu)勢在于角色與權(quán)限之間的變化比用戶與權(quán)限之間的變化更為穩(wěn)定,減少了授權(quán)的復(fù)雜性,降低了出錯的概率。并且RBAC能夠根據(jù)需求的變動,快速靈活地響應(yīng)企業(yè)或機構(gòu)中影響要素的變化,擁有較高的安全機制保護系統(tǒng)安全。
但是目前RBAC模型中沒有明確定義對數(shù)據(jù)權(quán)限的支持,僅單純地以角色為單位授權(quán)作為實現(xiàn)策略,在目前企業(yè)和政府機構(gòu)分工不斷細化的形勢之下,這種授權(quán)方式不夠靈活,還會導(dǎo)致角色數(shù)據(jù)冗余嚴重,導(dǎo)致權(quán)限的管理變得復(fù)雜;傳統(tǒng)RBAC模型沒有完善的權(quán)限委托代理的機制,無法適應(yīng)現(xiàn)實世界中權(quán)限的臨時委托代理;而且角色繼承中的私有角色泛濫等問題都是基于RBAC的訪問控制傳統(tǒng)模型有待解決的問題。
傳統(tǒng)RBAC模型在應(yīng)對臨時任務(wù)分配以及角色權(quán)限收回的場景下,對角色權(quán)限管理操作極其繁瑣,甚至容易導(dǎo)致潛藏的漏洞存在;例如,當臨時委托時所賦予的權(quán)限忘記收回導(dǎo)致信息泄露,以及用戶a和用戶b具有相同的角色,隨著企業(yè)的發(fā)展以至需要對兩者的權(quán)限細節(jié)進行區(qū)分時,系統(tǒng)的管理功能就暴露出它的局限性。
經(jīng)過研究,針對以上情況,本文在基于場景的觀點上,提出了RBAC模型改進方法,通過以直接授權(quán)和間接授權(quán)兩種方式對用戶進行授權(quán)以及通過引入權(quán)限組的方法進行改進。
通過系統(tǒng)管理員對用戶進行授權(quán),授予具體的功能權(quán)限,例如用戶能訪問某一板塊,某一資源,使用查詢功能等;直接授權(quán)主要用于滿足特殊狀況下提高靈活性的需求,例如臨時用戶、或者超級用戶等特殊用戶。
在對于零散、臨時、數(shù)據(jù)量小的用戶數(shù)據(jù)錄入的場景下,給臨時用戶賦予時間標簽,然后直接賦予相應(yīng)權(quán)限,當其訪問資源或者享用服務(wù)時,在登錄時系統(tǒng)對用戶類型和時間標簽進行檢查,通過時間標簽標識的時間在服務(wù)器端進行判斷后若在有效期內(nèi)則允許訪問,若超出有效期則刪除臨時權(quán)限以及刪除臨時用戶,而且在系統(tǒng)清理周期中會對臨時用戶進行檢測,將過期的臨時用戶自動刪去,從而達到簡化操作、提高性能、減少安全風險的目標。
對于集中、臨時、數(shù)據(jù)量較大的用戶數(shù)據(jù)錄入的場景下,采用構(gòu)建臨時角色(臨時角色名稱要求唯一),例如游客角色等,通過對臨時用戶添加時間標簽、賦予臨時角色從而獲得權(quán)限,以達到提高效率的目的,對于該種臨時用戶依然采用在登錄時檢查用戶類型和時間標簽,在服務(wù)器進行判斷,區(qū)別就在超過有效期時,先刪除擁有該角色的所有用戶,然后再刪除角色。
對于長期、穩(wěn)定的用戶數(shù)據(jù)錄入的場景下,通過對用戶賦予相應(yīng)的角色,角色映射一個權(quán)限的集合,其擁有某一特定職能的權(quán)限,用戶則通過扮演某種角色而獲得權(quán)限,最終實現(xiàn)相應(yīng)的資源訪問,這里引入權(quán)限組的方式進行優(yōu)化,當用戶扮演某一特定角色后,由于情況需要增加或減少對某一資源的控制,那么其操作是繁瑣的,如圖1和圖2所示:
圖1 RBAC下的權(quán)限分配
圖2 更改用戶A的權(quán)限
此時不能簡單的將角色a中訪問資源4的權(quán)限刪除,如果直接將該權(quán)限刪除,那么所有擁有該角色用戶的權(quán)限都會改變,所以只能通過引入第三個角色為其分配權(quán)限然后賦予用戶A讓其失去對資源4的權(quán)限,那么就增加了一個角色和一條規(guī)則,這樣導(dǎo)致了冗余的產(chǎn)生,復(fù)雜了權(quán)限管理,并增加了安全隱患,最終導(dǎo)致權(quán)限分配出現(xiàn)問題,但是通過引入權(quán)限組的方式則可以得到有效地避免這種情況發(fā)生。
在該方法中,角色所擁有的不是單一的權(quán)限,而是擁有一個權(quán)限組,表示擁有權(quán)限的范圍,在權(quán)限組中有可以對擁有的權(quán)限進行細分,在這種情況下雖然用戶可能擁有同一個角色但有不同的權(quán)限,但是其擁有的權(quán)限不會超過角色所定義權(quán)限組[2]的范圍,其基于RBAC的改進模型如圖3所示:
圖3 基于RBAC的改進模型
該方法采用形式化語言說明如下:
假設(shè)U表示用戶,R表示角色,A表示資源,UR表示用戶U擁有的角色集合,UA表示用戶U擁有的權(quán)限集合,RA表示角色R擁有的權(quán)限集合;
(1)UR? U,RA?R,UA?UA
?u ∈ U,?r∈ R
(2)uR=r→uA? uA
例如:用戶A和用戶B都只擁有同一個角色b,AR=,BR=,并且擁有相同權(quán)限 AA={1 ,2,4} ,BA={1 ,2,4},而b的權(quán)限范圍為bA={1 ,2,3,4},如果此時上級要求用戶A去執(zhí)行某項任務(wù)需要給A增加權(quán)限3,并且刪去權(quán)限4并且用戶角色不變。
查看用戶A的角色:
AR=
查看角色b所擁有的所有權(quán)限:
bA={1 ,2,3,4}
增加權(quán)限3,刪除權(quán)限4:
AA={1 ,2,3},
然而其余擁有角色b的用戶并沒有任何影響。
BA={1 ,2,4}
可見:
bA? AA?BA,而不是bA=AA?BA
通過此種方式如果改變用戶的權(quán)限,只需要在用戶擁有的角色中的權(quán)限組中進行增刪就可以完成效果。
(1)當用戶為臨時并且零散時,采用直接授權(quán),首先需要在臨時用戶表中輸入用戶數(shù)據(jù)并且設(shè)置時間標簽,以及在臨時權(quán)限表中賦予所需的臨時權(quán)限,然后在臨時用戶權(quán)限表中,將臨時用戶編號和權(quán)限編號進行輸入,當臨時用戶的時間標簽過期之后進行訪問、或者在系統(tǒng)清理周期內(nèi)檢查到過期的時間標簽,系統(tǒng)后臺根據(jù)時間標簽查詢到臨時用戶編號,根據(jù)臨時用戶權(quán)限表,刪除臨時權(quán)限和臨時用戶。
直接授權(quán)數(shù)據(jù)庫模型如圖4所示:
圖4 直接授權(quán)數(shù)據(jù)庫模型
(2)當用戶為臨時并且集中時,采用間接授權(quán),首先在臨時用戶表中輸入大量用戶數(shù)據(jù),之后在臨時角色表中創(chuàng)建一個臨時角色,接著在權(quán)限表中添加所需要的權(quán)限,然后在權(quán)限組權(quán)限表中添加記錄并且在角色表中輸入權(quán)限組編號,最后在臨時用戶角色表中,給同一權(quán)限的大量人員進行臨時角色的賦予即可,當臨時用戶的時間標簽過期之后、或者在系統(tǒng)清理周期內(nèi)檢查到過期的時間標簽,系統(tǒng)后臺將先根據(jù)用戶編號,查詢到臨時角色和臨時用戶以及相應(yīng)的權(quán)限組和權(quán)限,從而進行刪除操作。
(3)當用戶為長期并且較穩(wěn)定時,采用間接授權(quán),首先在用戶表中添加用戶數(shù)據(jù),接著在權(quán)限表中添加權(quán)限,然后在權(quán)限組權(quán)限表中添加權(quán)限組編號和權(quán)限編號,創(chuàng)建相應(yīng)角色,角色表中添加權(quán)限組編號,最后在角色用戶表中插入角色編號和用戶編號即可。
間接授權(quán)數(shù)據(jù)庫模型[3]如圖5所示:
圖5 間接授權(quán)數(shù)據(jù)庫模型
使用基于場景的改進RBAC模型后,有效減輕了管理人員的工作量,使得授權(quán)更加便利,應(yīng)對不同場景更加靈活,具體從以下幾個方面進行說明:
優(yōu)點:
(1)采用直接和間接授權(quán)兩種方式,對用戶角色的授權(quán)更加靈活。
(2)引用權(quán)限組的方式,有效降低角色的冗余。
(3)使用基于場景的方法,對于超級用戶,臨時用戶的授權(quán)更加的合理。
缺點:
(1)在角色對角色的管理關(guān)系上存在缺陷[4]。
(2)角色的繼承機制存在問題,導(dǎo)致權(quán)限過大,不符合最小特權(quán)原則。
(3)對于真實情況的模擬存在問題,對于臨時任務(wù)的分配,需要產(chǎn)生一個臨時的用戶身份。
使用改進RBAC模型相比于使用傳統(tǒng)RBAC模型,該模型有如下特點:在處理臨時人員訪問的場景下,能夠高效地處理臨時任務(wù)并且解決臨時人員逾期訪問資源的權(quán)限回收問題,降低了系統(tǒng)維護人員的工作量和操作復(fù)雜度,提高了對于這類場景的處理能力。使用改進RBAC模型不僅在對企業(yè)和政府機構(gòu)不斷細化工作,細化權(quán)限的形勢下給權(quán)限的分配提供了一個很好的方式,并且降低了大量角色數(shù)據(jù)在后臺重復(fù)堆積,從而使得系統(tǒng)的運行更加的流暢。而且使用改進RBAC模型的系統(tǒng)擁有直接和間接授權(quán)兩種授權(quán)方式,使得給用戶授予權(quán)限的方式更加靈活。還能通過用戶編號所攜帶的信息經(jīng)過映射之后對資源訪問進行限制,使得計算機所承擔的工作量減少,有效地提高了系統(tǒng)效率和安全性。