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