基于OA系统中基于角色的安全访问控制设计
扫描二维码
随时随地手机看文章
摘要:随着电子政务的快速发展和全面普及,办公自动化(OA)系统的安全性显得越来越重要。对基于Web 的B/S 结构的OA 系统结构和安全需求进行了分析,为了增强用户身份鉴别和授权控制的安全性,分析了基于角色的安全访问控制的核心思想和模型。在OA 系统中进行了基于角色的安全访问控制设计,给出用户、角色和权限的划分,提出安全访问控制流程。
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 系统身份鉴别和授权控制方面的安全性。