賀貝
(河南工業貿易職業學院 ,鄭州 450000)
在一些組織中,通常需要通過周期的時態檢測來限制某些功能的時效。如,在一個公司內可能會聘用臨時職員,公司只授予其在工作時間內獲得權限,如從上午9點至下午3點,而在此之外的時間均不能獲得權限。但傳統的RBAC模型的訪問控制弱點在于沒有把操作主體執行操作時所處的環境考慮在內,且只要主體擁有對客體的訪問權限,主體就可以無數次使用該權限,這樣容易造成安全隱患。RBAC模型雖然實現了用戶和權限的邏輯分離,并遵循“最小特權原則”,但是非授權訪問并不是一種靜態行為,而是動態變化的。例如,盜用問題,某一盜用者在獲得賬號的權限后,為達到隱蔽的目的,并不是一直使用該賬號,而是間斷地或偶爾使用。經典的RBAC模型沒有涉及與時間有關的約束,無法控制該非法訪問。因此必須引入時間約束來完善該模型。這在現實生活中也經常用時間來約束行為的有效行使期限,達到一定的安全目的。比如教師更改學生考試成績只能在評卷給分期間操作,有效期過后則自然失效。因此,在很多類似的系統中,往往在一個安全措施上再增加時間約束,通過周期的時間檢測,限制某些功能的時效。尤其是具有時間周期特征或時間規律可以用周期的角色許可與非許可來描述的訪問控制方式,都可以用考慮到時間的RBAC模型來實現其角色的授權訪問。
基于角色的訪問控制(Role-based Access Control,RBAC)技術出現于20世紀90年代,是一種很有潛力的訪問控制技術。其基本思想是:有一組用戶集和角色集,在特定的環境里,某一用戶被指定為一個合適的角色來訪問網絡資源;在另外一種環境里,這個用戶又可以被指定為另一個的角色來訪問另外的網絡資源,每一個角色都具有其對應的權限,角色是安全控制策略的核心,可以分層,存在偏序、自反、傳遞、反對稱等關系。同時RBAC模型中的各種元素間還可以存在各種約束關系,包含互斥角色、基數約束、先決約束、會話約束、等級約束。這些豐富靈活的特性使得RBAC模型能很好地滿足大型系統對復雜權限管理的需求。
基于時間約束模型(temporal role-based access control mo-del,TRBAC)的基本思想是在RBAC模型基礎上通過周期的時態檢測使角色處于許可和非許可狀態。我們可以定義其在工作時間內的狀態為角色許可狀態,而在此之外的狀態為非許可狀態。許可與非許可角色是由時間來決定。我們稱一個用戶在一個會話中能夠激活的角色為一個許可角色(enabledrole)。這種角色許可、非許可之間的轉化是通過角色觸發器(roletriggers,RT)來控制的。角色觸發事件一旦產生則角色觸發器可以立即執行,也可以在一個明確的說明時間內進行延遲。通過賦予許可與非許可活動的優先級,來解決許可與非許可活動的沖突。
我們根據模型特點將RBAC模型產生以前的訪問控制模型與RBAC模型以及帶有時間約束的RBAC模型的關系及應用環境描述如圖1所示。在很多實際應用的系統中,往往需要在安全措施上再增加時間約束,通過周期的時間檢測,來限定某些功能的時效。特別是具有時間周期特征或時間規律角色許可與非許可來描述的訪問控制方式,都可以用帶有時間約束的RBAC模型來實現其角色的授權訪問。

圖1 三類模型的關系示意圖
本系統分為部分構成(下圖所示):訪問控制服務器(access control server,ACS)、訪問請求過濾器(access filter server,A F S)、用戶角色及授權管理器(user and role and authorizationmanagement server,URAS)、角色觸發器(role trigger,RT)等安全服務器,用戶庫、角色庫、權限庫等訪問控制信息庫,以及管理控制臺。系統的執行流程和各部分的功能介紹如下(圖中虛框內部):
1)用戶申請訪問安全子網的應用服務器前首,先向身份認證服務器驗證自己的身份和確定角色。
2)身份認證通過后,用戶以角色R向AFS提出應用服務訪問請求,AFS收到請求后,取出報文中的命令,解釋對應操作含義,以及執行操作所需權限,同時從報文中取出用戶請求訪問的資源名稱。AFS把用戶的角色、時態約束、資源以及訪問所需的操作權限等組成的報文發送給ACS請求做出訪問決策,然后根據決策結果決定是否向應用服務器提交用戶的請求。如果決策結果是否定的或者角色處于非許可狀態,AFS返回給用戶一個“操作失敗”或者“角色處于非許可”應答報文。如果決策結果是肯定的,而且當前角色處于許可狀態,AFS將訪問命令報文轉給真正的應用服務器,并負責將服務器的執行結果返回給用戶。
3)訪問控制器負責基于RBAC的訪問控制服務,包含各約束規則的驗證。
4)角色觸發器負責對時態檢測,根據時態變化使角色處于許可/非許可的觸發轉換。
5)用戶/角色庫中保存管理員預先定義的角色集、每個用戶所屬的角色。權限庫存儲每個角色對可訪問資源的權限,包括是否可以訪問及執行訪問操作。
6)角色及授權管理器與管理界面組成安全管理系統,為網絡安全管理員提供一個簡單的角色及其授權管理工具(圖2中小虛框內)。

圖2 訪問控制系統的總體結構
前面我們構建一個訪問控制系統的總體結構,下面我們針對應用給出系統表設計(以學校為例)。
3.2.1 基本表
用戶要進入系統必須經過身份認證(用戶賬號和口令),則首先建立一張校園網應用系統用戶表;一個學校包含多個部門,基于部門級別建立一張部門表;部門下面的業務級別就對應一張業務表,業務也就對應著用戶的崗位職責,復合業務項應將它的各個子基本業務項寫進表中;然后為校園各部門建立相應的業務角色,部門角色表完成此項功能;適應系統需求建立一張合適的權限表;接著建一張用戶—角色表,將用戶映射成相應的角色;再建一張角色—權限表,為各個角色分配相應的數據訪問權限。
3.2.2 約束表
建立關于約束的表:角色層次關系表對應模型中的角色層次,使父角色可以繼承子角色;建立角色互斥約束表,支持模型中角色互斥功能;建立功能權限互斥約束表,支持模型中動態互斥,即權限分配互斥約束。
3.2.3 時態約束表
時態約束表中主要實現角色許可裝置(role enabling baser),由事件表示和角色狀態表示組成。
通過這些表的設計可以初步建立基于時間約束的RBAC的總體框架。
上面應用設計是一個簡化的設計,實際應用中要復雜得多。而RBAC的一大優點在于面對復雜應用的靈活性和可擴展性。在針對實際應用中要結合相關的網絡技術,如認證、防火墻、入侵檢測、及計費策略等。畢竟我們的每一個應用都是針對某一具體的問題,需要考慮實際應用中的其他技術,因此在實際應用中并不能排斥其它技術的功能。就上面的設計討論時間約束的具體需求的定義及時間粒度問題來說,賬號用戶許可時間的定義可以根據不同的崗位設置進行定義:例角色某有效為1年從2008.8.8~2009.8.8,上班時間為上午9:00~15:00,那么可以通過觸發器中的設定來實現角色許可時間;至于時間的粒度問題的討論,假定周期的定義中假定以小時為時間粒度,如改變時間粒度(例如要將時間粒度設為分鐘),只需周期表達式中的日歷進行定義即可。時間粒度的粗細直接影響到系統的執行效率,可視實際使用需求、系統代價、安全等級等具體情況決定時間粒度。
本文針對傳統的角色訪問控制中忽略時間條件的問題,提出了帶有時間約束的角色訪問控制策略,給出了具體解決方案:先給出了一個控制體系的總體結構,后敘述性地給出了系統的表設計建議和關于角色時間約束以及粒度問題的分析。
[1] Ravi Sandhu,Edward Coyne,Hal Feinstein,et al.Role-based access control models[J].IEEE Computer,1996,29(2):38-47.
[2] Ferraiolo D,Sandhu R,Gavrila S,et al.A proposed standard for role-based access control[J].ACM Transactions on Information and System Security,2001,4(3):224-274.
[3] http://csrc.nist.gov/rbac/[EB/OL].
[4] 王帥,熊小華,朱彬.網格中基于角色的訪問控制模型研究[J].微計算機信息,2008,1-3:133-134.
[5] 李棟棟,譚建龍.基于本體的權限管理系統的研究與實現[J].計算機工程,2005,31(13):43-45.