1、第四章访问控制与防火墙,聂旭云 电子科技大学,2,4.1 访问控制,身份认证之后,就要为其提供服务,如何控制不同用户拥有不同的服务呢?这就是访问控制。 在网络安全环境中,访问控制能够限制和控制通过通信链路对主机系统和应用的访问。 为了达到这种控制,每个想获得访问的实体都必须经过鉴别或身份验证,这样才能根据个体来制定访问权利。 访问控制服务用于防止未授权用户非法使用系统资源。,3,4.1.1 访问控制概念,访问控制是通过某种途径显式地准许或限制访问能力及范围的一种方法。通过限制对关键资源的访问,防止非法用户的侵入或因为合法用户的不慎操作而造成的破坏,从而保证网络资源受控地、合法地使用,它是针对
2、越权使用资源的防御措施。 访问控制技术是建立在身份认证的基础上的 身份认证解决的是“你是谁,你是否真的是你所声称的身份” 访问控制技术解决的是“你能做什么,你有什么样的权限”这个问题。,访问控制原理: 系统资源的访问权限存放在授权数据库中; 通过一个参考监视器( Reference Monitor)监视用户对系统资源访问的行为; 依据授权数据库 的规则 ,确定是否允许访问操作,5,一个安全系统的逻辑模型,6,4.1.2 访问控制概念,访问控制系统一般包括以下几个实体: 主体(subject):发出访问指令、存取要求的主动方,通常可以是用户或用户的某个进程等。 客体(object):被访问的对象
3、,通常可以是被调用的程序、进程,要存取的数据、信息,要访问的文件、系统或各种网络设备、设施等资源。 安全访问策略:一套规则,用以确定一个主体是否对客体拥有访问能力。,7,访问控制概念原理,访问控制的目的: 限制主体对访问客体的访问权限,从而使计算机系统资源能被在合法范围内使用; 决定用户能做什么,也决定代表一定用户利益的程序可以做什么。 访问控制机制可以限制对关键资源的访问,防止非法用户进入系统及合法用户对系统资源的非法使用。,主流访问控制技术,目前的主流访问控制技术有: 自主访问控制(DAC) 强制访问控制(MAC) 基于角色的访问控制(RBAC) 自主访问控制和强制访问控制,都是由主体和访
4、问权限直接发生关系,主要针对用户个人授予权限。,9,访问控制实现方法,较为常见的访问控制的实现方法主要有以下四种:访问控制矩阵、访问能力表、访问控制表和授权关系表。,10,访问控制矩阵,从数学角度看,访问控制可以很自然的表示成一个矩阵的形式:行表示客体(各种资源),列表示主体(通常为用户),行和列的交叉点表示某个主体对某个客体的访问权限(比如读、写、执行、修改、删除等)。,11,访问控制矩阵(续),12,访问控制矩阵(续),对账户的访问权限展示了访问可以被应用程序的抽象操作所控制。 查询(inquiry)操作与读操作类似,它只检索数据而并不改动数据。 借(debit)操作和贷(credit)操
5、作与写操作类似,要对原始数据进行改动,都会涉及读原先账户平衡信息、改动并重写。实现这两种操作的应用程序需要有对账户数据的读、写权限,而用户并不允许直接对数据进行读写,他们只能通过已经实现借、贷操作的应用程序来间接操作数据。,13,访问能力表,。为了减轻系统开销与浪费,我们可以从主体(行)出发,表达矩阵某一行的信息,这就是访问能力表(capability)。也可以从客体(列)出发,表达矩阵某一列的信息,这便成了访问控制表(access control list)。 能力(capability)是受一定机制保护的客体标志,标记了客体以及主体(访问者)对客体的访问权限。只有当一个主体对某个客体拥有访
6、问能力的时候,它才能访问这个客体。,14,访问能力表(续),用文件的访问能力表的表示方法前例进行表示,15,访问能力表(续),在访问能力表中,很容易获得一个主体所授权可以访问的客体及其权限,但如果要求获得对某一特定客体有特定权限的所有主体就比较困难。 在一个安全系统中,正是客体本身需要得到可靠的保护,访问控制服务也应该能够控制可访问某一客体的主体集合,能够授予或取消主体的访问权限,于是出现了以客体为出发点的实现方式ACL(访问控制表), 现代的操作系统都大体上采用基于ACL的方法。,16,访问控制表,用文件的访问控制表的表示方法对前例进行表示,17,访问控制表(续),ACL的优点:表述直观、易
7、于理解,而且比较容易查出对某一特定资源拥有访问权限的所有用户,有效地实施授权管理。 ACL的缺点: ACL需要对每个资源指定可以访问的用户或组以及相应的权限。访问控制的授权管理费力而繁琐,且容易出错。 单纯使用ACL,不易实现最小权限原则及复杂的安全政策。,18,授权关系表,基于ACL和基于访问能力表的方法都有自身的不足与优势,下面我们来看另一种方法授权关系表(authorization relations)。每一行(或称一个元组)表示了主体和客体的一个权限关系,因此Jack访问file1的权限关系需要3行。如果这张表按客体进行排序的话,我们就可以拥有访问能力表的优势,如果按主体进行排序的话,
8、那我们又拥有了访问控制表的好处。这种实现方式也特别适合采用关系数据库。,19,授权关系表,用文件的授权关系表的表示方法对前例的一部分进行表示,20,4.1.2 自主访问控制,自主访问控制DAC(discretionary access control)是目前计算机系统中实现最多的访问控制机制。 DAC是在确认主体身份及所属组的基础上,根据访问者的身份和授权来决定访问模式,对访问进行限定的一种控制策略。 所谓自主,是指具有授予某种访问权力的主体(用户)能够自己决定是否将访问控制权限的某个子集授予其他的主体或从其他主体那里收回他所授予的访问权限。 其基本思想是:允许某个主体显式地指定其他主体对该主
9、体所拥有的信息资源是否可以访问以及可执行的访问类型。DAC将访问规则存储在访问控制矩阵中,通过访问控制矩阵可以很清楚地了解DAC。,21,DAC的优缺点,DAC的优点是其自主性为用户提供了极大的灵活性,从而使之适合于许多系统和应用。 由于这种自主性,在DAC中,信息总是可以从一个实体流向另一个实体,即使对于高度机密的信息也是如此,因此自主访问控制的安全级别较低。另外,由于同一用户对不同的客体有不同的存取权限,不同的用户对同一客体有不同的存取权限,用户、权限、客体间的授权管理复杂。,22,DAC的局限性,DAC将赋予或取消访问权限的一部分权力留给用户个人,管理员难以确定哪些用户对那些资源有访问权
10、限,不利于实现统一的全局访问控制。 在许多组织中,用户对他所能访问的资源并不具有所有权,组织本身才是系统中资源的真正所有者。 各组织一般希望访问控制与授权机制的实现结果能与组织内部的规章制度相一致,并且由管理部门统一实施访问控制,不允许用户自主地处理。显然DAC已不能适应这些需求。,23,4.1.3 强制访问控制,强制访问控制MAC(mandatory access control)依据主体和客体的安全级别来决定主体是否有对客体的访问权。 最典型的例子是Bell and LaPadula提出的BLP模型。 BLP模型以军事部门的安全控制作为其现实基础,恰当地体现了军事部门的安全策略,然后用到计
11、算机的安全设计中去。它侧重于信息的保密性。 BLP模型已经成为许多系统或原型的实现的理论基础。,24,BLP模型,在BLP模型中,所有的主体和客体都有一个安全标签,它只能由安全管理员赋值,普通用户不能改变。这个安全标签就是安全级,客体的安全级表现了客体中所含信息的敏感程度,而主体的安全级别则反映了主体对敏感信息的可信程度。 在一般情况下,安全级是线性有序的。用标志主体或客体的安全标签,当主体访问客体时,需满足如下两条规则:(1)简单安全属性:如果主体s能够读客体o,则(s)(o)(2)保密安全属性:如果主体(s)能够写客体o,则(s)(o),25,BLP模型(续),BLP模型中,主体按照“向下
12、读,向上写”的原则访问客体,即只有当主体的密级不小于客体的密级并且主体的范围包含客体的范围时,主体才能读取客体中的数据;只有当主体的密级不大于客体的密级,并且主体的范围包括客体的范围时,主体才能向客体中写数据。 BLP模型保证了客体的高度安全性,它的最大优点是:它使得系统中的信息流程为单向不可逆的,保证了信息流总是低安全级别的实体流向高安全级别的实体,因此,MAC能有效地阻止特洛伊木马。,26,MAC Information Flow,Bell-LaPadula的例子,28,MAC策略的优缺点,由于MAC策略是通过梯度安全标签实现信息的单向流通,从而很好地阻止特洛伊木马的泄漏,也因此而避免了在
13、自主访问控制中的敏感信息泄漏的情况。 缺点是限制了高安全级别用户向非敏感客体写数据的合理要求,而且由高安全级别的主体拥有的数据永远不能被低安全级别的主体访问,降低了系统的可用性。BLP模型的“向上写”的策略使得低安全级别的主体篡改敏感数据成为可能,破坏了系统的数据完整性。另外强制访问控制MAC由于过于偏重保密性,造成实现工作量太大,管理不便,灵活性差。,4.1.4 基于角色的策略,基于角色的访问控制 (role-based policies,RBAC) 基本思路:管理员创建角色,给角色分配权限,给角色分配用户,角色所属的用户可以执行相应的权限,29,30,RBAC的安全原则,3条安全原则: 最
14、小权限: 只把必须的权限分配给角色 责任分离(separation of duties) 多个互斥的角色合作完成重要工作 数据抽象: 可以定义抽象的权限,而不仅仅是OS中的读、写、执行等,31,NIST RBAC参考模型,Proposed by NIST in 2000 基本RBAC(Core RBAC) 分级RBAC(Hierarchical RBAC) 静态责任分离(Static Separation of Duty Relations) 动态责任分离(Dynamic Separation of Duty relations),32,基本基本 RBAC,包括五个基本数据元素:用户users
15、(USERS)、角色roles(ROLES)、目标objects(OBS)、操作operations(OPS)、许可权permissions(PRMS),33,基本RBAC,USERS: 可以是人、设备、进程 Permission:是对被保护目标执行OPS的许可 UA: user assignment relations PA :permission assignment relations Session_roles:session激活的角色 User_sessions:与用户相联系的会话集合,34,等级 RBAC,角色的结构化分层是反映一个组织的授权和责任的自然方式。 定义了角色的继承关系
16、 Role r1 “inherits” role r2,角色r2的权限同样是r1的权限。,35,有约束的RBAC,增加了责任分离,用于解决利益的冲突,防止用户超越权限 静态责任分离(Static Separation of Duty Relations) 动态责任分离(Dynamic Separation of Duty relations),36,静态责任分离,对用户分配的角色 进行约束,也就是当用户被分配给一个角色时,禁止其成为第二个角色。,37,动态责任分离,SSD直接在用户的许可空间进行约束DSD通过对用户会话过程进行约束 对最小特权提供支持:在不同的时间拥有不同的权限,38,RBAC
17、的优势,便于授权管理,如系统管理员需要修改系统设置等内容时,必须有几个不同角色的用户到场方能操作,从而保证了安全性。 便于根据工作需要分级,如企业财务部门与非财力部门的员工对企业财务的访问权就可由财务人员这个角色来区分。 便于赋于最小特权,如即使用户被赋于高级身份时也未必一定要使用,以便减少损失。只有必要时方能拥有特权。 便于任务分担,不同的角色完成不同的任务。 便于文件分级管理,文件本身也可分为不同的角色,如信件、账单等,由不同角色的用户拥有。,其他访问控制策略,基于任务(Task-Based)的访问控制 基于属性的访问控制 使用控制 信任管理(Trust Management) 数字版权管理(DRM),39,