基于OA系統(tǒng)中基于角色的安全訪問控制設(shè)計
摘要:隨著電子政務(wù)的快速發(fā)展和全面普及,辦公自動化(OA)系統(tǒng)的安全性顯得越來越重要。對基于Web 的B/S 結(jié)構(gòu)的OA 系統(tǒng)結(jié)構(gòu)和安全需求進行了分析,為了增強用戶身份鑒別和授權(quán)控制的安全性,分析了基于角色的安全訪問控制的核心思想和模型。在OA 系統(tǒng)中進行了基于角色的安全訪問控制設(shè)計,給出用戶、角色和權(quán)限的劃分,提出安全訪問控制流程。
1 引言
隨著計算機和Internet 的快速發(fā)展,OA 系統(tǒng),即辦公自動化系統(tǒng),已經(jīng)成為政府、企業(yè)和高校等單位辦公的得力助手,很多日常工作都必須使用OA 系統(tǒng)才能完成,因此,OA系統(tǒng)的安全問題顯得尤為重要。某些信息涉及到單位的機密,這些信息的訪問權(quán)限需要受到保護。另外,一些用戶越權(quán)訪問信息資源、篡改重要數(shù)據(jù)的事件時有發(fā)生,造成管理混亂。
針對這些情況,本文對OA 系統(tǒng)進行了基于角色的安全訪問控制設(shè)計。
2 OA 系統(tǒng)結(jié)構(gòu)
為了便于用戶的使用和維護,節(jié)約系統(tǒng)維護成本,目前OA系統(tǒng)應(yīng)用較廣泛的是基于Web的B/S(Browser/Server)結(jié)構(gòu),客戶端只需帶有瀏覽器軟件,能夠最大程度地實現(xiàn)資源共享,避免了資源的浪費。OA系統(tǒng)的B/S結(jié)構(gòu)是三層體系結(jié)構(gòu),即交互層、服務(wù)層和數(shù)據(jù)訪問層[1],如圖1所示:
圖1 B/S三層體系結(jié)構(gòu)圖
位于頂層的是交互層,負責(zé)邏輯表達,通過瀏覽器完成系統(tǒng)與用戶的交互。位于中間的是服務(wù)層,負責(zé)為上層的應(yīng)用提供相應(yīng)的服務(wù)平臺。位于底層的是數(shù)據(jù)訪問層,主要由數(shù)據(jù)庫服務(wù)器提供對整個OA 系統(tǒng)的功能支持,同時負責(zé)與數(shù)據(jù)庫管理系統(tǒng)進行交互,提供對專門數(shù)據(jù)資源的存儲、管理和維護等服務(wù)。
3 OA 系統(tǒng)安全需求
設(shè)計開發(fā)一個OA系統(tǒng)一般要考慮以下7個方面的安全需求[2][3]:
(1)身份鑒別。用戶和后臺服務(wù)器能夠相互確認身份的合法性和真實性。
(2)授權(quán)控制。根據(jù)鑒別的用戶真實身份確定對信息資源或應(yīng)用的訪問權(quán)限,不能隨意擴大訪問權(quán)限或越權(quán)訪問信息。
(3)防止信息泄漏。保證信息在通信傳輸中和存儲介質(zhì)中不被有意或無意地泄漏、丟失或竊取。
(4)完整性。確保敏感信息不被非授權(quán)用戶惡意或無意篡改。
(5)信息流安全。保證用戶與服務(wù)器之間的路由正確可靠。
(6)信源確認。確保不同信息來自正確的服務(wù)器。
(7)抗抵賴性。建立責(zé)任機制,確保任何用戶都不能否認其所進行的操作。
4 基于角色的安全訪問控制模型
一般OA系統(tǒng)應(yīng)采用Lotus Domino/Notes作為應(yīng)用系統(tǒng)開發(fā)平臺和應(yīng)用支撐平臺。LotusDomino/Notes提供多層次的方法以確保應(yīng)用的安全性,可以保護域、區(qū)段、表單、視圖、數(shù)據(jù)庫、服務(wù)器和網(wǎng)絡(luò)域的安全[4]。通過Lotus Domino/Notes不同層次模型的安全設(shè)置,能夠?qū)W(wǎng)絡(luò)信息存取權(quán)限進行有效的管理和控制,可以保障系統(tǒng)具有強大的安全性。盡管Lotus Domino/Notes系統(tǒng)本身擁有比較完善的安全機制,為了進一步提高系統(tǒng)的整體安全等級,還需補充另外的安全措施。身份鑒別和授權(quán)控制的安全是OA系統(tǒng)安全需求中非常重要的方面, 本文針對此安全需求, 采用基于角色的安全訪問控制技術(shù)RBAC(Role-Based Access Control)進行設(shè)計。
1. 訪問控制方式種類
對訪問控制方式,國內(nèi)外已經(jīng)進行了多年的研究。有三種訪問控制方式影響較大, 它們是:DAC(DiscretiONary Access Control)自主訪問控制,MAC(Mandatory Access Control)強制訪問控制和RBAC(Role-Based Access Control)基于角色的訪問控制[5]。
自主訪問控制DAC是指用戶可以自主地將訪問權(quán)限或者訪問權(quán)限的某個子集授予其他用戶,但很可能會因為權(quán)限的傳遞而出現(xiàn)失控,導(dǎo)致信息的泄漏。強制訪問控制MAC嚴格控制了用戶的權(quán)限,但是它的授權(quán)過程卻十分復(fù)雜,所以多用于軍事領(lǐng)域,其他方面很少使用。
基于角色的訪問控制RBAC是目前最為流行的訪問控制策略。它通過引入“角色”的概念,使得授權(quán)管理變得簡單。它比傳統(tǒng)的自主訪問控制和強制訪問控制更優(yōu)越, 同時也提供了更高的靈活性和可擴展性。
2. RBAC的核心思想與模型
管理用戶對資源的訪問和存取控制的傳統(tǒng)方法通常是直接給每個用戶一定的權(quán)限許可,但是隨著單位內(nèi)部人員發(fā)生離職、升職或離開崗位,管理員必須根據(jù)單位的人事變動對人員數(shù)據(jù)庫做相應(yīng)的調(diào)整,從而給數(shù)據(jù)庫管理帶來不便,系統(tǒng)開銷大,基于角色的訪問控制技術(shù)RBAC是解決此問題的合理選擇[6]。RBAC的核心思想就是將訪問權(quán)限與角色相聯(lián)系,通過給用戶分配合適的角色,使用戶與訪問權(quán)限相聯(lián)系。角色是根據(jù)各單位內(nèi)為完成各種不同的任務(wù)需要設(shè)置的,根據(jù)用戶在單位中的職責(zé)和責(zé)任來設(shè)定他們的角色。
關(guān)于RBAC模型,比較著名的是美國George Mason大學(xué)的R. Sandhu教授的RBAC96模型[7],本文也是基于此模型進行基于角色的安全訪問控制設(shè)計,基于角色的安全訪問控制模型圖如圖2所示:
圖2 基于角色的安全訪問控制模型圖
用戶是對數(shù)據(jù)對象操作的主體。角色是對應(yīng)于組織中的某一特定的職能崗位,代表了一個特定的任務(wù)范疇。角色作為中間橋梁將用戶和權(quán)限聯(lián)系起來。約束是附加于RBAC系統(tǒng)中各元素之上,用來表達許可執(zhí)行的條件。會話是一個動態(tài)概念,用戶激活角色及時建立會話。權(quán)限是用戶對系統(tǒng)中的對象進行某種特定模式訪問的操作許可。
3. Domino數(shù)據(jù)庫的存取控制列表
Domino數(shù)據(jù)庫有個存取控制列表ACL(Access Control List),它用來指定什么人可以以什么方式(例如創(chuàng)建、讀、寫、刪除等)對數(shù)據(jù)庫進行訪問,要控制Notes系統(tǒng)用戶的存取權(quán)限[4],就要在ACL中為用戶設(shè)定適當(dāng)?shù)拇嫒〖墑e、用戶類型等。
5 基于角色的安全訪問控制設(shè)計
在OA系統(tǒng)中,結(jié)合RBAC模型與Domino數(shù)據(jù)庫所提供的系統(tǒng)級的安全機制,可以直接地把辦公組織結(jié)構(gòu)映射到辦公自動化系統(tǒng)中,簡化權(quán)限的管理工作。安全管理人員根據(jù)需要指定各種角色,根據(jù)用戶的責(zé)任和職位再指派其為相應(yīng)的角色。整個訪問控制過程就是訪問權(quán)限與角色相關(guān)聯(lián),角色再與用戶關(guān)聯(lián),從而實現(xiàn)了用戶與訪問權(quán)限的邏輯分離。
1.用戶與角色的劃分
系統(tǒng)用戶分為三種:系統(tǒng)管理用戶、業(yè)務(wù)管理用戶和普通用戶。系統(tǒng)角色可以分為:維護整個系統(tǒng)的系統(tǒng)管理員、維護某個功能模塊的業(yè)務(wù)管理員、單位領(lǐng)導(dǎo)、各部門領(lǐng)導(dǎo)、負責(zé)收發(fā)文件部門的秘書與領(lǐng)導(dǎo)、單位員工等。
2.權(quán)限劃分
角色作為用戶與訪問權(quán)限之間的中介,給用戶賦予一定的角色,再把權(quán)限賦予角色,用戶通過角色獲取相應(yīng)的訪問操作權(quán)限。權(quán)限分為多種類型:如管理員對系統(tǒng)或功能模塊的使用權(quán)限,普通用戶對文檔數(shù)據(jù)的操作使用權(quán)限,這些權(quán)限屬于被動的權(quán)限控制策略。建立起用戶、角色和權(quán)限的關(guān)系表,能夠快速查找各個角色的用戶的相關(guān)權(quán)限或某個權(quán)限的用戶的集合。用戶、角色和權(quán)限對應(yīng)關(guān)系表如表1所示:
表1 用戶、角色和權(quán)限對應(yīng)關(guān)系表
另外,對權(quán)限還要實施動態(tài)的管理,即根據(jù)文檔的狀態(tài)和用戶角色動態(tài)地決定該角色的用戶所應(yīng)該進行的權(quán)限或?qū)?shù)據(jù)進行的操作。動態(tài)權(quán)限管理由權(quán)限規(guī)則來描述,如在發(fā)文數(shù)據(jù)庫中公文在起草狀態(tài)、審核狀態(tài)、批準狀態(tài)、簽發(fā)狀態(tài)和發(fā)文狀態(tài)中,秘書、部門負責(zé)人、辦公室主任等角色的用戶能對該對象進行什么樣的操作。一條權(quán)限規(guī)則由一個訪問者和一個權(quán)限向量組成,權(quán)限向量描述訪問者可以對數(shù)據(jù)對象進行哪些操作。多條權(quán)限規(guī)則共同構(gòu)成對權(quán)限的動態(tài)控制。
3.安全訪問控制流程
安全訪問控制的流程圖如圖3所示:
圖3 安全訪問控制流程圖
對此安全訪問控制流程描述如下:
(1)用戶要使用用戶名和密碼登錄OA系統(tǒng),認證服務(wù)器對用戶名和密碼進行驗證來確認用戶身份,驗證時要將用戶輸入的信息與數(shù)據(jù)庫中的用戶信息表相比較,如果相符,則允許用戶進入本系統(tǒng),否則將返回出錯信息。
(2)用戶登錄OA系統(tǒng)后,系統(tǒng)從用戶信息表中提取出用戶的ID號,查詢數(shù)據(jù)庫中的角色分配表激活角色,建立會話,角色分配表包含用戶ID和對應(yīng)的角色。
(3)激活角色,建立會話后,系統(tǒng)查詢權(quán)限規(guī)則表,為用戶分配權(quán)限,使用戶獲得目標文檔數(shù)據(jù)或取得相關(guān)操作權(quán)限。權(quán)限規(guī)則表是根據(jù)數(shù)據(jù)庫中文檔狀態(tài)和角色動態(tài)變化的。用戶操作完成后退出系統(tǒng)。基于角色的安全訪問控制設(shè)計實現(xiàn)了屬于不同角色的用戶在同一個OA系統(tǒng)中獲得不同的權(quán)限,即不同的角色顯示不同的功能模塊,有效避免了超越操作行為的發(fā)生,增強了OA系統(tǒng)身份鑒別和授權(quán)控制方面的安全性。
6 結(jié)束語
本文對適用于公司、企業(yè)和高校的OA系統(tǒng)進行了系統(tǒng)結(jié)構(gòu)分析和安全需求分析。為了增強用戶身份鑒別和授權(quán)控制的安全性,重點對OA系統(tǒng)進行了基于角色的安全訪問控制設(shè)計,使得不同的用戶有相應(yīng)的角色和權(quán)限,防止越權(quán)訪問。但是計算機和網(wǎng)絡(luò)的發(fā)展會對OA系統(tǒng)的安全性提出更高的要求,相應(yīng)的安全策略也需要不斷更新、不斷完善,從而增強OA系統(tǒng)的整體安全性。
本文創(chuàng)新點: 在 OA 系統(tǒng)中進行了基于角色的安全訪問控制設(shè)計,給出用戶、角色和權(quán)限的劃分,提出安全訪問控制流程,增強了OA 系統(tǒng)身份鑒別和授權(quán)控制方面的安全性。