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