访问控制课程设计报告_第1页
访问控制课程设计报告_第2页
访问控制课程设计报告_第3页
访问控制课程设计报告_第4页
访问控制课程设计报告_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

访问控制课程设计实验报告****大学生课程设计报告题目:自主访问控制设计和基于角色的访问控制设计课程名称:专业班级:学号:姓名:指导教师:报告日期:计算机科学与技术学院目录TOC\o"1-4"\h\z\u一、 自主访问控制实验 41. 实验目的 42. 实验环境及工具 43. 实验内容与原理 44. 程序与数据库设计 54.1 数据库设计 54.2 程序设计 61. 界面设计 62. 创建用户 63. 创建客体 64. 删除客体 75. 读、写客体 76. 授予权限 77. 回收权限 85. 实验测试效果 85.1用户注册及登录 85.2自主授权测试 95.3循环授权测试 105.4主体访问权限测试 115.5受限的分散式管理测试 11二、 基于角色的访问控制实验(RBAC) 141. 实验目的 142. 实验环境及工具 143. 实验内容和原理 144. 程序与数据库设计 154.1 数据库设计 154.2 程序设计 161. 界面设计 162. 添加用户 173. 删除用户 174. 添加权限 175. 删除权限 186. 添加角色 187. 删除角色 188. 添加角色层次 199. 删除角色层次 1910. 添加角色互斥 1911. 删除角色互斥 1912. 添加用户到角色的指派 2013. 删除用户到角色的指派 2014. 添加权限到角色的指派 2015. 删除权限到角色的指派 205. 程序测试效果 211. 用户登录配置和管理界面 212. 用户–角色–权限指派 213. RBAC1 224. RBAC2角色互斥 25三、 总结 27自主访问控制实验实验目的1)通过课程设计大型作业,使学生进一步熟悉访问控制的概念和基本原理;2)培养学生将访问控制的各种技术和方法应用于实际进行实施的能力;3)学生运用访问控制基本原理和方法结合实际充分发挥自主创新能力进行各有特色的设计。实验环境及工具操作系统:MicrosoftWindows7编程语言:C++数据库:SQLite编译平台:QTCreator实验内容与原理要求设计若干人机对话界面,通过这些界面定义和配置主体、客体以及权限,然后对主体进行自主授权、传递授权的操作,并能撤销授出的权限。修改主体对客体的访问权限后,观察系统访问成功和不成功的执行情况是否符合安全策略。基本要求:1)对主体、客体、权限进行定义和配置;2)对主体进行自主授权;3)对主体的访问权限进行控制;4)对主体进行传递授权与回收;自主访问控制定义:自主访问控制是指对某个客体具有拥有权(或控制权)的主体能够将对该客体的一种访问权或多种访问权自主地授予其它主体,并在随后的任何时刻将这些权限回收。方法:自主访问控制的矩阵模型:系统状态用一个有序三元组表示Q=(S,O,A),其中:S—主体的集合,O—客体的集合,A—访问矩阵,行对应于主体,列对应客体。每个主体都附加一个该主体可访问的客体的明细表,每个客体附加一个它可以被访问的主体的明细表。访问控制矩阵行列分别对应主体访问客体的能力表和客体关于主体的授权表。(1)集中式管理一个主体si在创建某个客体oj后,该主体就获得了对这一客体的c权和其它所有可能权限。c权意味着可以将它对oj所有其它(除c权以外)的访问权限授予系统中任何一个主休,也可以撤销系统中任何主体对oj的其它访问权限。其它主体因为对oj不具有c权,因此即使他们对oj具有某些访问权限,但它们也无权将这些权限转授给别的主体、或撤销别的主体对oj的任何访问权限——在这种管理模式下,对于任一客体oj,哪些主体可以对其进行访问,可以进行什么样的访问,完全由oj的拥有者决定。(2)分散式管理在分散式管理模式下,客体的拥有者不但可将对该客体的访问权授予其它客体,而且可同时授予他们对该客体相应访问权的控制权(或相应访问权的授予权)。即允许传递授权,且当一个主体撤销它所授予的对某个客体的某种访问权限时,必须将由于这一授权而引起的所有授权都予以撤销。(3)受限的分散式管理受限的分散式管理模式,是将系统中对客体的访问权限限制在一定的主体范围内,要求根据客体拥有者的意愿进行。程序与数据库设计数据库设计用户表subject:字段名数据类型说明snamevarchar(20)用户名passwordvarchar(20)用户密码客体表object:字段名数据类型说明onamevarchar(20)客体名infovarchar(80)客体数据信息能力表capacity:字段名数据类型说明snamevarchar(20)主体名onamevarchar(20)客体名rightvarchar(10)权限类型grantorvarchar(20)授权者程序设计界面设计界面设计如图1.4.1所示:图1.4.1界面可实现切换用户、退出;创建客体、删除客体、读客体、写客体、授权、发放黑令牌等功能。创建用户在users_table表中加一项数据,执行如下SQL语句:insertintosubject(sname,password)values(?,?)创建客体在客体表中添加一项,并把对该客体的所有权限添加给创建者,定义读(Read)、写(Write)、删除(Delete)、拥有权(Own)操作如下:操作SQL语句说明添加客体项insertintoobject(oname,info)values(?,?)无添加Read权限insertintocapacity(sname,oname,right,grantor)values(?,?,‘Read’,?)无添加Write权限insertintocapacity(sname,oname,right,grantor)values(?,?,‘Write’,?)无添加Delete权限insertintocapacity(sname,oname,right,grantor)values(?,?,‘Delete’,?)无添加Own权限insertintocapacity(sname,oname,right,grantor)values(?,?,‘Own’,?)无删除客体检查当前用户是否有删除的权限,然后删除权限表中该客体相关的所有条目,再删除客体表中相关项:操作SQL语句说明检查当前用户是否有删除权select*fromcapacitywheresname=?andoname=?andright=?检查权限表中是否有相应的条目删除权限表中和该客体相关的所有条目deletefromcapacitywhereoname=?无删除客体表中该客体的条目deletefromobjectwhereoname=?无读、写客体仅检查给定的用户是否对给定的客体有相应的权限,即简单检查权限表中是否有相关项:操作SQL语句说明权限检查select*fromcapacitywheresname=?andoname=?andright=?如果返回的数据集为空,说明没有相应权限授予权限检查权限并将权限项添加到权限表中:操作SQL语句说明添加权限到权限表中insertintocapacity(sname,oname,right,grantor)values(?,?,?,?)回收权限回收权限,直接删除权限表中的相应项:操作SQL语句说明删除该用户授出的权限eletefromcapacitywheresname=?andoname=?andright=?andgrantor=?实验测试效果5.1用户注册及登录用户登录及注册界面如图1.5.1所示:图1.5.1用户登录及注册界面用户切换与用户注册均在此界面下进行。登录成功界面如图1.5.2所示:图1.5.2用户登陆后界面在此用户与客体均创建完成,且根据次序依次对应,其中u5没有与之对应的客体。按照课程设计要求进行测试。5.2自主授权测试按照图1.5.3进行授权操作:图1.5.3自主授权测试 授权后结果如图1.5.4、图1.5.5、图1.5.6所示:图1.5.4授权结果(u1将R权授给u2,u4)图1.5.5授权结果(u2将R权授给u3)图1.5.6授权结果(u4将R权授给u3)查看u3的权限如图1.5.7所示:图1.5.7u3权限图可以看到u3有来自u2和u4的o1(R)的授权,可以看到只有同时回收u2和u4对u3的授权时,才能将o1(R)从u3的权限表中去除。5.3循环授权测试在自主授权的访问控制中是不允许循环授权的,若按图1.5.8所示进行操作,将显示错误,拒绝操作:图1.5.8循环授权测试自主授权测试时已将u1的R权授予u2,现u2将将o1的R权授给u1,结果如图1.5.9所示:图1.5.9授权结果由上图可以看出当u1先对u2进行o1(R)的授权后,u2再对u1进行同样权限的授权的时候,就发生了循环授权,按规定,是不能进行的。5.4主体访问权限测试以u1用户登录,查看对客体的权限。将u1对o1进行读、写操作。结果如图1.5.10、图1.5.11、图1.5.12所示:图1.5.10读o1图1.5.11写o1过程图1.5.12写操作验证可以看出我们u1登录的情况下,读o1客体,读出了之前创建时o1的内容;写o1客体时可以更改o1的内容,经验证在再次读o1客体时内容确实更改。5.5受限的分散式管理测试受限的分散式管理测试授权表如图1.5.13所示:图1.5.13受限的分散式管理测试 由上述测试可知u1已把o1的R权授予u2,现在u1对u3发放R权黑令牌,u1给u3授o1的R权,将会失败,如图1.5.14、图1.5.15所示:图1.5.14发放黑令牌图1.5.15禁止授权随后撤销u1给u3的o1的R权黑令牌,再次u1给u3授o1的R权,将会成功,如图1.5.16所示:图1.5.16授权成功基于角色的访问控制实验(RBAC)实验目的1)通过课程设计,使学生进一步熟悉访问控制的基本概念和基本原理;2)培养学生将访问控制的各种技术和方法应用于实际进行实施的能力;3)要求学生运用访问控制基本原理和方法,结合实际充分发挥自主创新能力进行各有特色的设计。实验环境及工具操作系统:MicrosoftWindows7编程语言:C++数据库:SQLite编译平台:QTCreator实验内容和原理1)基于角色的访问控制定义在一个组织机构里系统为不同的工作岗位创造对应的角色,对每一个角色分配不同的操作权限,根据用户在组织机构中的职责或任务为其指派相应的角色,用户通过所分配的角色获得相应的权限,实现对信息资源的访问,即用户—角色—权限模型。RBAC0反应了RBAC的基本需求;U:表示用户集;R:表示角色集;P:表示权限集;S:表示会话集。PAÍP×R,是权限到角色的多对多的指派UAÍU×R,是用户到角色的多对多的指派user:S→U,会话和用户的单一映射,user(si)表示创建会话si的用户;roles:S→2R,会话和角色子集的映射,roles(si)表示会话si对应的角色集合;roles(si)Í{r|(user(si),r)∈UA}会话si具有的权限集

RBAC1在RBAC0的基础上加上了角色层次,反应了多级安全需求;U、R、P、S、PA、UA和user:S→U的定义与RBAC0相同;RHÍR×R,是集合R上的偏序关系,称为角色层次关系;roles:S→2R,会话和角色子集的映射函数,但和RBAC0略有不同

roles(si)Í{r'|$r'≤r且(user(si),r)∈UA}即:会话si对应的角色集可以由建立该会话的用户所属的任何角色或低级角色组成会话si所具有的权限

特点:一种中性的策略,具有灵活性以适应变化的需求,可用来描述自主访问控制和强制访问控制。支持最小特权原则,责任分离原则,数据抽象原则。 实验要求:1)对主体、客体、权限进行定义和配置;2)对角色及角色的层次关系进行定义;3)对角色的权限进行定义(有继承关系的就不用重新定义);4)给出用户-角色多对多关系的配置;5)对用户的角色信息进行修改,通过访问控制实验,体现不同层次的角色访问权限的差别;6)对上述实验情况下访问成功和不成功的两种情形均给出结果。程序与数据库设计数据库设计用户表(RBAC_users)字段名类型说明user_namenchar(10)用户名user_pswnchar(10)用户密码user_typenchar(10)用户类型角色表(RBAC_roles)字段名类型说明Role_namenchar(10)角色名Role_Imfonchar(10)角色信息权限表(RBAC_power)字段名类型说明Power_namenchar(10)权限名Power_imfonchar(10)权限信息用户到角色指派表(RBAC_user_role)字段名类型说明User_namenchar(10)用户名Role_namenchar(10)角色名权限到角色指派表(RBAC_power_role)字段名类型说明Power_namenchar(10)权限名Role_namenchar(10)角色名角色层次表(RBAC_role_layer)字段名类型说明parent_rolenchar(10)角色层次中的上层角色son_rolenchar(10)角色层次中的下层角色角色互斥表(RBAC_role_mutex)字段名类型说明original_rolenchar(10)互斥角色mutex_rolenchar(10)互斥角色数据表键定义表名键值RBAC_usersuser_nameRBAC_roleRole_nameRBAC_powerPower_nameRBAC_user_role(User_name,Role_name)RBAC_power_role(Power_name,Role_name)RBAC_role_layer(parent_role,son_role)RBAC_role_mutex(original_role,mutex_role)外键定义外键所在的表外键对应的字段关联的表名关联的字段RBAC_user_roleUser_nameRBAC_usersuser_nameRBAC_user_roleRole_nameRBAC_rolesRole_nameRBAC_power_rolePower_nameRBAC_powerPower_nameRBAC_power_roleRole_nameRBAC_rolesRole_nameRBAC_role_layerparent_roleRBAC_rolesRole_nameRBAC_role_layerson_roleRBAC_rolesRole_nameRBAC_role_mutexoriginal_roleRBAC_rolesRole_nameRBAC_role_mutexmutex_roleRBAC_rolesRole_name程序设计界面设计图形界面如图2.4.1所示:图2.4.1图形界面添加用户操作SQL语句说明添加数据项到用户表中insertintoRBAC_users(user_name,user_psw,user_type)values('%s','%s','普通用户')无删除用户操作SQL语句说明删除和该用户有关的角色指派deletefromRBAC_user_rolewhereRBAC_user_role.User_name='%s'无删除用户项deletefromRBAC_userswhereRBAC_users.user_name='%s'无添加权限操作SQL语句说明添加权限到权限表中insertintoRBAC_power(Power_name,Power_imfo)values('%s','%s')无删除权限操作SQL语句说明删除和该权限有关的角色指派deletefromRBAC_power_rolewhereRBAC_power_role.Power_name='%s'无删除该权限项deletefromRBAC_powerwhereRBAC_power.Power_name='%s'无添加角色操作SQL语句说明添加角色项到角色表中insertintoRBAC_roles(Role_name,Role_Imfo)values('%s','%s')无删除角色操作SQL语句说明删除用户角色指派表中和该角色相关的项deletefromRBAC_user_rolewhereRBAC_user_role.Role_name='%s'无删除权限角色指派表中和该角色相关的项deletefromRBAC_power_rolewhereRBAC_power_role.Role_name='%s'无删除角色层次中和该角色相关的项deletefromRBAC_role_layerwhereRBAC_role_layer.parent_role='%s'orRBAC_role_layer.son_role='%s'无删除角色互斥中和该角色相关的项deletefromRBAC_role_mutexwhereRBAC_role_mutex.original_role='%s'orRBAC_role_mutex.mutex_role='%s'无删除角色表中该角色项deletefromRBAC_roleswhereRBAC_roles.Role_name='%s'无添加角色层次操作SQL语句说明判断角色层次的合法性略不能在角色层次中引起循环,必须检查角色层次的合法性添加角色层次insertintoRBAC_role_layer(parent_role,son_role)values('%s','%s')无删除角色层次操作SQL语句说明删除角色层次表中的相应项deletefromRBAC_role_layerwhereRBAC_role_layer.parent_role='%s'andRBAC_role_layer.son_role='%s'无添加角色互斥操作SQL语句说明判断添加角色互斥的合法性略相同的角色互斥不能多次添加添加角色互斥insertintoRBAC_role_mutex(original_role,mutex_role)values('%s','%s')无删除角色互斥操作SQL语句说明删除角色互斥deletefromRBAC_role_mutexwhereRBAC_role_mutex.original_role='%s'andRBAC_role_mutex.mutex_role='%s'deletefromRBAC_role_mutexwhereRBAC_role_mutex.original_role='%s'andRBAC_role_mutex.mutex_role='%s'无添加用户到角色的指派操作SQL语句说明检查添加的合法性略主要检查角色互斥添加用户到角色的指派insertintoRBAC_user_role(User_name,Role_name)values('%s','%s')无删除用户到角色的指派操作SQL语句说明删除用户到角色指派的相应项deletefromRBAC_user_rolewhereRBAC_user_role.User_name='%s'andRBAC_user_role.Role_name='%s'无添加权限到角色的指派操作SQL语句说明添加权限到角色指派的相应项insertintoRBAC_power_role(Power_name,Role_name)values('%s','%s')无删除权限到角色的指派删除权限到角色指派的相应项deletefromRBAC_power_rolewhereRBAC_power_role.Power_name='%s'andRBAC_power_role.Role_name='%s'无程序测试效果用户登录配置和管理界面用户登陆配置和管理界面如图2.5.1所示:图2.5.1用户登陆配置和管理界面用户–角色–权限指派按照下面来进行RBAC的测试,建立用户、角色的指派关系以及权限、角色的指派关系:用户:a,b,c,d,e角色:R1-R6权限:P1-P6角色层次:R1,R2互斥URA={(a,R1),(a,R2),(b,R3),(c,R4),(d,R5)}PRA={(P1,R1),(P2,R2),(P3,R3),(P4,R4),(P5,R5),(P6,R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论