王 寧, 鈔 柯, 羅 嬪
(大連理工大學 管理科學與工程學院,遼寧 大連 116024)
通過某種途徑限制主體訪問關鍵數據對象客體的訪問控制技術是保障信息安全的關鍵.當前,RBAC(role-based access control)已經成為目前最為流行的一種訪問控制策略.1996年,Sandhu等提出了RBAC96和ARBAC97(administration of RBAC,基于角色的訪問控制管理)訪問控制模型[1],在訪問控制研究領域取得了重大的突破.其核心思想是將訪問權限與角色相聯系,它包含一組用戶集和角色集,將角色作為一個橋梁,溝通于用戶和資源之間.由于實現了用戶與訪問權限的邏輯分離,基于角色的策略極大地方便了權限管理[2].
但是,傳統的RBAC模型控制粒度較大,對軟件系統更高的數據安全要求以及系統個性化需求不能很好地適應.細粒度訪問控制與粗粒度訪問控制的主要不同點是:細粒度訪問控制過程除了需要考慮客體的類別,還會考慮操作客體、用戶主體、資源等具體實例的細節問題,并且綜合上下文環境限制與時間周期性約束,從而達到屬性層或者數據資源元組層的控制.然而,粗粒度的訪問控制過程只考慮到客體的類別,并不區分客體具體的實例[3、4].近年來國內外學者針對訪問控制中的粒度問題也有了一些研究,文獻[5]通過引入組件外權限和組件內權限,把訪問控制粒度細化到組件內部業務數據的操作和屬性層次,以實現組件重用.文獻[6]結合RBAC模型思想和大型企業信息系統的實際需求,對核心RBAC模型進行了細粒度的擴充,在單位、功能、數據等多個維度對模型進行了細化,實現了大型信息系統的多級管理員體系,使得系統的功能及數據的控制更加靈活.文獻[7]從 Web實現方面對訪問控制的細粒度問題進行了研究.這些針對訪問控制中粒度的研究主要集中在某些環境下的具體實現上,還缺乏訪問控制元模型方面的研究,而如何有效地劃分、描述、控制訪問控制粒度,進而達到細粒度的訪問控制,即用戶對信息系統中具體的操作功能權限或者每一個被管理的對象進行控制,將對訪問控制的管理優化具有重大意義,這也正是目前相關組織機構對訪問控制更深層次的要求[8、9].
細致全面地考慮操作權限所涉及的數據對象和操作客體之間的相互作用,以及二者之間的約束條件,是系統實現細粒度訪問控制的關鍵所在.本文將從上述兩方面的關鍵點來分別構建數據對象和操作客體的細粒度元模型,把數據對象資源歸納為一組概念以及概念間的聯系,抽象出數據對象與操作客體的不同粒度以及粒度關聯的元數據統一描述模型.并且在粒度細化的元模型基礎上,按照粗細粒度訪問控制的具體實際要求,定義數據對象與操作客體的歸并規則,為之后的功能權限集的構成、角色定義以及之間的層次關系確定提供依據,從而制定優化的訪問控制策略.
元數據是信息資源管理和共享服務的基礎,可以將其理解為數據的數據,為描述某一類別資源屬性,提供關于數據對象定位、管理和精確檢索服務的結構化數據[10].為了更好地解決信息系統研發過程中的異構現象,并且達到業務協同、信息系統共享以及應用集成的目標,需要建立元數據模型,在更高層面上定義元數據的數據結構、設計方法、格式、語義規則、語法規則、功能等內容[11].訪問控制粒度的元模型則是用來描述訪問控制粒度的數據模型[12].
從當前的政務信息系統來看,政務相關的信息資源主要包括兩個部分:政府服務資源與文本資源,主要分布在政府部門的文件系統、單、表、賬、業務數據庫、網頁等數字化空間,大部分來自報表審批、公文流轉等環節.
在現實的信息系統中,用戶主體對不同的數據對象客體具有不同粒度的操作級別.數據對象,即信息資源,其粒度的粗細程度,是由政務系統服務的具體要求決定的,有以下幾種粒度劃分方法.
基于數據內容劃分粒度:例如一個數據庫存儲了某個市級項目申報的具體情況,如果是用戶自己申報的項目,那么針對該項目的各相關信息,用戶都擁有查看與修改的權限;如果是其他用戶申報的項目,用戶就只擁有瀏覽項目名稱、申報人等項目簡介信息的權限.但是如果該用戶的身份是審批者,那么就擁有查閱所有申報人的項目細則權限,并且可以進行審批批示,流轉至下一位審批者.此外,用戶有權關注的數據對象相異,例如財務人員處理公文流轉相關的事項很少.
基于時間周期劃分粒度:例如公文流轉事項,一份公文只在某一規定的時間內有效,在該時間段之外,相關責任者查看或者批示該公文的權限則被收回;再如,財務相關人員在每個季度以及會計年度的規定日期編寫會計報表,其相應的查看權限也會受限.
基于上下文環境劃分粒度:以采購部門為例,采購人員首先要獲取各部門提交的已通過審批的采購申請,然后才能編制采購清單;再如,公文流轉過程中,A負責人先對其進行審批,之后才會流轉到B負責人手中.
因此,訪問控制模型需要對數據對象的控制粒度進一步細化,為用戶提供設置詳細的數據屬性的具體方法,并且充分考慮數據對象的屬性特性,如數據時間周期、數據內容以及數據類型等.
與以上數據信息資源有關的元數據都是通過“實體-關系-屬性”這一面向對象三元組的形式來表示的,以此為基礎來建立數據對象的細粒度模型.用于描述數據自身的元數據就是這個三元組中的“屬性”,它主要包括一些與數據本身相關的信息,諸如時間周期、標識信息、發布信息、生成時間、質量信息之類的現有元數據標準.用于描述數據間關聯的元數據就是三元組中的“關系”,可以將其理解為通過怎樣的關系將各個數據集構成一個有機整體,這種關系包括組成關系、從屬關系等.圖1為數據對象的細粒度元模型.

圖1 數據對象的細粒度元模型Fig.1 Fine-granularity meta-model about data object
這里可以把圖1中的數據對象的細粒度元模型(ISMM)抽象成為一個六元組:

OBE表示資源對象元模型實體集,obe_id、obe_name為其相應的用來區分數據對象元數據的標識.
MS(management set)是管理信息集,AS(abstract set)是摘要信息集,SS(security set)則為安全限制集,三者構成了三大類屬性集合.
MS表示基本信息管理屬性集合,例如標識(sign)、資源類型(datatype)、資源負責方(principle)、資源存儲形式(storage)和時間期限(beginday,endday).ms∈MS,ms= 〈sign,datatype,principle,storage,beginday,endday〉.
AS表示摘要信息相關的屬性集合.例如關鍵字說明(keywords)、主題(theme)、描述信息(describInformation)等.as∈AS,as=〈keywords,theme,describInformation〉.
SS表示安全限制分級和其他限制信息.諸如信息的使用范圍 (useRange)、元數據的安全等級(securityGrade)、信息的使用人員(users)、上下文環境限制(context)、互斥信息(mutexInfo)等都可以用SS來標識.ss∈SS,ss=〈useRange,securityGrade,users,context,mutexInfo〉.
OBOS表示數據對象的本體信息集,OBOS可以明確定義出信息資源領域內認同的相關詞匯術語以及詞匯間的關系,因而信息語義的異構問題能得以很好的解決.OBOS主要包括三類本體信息:安全信息本體、摘要信息本體、管理信息本體,它從本體的內部屬性以及屬性之間的關聯兩方面來加以描述.
數據對象實體間以及屬性間的關聯可以通過OBR來描述.obr∈OBR,可以表示為obr(c1,c2),c1,c2∈OBE,比如實體資源c1和c2是互斥關系,表示為obr(互斥)(c1,c2).
在操作客體層面,需要將訪問控制策略中關于功能操作權限的控制粒度加以細化,針對不同的系統功能,用戶可以為其設置相異級別的操作權限.為了真正體現用戶在信息系統中擁有的功能權限差異性,將每個角色的操作權限進一步細化.
操作級別是操作客體粒度細化的主要方面,不同操作級別之間的關系不容忽視,例如同一數據對象是否能夠同時賦予兩個或者兩個以上的操作級別.針對不同的數據對象,操作級別的細化也有所不同:
針對財務記錄,與財務報表編制相關的操作級別有借、貸、創建、刪除賬戶等.
針對數據庫表記錄,諸如薪酬管理、用戶管理等模塊的數據維護,有插入、刪除、修改記錄等操作級別.
針對一般公文、文檔,操作級別主要包括修改、刪除、執行、查看等.
總之,無論是哪種數據對象,都可以總結出5種操作級別:增、刪、改、查、禁用.操作客體的細粒度元模型表示如圖2所示.

圖2 操作客體的細粒度元模型Fig.2 Fine-granularity meta-model about operation object
現將圖2所示的操作客體的細粒度元模型(OOMM)抽象為一個四元組:

OPE用來描述操作客體細粒度元模型實體集,opeId、opeName為相應的用來區分操作客體元數據的標識.
OPLS用來描述操作級別集,包括增(add)、刪 (delete)、改 (modify)、查 (query)、禁 用(disabled)5種操作級別.可表示為OPLS=〈add,delete,modify,query,disabled〉.
OPOS用來描述包括操作級別本體和管理信息本體在內的操作客體本體信息集,刻畫屬性信息以及各個定義間的關系是它的重點之一.
OPR用來描述操作客體以及屬性之間的關系.opr∈OPR,可以表示為opr(a1,a2),a1,a2∈OPLS,比如操作級別查詢a1和禁用a2是互不相容的關系,表示為opr(互斥)(a1,a2).
數據對象的狀態、屬性、內部關聯和約束關系在數據對象的細粒度元模型中都被綜合考慮了,數據對象能夠被細化到數據庫中單條記錄級別或者目錄級別,從屬性層或者元組級別層對數據項進行控制,或者將其歸并為報表、文檔級別,通過粗粒度控制整個數據表或者文件.
一些元組級別信息資源的細粒度應當根據具體的工作情況加以控制,如果粒度太細,或者這些對應資源更加適合粗粒度控制,都會在一定程度上造成系統冗余.因此,為了提高系統工作效率,同時又能達到用戶要求的細粒度訪問控制,可以把數據對象歸并到一個適應現實需求的粒度范圍.
以數據對象的細粒度元模型標準作為依據,每個數據實體通過信息資源的屬性以及關聯關系進行描述,形成數據對象集的基礎粒度,并且根據某一具體的標準將其歸并為數據對象的個體(OB).數據對象的安全分級、存儲形式等屬性都是粒度歸并方法需要參考的因素.本體中的粒度計算標準與概念分類是數據對象歸并規則的制定依據,首先對信息粒進行定義,描述其形成,接著制定規則把信息粒歸并為數據操作對象.表示如下:
g(i)用來表示數據對象的基礎粒度,把數據對象細粒度元模型中的管理信息集、摘要信息集、安全限制集分別賦予每一個實體概念,那么數據對象的基礎粒度與單個實體相對應.

其中WT用來表示信息粒的權重,其賦值函數為F,α、β、γ為函數的賦值因子,分別表示安全限制分級(secRank)、關鍵字(keywords)、數據類型(datatype);sim(g(i),g(j))用 來 描 述 信 息 粒g(i) 與g(j) 的 相 似 度;d(WT[g(i)],WT[g(j)])表示g(i)與g(j)的距離,通過權重與麥考斯基距離獲取;是按照具體情況設置的動態因子.
通過以上方式能夠獲取對應的相似度值,如果指標范圍是確定的,計算所得相似度在該范圍以內,則將其歸并到同一數據對象個體(obs(i))中;否則不予歸并.那么數據對象集可以用如下形式表示:

參照操作客體細粒度元模型標準,操作客體與操作級別相對應,操作客體集則是由操作級別中各元素遵循一定的組合方式歸并而形成的,表示如下:

這里,n表示操作級別集OPLS中包含n個元素,m表示歸并之后的元素個數.操作級別的元素組合子集有2n-1個,不滿足實際具體情況的元素組合個數為η,那么二者之差即為m的值.例如:禁用操作級別與修改操作級別的組合就不滿足實際情況.
所以,操作客體集表示如下:

操作客體與數據對象是權限的兩個重要元素,上文提出的細粒度元模型從這兩個層面實現了權限的細化.在把權限合理地分配給相應的角色過程中,為了更加清晰地界定角色,更好地與現實應用條件銜接,可以增加兩個中間過渡層次:功能權限集(Function)和功能菜單(Menu),從而實現對信息資源的細粒度訪問控制,為權限完美授權路線提供支持.權限-角色分配流程如圖3所示.
操作客體集(OPS)和數據對象集(OBS)的互操作組合成權限集(P).權限就是對數據對象的操作許可,例如對財務報表的操作、公文的審批和工資單的計算匯總等.以圖4采購為例,有對下個季度的部門采購計劃表的增刪改查,對當月采購單的執行、狀態處理等權限.這些都是細化的基礎權限,表示如下:

圖4 協同辦公系統中訪問控制管理的角色指派界面Fig.4 The page of permission-role of access control management in cooperation office system
功能權限集可以理解為基礎權限的集合,它描述的是政府部門在現實工作中實現某個具體功能所需要的權限集合,一個功能權限對應多個基礎權限.例如非定期采購計劃編制作為一個功能權限,它包含了預算控制、審核臨時購買清單、修改采購計劃等多個基礎權限.這里把功能權限定義為一個四元組:

功能權限通過FID來標識,操作級別的映射用OPS來描述,OBS則描述了數據對象的映射,諸如時間周期、上下文環境、安全級別等從數據對象屬性中抽象出來的相關限制條件可以用RTR來描述.針對相異的數據對象以及相異的現實環境設置,其限制條件也會有所不同.
在實際應用系統中,功能菜單與功能權限集中的元素相對應,根據不同的應用情況,功能菜單所具有的功能權限大小與權限范圍也會有所不同.通常情況下,參照相應的工作任務對功能菜單進行設置.例如圖4中,采購工作包含了發票校驗、采購訂單、采購計劃這3個功能菜單.
功能菜單組合又與角色相對應.在功能菜單-角色指派過程中,必須遵循安全級別限制原則、互斥權限原則、最小特權等分配原則.根據粒度控制與業務的要求,能夠把一個功能菜單分配給一個角色,也能夠把多個功能菜單的組合指派給一個角色.例如圖4中,將3個功能菜單組合指派給了采購角色.
指派函數表示為

與傳統RBAC模型相比,本文將角色定義為一組權限的集合,淡化角色的組織概念,按照粒度優化原則,從操作客體與數據對象的粒度層面來分析,角色的界定通過細化的功能權限集與功能菜單集來實現,進而實現組織崗位與角色的相互指派.在傳統的訪問控制模型中,角色直接與崗位相對等,容易與組織機構產生沖突,而本文提出的模型正可以解決該問題,一旦崗位職能改變,只需為其指派其他細化的角色,這樣既可以統一管理,又方便操作,更能適應現有的需求.
基于上述模型和方法,在作者參與開發的沈陽市和平區協同辦公系統中,應用了訪問控制細粒度元模型,建立了信息資源與操作客體的元數據庫,進行了數據對象與操作客體的歸并,實現了細粒度的訪問控制,并取得了良好的應用效果.
針對基于角色的訪問控制模型,從權限的數據對象和操作客體兩個維度建立了細粒度元模型,根據一定的規則進行粒度粗細的歸并控制后,兩者相互作用組合成功能權限集,由此構成功能菜單的組成部分,為角色的界定和層次劃分提供參照標準,根據實際需要的設置,可以達到數據元組級別或屬性級別的細粒度訪問控制,使得系統的功能和數據的控制更加靈活,便于角色的管理,一方面達到信息安全訪問的保障,另一方面為用戶提供多方位的細粒度訪問途徑.本研究可以為實際應用系統開發的訪問控制策略制定提供方法上的借鑒.對于模型中的數據對象粒度歸并規則,需要進一步研究優化的粒度計算模型,在現實應用中,如果數據對象與操作客體的粒度越細、數目越多,那么系統就會更加頻繁地調用訪問控制決策模塊進行權限的判定,這就需要更快的響應速度,所以粒度歸并的優化和權限的最優設置仍是下一步研究的重點.
[1]SANDHU R S,COYNE E J,FEINSTEIN H L,etal.Role-based access control models [J].IEEE Computer,1996,29(2):38-47
[2]OH S,BYUN C,PARK S.An organizational structure-based administration model for decentralized access control[J].Journal of Information Science and Engineering,2006,22(6):1465-1483
[3]FERBER J,GUTKNECHT O.A meta-model for the analysis and design of organizations in multi-agent systems[C]//Proceedings of the 3rd International Conference on Multi Agent Systems.Washington D C:IEEE Computer Society,1998
[4]SCHOINAS I,FALSAFI B,LEBECK A R.Finegrain Access Control for Distributed Shared Memory[M].California:ACM,1994
[5]廖 爾.細粒度角色訪問控制模型及其應用[J].河北省科學院學報,2009,26(3):55-58
[6]司 煒,曾廣周,盛 琦,等.RBAC模型的細粒度擴充及應用[J].計算機科學,2006,33(4):277-279
[7]朱佃波.Web信息系統中統一細粒度訪問控制的研究[D].蘇州:蘇州大學,2008
[8]廖俊國,洪 帆,肖海軍,等.細粒度的基于角色的訪問控制模型[J].計算機工程與應用,2007,43(34):138-140
[9]趙 遐,懷進鵬.基于XML的多粒度訪問控制系統[J].計算機工程與應用,2002,38(21):155-159
[10]黃宏斌,張維明,鄧 蘇,等.面向語義信息共享的元數據模型的研究與實現[J].計算機科學,2008,35(4):124-128
[11]高國偉,王延章.政務信息資源目錄體系中的政府組織元模型研究[J].情報雜志,2008(6):151-154
[12]韓志揚.企業計算環境下細粒度訪問控制模型XFGAC研究[D].青島:山東科技大學,2006