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