访问控制一

访问控制基础知识

访问控制基本概念

(1)主体:主体是访问操作中的主动实体,包括所有能够发起访问操作的实体,如人、进程、设备等。主体是访问的发起者,并造成了信息的流动或者系统状态的改变。

(2)客体:客体是访问操作中的被动实体,是包含信息或接受信息的被动接受访问的资源,如文件、设备、信号量、网络节点等。客体在信息流动中是处于主体的作用之下的,对客体的访问意味着对其中所包含信息的访问。

(3)动作:动作是信息在主体和客体之间流动的交互方式,有的文献称为“访问模式”。常见的动作主要包括读、写、读/写和执行等。

(4)权限(访问权限):是否允许主体(s)对客体(o)执行某种动作(a),如果主体可以访问,则为允许(pass);否则为禁止(deny)。权限的概念本质上描述的是一种对主体是否拥有许可的判定,用函数F可以表示为F(s, o, a)={ pass/deny}或者F(s, o, a)={1/0}。例如,在Windows系统中,具有管理员权限的用户Alice(主体)对注册表(客体)执行修改(动作)的操作,访问权限= pass;没有管理员权限的来宾用户Guest对注册表执行修改的操作,访问权限= deny。

(5)策略(访问策略、访问控制策略):是主体对客体的访问规则集,这个规则集直接定义了主体对客体的动作行为和客体对主体的条件约束。策略体现了一种授权行为,也就是允许某个主体可以被授予一组特权或者(与特权对应的)安全属性的行为。

(6)标识:在一定范围内唯一表示一个实体身份的符号。在访问控制中主要使用的标识可以分为主体标识、客体标识、动作标识、属性标识等。访问控制对信息资源实施保护的能力来自于要明确地定义“主体对客体执行某种动作”的整个访问操作过程,并对该过程通过某种途径施加限制,因此,访问控制机制能否正确实施,能否满足既定的安全目标,与主体、客体、动作等具体标识方法有密切的关系,不同的标识方法也有各自的优缺点和侧重点,这些都会对访问控制策略和具体的实现技术产生重要的影响。

(7)授权:授权是指将访问权限授予一个主体的行为。该定义至少包含了2个层次的含义:①断言一个主体可以被授予一组特权或者安全属性的行为;②在确定主体拥有对应的访问权限之后,允许主体访问资源的操作行为。第一个层次的含义描述的是一种授权管理行为,通常需要安全管理员的参与;而第二层含义描述的是一种自动化的访问控制操作行为,是由计算机系统自动实施的。

(8)访问控制:指在鉴别用户的合法身份后,通过某种途径显式地准许或限制用户对数据信息的访问能力及范围,阻止未经授权的资源访问,包括阻止以未经授权的方式使用资源。当主体提出资源访问请求时,系统必须先要确认是合法的主体,而不是假冒的欺骗者,也就是对主体进行鉴别(也称认证)的过程。主体通过鉴别以后,就会获得一个主体标识用来区别其身份,此时系统才能根据预设的访问控制策略来判定主体是否拥有权限对客体执行访问动作。该定义说明,授权管理过程往往发生在访问控制之前,前者是后者的执行依据。

(9)授权管理:从访问控制的定义中可以明确地看到,在实际应用中授权管理和访问控制发生的时间存在显著的差异。因此,在实际应用中通常需要明确地区分授权管理和访问控制。而在学术研究中,只有少数的学者明确地区分了授权管理和访问控制这2个概念,两者在大多数情况下是被混用的,也有学者将授权管理过程简称为“授权”,这实际上是对完整授权概念的缩小。

对于访问控制和授权管理我的理解是,授权侧重于强调用户拥有什么样访问权限,这种权限是系统预先设定的, 并不关心用户是否发起访问。访问控制是当用户发起访问后,通过鉴别用户的身份,控制用户操作数据信息的访问能力和范围。

访问矩阵

object1object2object3
subject1write or read
subject2write
subject3read

主体是访问操作中的主动实体;客体是访问操作中的被动实体;访问矩阵的每行对应一个主体,每列对应一个客体,每个单元格描述了主体可以对客体执行的访问操作,上面表中给出一个访问矩阵的例子。

访问矩阵是计算机安全中一个基本的安全模型,其形式很简单,表达能力却十分强大。

但实际系统却很少直接使用访问矩阵,这主要有2个原因:(1)实际系统中主体和客体的数目比较庞大,这可能造成访问矩阵的规模很大,耗费大量的存储空间;(2)访问矩阵通常是稀疏的,直接存储矩阵本身是不经济的,因为一个给定主体通常只能访问少量的客体,一个给定的客体通常只能被少数几个主体访问。

常见的访问矩阵

访问控制列表(ACL,Access Control List)、能力列表(CL,Capabilities List)。

ACL:是每个客体有一串允许访问主体。这种方法相当于按列存储访问矩阵。
优点:很容易地查看所有能够访问一个客体的主体,也可以容易地撤销所有主体对客体的访问权限。
缺点:从主体的角度实施权限管理是十分困难(因为要确定一个主体的所有访问权限,就需要遍历系统中所有的ACL,而很多系统ACL是随着客体在系统中分布存储的)

CL:是每个主体有一串可以访问的客体和对应的访问操作。是对主体访问能力的描述。按照CL的方法,每个主体关联一个CL,CL列出了该主体允许访问的所有客体及对应的访问操作。这种方式相当于按照行的方式存储访问矩阵。
优点:可以很容易地查看一个主体拥有的所有访问权限。
缺点:要在CL中确定可以访问指定客体的所有主体也是困难的。

类型ACLCL
授权方面访问时授权登陆(鉴别后)授权
保存位置客体(花名册)主体(工作证)
(针对客体)查看访问权限容易
访问权限传递困难容易
使用环境集中式操作系统分布式系统

有学者通过研究提出,ACL方法和CL方法可以结合使用。在分布式系统中,这种混合的方法可以避免重复的用户认证。(cl->acl)
主要的原理是:由系统中的服务提供对客体的管理,用户如果要访问客体,将在通过认证后获得一个CL,通过使用该CL中描述的主体允许访问服务的能力来访问系统中的服务,服务则可以依据ACL进一步实施细粒度的访问控制。

传统访问控制

自主访问控制

自主访问控制(DAC,Discretionary Access Control)
又称为随意(或任选)访问控制,是一种最常见的访问控制方法。DAC是在确认主体身份及所属组的基础上,根据访问者的身份和授权来决定访问模式、对访问进行限定的一种控制策略。DAC策略允许对客体拥有控制权的主体明确地指定其他主体对该客体的访问权限。

自主访问控制可以进行权限的传递,根据传递东西的类型不同,分为受限自主访问控制和自由的自主访问控制。
受限自主访问控制允许对客体拥有控制权的主体把对客体的访问权限授予其他主体,但不能把控制权授予其他主体。自由的自主访问控制允许对客体拥有控制权的主体把控制权进一步授予其他主体。
与受限自主访问控制相比,自由的自主访问控制策略具有极大的灵活性。
2个重要的缺陷:权限传播可控性差、不能抵抗木马攻击。

特点:

  1. L授权的实施主体自主负责赋予和回收其他主体对客体资源的访问权限。
  2. ACL是DAC中常用的一种安全机制,系统安全管理员通过维护ACL来控制用户访问有关数据

缺点:

  1. 主题的权限太大,无意间就可能造成泄露信息
  2. 不能防备特洛伊木马的攻击访问控制表
  3. 当用户数量多、管理数据量大时,ACL就会很庞大不易维护。

如图设主体A是文件f的拥有者,并且A不希望主体B获得文件f中的信息。主体B为了得到文件f中的信息,创建木马程序P,并植入到系统中提供给A使用。A为了使用程序P来管理文件f,就会把对文件f的读权限授予木马程序P。同时,主体B创建文件f ',并且授予木马程序P对f '的写权限,这样当A运行程序P时,P可以从f中读取信息并且成功写入到f’中,B就可以通过读f '读取到文件f中的内容。在这里插入图片描述

强制访问控制

自主访问控制虽然具有很大的灵活性,并易于理解、使用,但由于其自身存在的重要缺陷难以保证安全,很难满足高安全等级的要求。因此,强制访问控制(MAC,Mandatory
Access Control)应运而生。

强制访问控制依据主体和客体的安全级别来决定主体是否有对客体的访问权。强制访问控制本质上是基于规则的访问控制,系统中的每个进程、每个文件、每个 IPC 客体(消息队列、信号量集合和共享存储区)都被赋予了相应的安全属性,这些安全属性是不能改变的,它由管理部门(如安全管理员)或由操作系统自动地按照严格的规则来设置,不像自主访问控制那样由用户或它们的程序直接或间接地修改。
强制访问控制最典型的例子是Bell 和 La Padula提出的BLP模型。在BLP模型中,主体包括所有能够发起访问操作的实体,如操作系统进程等;客体是被动接受访问的资源,如文件。主体对客体的访问模式包括读、写、读写和执行。BLP模型赋予每个客体一个安全级别(Security Level),赋予每个主体一个安全通行证(Security Clearance),两者通称为安全标签。特点:上写,下读
Biba模型(Biba,1977)在研究BLP模型特性时发现,BLP模型只解决了信息的保密问题,在完整性定义方面存在一定缺陷。BLP模型没有采取有效的措施来制约对信息的非授权修改,因此,使非法、越权篡改成为可能。考虑到上述因素,Biba模型模仿BLP模型的信息保密性级别,定义了信息完整性级别,在信息流向的定义方面不允许从级别低的进程到级别高的进程,也就是说用户只能向比自己安全级别低的客体写入信息,从而防止非法用户创建安全级别高的客体信息,避免越权、篡改等行为的产生。Biba模型可同时针对有层次的安全级别和无层次的安全种类。

模型BLP模型Biba模型
特点上写,下读禁止向上“写”,没有下“读”
优点解决了信息的保密问题信息完整性高
缺点完整性缺陷,易非法、越权篡改保密性低

强制访问控制和自主访问控制总结

模型强制访问控制自主访问控制
优点管理集中,安全性高;通过信息的单向流动来防止信息扩散,可以有效抵御带有特洛伊木马的应用程序对系统保密性的攻击较高的访问效率和灵活度
缺点安全级别间强制性太强,权限的变更非常不方便,很多情况下主体或客体安全级别的划分与现实要求无法一致,造成系统管理不便权限传播可控性差,信息容易泄露;授权管理繁琐,易产生安全漏洞和其他的技术问题
使用场景国防领域和政府机构授权比较复杂的场景

基于角色的访问控制

实现上,MAC和DAC通常为每个用户赋予对客体的访问权限规则集,考虑到管理的方便,在这一过程中还经常将具有相同职能的用户聚为组,然后再为每个组分配许可权。用户自主地把自己所拥有的客体的访问权限授予其他用户的做法,其优点是显而易见的,但是,如果企业的组织结构或系统的安全需求处于变化的过程中时,就需要进行大量繁琐的授权变动,系统管理员的工作将变得非常繁重,且容易发生错误并造成一些意想不到的安全漏洞。考虑到上述因素,新的机制被引入。

基于角色的访问控制(RBAC,Role Based Access Control)通过引入角色的概念,把对客体对象的访问权限授予角色而不是直接授予用户,然后为用户分配角色,用户通过角色获得访问权限。RBAC模型通过将权限与角色相关联,极大地简化了权限的管理。迄今为止,已经讨论和发展了4种RBAC模型,图表示了它们之间的相互关系。其中,RBAC0为基本模型,RBAC1为角色分层模型,RBAC2为角色约束模型,RBAC3为统一模型。
在这里插入图片描述

RBAC0

RBAC0是基本模型,它由四个基本要素组成:用户、决赛角色、权限和会话。绘会话是用户激活角色的通道,用户只有通过会话才能激活角色。一个用户可以进行几次会话,在每次会话中激活不同的角色,这样用户将具有激活的角色所具有的各种权限。用户必须通过会话才能激活角色。

在这里插入图片描述
由于一个会话激活的角色可能只是用户的全部角色的一个子集,因此这种关于角色和会话的设置带来的好处是容易实施最小特权原则(Least-Privilege Principle)。所谓最小特权原则是指将超级用户的所有特权分解成一组细粒度的特权子集,每个子集对应不同的“角色”,分别赋予不同的用户,每个用户仅拥有完成其工作所必须的最小特权,避免了超级用户的误操作或其身份被假冒后而产生的安全隐患。

RBAC1

RBAC1是在RBAC0的基础上加入了继承的概念,举个例再来说,医生继承了护士的角色,他不仅拥有护士的权限还拥有自己本身的权限。

在这里插入图片描述

RBAC2

RBAC2除了继承RBAC0的原有特征外,还引入了约束(Constraints)的概念。约束是角色之间以及角色与权限之间的一种限制关系。在绝大多数组织中,无论它是否具有角色继承的层次关系,约束机制都是必不可少的。

最明显的例子是“互斥角色”,类似于下面这种情况:一个公司的采购员和出纳员虽然都不算是高层次的角色,但是任何一个公司都绝不会允许某个人员同时担任这2个角色,因为很显然,这种工作安排必然很容易导致财务欺诈行为的发生。因此,对于一个大型的系统而言,很有必要增加角色约束机制。

RBAC2 中定义了不同的约束规则来对模型中的各种关系进行限制,最基本的约束主要如下。

  1. 互斥角色(Mutually Exclusive Roles):针对互斥角色的约束主要包括角色静态互斥约束和角色动态互斥约束。角色静态互斥是限制某些角色不能同时分配给一个用户;角色动态互斥是一个用户开始会话时,不能同时激活某些角色,否则将会违背本组织的安全策略。
  2. 基数约束(Cardinality Constraints):该约束可以限制一个角色可以分配的最大和最小用户数。例如,一个单位的最高领导只能为一人,中层干部的数量也是有限的,一旦分配给这些角色的用户数超过了角色基数的限制,就不再接受新配给的用户了。
  3. 先决角色(Prerequisite Roles):用户为获得某些高等级角色必须首先拥有低等级角色,同理,某一角色必须具备了某些权限才能获得更高的权限。例如,总会计师必须首先是会计师,要写文件必须首先拥有读文件的权限。
  4. 会话约束(Constraints in Session):该约束限制仅在特定会话中才允许激活某个角色,还可以限制一个用户在同一时间内可以激活的会话的数量,相应地,对该用户所激活的会话中所分配权限的数量也可以施加限制。
  5. 等级约束(Hierarchy Constraints):该约束可以限制角色的层次不能超过多少层。

RBAC3

统一模型是在RBAC0的基础之上加入了角色继承和约束,因此,它实际上是把RBAC1和RBAC2结合在了一起,既提供角色间的继承关系,又提供角色之间以及角色与权限之间的限制关系。
在这里插入图片描述

总结

综上所述,RBAC从控制主体的角度出发,根据管理中相对稳定的职权和责任来划分角色,将访问权限与角色相联系,这点与传统的MAC和DAC将权限直接授予用户的方式不同;通过给用户分配合适的角色,让用户与访问权限相联系。角色成为访问控制中访问主体和受控对象之间的一座桥梁。与其他模型相比,RBAC是面向企业实施的一种有效的访问控制方式,具有灵活性、方便性和安全性的特点,目前在大型企业系统的权限管理中成功得到了广泛的应用。

RBAC模型的安全性在于角色由系统管理员定义,角色成员的增减也只能由系统管理员来执行,即只有系统管理员有权定义和分配角色。用户与客体无直接联系,只有通过角色才能享有该角色所对应的权限,从而访问相应的客体。因此,用户不能自主地将访问权限授给别的用户,这是RBAC与MAC相似的特性,也是RBAC与DAC的根本区别所在。RBAC与MAC的区别在于:MAC是基于多级安全需求的,而RBAC则不是,且RBAC的权限控制更为灵活,可以更改角色的权限集合。RBAC本质上是一种更为灵活的强制访问控制机制,因此兼具较好的安全性和灵活性。

参考文献:网络安全之访问控制(https://www.sohu.com/a/255057665_653604)

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值