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