访问控制课程设计Word文件下载.docx
《访问控制课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《访问控制课程设计Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
1.2.3jdk
jdk是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。
1.2.4Mysql
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。
MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem:
关系数据库管理系统)应用软件之一。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并高了灵活性。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。
MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
第2章基于角色的访问控制
2.1访问控制基础
访问控制的定义是:
“为电脑系统所属资源在遭受XX的操作威胁时,供适当的控制以及防护措施,以保护信息的机密性和完整性。
”其中,XX的操作包括:
XX的使用、信息的泄露、未经允许的修改、恶意的破坏以及拒绝服务五部分。
“访问”的本质是主体对客体实行某种操作。
同时通过引用监视器来控制访问。
访问控制系统一般包括:
主体、客体、安全访问策略。
这是访问控制的三要素。
在信息系统中,主体是发出访问操作、存取要求的发起者;
客体是系统中被处理、被控制或被访问的对象;
安全访问策略是一套规则,用以确定一个主体是否对客体拥有访问权限。
三要素的具体内容见表1。
2.2RBAC模型的基本概念
随着计算机信息系统在非军用领域得到更为广泛的应用,传统的自主访问控制技术和强制访问控制技术已经不能满足现代信息系统安全的需求。
在这种情况下,出现了基于角色的访问控制模型。
基于角色的访问控制策略在用户(user)和访问权限(permission)之间引入了角色(role)的概念,用户与特定的一个或多个角色相联系,角色与一个或多个访问权限相联系,角色在用户与权限之间起了一个桥梁的作用。
在实际的工作中,角色可以生成或取消,它的权限也可以根据实际工作需要进行修改。
基于角色的权限管理模式适用于用户较多且有着不同权限层次的系统的访问控制的管理,目前被认为是解决大型企业权限管理问题的有效方法。
RBAC模型主要有以下7个概念:
用户:
直接与系统进行互动的人或程序。
角色:
对应于组织中某一特定职能岗位,代表特定的任务范畴。
在RBAC中权限分配给角色,用户通过扮演不同的角色拥有着对应的权限组合。
权限:
表示主体对系统中的客体进行特定模式访问的操作许可。
权限包含操作与客体,在NIST的RBAC标准中,特别定义了操作与客体。
操作:
指对客体的操作能力,包含写入、读取与拥有权等,此外也可以包含抽象的操作动作。
客体:
指访问控制可供操作的客体,可能是档案、文件或是执行程序等相关的客体。
会话:
用户对应到可使用的角色集合的过程,用户通过会话对应到被允许的角色,RBAC中用户可以对应到多个角色,根据需要来转换角色,获得适当的权限,以达到最小权限的功能。
限制:
用来规定角色彼此之间的关系,如层次关系、角色互斥的关系。
2.3RBAC的设计原则
基于角色的访问控制模型主要遵循以下原则:
角色继承原则、最小权限原则、职责分离原则角色容量原则、数据抽象原则。
角色之间、权限之间、角色和权限之间定义了一些关系。
角色继承关系表示角色之间可以相互继承,将子角色分配给用户,用户将获得其父角色的所有权限。
当角色之间可能有互相重叠的职责和权力时,属于不同角色的用户可能需要执行一些相同的操作。
这样,管理员在设置子角色的时候,只需要设定不同于父角色的属性和访问权限,避免了重复定义。
最小原则原则之所以被RBAC支持,是因为RBAC可以将其角色配置成其完成任务所需要的最小权限集。
职责分离原则可以通过调用相互独立互斥的角色来共同完成敏感的任务而体现,比如要求一个记账员和管理员共同参与同一过账。
角色容量原则是指,在一个特定的时间段内,有一些角色只能有一定人数的用户占用。
在创建新的角色时应该指定角色的容量。
数据抽象可以通过权限的抽象来体现,如财务操作用借款、存款等抽象权限,而不用操作系统ᨀ供的典型的读、写、执行权限。
然而这些原则必须通过RBAC各部件的详细配置才能得以体现。
2.4访问控制策略比较
访问控制策略是一套规则,用以确定一个主体是否对客体拥有访问权限。
根据制定的系统安全策略,形成了主体与客体、主体与主体、客体与客体之间相互访问的关系。
但并不是要把系统中的每个实体都分为客体或主体,根据不同的情况,一个实体可以是一个访问请求的主体,同时也可以是另一个访问请求的客体。
访问控制策略一般分为三种:
自主访问控制策略、强制访问控制策略和基于角色的访问控制策略。
这三种访问控制策略的关系如图1所示。
自主访问控制最早出现在20世纪70年代时期的分时系统中,是一种多用户环境下最常用的一种访问控制技术,在目前流行的Unix类操作系统中被普遍采用。
自主访问控制技术基于这样的思路:
主体全权管理有关其客体的访问授权,有权泄露、修改该客体的有关信息。
因此,自主访问控制也存在着一些缺点。
首先在商业应用中,系统的用户大多对资源不具备所有权,所有权是属于公司甚至外部机构,从这个层面上说自主访问控制不适合于商业应用。
另一方面,自主访问控制允许用户自主决定将权限转让给他人,在经过多次权限转让之后,权限可能被无限制地扩散,无法保证系统的安全性。
而此时系统管理员对权限的管理几乎没有任何权利,形同虚设。
此外,自主访问控制中对资源的访问是直接依据权限进行,无法防范木马攻击,木马攻击者可以获得或破坏机密信息。
强制访问控制的基本思想:
每个主体和客体都有其既定的安全属性,某客体是否能执行特定的操作取决于它的主体和该客体的安全属性的关系,当然,主客体的安全属性不能随意更改,一般只能由系统的安全管理员设置。
管理员可以对系统权限进行有效的管理,但由于主客体之间需要相互逐一进行配置,工作量巨大。
此外,强制访问控制缺乏灵活性,与自主访问控制相同,也很难满足商业应用的需要。
基于角色的访问控制更一般化,可以通过RBAC实现MAC和DAC,但其本质上是一种非任意权限的控制方法。
基于角色的访问控制可以有效地减小权限管理的工作量,它可以按需要定义一些约束条件,例如设置互斥角色。
RBAC也能够很好地支持最小权限原则和职责分离原则,以确保系统的安全。
而且,它实现了用户与访问控制的逻辑分离,极大地方便了权限的管理。
RBAC模型实际上形象地反映了RBAC本身的含义,建立RBAC模型就是要对RBAC进行系统而抽象地描述,从而使人们能够非常方便地理解RBAC的含义,以便对其进行更加深入地研究。
目前,绝大多数基于角色的访问控制研究都以RBAC96或NISTRBAC模型作为出发点进行深入研究的。
2.5NISTRBAC模型
首先讨论RBAC96模型。
R.S.Sandhu等人于1996年ᨀ出了基于角色访问控制参考模型,即著名的RBAC96模型,其包括4个不同层次:
基础模型(RBAC0),角色层次模型(RBAC1),角色约束模型(RBAC2),复合模型(RBAC3)。
RBAC0是最基本的模型,只包含最基本的RBAC元素:
用户、角色、权限以及会话,但是其满足了RBAC系统所必须的最小要求。
在RBAC0中,不存在角色之间层次关系,所有角色都是平级的,所有的对象也没有约束。
RBAC1是在RBAC0的基础上引入一定的层次结构,其包含RBAC0的所有内容。
RBAC2在RBAC0的基础上引入了约束条件,对于现实社会中的实际系统,不管其是否具有角色的层次关系,约束机制都是必不可少的。
RBAC3相比较于RBAC0,增加了角色分级和约束限制,因此,可以认为RBAC3是RBAC1和RBAC2两者的结合。
RBAC各子模型间的关系如图2所示。
NIST(NationalInstituteofStandardsandTechnology)是美国标准与技术协会的简称。
它ᨀ出的NISTRBAC模型实质上是RBAC96中RBAC3模型的一个扩展,NISTRBAC模型的意义不在于理论或技术上的创新,而在于标准化。
NISTRBAC定义了四个模型部分:
核心RBAC、层次RBAC、静态职责分离RBAC和动态职责分离RBAC。
图3给出了NISTRBAC模型的基本框架。
在现实应用中,单纯的基于角色的管理往往不能完全适应大型系统的管理,特别是当管理需要考虑到基于服务的集中式与分布式相结合的方式以及各个部门之间角色的协作等因素时,这些情况下往往需要扩展才能实现。
第3章应用系统的需求分析
实际生产中,系统分析部分主要是根据用户ᨀ出的原始需求和需求调查资料进行分析,取出系统的功能要点、开发对象以及系统的规模预测,并进一步选定系统的软件环境,包括开发环境和运行环境。
由于本课设不涉及实际生产,我们只是模拟一个基于角色管理的工厂安全管理平台,所以需求均为我们的假设,可能与实际生活有所偏差。
由于用户ᨀ出的需求是从用户角度分析的,那么在实际生产中,要考虑的问题为:
出需求的用户是否对本领域有所了解或是否精通,这意味着用户的原始需求可能并不适合直接用于系统的开发和设计,必须先从需求中ᨀ取出功能的和抽象结构,再进行设计。
企业安全管理平台大致包括四个功能:
安全流程体系管理、安全流程活动元数据管理、安全流程建模和配置、安全流程报表。
安全流程体系管理供安全流程体系中用户权限等方面的管理功能;
安全流程活动元数据管理用来完成安全流程及流程活动相关元数据自身信息的管理以及元数据之间关联关系的维护;
安全流程建模和配置供安全流程建模和设计功能,同时完成流程活动和相关元数据的绑定;
安全流程报表完成流程操作手册以及安全流程相关数据的统计分析报表的动态、实时生成。
安全流程管理平台访问控制子系统的访问控制,该功能只有系统管理员才可以进入,系统管理员通过该模块可以实现与系统用户信息相关的日常维护工作。
包括:
查询用户信息、新建用户(包括分配权限)、修改用户信息、删除用户。
用户权限控制:
登录到系统后,不同用户身份具有不同的权限。
例如普通管理员可以查询用户的信息,但不可以删除和编辑用户的信息。
第4章访问控制系统框架设计
4.1总体架构设计
由图4可知,网页打开之后,当用户请求访问URL,访问控制系统会将该请求拦截,然后运行访问控制系统方法中的业务逻辑,对请求进行一系列分析处理。
在此设置了session,session是指一个终端用户与交互系统进行通信的时间间隔,通常是指从注册进入系统到注销退出系统之间所经过的时间。
Session的使用使得用户登录之后,退出浏览器之后的一段时间内,若再次进入系统,不需要重复登录。
另外,该系统设置了拦截器,如果用户没有登录,是无法访问网页的。
用户登录之后,则从DB获取该用户的角色,然后判断是否对所请求的URL具有访问权限:
如果具有权限,访问控制系统则把控制权交给链中下一个资源,
用户得以访问所请求的URL;
如果没有权限,则转到错误ᨀ示页面,该页面会显示该用户无权访问。
4.2框架结构
在了解了系统的需求以及工作流程的基础上,图5给出了访问控制系统的架构。
由图可知,本访问控制系统采用双层访问控制来进行访问控制:
第一层是用户管理,该层主要是对用户信息进行管理以及对用户进行角色分配,即对用户的增删改查。
第二层是用户则与流程访问控制,这里面主要是权限流程的分配。
第一层是外部的访问控制,第二层是内部的访问控制,第一层是第二层的基础,第二层是第一层的深入。
图6给出了功能模块的分解图,描述了整个系统结构。
由图6知,该系统主要分为三大模块:
登录模块、用户管理模块、权限配置模块。
登录模块具有两个子模块:
登录和退出。
其中登录模块包括了SSO单点登录、session用户保存以及拦截器。
用户管理模块包括用户管理和角色配置,用户管理实际上就是CRUD(Create,Retrieve,Update,Delete)。
角色配置模块就是为用户分配角色。
权限配置模块完成为角色设置权限。
第5章访问控制系统的实现
5.1访问矩阵
添加用户
删除
修改
访问业务A
访问业务B
User
true
false
Admin
SuperAdmin
5.2程序演示
系统完成后是以网页形式呈现的。
系统设置了三种角色,即:
user代表普通用户,admin代表普通管理员,superadmin代表超级管理员。
这三个不同的角色具有不同的权限。
首先,普通管理员登录。
界面如图7所示,密码均为123。
图7用户登录页面
进入主界面,如图8所示。
主界面包括三个区域,上方显示登录状态及登录的身份。
注销按钮用于退出,退出之后回到登录界面。
左边区域是菜单栏,一级菜单共四项内容:
增加用户、业务A、业务B、查询用户。
点击任一功能,右侧会实现功能的具体操作。
图8主页面
点击“添加用户”,右侧会给出需要填写内容的表单,其中“角色”下拉选框是为新增添的用户分配角色。
对于待分配的三种角色,并不是任意分配的。
这取决于当前用户的角色。
例如普通管理员为新建用户只可以分配普通用户的角色,而不具有权限分配权限向上的角色。
如图9所示。
图9添加用户
完成用户的添加之后,进入“查询用户”功能。
右侧可以看到user1已经添加进来了。
在访问控制系统中,用户信息存在着两种操作:
查询和修改。
查询是为了看到用户信息,修改操作包括编辑和删除。
这里给出了编辑和删除两个操作。
同样,不同的角色可以进行不同的操作。
普通管理员和普通用户是不能删除或编辑用户信息的。
然而,超级管理员可以进行该操作。
如图10所示。
图10查询用户
业务B是基础业务,普通管理员和超级管理员均具有权限访问,如图13所示。
但是业务A只有超级管理员具有权限操作。
而普通用户对业务A和业务B均无访问权限。
如图15和图16。
通过图11和图12的对比,可以看出普通管理员和超级管理员在业务A和业务B上的区别。
图11Admin访问业务A
图12SuperAdmin访问业务A
图13Admin访问业务B
图14SuperAdmin访问业务B
图15User访问业务A
图16User访问业务B
第6章总结
通过本次课设,我们认识到,访问控制的安全策略是一种可以直接适用于实
际生活的、简单有效的安全策略。
网络的广泛使用使得企业享受快捷信息共享的同时面临机密的泄露而带来的损失,而解决这一问题的重要手段就是访问控制可以有效管理资源权限。
本文主要工作包括以下几项:
1)分析自主访问控制、强制访问控制以及基于角色的访问控制的基本思想与优劣势,并对基于角色的访问控制理论进行简单的简介。
2)假设基于工厂安全管理平台进行需求分析并设计系统架构。
3)基于RBAC理论,详细设计了访问控制系统的访问控制层模块:
用户管理模块,用户组模块,权限模块以及登录模块。
4)对系统的运行环境说明,并对各功能进行测试。
我们认识到有时候单一的访问控制策略可能对实际生活中的系统无法全面覆盖,可能需要多个访问控制策略协同工作,才能有效保护系统资料的安全。
并且我们还有很多功能没有涉及到,比如会话加强对角色的限制等。