摘要:該文針對目前Internet安全組通信技術的現狀,通過分析目前已有的應用層多播機制的特點,提出了應用層多播中的基于角色和任務的工作流訪問控制模型。在應用層多播工作流的具體環境中構造了一個ALM-T-RBAC系統,以實現應用層多播通信系統的安全訪問控制。
關鍵詞:應用層多播;基于角色的訪問控制;角色;群組安全
中圖分類號:TP301 文獻標識碼:A 文章編號:1009-3044(2009)15-3881-03
RBAC Model in Application Layer Multicast System
LIU Yu-jiao
(the Computer Center in Mianyang Normal University,Mianyang 621000,China)
Abstract: In this paper, we have proposed a role-based access control model in ALM on the present Internet security group communication technology with the analysis of the feature on ALM mechanism. In order to implement the security access control in application layer multicast, the ALM-RBAC system is designed.
Key words: application layer multicast(ALM); role-based access control; roles; group security
1 引言
工作流[3,7]是目前研究的一個熱點問題,從概念上講,工作流是將一組任務組織起來完成某個經營過程,在工作流中定義了任務的觸發順序和觸發條件。每個任務可以由一個或多個系統軟件完成,也可以由一個或一組人完成,還可以由一個或多個人與軟件系統協作完成。觸發順序和觸發條件用來定義或實現任務的觸發\\任務的同步和信息流的傳遞。在ALM中,數據從發送源到接收方須各成員結點執行系統的任務,ALM軟件負責將這些任務組織起來完成數據的發送過程。因此,本文將工作流引入ALM來研究其安全問題,結合現有的T-RBAC模型的特性提出了一個基于角色與任務的工作流訪問控制模型,稱為ALM-T-RBAC。本文在第二節描述在ALM-T-RBAC系統中采用的相關技術——T-RBAC模型、應用層多播概述及群組安全,在
第三節中,主要對模型中基本元素進行了定義,描述了模型中所涉及的基本關系,闡述了實現訪問控制所涉及的規則。第四節具體介紹了ALM-T-RBAC體系結構并對其安全機制進行了分析,第五節是結論,并指出進一步的研究問題。
2 相關技術
2.1 T-RBAC模型
T-RBAC[4]模型是在RBAC96模型中加入“任務”項,構造了基于動態網格環境的訪問控制模型——T-RBAC ( Task-Role-Based Access Control)模型。
不像RBAC中沒有將任務從角色中分離出來,也不像TBAC中沒有明確地突出角色的作用,T-RBAC模型把任務和角色置于同等重要的地位,它們是兩個獨立而又相互關聯的重要概念。任務是RBAC和TBAC能結合的基礎。
不像RBAC中將訪問權限分配給角色,T-RBAC模型中是先將訪問權限分配給任務,再將任務分配給角色,角色通過任務與權限關聯,任務是角色和權限交換信息的橋梁。
在T-RBAC模型中,任務具有權限,即根據具體的執行任務要求和權限約束,任務具有相應的權限,不同的任務擁有不同的權限,權限隨著任務的執行而變動。這真正實現了權限的按需和動態分配,角色只有在執行任務時才具有權限,當角色不執行任務時不具有權限;權限的分配和回收是動態進行的,任務根據流程動態到達角色,權限隨之賦予角色,當任務完成時,角色的權限也隨之收回;角色在工作流中不需要賦予權限。這樣,不僅使角色的操作、維護和任務的管理變得簡單方便,減少授權管理的復雜性。在RBAC中,易于授權管理、角色劃分、職責分擔、目標分級和授予最小特權等。
2.2 應用層多播概述
應用層組播(ALM)的基本思想是屏蔽底層物理網絡的拓撲細節,將組成員節點直接自組織成一個邏輯覆蓋網絡,并在應用層提供組播路由協議來構建和維護該網絡,為數據傳輸提供高效、可靠服務。它將轉發樹構建在應用層上。兩個主機實際的鏈路是底層的單播IP 路徑。具體來講:組播源準備數據,查詢組播路由表,獲得子節點的單播IP 地址,再分別打包、轉發。數據包通過相應的單播路徑傳輸給子節點,子節點接收數據包后查詢路由表,再分別打包、轉發。這一過程重復進行,直到所有節點都收到數據包。查詢、打包、接收和轉發工作都在網絡終端主機的應用層上完成。這一系列操作的實現方式是通過端主機上的應用層組播軟件,ALM的優勢在于可以實現廣域網范圍內的組播服務[7]。
3 應用層多播中基于角色和任務工作流訪問控制(ALM-T-RBAC)模型
3.1 基本元素的定義
在ALM-T-RBAC模型中,涉及到的基本要素包括用戶\\角色\\任務\\任務權限\\操作\\客體等。這些要素的定義及其形式化描述如下:
定義1:主體(Subject) 是一個可以對其它實體施加動作的主動實體。 主體可以是用戶或其它代理用戶的實體(例如軟件代理)。
在ALM的工作流系統中,即裝有代理軟件的成員結點(或者說端主機),在數據發送過程中,它對數據實體施加打包、發送、接收等一系列相關動作的實體。
定義2:客體(Object): 是一個接受其它實體動作的被動實體, 客體可以是一個可識別的資源。在ALM系統中,成員結點在進入系統,接受安全管理員身份驗證或被授予權限時,它作為客體;成員結點在數據組播過程中又作為主體存在。
ALM工作流系統中,客體主要指原始數據、協議數據單元(即數據包)、發送緩沖區、接收緩沖區、轉發緩沖區、ALM組管理信息庫、ALM路由信息庫、密鑰庫等一系列接受主體動作的被動實體。系統中所有客體的集合記為Ob, C1代表原始數據客體的集合,C2代表數據包的集合,C3代表ALM組管理信息庫的集合,C4代表ALM路由信息庫的集合,C5代表密鑰庫的集合。記Class={1,2,3,4,5}為系統所有種類下標元素構成的集合。
定義3:操作(Operation):對客體的作用。在ALM工作流系統中,主要是指從原始數據構造數據包、數據包的發送、數據包的接收、解包、數據包轉發、數據加密變換、數據解密變換、各類信息庫訪問、密鑰生成、密鑰更新、密鑰銷毀、加入群組、離開群組等。
針對不同種類的客體有著不同操作的子集合。形式化描述如下:OP={Opi ,i∈Class} 其中Opi代表對Ci類客體的操作的子集合,
故∪ Opi=OP
定義4:任務權限(permission):指的是和某個任務相關的操作權限,是任務和操作權限的多對多關系中的一個元素。任務權限pi可形式化描述為{id(i),d(i),t(i),op(i)}。其中id(i)為pi的標識;o(i)為pi對應的p客體;t(i)為pi對應的任務,op(i)為pi對應的操作。
例如,在ALM系統的數據發送過程中,任務權限{id,原始數據,組播源準備數據,{分組,打包,加密}}表示和組播源準備數據這一任務相關的操作權限有對原始數據進行分組、打包以及加密。
任務權限組成的集合也就是工作流系統中所有任務的所有可能的操作權限集合。在系統中引任務及任務權限概念之后,相應地,必須修改角色到權限的指派關系。 因為權限集合在ALM工作流系統中賦予了新的含義,所以這個指派關系是角色到任務權限的多對多關系。 其指派如圖1 所示。
圖中U 為用戶的集合; R 為角色的集合; T 為工作流中的所有任務集合; P 為任務的所有可能的操作權限集合; A?哿T ×P 為任務權限集合,是任務到操作權限的多對多關系; B?哿U ×R 為用戶到角色的多對多指派關系; C?哿R ×A 為角色到任務權限的多對多指派關系。
定義5:角色(role):角色是指主體完成某項任務所需要的一組訪問權限的集合。 角色ri 可形式化描述為{ id(i),k(i),nr(i),fr(i), epr(i),pr(i),u-max(i),ts(i),Cr(i)}。
其中,id(i)為ri的標識; k(i)為ri的素數特征值,不同角色的特征兩兩互異;
nr(i) 為ri 的后序角色信息, nri = ∏j∈Jkj,J為角色ri加入系統時ri繼承的所有角色集合;例如,在ALM系統中的m個中轉方角色,r1,……,r(m)中轉方r1的加入系統時繼承的所有角色集合J={r2,r3,……,r(m)},此時ri(i=2,……,m)為中轉方角色r1所繼承的m-1個后序角色。
fr(i)為ri的前序角色信息,fr(i)=∏k∈Kkk ,K為角色ri加入系統中時所有繼承了ri 的角色集合;在上例中,K={r1,……r(m-1)}為最后一個中轉方角色r(m)加入系統中時所有繼承了r(m)角色的集合。
epr(i) 為ri的互斥角色信息,epr(i)=∏l∈Lkl ,L與角色ri之間為互斥關系的角色集合; pr(i) 為ri的前提角色信息,pri=∏n∈Nkn,N為角色ri 的前提角色集合; u-max(i) 為ri 的最大用戶數;ts(i)為ri 的時間戳, 代表ri加入系統的時間;Cr(i)為與ri相關的授權約束集合。
定義6:任務單元指派TUA: 任務單元指派是
任務單元集TU與角色集R之間的一個二元關系,假定TUA?哿TU×R 是一個任務單元指派關系集合, 則( tu(i) ,r(j))∈TUA 表示任務單元tu(i)被指派了一個角色r(j)。
定義7: 用戶指派UA : 用戶指派是U 與R 之間的一個二元關系, 假定UA?哿R ×U 是一個用戶指派關系集合,則( ui , rj) ∈UA 表示用戶ui 被指派了一個角色rj。 角色ri 對應的用戶集合UA ( ri ) ={ uj | mod ( cruj , ki) = 0}
定義8:授權約束集C: 授權約束ci可形式化描述為{id(i),ty(i1),ty(i2),descrip- tion(i)}。其中,id(i)為ci的標識;ty(i1)代表ci的類型(需求角色約束、需求用戶約束、拒絕角色約束、拒絕用戶約束) ,ty(i2)代表ci為靜態約束或動態約束;description(i) 為ci的描述。
定義9:授權策略指派AA: 授權策略指派是TUA與P之間的一個二元關系,假定AA?哿TUA ×P是一個授權策略指派關系集合,則(tu(i), r(j),p(k))∈AA表示在任務單元tu(i)執行期間角色r(j)可被授予權限p(k)。 如(“準備數據”,“組播源”, p) , p ={id,原始數據,組播源準備數據,{復制,分組,打包,加密}},表示在準備發送數據時,組播源可對原始數據進行復制、分組、打包及加密操作。
定義10:角色容量(capacity):在一個特定的時間段內,有一些角色只能由一定人數的用戶占有。在創建新角色時應指出其容量[6]。一個角色r的角色容量最大值稱為該角色的基數, 記為Card( r)。
3.2 模型中的訪問控制決策
規則1:在組內通信中,對于不受歡迎的組成員,不予以密鑰更新以取消其接收者角色。
規則2:對于同一個角色在不同的網絡狀況(帶寬\\延遲\\吞葉量\\出錯率……)有不同的角色容量。
規則3:訪問控制系統周期性地檢測網絡狀況,根據網絡參數調整角色的分配。其目的有兩點:一是出于安全問題,如當某些重要角色的主機受到攻擊,危及網絡安全時,通過調整或取消其角色,以更新網絡狀況,二是出于性能考慮,使網絡的延遲\\吞吐量\\出錯率……得到優化。
規則4:任何一個角色所擁有的用戶數必須小于或等于該角色的基數Card(r)。形式化描述為:?坌r∈RS?圯(#US(r)≤Card((r) )。其中#US(r)表示角色r所擁有的用戶數。
規則5:若任務Ti與Tj沖突,則不存在一個角色r∈RS,使r既能執行Ti又能執行Tj。形式化描述為:Collision(Ti,Tj)→ ┐?堝(r∈RS) (r∈RS(Ti)∧r∈RS(Tj),其中RS(Ti),RS(Tj)分別表示能執行任務Ti與Tj的角色集合。
規則6:任何用戶不得同時屬于兩個有沖突的角色。 形式化描述為:┐?堝 (u∈US),?坌(ri,rj∈CRS)?圯(u∈ri∧u∈rj))
規則7:對授權策略a(i)={id(i),idt(i), p(i),ar(i),ty(i),C(a(i))},如果角色r(i)角色r(j)滿足條件:(r(j)∈RH( r(i))∧ (mod(ar(i),k(j))=0),則tu(i)在執行期間角色r(i)可被授予pi權限。
4 訪問控制的實現
4.1 ALM-RBAC體系結構
本文通過以上基于角色和任務訪問控制模型(T-RBAC)及應用層多播(ALM)進行分析的基礎上,設計了一個適用于應用層多播的安全訪問控制系統(ALM-T-RBAC)。
ALM-T-RBAC體系結構由兩個基本組件構成: ALM-T-RBAC服務器及T-RBAC服務器。實現系統中工作流功能的程序稱為ALM-T-RBAC服務器,實現RBAC功能的程序T-RBAC服務器。除此之外還包括四個相關的組件:成員結點、數據庫、應用層多播軟件及系統檢測和日志分析。各組件之間的邏輯關系如圖2所示。
其中,ALM-T-RBAC服務器由兩部分組成的:工作流數據的管理和工作流實例的管理。 數據管理部分是對工作流具體數據的管理,例如任務之間的執行關系、任務和應用程序之間的關系、任務的可能執行用戶和角色等,這些信息是工作流實例運行的依據;實例管理部分是實現工作流實例的產生和調度的,控制每個實例的運行方向,記錄每個實例的運行結果, 通過與成員結點的交互完成其身份驗證,同時授予其任務權限等。 從軟件結構上,ALM-T-RBAC服務器還建立起安全應用代理服務器,它向外提供內部的一切服務。并提供基于單點登陸身份安全檢查及訪問授權控制。
T-RBAC服務器也是由兩部分組成:用戶-角色的指派和角色-任務權限的指派。 用戶角色指派部分存放著用戶基本信息、角色基本信息、角色層次關系、用戶的角色信息;角色任務權限指派部分存放著角色和任務權限之間的指派關系。T-RBAC服務器的主要功能是給工作流服務器提供用戶的角色和任務權限的相關信息,便于工作流服務器進行用戶的身份認證、對用戶授權等安全行為。
應用層多播軟件負責各成員結點間的通信,包括結點角色的授予、權限的獲取,以及結點間消息的發送、接收、中轉等,同時,應用層多播軟件還負責信息發送過程各結點間順序協同關系。
系統檢測和日志分析是對系統的訪問操作做出詳實的記錄,以便為以后對現有的系統進行安全分析\\查找安全隱患和進一步完善現有系統安全等提供日志資料。對系統的分析可以及時分析,也可以事后分析。前者通常被稱為入侵檢測。而后者則是數據挖掘。由于我們對安全訪問控制系統是運行在應用層的,因此我們的系統日志就可以作到基于訪問者身份的具體記錄,并提供相應的分析工具讓管理員對系統的訪問情況做出分析。
成員結點在進入多播系統時提供證書和口令進行身份認證。身份認證是安全管理中最關鍵最基本的部分,它是訪問控制策略實施的基礎。在完成身份認證的前提下, 用戶把其信息提供給ALM-T-RBAC服務器,由ALM-T-RBAC服務器向T-RBAC服務器詢問用戶的角色、權限信息,再根據這些信息判斷用戶是否能夠執行任務。 這樣,用戶的授權信息由ALM-T-RBAC服務器獲得,用戶和T-RBAC服務器完全隔離,因此授權信息十分安全。 另外ALM-T-RBAC服務器還可以根據任務的調度實行動態授權,顯得十分靈活。
4.2 安全機制分析
動態授權機制,目的是讓任務流和授權流同步起來。 隨著工作流推進到不同的任務階段,ALM-T-RBAC服務器授予各角色的權限也在發生變化。T-RBAC服務器的授權策略中定義了在某一任務單元執行期間可進行的授權,不同的任務單元對應不同的授權策略集。當工作流推進到某一任務單元階段時,相應的授權才能激活,根據該任務單元的授權策略授予角色相應的權限,當任務單元結束后,權限立即回收,立刻取消與該任務單元相關的授權,因而滿足最小特權原則,用戶在任何時候擁有的權限僅僅可用來執行任務。
動態約束機制,目的是讓服務器運行符合ALM系統的實際應用規則。ALM系統的實際數據流發送過程中各用戶所執行的任務之間的約束主要有以下幾種:首先,執行順序約束,兩個任務之間的執行順序有如下方式,順序方式,即下一個任務必須在前一個任務執行完成后開始;例如,在數據發送過程中,組播發送數據任務必須其準備數據及查詢路由表等任務完成之后才執行。 其次,執行用戶約束,當前任務的執行用戶和之前或之后任務執行者的約束關系。在ALM中,各成員結點根據當前的網絡狀況(帶寬\\延遲\\吞葉量\\出錯率……)以及相關的訪問控制策略與授權策略以選取合適的之后成員子結點,這樣,以優化網絡結構。這一類約束和應用聯系緊密,執行用戶希望按照自己的意愿決定后續任務的執行者,稱為派工,派工行為實際上動態地改變了后續任務的可能執行者集合,因此工作流服務器在調度時候要采用對應的算法。
5 結束語
該文對RBAC及TBAC在ALM中的應用進行了研究,提出了一個ALM-T-RBAC模型。本文應用層多播環境下,利用基于角色和任務的訪問控制模型,構建了靈活有效的訪問控制策略。首先,實現了系統開發過程中的邏輯分離。系統的安全管理部分被作為整個系統的整體核心控制部分,單獨分出來進行設計和開發,并制定一些整個系統通用安全策略。其次,簡化了權限管理。提供方便的動態授權機制,避免直接在用戶和數據之間進行授權。只要進行簡單的賦值操作就可完成授權,通過改變用戶當角色集就可以改變用戶的權限,而改變某種角色所含的權限時又可以改變一組用戶的權限。
參考文獻:
[1] Ferraiolo DF,Sandhu R,Gavrila S. Proposed NIST standard for role-based access control.ACM Transactions on Information and System Security,2001,4(3):224-274.
[2] 王勇,李明,谷大武,白英彩.安全群通信中通用訪問控制框架的研究[J].計算機應用與軟件,2005.
[3] 洪帆,鄧 磊.工作流管理系統中基于角色的訪問控制[J].華中科技大學計算機科學與技術學院,2003.
[4] SEJONG O, SEOG P.Task-role-based access control model [J].Information Systems,2003,28:533-562.
[5] 左學明,張力.通用訪問控制框架GFAC在MIS中的應用[J].計算機應用與軟件,2005.
[6]Workflow Management Coalition. The workflow reference model[S].WFMC TC00-1003,1994.
[7] 范玉順.工作流管理技術基礎[M].北京:清華大學出版社,2001.