摘要:通過對(duì)訪問控制技術(shù)的分析,將基于角色的訪問控制機(jī)制引入高校OA系統(tǒng)設(shè)計(jì),大大降低了OA系統(tǒng)安全管理的復(fù)雜度,提高了OA系統(tǒng)權(quán)限分配的安全性和靈活度。
關(guān)鍵詞:RBAC;訪問控制;信息系統(tǒng)安全;OA系統(tǒng)
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)36-10585-02
Research on the Access Control of Academic OA System Base on RBAC
ZENG Guang-qing
(Information Technology Department,F(xiàn)ujian College of Financial Technology, Fuzhou 350007, China)
Abstract: Through analyzing the access control technology, the role-based access control mechanism in academic OA system was designed, and the complexity of safety management of OA system was greatly reduced,and the security and the flexibility of jurisdiction assignment of OA system was improved.
Key words: RBAC; access control; information system security; OA system
近幾年來,隨著我國(guó)高等教育的快速發(fā)展,辦公自動(dòng)化(OA)系統(tǒng)在高校的應(yīng)用日益普及,其安全性問題也成為該領(lǐng)域研究的熱點(diǎn)課題。訪問控制是OA系統(tǒng)安全性的核心,它通過對(duì)關(guān)鍵資源的訪問權(quán)限進(jìn)行限制,只允許擁有適當(dāng)權(quán)限的用戶才能創(chuàng)建、修改和刪除特定的數(shù)據(jù)庫對(duì)象及能夠訪問的數(shù)據(jù),防止非法用戶進(jìn)入系統(tǒng)或合法用戶對(duì)系統(tǒng)資源的非法使用,保障系統(tǒng)的安全性。
1 傳統(tǒng)的訪問控制技術(shù)缺陷
作為一種針對(duì)越權(quán)使用資源的重要防御措施,訪問控制一般分為兩種,一種是直接給用戶授予權(quán)限;另一種是先將權(quán)限授予角色,再將角色分配給用戶。傳統(tǒng)的訪問控制技術(shù)屬于第一種,它又進(jìn)一步分為自主訪問控制(Discretionary Access Control,DAC)和強(qiáng)制訪問控制(Mandatory Access Control,MAC)。其中DAC由管理員設(shè)置訪問控制表,規(guī)定用戶操作的權(quán)限;而MAC是先對(duì)系統(tǒng)內(nèi)的用戶和數(shù)據(jù)對(duì)象分別授予安全級(jí)別,再根據(jù)用戶、數(shù)據(jù)對(duì)象之間的安全級(jí)別關(guān)系來限定用戶的操作權(quán)限。
DAC和MAC這兩種安全策略雖然可以在一定程度上解決系統(tǒng)的安全問題,但是,由于傳統(tǒng)的訪問控制技術(shù)把用戶和訪問權(quán)限直接關(guān)聯(lián)起來,一旦發(fā)生人事及職務(wù)變動(dòng)或權(quán)力重新分配,就要逐一從頭設(shè)置用戶的權(quán)限,這就大大增加了管理員的重復(fù)工作。而且,隨著OA系統(tǒng)中用戶可訪問的資源結(jié)構(gòu)越來越復(fù)雜,規(guī)模日益擴(kuò)大,合法用戶的量也會(huì)越來越龐大,使用這兩種訪問控制形式會(huì)使系統(tǒng)的安全管理變得很復(fù)雜,大大增加了管理難度。
由于角色、權(quán)限之間的變化比角色、用戶關(guān)系之間的變化相對(duì)要慢得多,引入基于角色的訪問控制機(jī)制可以大大減小授權(quán)管理的復(fù)雜性,降低管理開銷。
2 RBAC模型
基于角色的訪問控制(Role-based Access Control,RBAC),因其具有較高的可擴(kuò)展性和靈活性,是目前公認(rèn)的解決統(tǒng)一資源訪問控制的有效方法,在分布式系統(tǒng)、數(shù)據(jù)庫系統(tǒng)及各種操作系統(tǒng)中都得到廣泛的應(yīng)用,它可以有效地彌補(bǔ)傳統(tǒng)訪問控制技術(shù)的不足,減少系統(tǒng)安全管理的復(fù)雜度,降低管理的難度,為管理員提供了更加友好的安全策略管理環(huán)境。
RBAC最早由美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)的David Ferraiolo和Rick Kuhn在1992年提出。它的基本思想是:在軟件系統(tǒng)中定義各種角色,給不同角色分配訪問系統(tǒng)資源的權(quán)限,當(dāng)用戶要訪問某一類資源時(shí),要給該用戶授權(quán)具有可訪問此資源的相應(yīng)角色,用戶與資源之間不建立直接關(guān)系,而是通過角色建立間接聯(lián)系。角色與用戶之間是多對(duì)多的對(duì)應(yīng)關(guān)系,一個(gè)用戶經(jīng)管理員授權(quán)而擁有多個(gè)角色,相應(yīng)地同一角色也可以授權(quán)給多個(gè)用戶。
1996年R.S.Sandhu等人正式提出了RBAC96參考模型(如圖1所示),它對(duì)RBAC進(jìn)一步的深入研究奠定了基礎(chǔ)。這個(gè)模型由基本模型RBAC0(Core RBAC)、角色分級(jí)模型RBAC1(Hierarchal RBAC)、角色限制模型RBAC2(Constraint RBAC)和統(tǒng)一模型RBAC3(Combines RBAC)四個(gè)子模型構(gòu)成。
RBAC0定義了能構(gòu)成一個(gè)RBAC控制系統(tǒng)最小的元素集合。在RBAC之中,包含用戶、角色、目標(biāo)、操作、許可權(quán)五個(gè)基本數(shù)據(jù)元素,權(quán)限被賦予角色,而不是用戶,當(dāng)一個(gè)角色被指定給一個(gè)用戶時(shí),此用戶就擁有該角色所包含的操作權(quán)限。會(huì)話是用戶與激活的角色集合之間的映射。RBAC0與傳統(tǒng)訪問控制的差別在于,通過增加一層間接性,帶來了靈活性,RBAC1、RBAC2、RBAC3都是在RBAC0上的擴(kuò)展。
RBAC1引入角色間的繼承關(guān)系。角色間的繼承關(guān)系可分為一般繼承關(guān)系和受限繼承關(guān)系。一般繼承關(guān)系只要求角色繼承關(guān)系是一個(gè)絕對(duì)偏序關(guān)系,允許角色間的多繼承,而受限繼承關(guān)系則進(jìn)一步要求角色繼承關(guān)系是一個(gè)樹結(jié)構(gòu)。
RBAC2模型中添加了責(zé)任分離關(guān)系。RBAC2的約束規(guī)定了當(dāng)權(quán)限被賦予角色時(shí),或角色被賦予用戶時(shí),以及當(dāng)用戶在某一時(shí)刻激活一個(gè)角色時(shí),所應(yīng)遵循的強(qiáng)制性規(guī)則。責(zé)任分離包括靜態(tài)責(zé)任分離和動(dòng)態(tài)責(zé)任分離。約束與用戶、角色、權(quán)限三者之間關(guān)系共同決定了RBAC2模型中用戶的訪問許可。
RBAC3包含了RBAC1和RBAC2,既提供了角色間的繼承關(guān)系,又提供了責(zé)任分離關(guān)系。
最小特權(quán)原則是系統(tǒng)安全的原則之一,它用來限制用戶對(duì)系統(tǒng)及數(shù)據(jù)存取所需的最小權(quán)限,既保證用戶能完成所操作的任務(wù),同時(shí)也確保了非法用戶或異常操作所造成的最小損失。根據(jù)最小特權(quán)原則,用戶和許可為基本信息,部署在中央服務(wù)器上,進(jìn)行集中管理,這樣可以讓系統(tǒng)管理員根據(jù)各個(gè)業(yè)務(wù)系統(tǒng)的業(yè)務(wù)安全需求匯總情況,統(tǒng)一進(jìn)行許可管理,實(shí)現(xiàn)最小特權(quán)。
3 基于角色的訪問控制設(shè)計(jì)
3.1 系統(tǒng)模型設(shè)計(jì)
圖2給出了OA系統(tǒng)中基于角色的訪問控制系統(tǒng)模型。當(dāng)用戶訪問系統(tǒng)時(shí),首先要求輸入用戶名和口令進(jìn)行身份認(rèn)證,認(rèn)證通過后,再到RBAC數(shù)據(jù)庫中讀取其角色信息。當(dāng)這個(gè)用戶請(qǐng)求某個(gè)操作時(shí),首先驗(yàn)證該用戶擔(dān)任的角色是否具有操作權(quán)限,若有操作權(quán)限,可以授權(quán)對(duì)系統(tǒng)數(shù)據(jù)進(jìn)行操作。用戶賬號(hào)以及用戶的角色和相應(yīng)的權(quán)限由應(yīng)用系統(tǒng)的管理員通過RBAC管理系統(tǒng)輸入和分配,管理員對(duì)一個(gè)用戶進(jìn)行設(shè)置后,則該用戶的基本信息以及角色、授權(quán)信息就寫入RBAC數(shù)據(jù)庫。
3.2 數(shù)據(jù)庫設(shè)計(jì)
圖3為RBAC數(shù)據(jù)庫實(shí)體關(guān)系圖。為了實(shí)現(xiàn)基于角色的訪問控制,這里定義了五張表以實(shí)現(xiàn)用戶到角色、角色到權(quán)限的分配。其中用戶信息表記錄了用戶的基本信息、登陸的驗(yàn)證信息、所屬部門和用戶是否已經(jīng)被授權(quán)等;角色信息表用于存放系統(tǒng)中所有的角色;用戶角色信息表用于給用戶賦予角色,角色權(quán)限信息表用于指派每個(gè)角色的操作權(quán)限;用戶信息表用于給用戶進(jìn)行角色授權(quán)。
3.3 動(dòng)態(tài)授權(quán)和動(dòng)態(tài)約束設(shè)計(jì)
實(shí)現(xiàn)基于角色的訪問控制的關(guān)鍵是建立用戶、角色、權(quán)限這三者之間多對(duì)多的映射關(guān)系,由于這種映射關(guān)系具有可更改和可擴(kuò)充性,所以它能適應(yīng)動(dòng)態(tài)變化的應(yīng)用需求。雖然在用戶進(jìn)行訪問控制時(shí),其所擁有的權(quán)限具有相對(duì)的穩(wěn)定性,但在有的時(shí)候,可能出現(xiàn)人員不在崗,其工作需要授權(quán)他人處理等特殊情況,這時(shí)動(dòng)態(tài)授權(quán)機(jī)制可用來反映這一需求。具體的實(shí)現(xiàn)方法是:使用委托授權(quán)模板來實(shí)現(xiàn)動(dòng)態(tài)授權(quán)功能,增加委托用戶角色表(委托人姓名,被委托人姓名,角色集,開始時(shí)間,結(jié)束時(shí)間),通過委托授權(quán)模板(委托用戶名,被委托用戶名,角色)來修改委托用戶角色表,該表使用時(shí)間區(qū)間來限制動(dòng)態(tài)授權(quán)的權(quán)限的使用次數(shù)和有效期,同時(shí)委托人信息使這種委托不可以轉(zhuǎn)移,以防止權(quán)力濫用而帶來的安全隱患。
約束是基于角色的訪問控制中重要的安全策略,是對(duì)用戶執(zhí)行權(quán)限的一些限制,分為靜態(tài)約束和動(dòng)態(tài)約束。某個(gè)用戶在系統(tǒng)中可能同時(shí)擁有多個(gè)角色,但是在某一個(gè)工作過程中,要求當(dāng)他充當(dāng)其中一個(gè)角色的同時(shí)不能激活其另一個(gè)角色。在系統(tǒng)執(zhí)行過程中,通過記錄歷史可以實(shí)現(xiàn)這種動(dòng)態(tài)約束。
4 結(jié)束語
在高校OA系統(tǒng)應(yīng)用中,系統(tǒng)的安全性至關(guān)重要。基于角色的訪問控制機(jī)制將用戶與訪問權(quán)限的邏輯分離,可以大大地提高系統(tǒng)的安全性和可靠性,動(dòng)態(tài)授權(quán)和動(dòng)態(tài)約束機(jī)制又保證了系統(tǒng)的靈活性。
參考文獻(xiàn):
[1] 張曉燕,張素偉.基于RBAC的電子政務(wù)權(quán)限訪問控制模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(3):680-682.
[2] 揭安全,化志章,薛錦云,等.基于RBAC的高校辦公自動(dòng)化系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(10):2800-2805.
[3] 趙榮山,洪帆.辦公自動(dòng)化系統(tǒng)中基于角色的訪問控制機(jī)制[J].通信技術(shù),2002(9):89-91.