基于代理的Web应用安全管控系统设计与实现
2017-09-30杨永群章翔凌黄勤龙肖志恒
杨永群++章翔凌++黄勤龙++肖志恒
摘 要:针对现有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