傅豐,洪源
(1.黃淮學(xué)院計算機(jī)科學(xué)系,河南駐馬店463000;2.河南科技學(xué)院,河南新鄉(xiāng)453003)
網(wǎng)絡(luò)的互聯(lián)帶來了政務(wù)信息資源的共享,同時也帶來了更多的信息安全隱患.電子政務(wù)的支撐數(shù)據(jù)庫中存儲著大量的政府信息、企業(yè)信息和個人信息,經(jīng)常會涉及國家機(jī)密或國家安全,如何提高電子政務(wù)內(nèi)網(wǎng)的安全性和保護(hù)政務(wù)信息資源顯得尤為重要.但目前電子政務(wù)內(nèi)部網(wǎng)絡(luò)的數(shù)據(jù)管理本身不是很嚴(yán)謹(jǐn),核心的機(jī)密數(shù)據(jù)一般只采用簡單的授權(quán)口令保護(hù),不能適應(yīng)電子政務(wù)進(jìn)一步發(fā)展的需要.“2008年據(jù)美國FBI統(tǒng)計,83%的信息安全事故為內(nèi)部人員和內(nèi)外勾結(jié)所為,而且呈上升的趨勢.另據(jù)公安部最新統(tǒng)計,70%的泄密犯罪來自于內(nèi)部,電腦應(yīng)用單位80%未設(shè)立相應(yīng)的安全管理,58%無嚴(yán)格的調(diào)存管理制度”[1].訪問控制(Access Control)是通過某種途徑顯式地準(zhǔn)許或限制訪問能力及范圍的一種方法,其基本目標(biāo)是防止對任何資源進(jìn)行未授權(quán)的訪問,從而使計算機(jī)系統(tǒng)在合法范圍內(nèi)使用.因此,運(yùn)用訪問控制技術(shù)對內(nèi)部人員進(jìn)行安全管理,對其行為進(jìn)行監(jiān)控,防止其有意無意地對保密信息的瀏覽、竊取、串改和非法傳播,將對保障電子政務(wù)內(nèi)網(wǎng)數(shù)據(jù)存儲安全起到非常重要的作用.
在自主存取控制中,可以在每項資源對象上直接設(shè)置用戶的各種權(quán)限,也可以針對每個用戶組設(shè)定權(quán)限,每一個組對應(yīng)一定的崗位、職位、職責(zé),而把用戶置于一個或多個組中,實現(xiàn)權(quán)限管理.其缺點是一旦組織內(nèi)的人員發(fā)生離職、升職、換崗等人事變動或者職能發(fā)生變化,都要對每項資源重新設(shè)置用戶許可的諸多細(xì)節(jié).當(dāng)資源對象數(shù)目龐大、組織機(jī)構(gòu)復(fù)雜、變動頻繁時,授權(quán)管理需要花費(fèi)很大的人力,且容易出錯;DAC將賦予或取消訪問權(quán)限的一部分權(quán)力留給用戶個人,不利于實現(xiàn)統(tǒng)一的全局訪問控制,也無法實現(xiàn)動態(tài)的和復(fù)雜的安全政策.另外,DAC能夠控制主體對客體的直接訪問,但不能控制主體對客體的間接訪問(利用訪問的傳遞性,即A可訪問B,B可訪問C,于是A可訪問C),這也帶來了嚴(yán)重的安全問題[2].
在強(qiáng)制訪問控制中,對系統(tǒng)中的用戶和文件分成密級進(jìn)行標(biāo)識,對于任意一個對象,只有具有合法許可證的用戶才可以存取,用戶只能讀取比其密級低的文件,從而達(dá)到防止非授權(quán)用戶越權(quán)讀和修改文件的目的.強(qiáng)制訪問控制相對比較嚴(yán)格,避免了自主訪問控制中出現(xiàn)的訪問傳遞問題.其缺點在于主體訪問級別和客體安全級別的劃分不夠細(xì)致且與現(xiàn)實要求無法一致,在同級別間缺乏控制機(jī)制.另外MAC由于過于偏重保密性,對其他方面如系統(tǒng)連續(xù)工作能力、授權(quán)的可管理性等考慮不足[2].
由于DAC和MAC安全性的缺陷及其基于用戶的機(jī)制造成的添加用戶和功能時操作的復(fù)雜性,在安全訪問控制中,可選擇RBAC訪問控制技術(shù).RBAC在用戶和訪問許可權(quán)之間引入角色的概念,用戶與特定的一個或多個角色相聯(lián)系,角色與一個或多個訪問許可權(quán)相聯(lián)系,角色可以根據(jù)實際的需要生成或取消,用戶可根據(jù)自己的需要動態(tài)地激活自己擁有的角色,避免無意中危害系統(tǒng)安全.通過應(yīng)用RBAC將安全性放在一個接近組織結(jié)構(gòu)的自然層面上進(jìn)行管理,可有效地克服傳統(tǒng)訪問控制技術(shù)中存在的不足之處,靈活地解決權(quán)限管理、資源管理及權(quán)限審查問題,減少授權(quán)管理的復(fù)雜性,降低管理開銷,滿足政務(wù)協(xié)同管理的需要,提高政務(wù)系統(tǒng)靈活應(yīng)變的能力.
標(biāo)準(zhǔn)RBAC由4個部件模型組成,分別是角色基本模型RBAC0、角色層次模型RBAC1、角色約束模型RBAC2和角色層次約束模型RBAC3[3-4].
定義:RBAC0模型主要由四個基本要素構(gòu)成,即用戶(U),角色(R)、會話(S)和權(quán)限(P).
UA=U×R,UA是用戶到角色的多對多關(guān)系;
PA=P×R,PA是權(quán)限到角色的多對多關(guān)系;
Users:R→2U是來源于UA的函數(shù),它將每一個角色映射到用戶集中.這里Users(r)={U,(U,r),UA};
Permissions:R→2P是來源于PA的函數(shù),它將每一個角色映射到權(quán)限集中,這里Permissions(r)={P,(P,r),PA};
roles(Si):{r,(user(Si),r),UA};
試驗表明,當(dāng)樣本數(shù)500較低時,CNN-2C算法相對于CNN-3C和CNN-4C算法準(zhǔn)確率較高,但是樣本數(shù)達(dá)到750之后,CNN-3C算法準(zhǔn)確率逐步提高,試驗結(jié)果顯示CNN-3C算法的確能夠提供比CNN-2C、CNN-4C網(wǎng)絡(luò)更好的性能。
其中,user:S→U,是將各個會話Si映射到一個用戶去的函數(shù)user(Si);
roles:S→2R,是將各個會話Si與一個角色集合連接起來的映射,可隨時間變化而變化,且會話Si的授權(quán)Ur:roles(Si)={P,(P,r),PA}.RBAC0模型見圖1所示.
圖1 RBAC0模型
在RBAC0中每個角色至少具備一個授權(quán),而每個用戶至少扮演一個角色.“用戶—角色”和“角色—權(quán)限”都是“多對多”的關(guān)系.每個用戶可以擁有多個角色且一個角色可以分配給多個用戶;每個角色可以被賦予若千個權(quán)限,某個權(quán)限也可以賦予給多個角色.
在一般的單位或組織中,特權(quán)或職權(quán)通常具有線性關(guān)系,因此在RBAC0中引進(jìn)一定的層次結(jié)構(gòu)用于反映這一實際是自然的.如在多級安全控制系統(tǒng)內(nèi),存取類的保密級別呈線性遞增,公開<秘密<機(jī)密<絕密.
其中安全策略的一個要求就是:要想合法地獲得信息,提出存取請求用戶的存取類級別要大于信息的存取類級別.RBAC1模型見圖2所示,RBAC1中支持的層次關(guān)系可以容易地實現(xiàn)多級安全系統(tǒng)所要求的保密級別的線性排列要求.RBAC1在RBAC0基礎(chǔ)上引入的角色層次結(jié)構(gòu),從數(shù)學(xué)的角度來講,其實是一種偏序關(guān)系,直觀上則體現(xiàn)為一種角色間的權(quán)限繼承關(guān)系,即高級角色繼承低級角色的權(quán)限.不過有時低級角色的某些權(quán)限拒絕被高級角色繼承,這時就需要把低級角色的這些不能被繼承的權(quán)限分離出去,而后形成一新的角色.此時高級角色繼承新角色的權(quán)限,同時還被賦予新的權(quán)限.
圖2 RBAC1模型
定義:RBAC1模型的組成同樣包括以下幾個部分:
U(用戶)、R(角色)、P(權(quán)限)以及 S(會話);
UA=U×R,UA是用戶到角色的多對多關(guān)系;
RH=R×R,RH是角色上的一個偏序關(guān)系,稱之為角色層次關(guān)系或等級關(guān)系,一般記作“≥”.
Users:R→2U是來源于UA的函數(shù),它將每一個角色映射到用戶集中.這里
Users(r)={U,(U,r),UA};
Permissions:R→2P是來源于PA的函數(shù),它將每一個角色映射到權(quán)限集中.這里:Permissions(r)={P,(P,r),PA};
roles(Si)={r,(r1≥r)[(user(Si),r),UA]}其中,user:S→U,將各個會話Si映射到一個用戶集的函數(shù)user(Si);
roles:S→2R,將各個會話Si與一個角色集合連接起來的映射,可隨時間變化而變化,且會話Si的授權(quán)U r=roles(Si){p,(rl≥r)[(p,r),PA]}.
在絕大多數(shù)組織中,除了角色的層次結(jié)構(gòu)外,經(jīng)常要考慮的問題就是角色的約束機(jī)制.如一個公司的采購員和出納員雖然都不算是高層人員,但任何一個公司都決不會允許同時將這兩個角色分配給一個職員.原因很顯然,因為這種工作安排很可能導(dǎo)致欺詐行為的發(fā)生.所以RBAC0的另一個增強(qiáng)方向就是RBAC2,即角色約束模型.在RBAC2中,最常用的約束關(guān)系就是互斥角色關(guān)系.如果兩個不同的角色分配給同一用戶會造成非法的用戶操作,則稱這兩個角色靜態(tài)互斥;如果同時激活某用戶的兩個不同的角色時會造成非法的用戶操作,則稱這兩個角色動態(tài)互斥.在一個具體的系統(tǒng)中,不論是否具備層次角色的機(jī)制,約束機(jī)制都是很重要的.特別是對于一些大的系統(tǒng)來說,更是如此.因為系統(tǒng)管理人員通過規(guī)定約束條件就可以指導(dǎo)和控制下級的系統(tǒng)管理員的操作,不致發(fā)生失誤或越軌.實際上,通過約束機(jī)制,RBAC就可實現(xiàn)強(qiáng)制訪問控制MAC,而且包括了對RBAC自身的管理和控制.在RBAC中,除互斥角色關(guān)系外,還有基數(shù)約束關(guān)系和必備角色約束關(guān)系等.角色約束模型RBAC2的定義如下:
RBAC2包含了RBAC0所有基本特性,除此而外還增加了對RBAC0的所有元素的核查過程,只有擁有有效值的元素才可以被接受.
RBAC2中的約束條件(Constraints)指向UA,PA和會話中的user,role等函數(shù).一般說來,最好是根據(jù)其實際的類型和屬性加以描述.這樣就要考慮語言等環(huán)境,所以較難從給約束模型下一個嚴(yán)格的形式定義.在實際的系統(tǒng)應(yīng)用中,約束條件和實現(xiàn)的方式各有不同,應(yīng)采取盡可能簡單和盡可能高效的約束條件,作為RBAC系統(tǒng)的約束機(jī)制.
RBAC3模型實際上是對RBAC1和RBAC2的一個綜合.在該模型中主要包括以下幾部分:各實體對象、兩種分配關(guān)系、角色層次結(jié)構(gòu)以及作用于各部分之上的約束關(guān)系.其模型見圖3.
圖3 RBAC3模型
RBAC在電子政務(wù)內(nèi)網(wǎng)安全管理應(yīng)用中,主要通過訪問權(quán)限身份驗證、權(quán)限管理控制模塊設(shè)計與權(quán)限校驗等實現(xiàn)的,該方法在實際安全管理中得到了驗證,降低了系統(tǒng)訪問控制的復(fù)雜度,提高了系統(tǒng)的可維護(hù)性[5-6].
RBAC訪問權(quán)限身份驗證流程如圖4所示.用戶訪問系統(tǒng)時,首先進(jìn)行身份驗證,然后對通過驗證的用戶進(jìn)行訪問權(quán)限的驗證,對于驗證成功的顯示正確結(jié)果.用戶登錄時調(diào)用權(quán)限管理系統(tǒng)的用戶鑒別服務(wù),如果驗證成功,調(diào)用權(quán)限計算服務(wù),并返回權(quán)限關(guān)系表.如以J2EE為例,當(dāng)用戶通過瀏覽器向服務(wù)器發(fā)出URL資源請求時,Web容器收集用戶相關(guān)的鑒權(quán)信息(如用戶名和口令),并通過系統(tǒng)相關(guān)的信息安全服務(wù)進(jìn)行識別和判定.在實現(xiàn)時,設(shè)計了一個基類Action,取名為BaseAction,在該Action中封裝權(quán)限審查邏輯,系統(tǒng)中所有需要進(jìn)行權(quán)限審查的Action,都可以從該類繼承.這樣,就可以實現(xiàn)權(quán)限審查邏輯的集中管理,便于系統(tǒng)的維護(hù).
圖4 RBAC訪問權(quán)限驗證流程
權(quán)限控制模塊的設(shè)計包括權(quán)限列表結(jié)構(gòu)設(shè)計、權(quán)限管理機(jī)制設(shè)計兩部分.RBAC中,權(quán)限表示的是對某種客體資源的某種操作許可,由操作和操作所針對的資源或資源集構(gòu)成.當(dāng)用戶要對一個需安全訪問控制的對象操作時,首先需要結(jié)合管理的實際情況和政務(wù)信息系統(tǒng)的特點,按照一定的編碼規(guī)則對資源和資源集操作進(jìn)行定義,確定不同角色對這些資源對象訪問的操作模式,并體現(xiàn)在權(quán)限列表設(shè)計中.權(quán)限列表主要是為用戶擁有角色、角色擁有權(quán)限驗證提供相關(guān)信息.權(quán)限列表存儲了權(quán)限驗證基礎(chǔ)信息(具體的表結(jié)構(gòu)略),如用戶信息、角色信息以及用戶/角色的相應(yīng)授權(quán)信息等,包含的數(shù)據(jù)實體有用戶、用戶組、權(quán)限組(角色)、權(quán)限和系統(tǒng)頁面組;數(shù)據(jù)實體間的關(guān)聯(lián)包含用戶—用戶組關(guān)聯(lián)、權(quán)限—權(quán)限組(角色)關(guān)聯(lián)、權(quán)限—頁面關(guān)聯(lián)和用戶組—權(quán)限組(角色)關(guān)聯(lián)等.在實際應(yīng)用中,采用不將URL資源及對應(yīng)權(quán)限關(guān)系存放于權(quán)限列表的方式,減少了權(quán)限審查時對權(quán)限列表的訪問次數(shù).
權(quán)限管理機(jī)制設(shè)計主要包括角色管理模塊和部門、用戶管理模塊,角色管理模塊主要實現(xiàn)角色的配置和管理.用戶管理模塊除了實現(xiàn)基本的用戶增加、刪除、修改功能外,還實現(xiàn)了向用戶分配角色的功能.
權(quán)限校驗是實現(xiàn)信息資源訪問控制模式的主要部分,其基本過程是對于某一具體資源,查找用戶權(quán)限分配表,判別當(dāng)前用戶是否具有相應(yīng)的操作權(quán)限.權(quán)限校驗主要包括三個方面的內(nèi)容:一是Web服務(wù)器上的頁面資源訪問控制;二是系統(tǒng)菜單、按鈕顯示的訪問控制;三是政務(wù)信息資源數(shù)據(jù)庫中記錄級的授權(quán)訪問控制.對于頁面資源、系統(tǒng)菜單、按鈕顯示、編輯框等對象的控制,采用的技術(shù)是在Web服務(wù)器提出頁面資源請求時或在生成菜單、按鈕的網(wǎng)頁時做權(quán)限級的判斷,當(dāng)用戶不具備權(quán)限時,則要求進(jìn)行身份驗證.對于數(shù)據(jù)庫中記錄級的授權(quán)訪問控制,如一個部門只能被另一個部門查詢而無法修改、部門內(nèi)不同角色數(shù)據(jù)操作不同等,則需要根據(jù)業(yè)務(wù)邏輯規(guī)則進(jìn)行確定.
內(nèi)網(wǎng)安全是電子政務(wù)網(wǎng)絡(luò)安全建設(shè)中容易忽略但卻又十分重要的課題,當(dāng)前我國已經(jīng)進(jìn)入了電子政務(wù)發(fā)展的關(guān)鍵期,面對規(guī)模日益擴(kuò)大的電子政務(wù)信息管理系統(tǒng),授權(quán)訪問控制信息等安全策略的重要性引起了更多的重視.運(yùn)用RBAC技術(shù)對內(nèi)網(wǎng)進(jìn)行訪問控制能夠減少授權(quán)管理的復(fù)雜性,促進(jìn)政務(wù)信息資源安全管理機(jī)制的建設(shè),保障政務(wù)信息安全合理的利用.基于RBAC訪問控制模型及相關(guān)擴(kuò)展模型必將在政務(wù)信息資源安全建設(shè)方面起到越來越重要的作用.
[1]王文文.從國內(nèi)兩大通信巨頭“間諜戰(zhàn)”來看企業(yè)內(nèi)網(wǎng)安全管理需求[EB/OL].(2010-01-07)[2011-02-12].http://netsecurity.51cto.com/art/201001/176293.htm.
[2]向陽,魏玉鵬,王改梅.數(shù)據(jù)庫訪問控制技術(shù)研究[J].河南科技學(xué)院學(xué)報:自然科學(xué)版,2006,34(2):101-104.
[3]Sandhu R,Munawer Q.“HowTo Do Discretionary Access Control Using Roles,”Proc.of the 3rd ACMWorkshop on Role-Based Access Control(RBAC-98)[M].Fairfax,VA:ACMPress,1998.
[4]Nyanchama M,Osbon SL.Information FlowAnalysis in Role-Based Systems[C].Journal ofComputingand Information,1994,l(1),Special Issue:Proc.ofthe 6th International Conference on Computingand Information(ICCI),Peterborough,Ontario,Canada.
[5]葉春曉,符云清,吳中福.RBAC中權(quán)限擴(kuò)展的實現(xiàn)[J].計算機(jī)工程,2005,31(5):141-172.
[6]林琳,詹永照,年軼.基于組織機(jī)構(gòu)圖的改進(jìn)RBAC模型[J].江蘇大學(xué)學(xué)報:自然科學(xué)版,2006(2):147-150.