李 陽,劉 更,王海偉
(西北工業(yè)大學(xué) 機電傳動與控制陜西省工程實驗室,陜西 西安 710072)
產(chǎn)品協(xié)同開發(fā)環(huán)境充分利用計算機技術(shù)和信息技術(shù)的發(fā)展成果,能夠提高信息利用率和產(chǎn)品開發(fā)的工作效率,因此,協(xié)同開發(fā)環(huán)境的理論研究和實踐得到了廣泛的關(guān)注。協(xié)同開發(fā)環(huán)境信息共享和交互的特點同時也帶來了信息安全問題,作為企業(yè)重要財富的產(chǎn)品信息必須得到安全保證,能夠使協(xié)同開發(fā)環(huán)境得到更大范圍的應(yīng)用。
訪問控制是保證信息安全的重要環(huán)節(jié),其目標(biāo)是保證具有相應(yīng)權(quán)限的用戶才能訪問相應(yīng)的數(shù)據(jù)。訪問控制模型將安全策略進行規(guī)范化的表達,并為訪問控制的實現(xiàn)提供指導(dǎo),是訪問控制領(lǐng)域的研究重點。對客體和主體的抽象和描述是建立訪問控制模型的關(guān)鍵,它直接影響訪問控制模型對安全策略的表達能力。訪問控制中的客體(object)是包含信息的被動實體,一般指用戶的訪問對象;主體(subject)是指造成客體信息流動或改變的主動實體[1],在基于角色的訪問控制(Role Based Access Control,RBAC)模型中,用戶通過角色獲得權(quán)限對客體進行授權(quán)范圍內(nèi)的操作,因此把用戶和角色視為主體。2004年,美國國家技術(shù)標(biāo)準(zhǔn)學(xué)會(National Institute of Standards and Technology,NIST)的RBAC[2]發(fā)布之后,RBAC在多個領(lǐng)域得到了廣泛的應(yīng)用研究,取得了大量研究成果[3]。
協(xié)同工作方面,MATTAS等[4-5]針對基于 Web的協(xié)同環(huán)境下角色管理效率不高的問題,對角色進行動態(tài)授權(quán),實現(xiàn)了細粒度的、適時的授權(quán)管理。CRUZ等[6]通過建立多個局部策略中心與一個全局策略中心的聯(lián)系,實現(xiàn)了不同地域之間的角色映射。在產(chǎn)品開發(fā)和數(shù)據(jù)管理方面,李濤等[7]通過分析操作之間的約束關(guān)系,進行了類操作和角色之間的約束管理,給出了權(quán)限授予規(guī)則和權(quán)限控制規(guī)則。龍勤等[8]提出了一種基于角色的可管理訪問控制模型,在模型中增加了客體角色的概念,對NIST RBAC參考模型進行了有效的擴展,使該模型具有了更強的表達能力。這些研究成果針對產(chǎn)品開發(fā)或管理中出現(xiàn)的安全訪問問題提出了優(yōu)秀的解決方案,但是尚不能滿足協(xié)同開發(fā)環(huán)境下的訪問控制需求。
RBAC模型的廣泛應(yīng)用暴露出了模型存在的問題。LI等[9]指出了NIST RBAC標(biāo)準(zhǔn)模型中存在的問題和錯誤,并提出了相應(yīng)的修改建議。FERRAIOLO等[10]回應(yīng)了文獻[9]提出的問題,并對這些問題進行了深入分析。KUHN等[11]提出可在RBAC模型中融入屬性以解決RBAC中存在的一些問題,但未提出明確的方案。JIN等[12]提出以角色為中心的基于角色和屬性的訪問控制模型,通過增加以用戶屬性和客體屬性為基礎(chǔ)的權(quán)限過濾策略,限制用戶激活角色的可用權(quán)限,從而在一定程度上避免了出現(xiàn)大量權(quán)限配置差異不大的相似角色,但是,這種處理方式只是通過約束機制限制用戶的訪問,未在角色權(quán)限配置過程中考慮用戶屬性和客體屬性,且缺乏對訪問控制中的屬性進行深入分析,難以滿足客體屬性動態(tài)變化對訪問控制的要求。
國家863課題(2006AA04Z161)研究成果“協(xié)同設(shè)計仿真平臺”在企業(yè)中的應(yīng)用表明,產(chǎn)品協(xié)同開發(fā)環(huán)境對訪問控制的要求包括:①訪問控制必須適應(yīng)客體屬性的動態(tài)變化;②采用分布式授權(quán),授權(quán)應(yīng)受到全局約束的限制。由于產(chǎn)品協(xié)同開發(fā)環(huán)境的訪問控制策略需要不斷調(diào)整,應(yīng)降低業(yè)務(wù)模塊和訪問控制模塊的耦合度。
本文提出一種針對協(xié)同開發(fā)環(huán)境的基于角色和屬性的訪問控制模型,采用客體公共屬性作為定義權(quán)限的基本元素,采用主體組織屬性作為約束角色權(quán)限配置策略的基本元素,將屬性融入權(quán)限配置階段,以適應(yīng)客體屬性動態(tài)變化的要求,提高授權(quán)管理的靈活性,滿足協(xié)同開發(fā)環(huán)境對訪問控制的要求。
NIST提出的RBAC標(biāo)準(zhǔn)模型[2]如圖1所示,RBAC的基本特征是用戶的訪問權(quán)限通過角色間接獲得。
標(biāo)準(zhǔn)模型中相關(guān)的集合、函數(shù)和關(guān)系描述如下:
(1)U,R,OP,O 和SESSION 分別表示用戶集、角色集、操作集、客體集和會話集。
(2)URA?U×R,表示用戶角色配置關(guān)系的多對多映射。
(3)assigned_users(r)= {u∈U|(u,r)∈URA},表示被賦予角色r的用戶集。
(4)P=2(OP×O),表示權(quán)限集。
(5)PRA?P×R,表示角色權(quán)限配置關(guān)系的多對多映射。
(6)assigned_permissions(r)={p∈P|(p,r)∈PRA},表示賦予角色r的權(quán)限集。
(7)session_users(session)→U,表示會話session所對應(yīng)的用戶集中的用戶。
(8)session_roles(session)→2R,表示會話session所對應(yīng)的角色集。
(9)RH?R×R,表示角色繼承的偏序關(guān)系。
針對協(xié)同開發(fā)環(huán)境的要求,在標(biāo)準(zhǔn)模型的基礎(chǔ)上,增加客體公共屬性和主體組織屬性,定義以客體公共屬性為基礎(chǔ)的權(quán)限,在訪問控制的權(quán)限配置階段融入屬性,能夠增加訪問模型的靈活性和表達力,使模型能夠表達協(xié)同開發(fā)環(huán)境針對客體屬性變化和協(xié)同工作特點而提出的安全策略,例如不同設(shè)計階段的零件數(shù)據(jù)的訪問范圍不同,不同協(xié)作單位對相同數(shù)據(jù)的訪問權(quán)限不同?;诮巧蛯傩缘哪P腿鐖D2所示。
(1)客體公共屬性
定義1 客體公共屬性。根據(jù)訪問控制需求確定的一組客體通用屬性,公共屬性的值域為容量有限的離散域。
協(xié)同開發(fā)環(huán)境中,客體的某些屬性是動態(tài)變化的,客體在不同屬性狀態(tài)下的可訪問性是不同的。例如:產(chǎn)品開發(fā)的不同階段能夠參與的角色和人員不同;不同學(xué)科的工作由不同專業(yè)的人員完成,但是其中存在交互,結(jié)構(gòu)設(shè)計所生成的數(shù)據(jù)經(jīng)過格式轉(zhuǎn)換提供給仿真分析人員進行虛擬分析;數(shù)據(jù)的密級經(jīng)過一段時間之后可能降低,更多的角色或人員能夠訪問。如果根據(jù)數(shù)據(jù)的每個狀態(tài)設(shè)計不同的角色,則角色數(shù)量會大幅增加,不利于權(quán)限管理。
每個客體擁有大量屬性,不同客體之間的屬性不統(tǒng)一,例如齒輪有其特有的類型屬性(圓柱齒輪、錐齒輪、面齒輪等),不能用“齒輪類型”對客體進行統(tǒng)一的控制。應(yīng)用于訪問控制的客體屬性必須是能夠約束所有客體的“公共”屬性。
以O(shè)表示全體對象的集合,Ai表示一個客體公共屬性,T(A1,A2,…,An)表示由n個公共屬性組成的客體公共屬性元組,Di表示公共屬性Ai的值域,Di中的任一取值v都確定一個客體子集S(Ai=v),即
并且規(guī)定所有公共屬性的一個取值組合t(a,b,…,c)確定的客體子集
客體公共屬性確定的客體子集具有以下性質(zhì):
性質(zhì)1 ?Ai∈T,∪v∈DiS(Ai=v)=O。
性質(zhì)2 ?Ai∈T,?a∈Di,?b∈Di,若a≠b,則S(Ai=a)∩S(Ai=b)=?。
性質(zhì)3 所有公共屬性取值組合確定的客體子集共有Πni=1|Di|個。
(2)主體組織屬性
定義2 主體組織屬性。反映用戶和角色在企業(yè)或機構(gòu)中組織關(guān)系的屬性。
協(xié)同開發(fā)環(huán)境中,多個協(xié)作單位協(xié)同工作,一方面需要分布式授權(quán),以降低中心單位權(quán)限管理的負(fù)擔(dān),另一方面作為信息所有者的中心單位要保證信息的安全,故需要采用分布授權(quán)和集中管理相結(jié)合的方式。以“組織屬性”作為對角色的約束,可以避免不同單位角色名稱的沖突,并實現(xiàn)對角色權(quán)限的高層約束,例如:角色具有“單位”屬性,各單位定義角色時不必考慮是否會與其他單位的角色重名;中心單位可以將權(quán)限約束定義到“單位”級,即對目標(biāo)單位的所有角色進行約束。訪問控制系統(tǒng)中的組織屬性取值應(yīng)相對穩(wěn)定,否則將影響全局的權(quán)限設(shè)置。例如,因為“單位名稱”可能會改變,進而影響訪問控制系統(tǒng)的權(quán)限配置,所以采用“單位ID”更為適當(dāng)。
以符號e表示組織實體,E表示所有組織實體組成的集合,u表示用戶,U 表示用戶集,U(e)表示屬于組織實體e的用戶集合,r表示角色,R表示角色集,R(u)表示用戶u的角色集,R(e)表示屬于組織實體的角色集,主體組織屬性表現(xiàn)為下列性質(zhì):
性質(zhì)4 ?u∈U,?e∈E,使u∈U(e)。
性質(zhì)5 ?r∈R,?e∈E,使r∈R(e)。
性質(zhì)6 ?e∈E,?u∈U(e),則R(u)?R(e)。
性質(zhì)7 ?e1∈E,?e2∈E,e1≠e2,?r1∈R
(e1),?r2∈R(e2),若存在偏序關(guān)系e1<e2,則r2<r1。
(3)權(quán)限
定義3 權(quán)限。操作與客體子集的二元組,表示可以在客體集上施加操作。
如果把客體的標(biāo)識符(名稱或ID)作為客體屬性,則客體可視為由其標(biāo)識符確定的單元素集合,因此該定義是對美國國家標(biāo)準(zhǔn)學(xué)會(ANSI)標(biāo)準(zhǔn)模型中權(quán)限定義(操作與客體的二元組)的擴展。
基于角色的訪問控制的優(yōu)勢之一是角色權(quán)限明確,易于權(quán)限分析和控制。引入屬性的訪問控制模型雖然可以滿足權(quán)限定義的靈活性,但是由于各種客體子集的組合比較復(fù)雜,使角色權(quán)限的明確性降低,定義權(quán)限的相關(guān)運算規(guī)則,能夠在復(fù)雜的條件下計算角色權(quán)限,便于角色權(quán)限分析。
為了使表達更加清晰,下面以符號H表示操作集,h表示操作,P表示權(quán)限集,權(quán)限
式中p∈P,h∈H,Ai∈T,v∈Di。
任意兩個權(quán)限p1:=S(Ai=v)/h1,p2:=S(Aj=w)/h2的相關(guān)運算規(guī)則如下:
規(guī)則1 權(quán)限相等:若h1=h2,i=j(luò),v=w,則p1=p2。
規(guī)則2 權(quán)限并:p1+p2:=S(Ai=v)/h1+S(A=w)/h= {p},p1=p2=p;
j2{{p1,p2},p1≠p2。
規(guī)則3 權(quán)限交:
p1×p2:=S(Ai=v)/h1×S(Aj=w)/h2=
(S(Ai=v)∩S(Aj=w))/h, h1=h2=h;?, h1≠h2。
任意兩個權(quán)限集P1?P,P2?P的相關(guān)運算規(guī)則如下:
規(guī)則4 權(quán)限集并:P1+P2=∪(px+py|px∈P1,py∈P2)。
規(guī)則5 權(quán)限集交:P1×P2=∪(px×py|px∈P1,py∈P2)。
任一權(quán)限p與任一權(quán)限集Px?P的相關(guān)運算規(guī)則如下:
規(guī)則6 權(quán)限與權(quán)限集的并:p+Px=∪(p+px|px∈Px)。
規(guī)則7 權(quán)限與權(quán)限集的交:p×Px=∪(p×px|px∈Px)。
并運算和交運算都滿足交換律和結(jié)合律,并滿足對交運算的分配律。
協(xié)同開發(fā)工作以一個中心單位負(fù)責(zé)、多個協(xié)作單位參與的形式展開,訪問控制模型必須保證協(xié)同工作中數(shù)據(jù)的安全性。訪問控制系統(tǒng)安全性的含義是,任何違反資源所有者意愿的訪問都不會發(fā)生[13]。協(xié)同開發(fā)環(huán)境中,信息資源的所有者是企業(yè)或機構(gòu),企業(yè)或機構(gòu)制訂的相關(guān)規(guī)章制度可視為對信息訪問的意愿。
通過如圖3所示的全局訪問控制矩陣可表示企業(yè)對數(shù)據(jù)訪問的門限要求,圖中通過公共屬性確定客體子集,通過組織屬性定位角色,角色與客體子集的交叉點為操作子集。圖中實例的含義是角色α.β.γ可以對客體子集S(Ai=v)進行操作子集Hx中的所有操作。
可通過如下實施步驟保證協(xié)同開發(fā)環(huán)境訪問控制的安全性。
步驟1 中心單位根據(jù)數(shù)據(jù)安全相關(guān)規(guī)章制度制訂所有角色的權(quán)限上限,形成如圖3所示的全局訪問控制矩陣。
步驟2 所有協(xié)作單位完成本單位的角色權(quán)限配置。
步驟3 所有協(xié)作單位角色的權(quán)限集與全局訪問控制矩陣中的對應(yīng)角色權(quán)限集進行交運算,計算結(jié)果為協(xié)作環(huán)境中角色的實際權(quán)限集。
例如,系統(tǒng)中三個公共屬性及其值域分別為:A1-{1,2},A2-{1,2},A3-{1,2}。中心單 位指定了某協(xié)同單位角色r2的權(quán)限上限:
該協(xié)作單位角色r2的權(quán)限包括從角色r1繼承部分和附加部分:
則角色r2實際權(quán)限為:
在協(xié)同設(shè)計仿真平臺中實施本文提出的訪問控制模型,要求業(yè)務(wù)系統(tǒng)根據(jù)不同角色展示不同的內(nèi)容,而平臺中角色的數(shù)量較多且角色權(quán)限隨著需求的變化需要調(diào)整,尤其在平臺使用初期,角色權(quán)限的調(diào)整比較頻繁,因此系統(tǒng)的模塊化設(shè)計非常重要。
例如,在采用分布式授權(quán)的訪問控制系統(tǒng)中采用的客體公共屬性為:階段{產(chǎn)品計劃,方案設(shè)計,詳細設(shè)計}、學(xué)科{結(jié)構(gòu),仿真}、密級{普通,秘密,機密,絕密},其中密級的偏序關(guān)系為:普通<秘密<機密<絕密。訪問控制系統(tǒng)中采用的主體組織屬性包括:單位{中心單位及所有協(xié)作單位}、部門{所有部門}。不同用戶在同一時間登錄平臺,能夠訪問的數(shù)據(jù)不同;數(shù)據(jù)對象的公共屬性隨著項目進展發(fā)生變化,用戶在不同時期登錄平臺,能夠訪問的數(shù)據(jù)不同。
中心單位分別設(shè)置了全局權(quán)限,以約束兩個協(xié)作單位A、B的局部權(quán)限配置,如表1所示。協(xié)作單位A的部門a對其角色高級工程師和工程師的權(quán)限配置,以及協(xié)作單位B的部門b對其角色工程師的權(quán)限配置如表2所示。
表1 全局權(quán)限設(shè)置
表2 協(xié)作單位的局部權(quán)限
由于角色的主體組織屬性不同,部門a和部門b的工程師角色不會沖突。確定角色的實際權(quán)限時,角色在全局權(quán)限和局部權(quán)限定義信息中的“主體組織屬性”必須匹配,本例中角色的“單位”屬性要匹配。
部門a的角色權(quán)限配置沒有超出中心單位的全局權(quán)限配置,因此角色高級工程師、工程師的實際權(quán)限與表2中的局部權(quán)限相同。部門b的工程師角色被授予超出上限的權(quán)限(讀秘密級數(shù)據(jù)),但實際權(quán)限中不包含該權(quán)限。部門b的工程師角色雖然不能訪問當(dāng)前秘密級的數(shù)據(jù),但當(dāng)秘密級別的數(shù)據(jù)到達保密期限后密級降為普通級,則部門b的工程師角色即可訪問原來無權(quán)訪問的數(shù)據(jù)。
與訪問請求中包含的Web上下文屬性不同,客體公共屬性是訪問內(nèi)容的屬性,該屬性難以在訪問請求中獲得,需要根據(jù)訪問客體的標(biāo)示符從數(shù)據(jù)存儲區(qū)獲得,直接采用這種方式執(zhí)行權(quán)限檢查會大幅增加訪問控制的時間成本。另外,由于存在大量角色,如果針對每種角色的訪問權(quán)限進行代碼實現(xiàn),則會出現(xiàn)大量冗余代碼,降低系統(tǒng)的模塊化水平,提高系統(tǒng)升級和維護的成本。
協(xié)同設(shè)計仿真平臺采用關(guān)系數(shù)據(jù)庫作為數(shù)據(jù)存儲工具,利用查詢修改方法[14]可解耦訪問控制部分與業(yè)務(wù)部分,使系統(tǒng)實現(xiàn)良好的模塊化。查詢修改方法是指對用戶發(fā)送的關(guān)系數(shù)據(jù)庫查詢語句(SQL)進行用戶透明的修改,以反映系統(tǒng)對數(shù)據(jù)庫查詢的特殊要求。例如,對于齒輪數(shù)據(jù)的瀏覽功能,業(yè)務(wù)部分需要查詢數(shù)據(jù)庫表t_gears,提交的SQL語句可統(tǒng)一為:
Q0:SELECT * FROM t_gears。如果當(dāng)前用戶激活角色的實際權(quán)限為:其中:客體公共屬性為階段(phase)、學(xué)科(domain)和密級(secret),操作類型為read,則經(jīng)過查詢修改的SQL語句為:
Q1:SELECT * FROM t_gears WHERE(phase=”詳細設(shè)計”)AND(domain=”結(jié)構(gòu)”O(jiān)R domain=”仿真”)AND(secret=“秘密”)。
數(shù)據(jù)庫的返回結(jié)果中只包含用戶權(quán)限范圍內(nèi)的數(shù)據(jù)。
協(xié)同設(shè)計仿真平臺中訪問控制的實施邏輯如圖4所示,實現(xiàn)了平臺的模塊化。圖5為協(xié)同設(shè)計仿真平臺中某協(xié)作單位進行角色權(quán)限配置的視圖,圖中的單位和部門是角色的組織屬性,而階段、學(xué)科和密級等是客體公共屬性。
本文針對協(xié)同開發(fā)環(huán)境提出了基于角色和屬性的訪問控制模型,通過引入客體公共屬性和主體組織屬性,增強了標(biāo)準(zhǔn)RBAC模型的表達力,能夠滿足協(xié)同開發(fā)環(huán)境在訪問控制方面的以下要求:①協(xié)同開發(fā)環(huán)境中數(shù)據(jù)類型動態(tài)變化條件下的靈活授權(quán);②保證協(xié)同開發(fā)環(huán)境中分布式授權(quán)的安全性;③在以關(guān)系數(shù)據(jù)庫作為存儲工具的協(xié)同開發(fā)環(huán)境中,采用查詢修改方法解耦訪問控制與業(yè)務(wù)系統(tǒng),有利于系統(tǒng)的模塊化實現(xiàn)。但是由于該模型的應(yīng)用時間較短,未來還需要廣泛調(diào)研和深入分析協(xié)同開發(fā)環(huán)境的需求與特點,以適應(yīng)協(xié)同開發(fā)環(huán)境不斷發(fā)展的需求;還需要對擴展模型中的概念進一步抽象,使模型能夠適用于其他使用環(huán)境。
[1] SANDHU R S,COYNE E J,F(xiàn)EITEIN H L,et al.Rolebased access control models[J].IEEE Computer,1996,29(2):38-47.
[2] American National Standards Institute.International committee for information technology standards(INCITS)[Z].Rolebased access control.ANSI INCITS Standard 359-2004,New York,N.Y.,USA:American National Standards Institute Inc.,2004.
[3] FUCHS L,PERNUL G,SANDHU R S.Roles in information security-a survey and classification of the research area[J].Computer & Security,2011,DOI:10.1016/j.cose.2011.08.002.
[4] MATTAS A,MAVRIDIS I,ILIOUDIS C,et al.Dynamic access control administration for collaborative applications[C]//Proceedings of the 10th WSEAS International Conference.Athens,Greece,2006:355-360.
[5] MAVRIDIS I,MATTAS A,PAGKALOS I,et al.Supporting dynamic administration of RBAC in Web-based collaborative applications during run-time[J].Information and Computer Security,2009,2(4):328-352.
[6] CRUZ I F,GJOMEMO R,JARZAB G.An interoperation framework for secure collaboration among organizations[C]//Proceedings of the 3rd ACM SIGSPATIAL International Workshop.San Jose,Cal.,USA:ACM,2010:4-11.
[7] LI Tao,ZHONG Shisheng,LIN Lin.Authorization control in product data management system[J].Computer Integrated Manufacturing Systems,2006,12(7):1074-1079(in Chinese).[李 濤,鐘詩勝,林 琳.產(chǎn)品數(shù)據(jù)管理系統(tǒng)中權(quán)限控制的研究與實現(xiàn)[J].計算機集成制造系統(tǒng),2006,12(7):1074-1079.]
[8] LONG Qin,LIU Peng,PAN Aimin.Research and implementation of an extended administrative role-based access control model[J].Journal of Computer Research and Development,2005,42(5):868-876(in Chinese).[龍 勤,劉 鵬,潘愛民.基于角色的擴展可管理訪問控制模型研究與實現(xiàn)[J].計算機研究與發(fā)展,2005,42(5):868-876.]
[9] LI N H,BYUN J W,BERTINO E.A critique of the ANSI standard on role based access control[J].IEEE Security &Privacy,2007,5(6):41-49.
[10] FERRAIOLO D,KUHN R,SANDHU R S.RBAC standard rational:comments on"a critique of the ANSI standard on role based access control"[J].IEEE Security & Privacy,2007,5(6):51-53.
[11] KUHN D R,COYNE E J,WEIL T R.Adding attributes to role-based access control[J].IEEE Computer,2010,43(6):79-81.
[12] JIN X,SANDHU R,KRISHMAN R.RABAC:role-centric attribute-based access control[C]//Proceedings of Computer Network Security:6th International Conference on Mathematical Methods,Models and Architechtures for Computer Network Security.Berlin,Germany:Springer-Verlag,2012:84-96.
[13] HARRISON M A,RUZZO W L,ULLMAN J D.Protection in Operating Systems[J].Communications of the ACM,1976,19(8):461-471.
[14] STONEBRAKER M,WONG E.Access control in a relational database management system by query modification[C]//Proceedings of the 1974Annual Conference.New York,N.Y.,USA:ACM,1974:180-186.