楊永群++章翔凌++黃勤龍++肖志恒



摘 要:針對現有Web應用訪問控制的不足,在基于角色的訪問控制模型基礎上提出一種基于代理的Web應用安全管控方法。首先,根據用戶訪問控制的需求,以頁面為單位劃分Web應用的業務功能,構建角色-功能的訪問控制模型,實現用戶對Web應用功能的細粒度訪問控制;其次,對Web應用安全管控系統的整體架構及各功能模塊進行設計,通過代理的方式在Web應用前端部署管控系統,控制用戶對Web應用系統的所有訪問行為,阻止未授權用戶的Web應用訪問,并最大程度減少對現有Web應用系統的改動;最后,對系統進行了實現,結果表明系統能有效地實現電子政務等Web應用的安全管控。
關鍵詞:Web應用;應用代理;安全管控;訪問控制
Abstract: Aiming at the shortcomings of access control models in current web systems, a web application security control framework based on proxy is proposed on the basic of role-based access control. Firstly, according to the requirements of user access control, the business functions of web application are divided by page, and a role-function access control model is built, which achieves fine-grained access control of web application functions. Secondly, we design the architecture of a web application security control system and its functional module, in which the control proxy is deployed in the front-end of web application, and it makes the access behavior of user to the web application functions is under control and the unauthorized access to the web application is blocked. In this way, it can minimize the changes to existing web applications. Finally, we implement the designed system and the result shows that the system can achieve effective security control of electronic government and other web applications.
Key words: web application; application proxy; security control; access control
1 引言
從普通用戶的角度來看Web系統,其被看成一系列頁面的合集,這一系列頁面在向用戶提供其需要的數據的同時也向用戶提供了各類操作。Web頁面中的數據是通過網頁中HTML標簽展示給用戶,而頁面的操作指頁面向用戶提供的如新增、刪除、修改等各種交互行為。用戶在使用Web瀏覽器觀覽頁面時,頁面會通過顯式或隱式的方法告知用戶完成某工作或任務的操作步驟,因此,用戶對Web系統的操作皆通過對頁面的訪問來實現。在Web應用系統中,由于不同的Web系統涉及到不同的業務,而各種業務具有多樣性,所以Web頁面的組織形式也靈活多樣[1]。
訪問控制是保證Web應用系統完整性、機密性、可用性的一種主要技術手段,它通過限制對某些控制功能的使用來確保Web應用資源在合法的范圍內使用,保證用戶在授權范圍內訪問Web應用資源。隨著計算機和互聯網技術的發展,應用系統規模日益龐大,用戶數量和類型增多,屬性變化也更加頻繁,這對安全管理提出了更高的要求[2]。
傳統的安全控制策略由于其自身機制的不足,很難勝任如此龐大的安全服務,不能滿足日益復雜的Web應用對訪問控制的需求,帶來了安全工作負荷大,易出錯等種種問題。為了應對Web應用安全控制的新形勢,美國喬治梅森大學提出了RBAC模型,即基于角色的訪問控制模型,由于該模型可以較靈活的進行權限的授權和管理,且具有可擴展性,因此是現在最為廣泛接受的訪問控制模型。RBAC模型的核心是使用戶和具備某些權限的角色對應起來,將用戶映射到角色,根據用戶所在的角色進行間接的訪問控制。
這種方式通過引入角色中介,實現了用戶與訪問許可的邏輯分離,極大地方便了權限管理,現在已被廣泛的應用于各類應用系統。
2 相關工作
訪問控制技術在學術界一直占據重要地位,很多學者也致力于對訪問控制模型的研究。例如,怎么才能使訪問控制模型更好的引入日常生活的各類系統中。現今,在Web應用系統中采用較多的模型包括強制訪問控制模型、自主訪問控制模型、角色訪問控制模型和屬性訪問控制模型[3]。自主訪問控制模型中要求資源的擁有者可以自行決定資源的訪問權限,這不符合Web應用系統中的安全策略。強制訪問控制為用戶和資源進行層次性劃分,高級別權限的用戶可訪問低級別權限的資源,然而該模式的缺點在于對訪問級別的劃分不夠細致,難以實現細粒度訪問控制且在同級別之間缺乏控制機制,無法適應于復雜的Web應用系統環境[4]。endprint
基于屬性的訪問控制模型雖然能實現比較細粒度的訪問控制,但需要引入可信的屬性權威機構,在系統實際應用中還不成熟。基于角色的訪問控制模型將角色作為一種包含特定權限的信息定義并分配給用戶,以實現對系統資源的權限控制。目前學術界在基于角色的訪問控制模型基礎上還進行了各種研究擴展。
張帥等人提出了一種基于角色訪問控制模型的多域動態訪問授權模型[5],解決多企業多服務間跨域的訪問授權需求問題,但該方案未基于訪問控制模型進行系統實現;Li等人提出了一種權限驅動模型,用來解決角色映射時帶來的問題[6];張曉菲等人提出一種基于可信狀態的多級安全模型[7],為系統的安全性評估提供測算方法。針對分布式環境下的私有權限、分布式授權等安全需求,劉瓊波等人提出了一種描述判定授權請求和授權策略的方法[8]。針對團隊任務的協同辦公問題,Thomas提出了一種基于團隊的訪問控制模型[9]。李曉峰等人在基于角色的訪問控制中引入了屬性的概念,并構造了訪問控制模型[10],通過討論訪問請求、策略、屬性和判定過程之間的關系,給出了判定過程可終止的特定條件。但基于屬性的訪問控制在根據用戶行為動態調整用戶權限方面還存在不足。
根據Web應用系統的特點,本文基于角色的訪問控制模型RBAC,在該模型基礎上,提出一種基于代理的Web應用安全管控方法,并分析角色、用戶、功能之間的相互關系,實現細粒度、通用性強的用戶權限管理。在Web應用前端部署管控代理,實施和管理方便。
3 系統設計與實現
3.1 角色-功能訪問控制模型
考慮到RBAC模型僅僅為最基礎的模型定義,其缺點是并沒有在現實中的應用系統進行模擬實現。通過深入研究應用系統中頁面-功能和功能-權限兩者間的關聯關系,本文結合Web應用系統自身的特點提出了基于角色-功能的用戶訪問控制模型。該模型通過設置用戶、角色、功能、頁面四者兩兩之間的邏輯關系來限制用戶對頁面等Web應用資源的訪問,包括URL地址、Get和Post參數等,如圖1所示。
在角色—功能訪問控制模型中,可以把一系列頁面集合在一起而實現的功能看作客體,即系統資源。用戶為系統中的主體,其對頁面的操作也就是為獲取某系統資源而對一系列頁面進行的訪問。權限指某角色訪問某功能的能力。因此,在該模型中訪問控制變化為對用戶可以訪問的頁面功能和操作數據的控制。角色、用戶、頁面、功能四者間具有兩種關系。
(1) 角色為最小的權限控制單元,即系統的訪問控制策略是針對角色制定的。系統中存在多個角色,角色與角色間存在權限繼承關系。根據訪問控制需求,不同的角色對系統的業務功能具備不同的訪問權限,通過系統授權,用戶將獲得系統的一個或多個角色,這樣就使得用戶對系統功能具備不同的訪問權限。
(2) 頁面為最小的數據單元,一個或者多個Web頁面級聯實現了系統的某業務功能(如用戶注冊功能),而單個Web頁面也可能包含多個業務功能的某部分操作(如查看操作、刪除操作)。
在角色—功能訪問控制模型中對用戶的訪問控制從身份驗證、業務功能鑒權、頁面權限識別三方面實現。
(1) 身份驗證:在用戶請求進入系統門戶時,Web應用系統通過用戶輸入的賬號和密碼確定該用戶是否具有對系統資源的訪問和使用權限。如果賬號和密碼匹配則該用戶鑒定為合法用戶,允許其進行系統訪問,反之拒絕。
(2) 業務功能鑒權:不同的用戶被系統授予不同的角色后對Web系統業務功能具備不同的訪問權限。因此,系統需要獲得用戶對應的所有角色的訪問權限,以進一步獲知用戶能夠訪問的業務功能列表。
(3) 頁面權限識別:用戶訪問某頁面時,Web應用系統會通過其被委派的角色的權限信息識別用戶是否擁有該頁面的訪問權限。根據判決識別結果允許或者拒絕用戶的訪問請求。
3.2 系統架構設計
Web應用安全管控系統通過Web應用代理獲取用戶在應用中的行為,結合訪問控制策略實現用戶對應用頁面功能訪問的控制,如圖2所示。用戶訪問Web應用時,Web代理獲取用戶的訪問路徑和功能,根據訪問策略進行控制,防止未授權用戶訪問特定的功能。
安全管控系統的核心組件包括部署在代理端的Web應用代理,其為應用服務器的前置代理,負責策略的執行工作;部署在管控服務器的策略管理和策略判決核心模塊,負責應用行為的管理和判決。系統的總體流程如圖3所示。
3.3 系統模塊設計
3.3.1策略執行模塊
策略執行模塊運行在Web應用代理服務器,監控應用代理服務器中的用戶訪問行為,將訪問請求(訪問URL和HTTP Request)發送給策略判決模塊,并接受策略判決模塊反饋回來的判決結果,根據該結果向主體提供應用服務或發送拒絕訪問的提示。
3.3.2 策略判決模塊
策略判決模塊運行在管控服務器,根據用戶請求提取用戶主體的安全標識如用戶ID,然后獲取用戶的所有角色,并對用戶所屬的每一個角色的策略進行權限檢查,獲取權限并集,最后根據最終權限集合中的訪問策略描述的規則執行決策判斷,如果主體對當前的URL地址具有訪問權限則允許訪問,否則拒絕訪問,并將判斷結果返回給策略執行模塊,如圖4所示。
3.3.3 策略管理模塊
策略管理模塊運行在管控服務器,采用一個或多個策略或策略集存儲用戶訪問權限信息,每個策略中定義了由角色、功能、權限組成的訪問控制策略。通過策略管理模塊,應用管理員可以對策略進行增加、刪除、修改操作。
3.3.4 日志審計模塊
日志審計模塊記錄用戶訪問日志,包括允許訪問和禁止訪問的歷史記錄,涵蓋用戶ID、URL地址、訪問時間等信息,用于系統的安全審計。
基于以上核心模塊,Web應用系統在用戶接入系統時,通過用戶身份驗證判斷用戶的身份是否合法,然后提取用戶的角色進行頁面權限等方面的檢查,保證用戶在合法范圍內訪問系統。同時,系統將對用戶的所有行為進行安全審計。endprint
4 系統測試
在實驗環境下建立電子政務應用平臺,分別搭建了應用服務器和數據庫服務器,并部署了應用代理服務器和管控服務器,以驗證系統的有效性。在管控服務器(10.109.34.169)運行Web應用安全管控系統,管理員設置完成角色及其訪問策略,并將用戶的ID和角色進行綁定,實現對用戶的訪問控制。用戶通過部署的前端Web應用代理服務器(10.109.33.242)訪問應用服務器(10.109.35.155)中的頁面資源。針對該用戶,應用代理服務器能夠允許其對授權功能的訪問,并且阻止其對非授權功能的訪問,如圖5所示。
管理員可以查看系統對用戶訪問的控制情況,結果表明,應用安全管控系統在盡可能減少對現有應用系統修改的前提下,實現了基于角色-功能的用戶訪問控制,并且能夠支持靈活的訪問策略,滿足了應用系統的安全需求。
5 結束語
本文設計并實現了一種基于代理的Web應用安全管控系統,文中首先基于角色的訪問控制技術構建角色-功能的權限配置,實現用戶對Web應用功能的頁面級訪問控制;其次,對系統的架構和各模塊的功能進行了詳細設計,通過代理的方式在Web應用前端部署管控系統,控制用戶對Web應用系統的所有訪問行為,阻止未授權用戶的Web應用訪問,能夠最大程度減少對現有Web應用系統的改動;最后,搭建電子政務實驗環境,結果表明,系統能有效地實現對用戶訪問Web應用的安全管控。
基金項目:
1.北京市科技計劃(D161100003316002);
2.國家重點研發計劃(2016YFB0800605)。
參考文獻
[1] 上超望,劉清堂,王艷鳳.組合Web服務業務流程訪問控制技術研究綜述[J].計算機科學, 2015, 42(7): 99-102.
[2] 龐希愚,王成,仝春玲.基于角色—功能的Web應用系統訪問控制方法[J].計算機工程, 2014, 40(5): 144-148.
[3] 王于丁,楊家海,徐聰,凌曉,楊洋.云計算訪問控制技術研究綜述[J].軟件學報, 2015, 26(5): 1129-1150.
[4] 李鳳華,蘇铓,史國振. 訪問控制模型研究進展及發展趨勢[J].電子學報, 2012, 40(4): 805-813.
[5] 張帥,孫建伶,徐斌.基于的跨多企業服務組合訪問控制模型[J].浙江大學學報(工學版), 2012, 46(11): 2035-2043.
[6] Li Q, Zhang X, Qing S, Xu M. Supporting ad-hoc collaboration with group-based RBAC model[C]. Collaborative Computing: Networking, Applications and Worksharing, 2006.
[7] 張曉菲,許訪,沈昌祥.基于可信狀態的多級安全模型及其應用研究[J]. 電子學報, 2007, 35(8): 1511-1515.
[8] 劉瓊波,施軍,尤晉元. 分布式環境下的訪問控制[J].計算機研究與發展, 2001, 38(6): 735-740.
[9] Thomas R. Team-based access control (TMAC): A primitive for applying role-based access control in collaborative environments[C]. Proceedings of 2nd ACM Workshop on Role-based Access Control, 1997, 15 (2): 13-19.
[10] 李曉峰,馮登國,陳朝武,房子河.基于屬性的訪問控制模型[J]. 通信學報, 2008, 29(4): 90-98.endprint