基于角色的访问控制的基本原理
① 简述基于角色的访问控制的基本原理,举例说明其在防止文件被非法访问方面的功能和作用。
RBAC的基本思想是:授权给用户的访问权限,通常由用户在一个组织中担当的角色来确定。RBAC中许可被授权给角色,角色被授权给用户,用户不直接与许可关联。RBAC对访问权限的授权由管理员统一管理,RBAC根据用户在组织内所处的角色作出访问授权与控制,授权规定是强加给用户的,用户不能自主地将访问权限传给他人,这是一种非自主型集中式访问控制方式。例如,在医院里,医生这个角色可以开处方,但他无权将开处方的权力传给护士。
角色访问控制(RBAC)引入了Role的概念,目的是为了隔离User(即动作主体,Subject)与Privilege(权限,表示对Resource的一个操作,即Operation+Resource)。 Role作为一个用户(User)与权限(Privilege)的代理层,解耦了权限和用户的关系,所有的授权应该给予Role而不是直接给User或Group.Privilege是权限颗粒,由Operation和Resource组成,表示对Resource的一个Operation.例如,对于新闻的删除操作。Role-Privilege是many-to-many的关系,这就是权限的核心。
基于角色的访问控制方法(RBAC)的显着的两大特征是:1.由于角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,减小了授权管理的复杂性,降低管理开销。2.灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。
RBAC的关注点在于Role和User, Permission的关系。称为User assignment(UA)和Permission assignment(PA)。关系的左右两边都是Many-to-Many关系。就是user可以有多个role,role可以包括多个user
在RBAC系统中,User实际上是在扮演角色(Role),可以用Actor来取代User,这个想法来自于Business Modeling With UML一书Actor-Role模式
例子:低级用户只有向高级用户写入文件的权利,但是没有从高级用户那里获取文件的权利(一般的军事系统都是这样的),这样就保证了信息的流向性,即从低级到高级,从而保证了信息的安全性。
② 网络安全与保密
一,多选题
1.ABC
2.ABC
3.ABD
4.ACD
5.ABCD
6.BCD
7.ACD
8.CD
二,填空题
1.信任网
2.公开密钥
3.证书
4.认证,数据完整性
5. 时间同步
6.标示信息,公钥
7.业界人士不叫CA难道叫NB?
8.hash函数和机密共享
三,名词解释
1.为了使某些授予许可权限的权威机构、组织和个人满意,而提供所要求的证明自己身份的过程。
2.访问控制就是在身份认证的基础上,依据授权对提出的资源的访问请求加以控制。
3.基于公开密钥理论和技术建立起来的安全体系,是提供信息安全服务、具有普遍性的安全基础设施。
4.是标志网络用户身份信息的一系列数据,又来在网络通信中识别通信各方的身份。
5.CA是认证机构的国际通称,是指对数字证书的申请者发放、管理、取消数字证书的机构。
四,简答题
1.a最终实体和数字证书,b认证中心,c注册中心,d证书库
2.原理是保证数字身份和物理身份相对应。
3.进行访问控制的基本原则是:最小特权原则,职责隔离. 基于角色的访问控制是指对于某种系统资源的访问权限不能有一种角色的用户全部拥有,不需分角色管理,这样一来才能提高系统的安全性。
4.由Kerberos提出的一种方案可以解决这个问题.它的基本原理是用户必须记住一个和权威认证机构的密钥,通过和权威认证机构联系,并告诉它要联系的人的信息,然后权威认证机构再和要联系的人取得联系,这样每个人只要记住一个密钥就可以和其他的人进行秘密通话了.
③ 基于角色的访问控制和基于资源的访问控制的区别
在分布式系统中,不同的计算机系统之间经常要进行资源的互相访问,由此带来的安全性问题与通常环境下的安全问题有比较大的不同,比如通常访问控制一般有一个中央主机控制系统的安全策略和进行用户认证、访问控制等相关安全性检验工作,但是在分布式异构系统中往往并不存在这样的一个统一的安全控制中心,那么当一个系统中的用户或计算机要访问另一个系统的资源时,如何进行相关的安全控制保护呢?在论文中,首先分析了用传统访问控制方法来实现分布式资源互访的缺点,然后讨论了如何利用基于角色的访问控制(RBAC)来实现分布式系统中的资源共享。
④ 访问控制技术是什么
访问控制是网络安全防范和保护的主要策略,它的主要任务是保证网络资源不被非法使用,它是保证网络安全最重要的核心策略之一。按用户身份及其所归属的某项定义组来限制用户对某些信息项的访问,或限制对某些控制功能的使用的一种技术,如UniNAC网络准入控制系统的原理就是基于此技术之上。访问控制通常用于系统管理员控制用户对服务器、目录、文件等网络资源的访问。
访问控制涉及到三个基本概念,即主体、客体和访问授权。
主体:是一个主动的实体,它包括用户、用户组、终端、主机或一个应用,主体可以访问客体。
客体:是一个被动的实体,对客体的访问要受控。它可以是一个字节、字段、记录、程序、文件,或者是一个处理器、存贮器、网络接点等。
授权访问:指主体访问客体的允许,授权访问对每一对主体和客体来说是给定的。例如,授权访问有读写、执行,读写客体是直接进行的,而执行是搜索文件、执行文件。对用户的访问授权是由系统的安全策略决定的。
⑤ 大家好,我正在用PHP做一个管理系统,有多个会员组,要求不同的用户组用户登陆后操作内容不同,如何实现
这种需求就是所谓的RBAC,即“基于角色的访问控制”。基本原理就是整个权限系统分四部分:用户(user)、角色(role)、节点(node)和访问列表(access);每个用户都归属于至少一个角色,而不同的角色只能访问特定的节点,角色与节点的这种对应关系保存在“访问列表(access)”中。每当用户进行一个操作访问一个节点(具体为某个模块的某个方法)时就去access表中检查他所属角色的权限,权限验证通过则进行该操作,否则给予无权限的提示。
要使用RBAC系统一般来说需要项目是MVC结构的。
更多详细内容可以自己在网上搜索相关资料。
⑥ 简述什么是基于角色的访问控制rbac
访问是一种利用计算机资源去做某件事情的的能力,访问控制是一种手段,通过它这种能力在某些情况下被允许或者受限制(通常是通过物理上和基于系统的控
制)。基于计算机的访问控制不仅可规定是“谁”或某个操作有权使用特定系统资源,而且也能规定被允许的访问类型。这些控制方式可在计算机系统或者外部设备
中实现。
就基于角色访问控制而言,访问决策是基于角色的,个体用户是某个组织的一部分。用户具有指派的角色(比如医生、护士、出纳、经理)。定义角色的过程应该基于对组织运转的彻底分析,应该包括来自一个组织中更广范围用户的输入。
访问权按角色名分组,资源的使用受限于授权给假定关联角色的个体。例如,在一个医院系统中,医生角色可能包括进行诊断、开据处方、指示实验室化验等;而研究员的角色则被限制在收集用于研究的匿名临床信息工作上。
控制访问角色的运用可能是一种开发和加强企业特殊安全策略,进行安全管理过程流程化的有效手段。
⑦ 如何通过实例编程实现基于角色访问控制
要解决上述需求1,我们捕捉路有变化事件并对每一路由变化进行检查,看用户是否授权访问下一路由,保证他不会看到拒绝访问的页面
$rootScope.$on("$routeChangeStart", function(event, next, current) {
if(!authService.isUrlAccessibleForUser(next.originalPath))
$location.path('/authError');
});
上面的authService 是我们创建的一个服务,它有角色用户列表,并给授权用户路由流量。函数isUrlAccessibleForUser() 将检查分配的用户是否可以访问给定流量并返回true或false.
服务将 从后台和路由访问信息中获取一个用户的角色列表,每个角色将保存在服务本身的一个Map集合中。(关于用户和角色的一些细节可以存到数据局,通过后台的方式获取)
app.factory('authService', function ($http) {
var userRole = []; // obtained from backend var userRoleRouteMap = {
'ROLE_ADMIN': [ '/dashboard', '/about-us', '/authError' ],
'ROLE_USER': [ '/usersettings', '/usersettings/personal', '/authError']
};
return {
userHasRole: function (role) {
for (var j = 0; j < userRole.length; j++) {
if (role == userRole[j]) {
return true;
}
}
return false;
},
isUrlAccessibleForUser: function (route) {
for (var i = 0; i < userRole.length; i++) {
var role = userRole[i];
var validUrlsForRole = userRoleRouteMap[role];
if (validUrlsForRole) {
for (var j = 0; j < validUrlsForRole.length; j++) {
if (validUrlsForRole[j] == route)
return true;
}
}
}
return false;
}
};
});
这将解决上述需求的第一点,对于需求的第二点我们来创建一条指令。这个指令信息类似以下:
<div my-access=”ROLE_ADMIN”>......</div>
如果用户有 ROLE_ADMIN 的这个角色的时候,将以上的html标签将被加载到html的页面中,否则将 这个 Html标签从 页面中移除。
指令的实现代码如下:
.directive('myAccess', ['authService', 'removeElement', function (authService, removeElement) {
return{
restrict: 'A',
link: function (scope, element, attributes) {
var hasAccess = false;
var allowedAccess = attributes.myAccess.split(" ");
for (i = 0; i < allowedAccess.length; i++) {
if (authService.userHasRole(allowedAccess[i])) {
hasAccess = true;
break;
}
}
if (!hasAccess) {
angular.forEach(element.children(), function (child) {
removeElement(child);
});
removeElement(element);
}
}
}
}]).constant('removeElement', function(element){
element && element.remove && element.remove();
});
这一办法是很简洁的,而我们在GUI上很巧妙的实现了用户授权. 一个潜在的问题是,如果UI的渲染器在你从后台获取用户角色之前就已经在运行了,那么该HTML中所有带上该指令的部分都会从html中被移除掉. 这对于我们而言不是个麻烦,因为我们会在登录完成之时就获取到了用户角色的详细信息。而如果这一问题对你而言是个问题的话,解决方案可以是这样:如果用户角色还没有获取到,就只是隐藏这些html元素,仅等到你获取到角色列表之后再按照授权0信息将它们移除掉. 同时还请注意不能因为有了一个GUI的访问控制,就省掉了后台固有的安全实现.
⑧ 访问控制技术的类型机制
访问控制可以分为两个层次:物理访问控制和逻辑访问控制。物理访问控制如符合标准规定的用户、设备、门、锁和安全环境等方面的要求,而逻辑访问控制则是在数据、应用、系统、网络和权限等层面进行实现的。对银行、证券等重要金融机构的网站,信息安全重点关注的是二者兼顾,物理访问控制则主要由其他类型的安全部门负责。 主要的访问控制类型有3种模式:自主访问控制(DAC)、强制访问控制(MAC)和基于角色访问控制(RBAC)。
1)自主访问控制
自主访问控制(Discretionary Access Control,DAC)是一种接入控制服务,通过执行基于系统实体身份及其到系统资源的接入授权。包括在文件,文件夹和共享资源中设置许可。用户有权对自身所创建的文件、数据表等访问对象进行访问,并可将其访问权授予其他用户或收回其访问权限。允许访问对象的属主制定针对该对象访问的控制策略,通常,可通过访问控制列表来限定针对客体可执行的操作。
①每个客体有一个所有者,可按照各自意愿将客体访问控制权限授予其他主体。
②各客体都拥有一个限定主体对其访问权限的访问控制列表(ACL)。
③每次访问时都以基于访问控制列表检查用户标志,实现对其访问权限控制。
④DAC的有效性依赖于资源的所有者对安全政策的正确理解和有效落实。
DAC提供了适合多种系统环境的灵活方便的数据访问方式,是应用最广泛的访问控制策略。然而,它所提供的安全性可被非法用户绕过,授权用户在获得访问某资源的权限后,可能传送给其他用户。主要是在自由访问策略中,用户获得文件访问后,若不限制对该文件信息的操作,即没有限制数据信息的分发。所以DAC提供的安全性相对较低,无法对系统资源提供严格保护。
2)强制访问控制
强制访问控制(MAC)是系统强制主体服从访问控制策略。是由系统对用户所创建的对象,按照规定的规则控制用户权限及操作对象的访问。主要特征是对所有主体及其所控制的进程、文件、段、设备等客体实施强制访问控制。在MAC中,每个用户及文件都被赋予一定的安全级别,只有系统管理员才可确定用户和组的访问权限,用户不能改变自身或任何客体的安全级别。系统通过比较用户和访问文件的安全级别,决定用户是否可以访问该文件。此外,MAC不允许通过进程生成共享文件,以通过共享文件将信息在进程中传递。MAC可通过使用敏感标签对所有用户和资源强制执行安全策略,一般采用3种方法:限制访问控制、过程控制和系统限制。MAC常用于多级安全军事系统,对专用或简单系统较有效,但对通用或大型系统并不太有效。
MAC的安全级别有多种定义方式,常用的分为4级:绝密级(Top Secret)、秘密级(Secret)、机密级(Confidential)和无级别级(Unclas sified),其中T>S>C>U。所有系统中的主体(用户,进程)和客体(文件,数据)都分配安全标签,以标识安全等级。
通常MAC与DAC结合使用,并实施一些附加的、更强的访问限制。一个主体只有通过自主与强制性访问限制检查后,才能访问其客体。用户可利用DAC来防范其他用户对自己客体的攻击,由于用户不能直接改变强制访问控制属性,所以强制访问控制提供了一个不可逾越的、更强的安全保护层,以防范偶然或故意地滥用DAC。
3)基于角色的访问控制
角色(Role)是一定数量的权限的集合。指完成一项任务必须访问的资源及相应操作权限的集合。角色作为一个用户与权限的代理层,表示为权限和用户的关系,所有的授权应该给予角色而不是直接给用户或用户组。
基于角色的访问控制(Role-Based Access Control,RBAC)是通过对角色的访问所进行的控制。使权限与角色相关联,用户通过成为适当角色的成员而得到其角色的权限。可极大地简化权限管理。为了完成某项工作创建角色,用户可依其责任和资格分派相应的角色,角色可依新需求和系统合并赋予新权限,而权限也可根据需要从某角色中收回。减小了授权管理的复杂性,降低管理开销,提高企业安全策略的灵活性。
RBAC模型的授权管理方法,主要有3种:
①根据任务需要定义具体不同的角色。
②为不同角色分配资源和操作权限。
③给一个用户组(Group,权限分配的单位与载体)指定一个角色。
RBAC支持三个着名的安全原则:最小权限原则、责任分离原则和数据抽象原则。前者可将其角色配置成完成任务所需要的最小权限集。第二个原则可通过调用相互独立互斥的角色共同完成特殊任务,如核对账目等。后者可通过权限的抽象控制一些操作,如财务操作可用借款、存款等抽象权限,而不用操作系统提供的典型的读、写和执行权限。这些原则需要通过RBAC各部件的具体配置才可实现。 访问控制机制是检测和防止系统未授权访问,并对保护资源所采取的各种措施。是在文件系统中广泛应用的安全防护方法,一般在操作系统的控制下,按照事先确定的规则决定是否允许主体访问客体,贯穿于系统全过程。
访问控制矩阵(Access Contro1 Matrix)是最初实现访问控制机制的概念模型,以二维矩阵规定主体和客体间的访问权限。其行表示主体的访问权限属性,列表示客体的访问权限属性,矩阵格表示所在行的主体对所在列的客体的访问授权,空格为未授权,Y为有操作授权。以确保系统操作按此矩阵授权进行访问。通过引用监控器协调客体对主体访问,实现认证与访问控制的分离。在实际应用中,对于较大系统,由于访问控制矩阵将变得非常大,其中许多空格,造成较大的存储空间浪费,因此,较少利用矩阵方式,主要采用以下2种方法。
1)访问控制列表
访问控制列表(Access Control List,ACL)是应用在路由器接口的指令列表,用于路由器利用源地址、目的地址、端口号等的特定指示条件对数据包的抉择。是以文件为中心建立访问权限表,表中记载了该文件的访问用户名和权隶属关系。利用ACL,容易判断出对特定客体的授权访问,可访问的主体和访问权限等。当将该客体的ACL置为空,可撤消特定客体的授权访问。
基于ACL的访问控制策略简单实用。在查询特定主体访问客体时,虽然需要遍历查询所有客体的ACL,耗费较多资源,但仍是一种成熟且有效的访问控制方法。许多通用的操作系统都使用ACL来提供该项服务。如Unix和VMS系统利用ACL的简略方式,以少量工作组的形式,而不许单个个体出现,可极大地缩减列表大小,增加系统效率。
2)能力关系表
能力关系表(Capabilities List)是以用户为中心建立访问权限表。与ACL相反,表中规定了该用户可访问的文件名及权限,利用此表可方便地查询一个主体的所有授权。相反,检索具有授权访问特定客体的所有主体,则需查遍所有主体的能力关系表。 通过介绍单点登入SSO的基本概念和优势,主要优点是,可集中存储用户身份信息,用户只需一次向服务器验证身份,即可使用多个系统的资源,无需再向各客户机验证身份,可提高网络用户的效率,减少网络操作的成本,增强网络安全性。根据登入的应用类型不同,可将SSO分为3种类型。
1)对桌面资源的统一访问管理
对桌面资源的访问管理,包括两个方面:
①登入Windows后统一访问Microsoft应用资源。Windows本身就是一个“SSO”系统。随着.NET技术的发展,“Microsoft SSO”将成为现实。通过Active Directory的用户组策略并结合SMS工具,可实现桌面策略的统一制定和统一管理。
②登入Windows后访问其他应用资源。根据Microsoft的软件策略,Windows并不主动提供与其他系统的直接连接。现在,已经有第三方产品提供上述功能,利用Active Directory存储其他应用的用户信息,间接实现对这些应用的SSO服务。
2)Web单点登入
由于Web技术体系架构便捷,对Web资源的统一访问管理易于实现。在目前的访问管理产品中,Web访问管理产品最为成熟。Web访问管理系统一般与企业信息门户结合使用,提供完整的Web SSO解决方案。
3)传统C/S 结构应用的统一访问管理
在传统C/S 结构应用上,实现管理前台的统一或统一入口是关键。采用Web客户端作为前台是企业最为常见的一种解决方案。
在后台集成方面,可以利用基于集成平台的安全服务组件或不基于集成平台的安全服务API,通过调用信息安全基础设施提供的访问管理服务,实现统一访问管理。
在不同的应用系统之间,同时传递身份认证和授权信息是传统C/S结构的统一访问管理系统面临的另一项任务。采用集成平台进行认证和授权信息的传递是当前发展的一种趋势。可对C/S结构应用的统一访问管理结合信息总线(EAI)平台建设一同进行。
⑨ RBAC中指定用户的角色可以分配多个吗
这种需求就是所谓的RBAC,即“基于角色的访问控制”。基本原理就是整个权限系统分四部分:用户(user)、角色(role)、节点(node)和访问列表(access);每个用户都归属于至少一个角色,而不同的角色只能访问特定的节点,角色与节点的这种对应关系保存在“访问列表(access)”中。每当用户进行一个操作访问一个节点(具体为某个模块的某个方法)时就去access表中检查他所属角色的权限,权限验证通过则进行该操作,否则给予无权限的提示。要使用RBAC系统一般来说需要项目是MVC结构的。详细内容可以自己在网上搜索相关资料。
⑩ 什么事访问控制访问控制包括哪几个要素
访问控制是几乎所有系统(包括计算机系统和非计算机系统)都需要用到的一种技术。访问控制是按用户身份及其所归属的某项定义组来限制用户对某些信息项的访问,或限制对某些控制功能的使用的一种技术。
访问控制包括服务器、目录、文件等。访问控制是给出一套方法,将系统中的所有功能标识出来,组织起来,托管起来,将所有的数据组织起来标识出来托管起来, 然后提供一个简单的唯一的接口,这个接口的一端是应用系统一端是权限引擎。
(10)基于角色的访问控制的基本原理扩展阅读
实现机制:访问控制的实现机制建立访问控制模型和实现访问控制都是抽象和复杂的行为,实现访问的控制不仅要保证授权用户使用的权限与其所拥有的权限对应,制止非授权用户的非授权行为;还要保证敏感信息的交叉感染。
为了便于讨论这一问题,我们以文件的访问控制为例对访问控制的实现做具体说明。通常用户访问信息资源(文件或是数据库),可能的行为有读、写和管理。为方便起见,我们用Read或是R表示读操作,Write或是W表示写操作,Own或是O表示管理操作。