摘 要:提出了一種聲明式的、面向對象的、靈活訪問控制策略的形式化描述、決策算法和實施框架。與傳統訪問控制策略相比,它包含授權類型、主體、權限、限制、影響等策略元素,能夠更加精確地描述各類控制需求;同時,提出的策略決策算法和實施框架能適應決策環境的動態變化,有效滿足復雜分布式系統的訪問控制需求;最后,作為應用的例子,介紹了這種策略和實施框架在分布式園區網中的實現和應用情況。
關鍵詞:靈活訪問控制策略; 訪問控制實施框架; 分布式應用
中圖分類號:TP309.2 文獻標志碼:A
文章編號:10013695(2008)09283103
Flexible access control policy and its application research
ZHAO Bin1, WANG Yadi2, HAN Ruisheng1, LI Lixin1
(1. Institute of Electronic Technology, PLA Information Engineering University, Zhengzhou450004, China; 2. PLA Information Engineering University, Zhengzhou450001, China)
Abstract:This paper presented a flexible, objectoriented and declarative access control policy, its decisionmaking algorithm and enforcement framework. Compare to traditional access control policies, it consisted of five componentsauthorization type, subject, permission, constraint and effect, which made it flexible enough to express a variety of access control requirements. Presented decisionmaking algorithm and enforcement framework were adaptived to dynamic environment change, and could efficiently satisfy the requirement for distributed application. As an example of such application, also discussed its implementation and application in a distributed campus network system.
Key words:flexible access control policy; access control enforcement framework; distributed application
傳統的訪問控制策略和模型主要包括大多數COTS操作系統采用的自主訪問控制(discretionary access control, DAC)策略、適合軍事應用的強制訪問控制(mandatory access control, MAC)策略和BLP模型、組織級應用經常采用的基于角色的訪問控制(role based access control, RBAC)策略和模型[1]等。這些訪問控制策略大多基于一些簡單的靜態屬性,如用戶名、角色、用戶安全級、資源敏感級等來決定對資源的訪問權限,適用于各種相對單一的應用環境。隨著應用系統復雜性的增加,尤其是大型分布式網絡的廣泛應用,傳統策略和模型已經不能滿足其訪問控制需求。
復雜應用需要更加靈活、支持多策略的訪問控制策略和模型,這也成為近年來的研究方向[2]。SELinux采用了靈活策略來增強Linux系統的安全性,其實質是DAC、MLS、RBAC和類型實施(TE)策略的合成。人們還提出了許多擴展RBAC模型,如Bertino等人提出的基于時態的角色訪問控制TRBAC、Moyer等人提出的GRBAC(generalized RBAC)、Kumar等人提出的CBAC(context sensitive RBAC)[3]等。相應地,人們還提出了支持這些多安全策略的實施體系,如SELinux[4]采用的Flask(fluke advanced security kernel)體系、經典的通用訪問控制框架(generalized framework for access control,GFAC)[5]等。這些多策略模型和實施體系集成了時態和一些決策上下文信息,能夠定義和實施更加復雜的安全策略,但其描述和實施體系并不完善,無法定義更加準確的訪問控制需求,且不能根據環境的變化動態作出決策。
1 靈活的訪問控制策略定義
傳統訪問控制策略一般用主體(subject)、客體(object)和權限(permission)來表示。筆者對這種描述方式進行了擴展,用面向對象的方法來描述本文提出的靈活訪問控制策略。首先給出相關策略元素的定義。
定義1 授權策略類型。策略類型集T={A+,A-}是訪問控制策略的類型。其中:A+表示肯定授權;A-表示否定授權。對否定授權策略的支持主要基于以下的考慮:a)否定策略用于臨時撤銷授予主體的訪問權限,為管理員提供了更大的靈活性;b)許多系統均支持否定的訪問權限。
定義2 主體。它代表系統中主動的實體,如用戶和進程,能夠在系統中進行認證,所有主體對象集記做S。用一個專門的主體類來表示所有的主體,主體類的屬性包括用戶名(username)、角色(role)、敏感性標簽(level)、所屬域(domain)等屬性。
定義3 權限。它定義主體的行為,由操作及操作的對象——客體構成,權限對象集p={〈o,m〉|o∈O,m∈M}。其中客體對象集O是系統中所有被保護和被訪問的資源,M是所有針對客體的操作集。客體的種類很多,用不同的客體類來表示,如設備類、文件類、目錄類等。不同的客體類具有不同的屬性值和針對客體的操作集,一些公共的客體屬性包括創建者、敏感級、完整性標簽、所屬域等。
定義4 限制。策略限制是應用策略時必須滿足的條件,所有限制構成限制集C。限制C可形式化定義為
c:=Clause1∪Clause2∪…∪Clausen;
Clausei:=Predicate1∪Predicate2∪…∪Predicatem;
Predicatei:=〈e〉〈Op〉〈Value〉。
每個具體策略的限制c可看做是子句Clausei的并集,每個子句可看做是斷言Predicatei的交。每個斷言是一個邏輯表達式,由限制因素e、邏輯運算符Op和一個具體值Value構成。限制因素既包括內存的、與數據訪問相關的主體、客體和操作本身具有的屬性,也包括一些外在的環境限制因素,如系統時間等。當前所有的限制因素—值對〈e、value〉構成當前決策環境∑。
定義5 影響。它是成功執行策略后的影響,這種影響可能使決策環境發生改變。筆者用′來表示。
基于上面的概念,給出了靈活的訪問控制策略的定義。
定義6 靈活的訪問控制策略。一個靈活的訪問控制策略是一個五元組τ=(t,s,p,c,′)/。其中:t∈T,s∈S,p∈P,c∈C,′是影響。
這種面向對象的、聲明式的、靈活的授權策略具有很強的表達能力,通過調整限制條件和其他策略元素,可描述各類訪問控制需求。下面是幾個簡單的例子:
τ1=(A+,s,〈o,READ〉,(s.role=ROLENAME),);
τ2=(A+,s,〈o,READ〉,((s.domain=DOMNAME)∩(o.type=TYPENAME)),);
τ3=(A-,s,〈o,A〉,((do(s,o′,A)=″TRUE″)∩(conflictofintrest(o,o′)=″TRUE″)),);
τ4=(A+,s,〈file,READ〉,(AuthenticationMode (s.username)=FINGERPRINT)∩(s.username=″趙彬″)),);
策略τ1為一條簡單的RBAC策略,它授予rolename角色讀客體o的權限;策略τ2為一條類型實施(type enforcement)策略,它授予DOMNAME中的主體讀TYPENAME類型中客體的權限;策略τ3為中國墻策略,其中A代表針對o的所有操作,斷言do(s, o′, A)表示s對o′執行了操作A,斷言conflictofintrest(o, o′)表示o與o′之間存在利益沖突關系,策略表示任何主體只能訪問不存在利益沖突關系的客體;策略τ4表示“趙彬”只有通過指紋方式認證過以后才能讀文件file,斷言AuthenticationMode()表示用戶的認證方式。
2 訪問決策算法和策略實施框架
2.1 決策算法
決策算法對用戶的訪問請求作出決策。首先定義訪問請求:
定義7 訪問請求。它是一個三元組AR=(s,p,)。其中:s和P是發起訪問請求的主體和希望獲取的權限;是系統當前決策環境,一般隱式給出。
決策算法對數據訪問請求AR進行決策,只有當存在一個授權策略AP=(A+,s′,p′,c,′),使得ss′,pp′,且c在系統當前狀態下為真時才被授予,同時更新系統狀態。這個決策算法的描述如下:
DecisionMaking(AR)
result = ″REJECT″;//返回值初始化
statusupdate = 1;//狀態更新
PS = {};//相關的策略集初始化
for every AP in policy set of system
if (s in AR ∈ s′in AP) and (p in AR p′ in AP)
put AP into PS
end if
end for
for every AP in PS
if (EvaluateConstraints(c in AP) is true)
//對策略限制進行評估
result = “ACCEPT”;
statusupdate = ′;//設置需更新的系統狀態
break
end if
end for
return result, statusupdate//返回決策結果和需更新的系統狀態
在上述算法中,獲取系統當前狀態并對策略限制進行評估(即使用中限制因素的值代入限制條件c,計算出真值)是關鍵。為此,必須提供能夠支持靈活訪問控制策略的實施框架。
2.2 策略實施框架
訪問控制策略由一系列的訪問控制實施機制實施。這些實施機制構成訪問控制實施框架,也稱做實施體系[6]。圖1(b)是本文提出的實施體系,主要組件包括訪問控制決策組件 (access control decision facility, ADF)、訪問控制實施組件 (access control enforcement facility, AEF)、訪問控制規則庫(access control rule, ACR)、策略限制評估組件(constraint evaluation facility, CEF)和系統狀態庫(system status library, SSL),它是GFAC中訪問控制信息(access control information, ACI)的超集。訪問請求的決策過程在圖中用序號標出:首先,主體發出對客體的操作請求(1);控制客體訪問的AEF攔截該請求,并向ADF提出訪問決策請求(2);ADF執行決策算法,檢索策略庫ACR中存儲的規則(3)和系統狀態庫SSL中的限制信息(4),決定是否允許該請求,并調整系統狀態(5);AEF依據ADF的決策結果,更新系統狀態并返回操作結果(6)(7);最后主體完成對客體的操作(8)。
筆者在框架中增設了限制評估組件CEF,這是與GFAC的最大區別。CEF獨立、動態地維護環境限制因素,這使得該框架能夠根據環境的變化動態作出決策。CEF的實現有的相對簡單,如主體用戶名屬性的評估,一般的系統中均包含當前用戶名的變量;有的相對復雜,如主體認證方式屬性的評估,常常需要與身份認證服務相配合才能實現。
為提高擴展GFAC的決策效率,參考Flask體系中的訪問向量緩沖(access vector cache, AVC)機制,當策略不包含任何環境限制且策略影響為空時,允許AEF臨時存儲決策結果,以提高決策效率。該實施框架適用于在各種應用場合中實現對靈活的訪問控制策略的支持,如分布式應用、主機入侵防御系統(HIPS)等。
3 靈活的訪問控制策略在數字化校園系統中的應用
某大學的數字化校園系統利用Web service技術,將分散在各部門的數據庫系統有機集成,并通過門戶網站為所有師生、員工提供統一的訪問界面。圖2是數字化校園系統的邏輯層次及本文的訪問控制層次。
門戶網站(用戶接口層)基于角色(如學生、教師、管理員等)為用戶提供相關信息和功能選項等,不同的角色擁有不同的用戶界面。在這一層上基于傳統的RBAC模型進行訪問控制。所有數據操作和事務在提交給后端數據庫(業務數據層)處理之前,還需要根據時間、用戶身份認證模式、用戶與數據對象之間的關系等復雜條件來判斷是否允許用戶訪問數據對象。一個例子策略為:只有經指紋方式認證的財務人員能夠更新自己創建的財務報表等。在這個層次上基于靈活的訪問控制策略來進行訪問控制。
本文的AEF、ADF和CEF均以Web service的形式實現。位于業務邏輯層中的AEF在有數據訪問請求時,調用ADF Web service進行決策。如果決策過程中需要檢索策略限制變量的值,則ADF Web service直接調用相應CEF的Web service獲取。目前實現的一些CEFs服務包括:
a)Currenttime()。為系統提供統一的當前時間服務;
b)AuthenticationMode(userID)。與身份認證服務器(實現基于用戶名—口令、數字證書、指紋等認證方式的用戶身份認證)一起,提供用戶的身份認證模式服務。
c)IsGivinglesson(teacherID, studentID)。此服務判斷TeacherID標志的教師是否是學生(studentID)的授課教師。
d)IsOwner(userID, objectID)。此服務判斷用戶(userID)是否是客體(objectID)的屬主。
e)IsEvaluated(assignmentID)。判斷教師是否已為學生作業(assignmentID)打過分。
4 結束語
本文所做的工作主要包含三方面:a)提出了一種靈活的訪問控制策略及其形式化的描述,包含授權類型、主體、權限、限制、影響等策略元素,能夠更加精確地描述用戶的各類訪問控制需求;b)給出了這種策略的決策算法,并通過對GFAC的擴展得到了新策略的實施框架,該框架能夠適應決策環境的動態變化;c)基于提出的靈活訪問控制策略及其實施體系,在某大學數字化校園系統中實現了靈活的訪問控制策略的應用,有效滿足了該系統復雜的訪問控制需求。
靈活的策略在其他安全領域(如主機IPS)中的應用、策略一致性及其安全性的形式化證明等相關問題將是筆者下一步的研究方向。
參考文獻:
[1]SANDHU R S,COYNE E J, FEINSTEIN H L,et al. Role based access control models[J].IEEE Computer,1996,29(2):3847.
[2]DAMIANOUN, DULAY N, LUPU E, et al.The ponder policy specification language[C]//Proc of the IEEE Workshop on Policies for Distributed Systems and Networks. Bristol:SpringerVerlag, 1995:1839.
[3]KUMAR A, KARNIK N, CHAFLE G. Context sensitivity in rolebased access control[J].ACM SIGOPS Operating Systems Review,2002,36(3):5366.
[4]LOSOCOCCO P A, SMALLEY S D. Integrating flexible support for security policies into the Linux operating system[R].[S.l.]:NSA and NAI Labs,2001.
[5]DEMCHENKO Y, GOMMANS L, TOKMAKOFF A,et al. Policy based access control in dynamic gridbased collaborative environment[C]//Proc of International Symposium onCTS.2006:6473.
[6]劉文清.“結構化保護級”安全操作系統若干關鍵技術的研究[D]. 北京:中國科學院研究生院, 2002.