仲華惟
摘要:分析企業(yè)信息系統(tǒng)中對(duì)訪問控制客體的要求,提出基于類簇的客體層次模型,使用簇的動(dòng)態(tài)特性實(shí)現(xiàn)靈活的訪問控制。研究訪問許可在類簇層次模型上的傳遞過程,定義許可在傳遞過程中的計(jì)算方法,最后給出用戶對(duì)數(shù)據(jù)的訪問控制算法。
關(guān)鍵詞:訪問控制;客體;類簇模型;層次模型
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)23-5559-03
1 概述
隨著企業(yè)信息化程度的提高,訪問控制技術(shù)發(fā)揮了越來越重要的作用,在很大程度上影響著企業(yè)信息系統(tǒng)的可用性、易用性和安全性[1]。訪問控制是指主體依據(jù)某些控制策略或權(quán)限對(duì)課題進(jìn)行不同授權(quán)訪問。主體是發(fā)出訪問請(qǐng)求或?qū)腕w施加動(dòng)作的所有主動(dòng)實(shí)體的集合。每個(gè)主體都有定義其身份或標(biāo)識(shí)其特征的屬性。客體是接收主體訪問行動(dòng)的被動(dòng)實(shí)體的集合,包括系統(tǒng)所保護(hù)的所有資源。主體和客體的概念是相對(duì)的,一個(gè)實(shí)體在某個(gè)時(shí)刻是主體在另一個(gè)時(shí)刻又變成客體,這取決于該實(shí)體是動(dòng)作的執(zhí)行者還是承受者。目前信息系統(tǒng)訪問控制的研究主要集中在對(duì)主體的控制,較少涉及到如何對(duì)客體進(jìn)行動(dòng)態(tài)控制[2]。
在信息系統(tǒng)開發(fā)過程中,面向?qū)ο蟮拈_放方式已經(jīng)廣泛應(yīng)用,但是單純基于對(duì)象和類的訪問控制粒度不能滿足要求。信息系統(tǒng)通常需要:1) 能夠?yàn)閷?duì)象分組授權(quán),如一個(gè)項(xiàng)目組只能查看本項(xiàng)目組數(shù)據(jù)對(duì)象;2) 關(guān)聯(lián)對(duì)象授權(quán),如用戶只能檢索部分相關(guān)聯(lián)數(shù)據(jù);3) 對(duì)象屬性授權(quán),如用戶可以修改對(duì)象的幾個(gè)特定屬性,而其他的屬性只能瀏覽。
為了滿足目前訪問控制對(duì)客體的要求,該文在類簇模型基礎(chǔ)上,建立客體層次模型,研究了許可在層次模型上的傳遞方式和權(quán)限的計(jì)算方法。通過使用本模型,可以實(shí)現(xiàn)信息系統(tǒng)中對(duì)客體權(quán)限的靈活配置。
2 類簇模型
在聚類分析中,將物理或抽象對(duì)象的集合分為相似的對(duì)象類的過程稱為聚類。每個(gè)對(duì)象類稱為一個(gè)簇(Cluster),同一個(gè)簇中的對(duì)象之間具有較高的相似性,而不同簇中的對(duì)象具有較高的相異性。聚類就是以某種度量為標(biāo)準(zhǔn)將所有的數(shù)據(jù)對(duì)象劃分到簇中,劃分的結(jié)果是完成了數(shù)據(jù)的分類。聚類分析廣泛應(yīng)用于模式識(shí)別、數(shù)據(jù)分析、圖像處理和市場研究等領(lǐng)域[3]。黃劉生[4]為解決動(dòng)態(tài)對(duì)象的問題,在多媒體數(shù)據(jù)庫中引入了簇的概念。具有相同內(nèi)容的一部分對(duì)象組合的抽象可以定義為簇,允許同質(zhì)或異質(zhì)對(duì)象動(dòng)態(tài)聚集到一個(gè)簇中,簇是多個(gè)語義相關(guān)對(duì)象的動(dòng)態(tài)組合,其屬性、方法、角色和扮演者均是動(dòng)態(tài)加入和刪除的。一個(gè)簇是一個(gè)四元組[Ct=
3 客體層次模型
3.1 客體粒度
在基于簇類模型的信息系統(tǒng)應(yīng)用中,訪問客體的層次粒度超出RBAC中類和對(duì)象的范圍。該文將訪問客體粒度分為類、簇、對(duì)象、類屬性、簇屬性五種,訪問控制策略以這五種客體為目標(biāo)進(jìn)行定義。主體對(duì)各種粒度的操作,最終施加在特定對(duì)象和屬性上。使用簇可以實(shí)現(xiàn)數(shù)據(jù)對(duì)象的動(dòng)態(tài)分類和聚合,通過定義不同簇結(jié)構(gòu)可以將數(shù)據(jù)對(duì)象劃分到不同簇集合中,通過對(duì)簇的訪問控制現(xiàn)實(shí)對(duì)數(shù)據(jù)的控制。
3.2 傳遞方式
類簇?cái)?shù)據(jù)模型有簇和類訪問兩個(gè)操作入口點(diǎn),通過這兩個(gè)入口點(diǎn)對(duì)操作請(qǐng)求數(shù)據(jù)逐步實(shí)例化,從而實(shí)現(xiàn)一個(gè)或多個(gè)對(duì)象的訪問。訪問控制的許可從這兩個(gè)入口點(diǎn)進(jìn)行層次間的傳遞,通過級(jí)別許可的組合計(jì)算,最終實(shí)現(xiàn)對(duì)象級(jí)別的訪問客體控制。如圖2所示。
在類簇模型中許可在層次關(guān)系的傳遞形式分為簇-簇傳遞、簇-類傳遞、類-類傳遞、類-對(duì)象傳遞、簇-屬性傳遞、類-屬性傳遞和對(duì)象-屬性傳遞六種。簇-簇傳遞和簇-類傳遞是簇與子集之間的包含關(guān)系引發(fā)的許可傳遞,類-類傳遞是父類和子類的繼承關(guān)系引發(fā)的許可傳遞,類-對(duì)象傳遞可以理解包含關(guān)系。
3.3 傳遞計(jì)算
3.4 訪問控制算法
在企業(yè)信息系統(tǒng)中,用戶會(huì)具有多種角色,而訪問對(duì)象時(shí)也受到多項(xiàng)策略限制,通過調(diào)用訪問控制算法計(jì)算,消除策略沖突,得到一致性的訪問控制結(jié)果。
輸入:用戶u,對(duì)象ob,操作op
輸出:訪問控制結(jié)果,允許或者禁止
步驟1: 檢索用戶u的角色,得到角色集合roleList;
步驟2:定義obPerm=0,從roleList中依次檢索每個(gè)角色r對(duì)ob的操作權(quán)限,若存在禁止權(quán)限,轉(zhuǎn)到步驟9,若存在允許權(quán)限,令obPerm=1;
步驟3:若對(duì)象ob是類對(duì)象,確定ob的類ob.Class和該類的所有父類集合claList,轉(zhuǎn)到步驟7;
步驟4:若對(duì)象ob是簇對(duì)象,確定ob所屬的簇(ob.Cluster)和所有子簇集合cluList,確定ob的類ob.Class和該類的所有父類集合claList;
步驟5:定義初始權(quán)限狀態(tài)CLUPerm=0,CLUPermTrans=C。循環(huán)檢索roleList中每個(gè)角色r對(duì)ob.Cluster的操作權(quán)限p,若存在禁止權(quán)限,跳轉(zhuǎn)到步驟9,若存在允許權(quán)限,令CLUPerm =1,計(jì)算CLUPermTrans =CLUPermTrans[⊕]p。循環(huán)檢索完成后若CLUPerm值為0,跳轉(zhuǎn)到步驟9;
步驟6:循環(huán)檢索roleList中每個(gè)角色r對(duì)cluList和claList中每個(gè)客體的操作權(quán)限p,若存在禁止權(quán)限,跳轉(zhuǎn)到步驟9,若存在允許權(quán)限,令CLUPerm=1,CLUPermTrans= CLUPermTrans[?]p。循環(huán)完成后,若CLUPermTrans值為T或者CLUPermTrans值為C且CLUPerm+obPerm值為1,轉(zhuǎn)到步驟10,否則轉(zhuǎn)到步驟9;
步驟7:定義CLAPerm=0,設(shè)置初始值CLAPermTrans=C。循環(huán)檢索roleList中每個(gè)角色r對(duì)ob.Class的操作權(quán)限p,若存在禁止權(quán)限,則跳轉(zhuǎn)到步驟9,若存在對(duì)該類允許權(quán)限,令CLAPerm =1,CLAPermTrans= CLAPermTrans[⊕]p。循環(huán)檢索完成后若CLAPerm值為0,跳轉(zhuǎn)到步驟9;
步驟8. 循環(huán)檢索roleList中每個(gè)角色r對(duì)claList中每個(gè)客體的操作權(quán)限p,若存在禁止權(quán)限,跳轉(zhuǎn)到步驟9,若存在允許權(quán)限,令CLAPerm=1,CLAPermTrans= CLAPermTrans[?]p。循環(huán)完成后,檢查結(jié)果若CLAPermTrans值為T或者CLAPermTrans值為C且CLUPerm+obPerm值為1,轉(zhuǎn)到步驟10,否則轉(zhuǎn)到步驟9;
步驟9:返回禁止;
步驟10:返回允許。
算法復(fù)雜度分析如下。假定一個(gè)用戶上平均有l(wèi)個(gè)角色,每個(gè)對(duì)象所屬類平均有m個(gè)父類或者所屬簇有m層子簇,假定合并后的許可集數(shù)量為n,整個(gè)算法的復(fù)雜度為[O(l*m*n)]。
4 結(jié)論
基于簇和簇屬性的訪問控制可以很好的滿足企業(yè)信息系統(tǒng)訪問控制客體多樣化的要求。由于簇內(nèi)對(duì)象的動(dòng)態(tài)性,基于類簇的權(quán)限實(shí)現(xiàn)了授權(quán)的動(dòng)態(tài)化。該文建立了類簇客體層次模型,研究了許可在層次模型上的傳遞方式和權(quán)限的計(jì)算方法。通過使用本模型,可以實(shí)現(xiàn)在信息系統(tǒng)中進(jìn)行靈活的權(quán)限配置。
參考文獻(xiàn):
[1] 劉宏月,范九倫,馬建峰.訪問控制技術(shù)研究進(jìn)展[J].小型微型計(jì)算機(jī)系統(tǒng), 2004,25(1):56-60.
[2] 耿俊浩,張振明,田錫天.面向產(chǎn)品生命周期管理的多粒度訪問控制模型[J].計(jì)算機(jī)集成制造系統(tǒng),2008(11).
[3] 孫吉貴,劉杰,趙連宇.聚類算法研究[J]. 軟件學(xué)報(bào),2008,19(1):48-61.
[4] 黃劉生,陳華平,鄭啟龍.一個(gè)新的面向?qū)ο髷?shù)據(jù)庫系統(tǒng)的動(dòng)態(tài)數(shù)據(jù)模型[J].軟件學(xué)報(bào),2001,12(5):735-741.