信息安全概论-访问控制什么是访问控制AccessControl主体(subject):访问的发起者发起者是试图访问某个目标的用户或者是用户行为的代理。必须控制它对客体的访问。主体通常为进程,程序或用户。客体(Object):接收其他实体访问的被动实体。可供访问的各种软硬件资源。控制策略主体对客体的访问规则集,这个规则集直接定义了主体可以的作用行为和客体对主体的约束条件。是主体对客体的操作行为集和约束条件集。体现为一种授权行为。记录谁可以访问谁。访问控制策略任何访问控制策略最终可被模型化为访问矩阵形式。每一行:用户每一列:目标矩阵元素:相应的用户对目标的访问许可。访问控制关系图多级信息安全系统将敏感信息与通常资源分开隔离的系统。通常存在两种有层次安全级别。目标按敏感性划分为不同密级:绝密topsecret、秘密secret、机密confidential、限制restricted、无密级unclassified。无层次安全级别。访问控制过程首先对合法用户进行验证。(认证)然后对选用控制策略。(控制策略的具体实现)最后对非法用户或越权操作进行审计。(审计)认证包括主体对客体的识别认证与客体对主体的检验认证。身份认证。控制策略具体实现规则集设定方法。允许授权用户、限制非法用户。保护敏感信息。禁止越权访问。审计操作日志。记录用户对系统的关键操作。威慑。访问控制在安全操作系统领域中,访问控制一般都涉及自主访问控制(DiscretionaryAccessControl,DAC)强制访问控制(MandatoryAccessControl,MAC)两种形式安全模型安全模型就是对安全策略所表达的安全需求的简单、抽象和无歧义的描述,它为安全策略和它的实现机制之间的关联提供了一种框架。安全模型描述了对某个安全策略需要用哪种机制来满足;而模型的实现则描述了如何把特定的机制应用于系统中,从而实现某一特定安全策略所需的安全保护。安全模型的特点能否成功地获得高安全级别的系统,取决于对安全控制机制的设计和实施投入多少精力。但是如果对系统的安全需求了解的不清楚,即使运用最好的软件技术,投入最大的精力,也很难达到安全要求的目的。安全模型的目的就在于明确地表达这些需求,为设计开发安全系统提供方针。安全模型有以下4个特点:它是精确的、无歧义的;它是简易和抽象的,所以容易理解;它是一般性的:只涉及安全性质,而不过度地牵扯系统的功能或其实现;它是安全策略的明显表现。安全模型一般分为两种:非形式化安全模型仅模拟系统的安全功能;形式化安全模型则使用数学模型,精确地描述安全性及其在系统中使用的情况。访问控制准则在安全操作系统领域中,访问控制一般都涉及自主访问控制(DiscretionaryAccessControl,DAC)强制访问控制(MandatoryAccessControl,MAC)两种形式自主访问控制自主访问控制是最常用的一类访问控制机制,用来决定一个用户是否有权访问一些特定客体的一种访问约束机制。在自主访问控制机制下,文件的拥有者可以按照自己的意愿精确指定系统中的其他用户对其文件的访问权。亦即使用自主访问控制机制,一个用户可以自主地说明他所拥有的资源允许系统中哪些用户以何种权限进行共享。从这种意义上讲,是“自主”的。另外自主也指对其他具有授予某种访问权力的用户能够自主地(可能是间接的)将访问权或访问权的某个子集授予另外的用户。强制访问控制MAC在强制访问控制机制下,系统中的每个进程、每个文件、每个IPC客体(消息队列、信号量集合和共享存贮区)都被赋予了相应的安全属性,这些安全属性是不能改变的,它由管理部门(如安全管理员)或由操作系统自动地按照严格的规则来设置,不像访问控制表那样由用户或他们的程序直接或间接地修改。当一进程访问一个客体(如文件)时,调用强制访问控制机制,根据进程的安全属性和访问方式,比较进程的安全属性和客体的安全属性,从而确定是否允许进程对客体的访问。代表用户的进程不能改变自身的或任何客体的安全属性,包括不能改变属于用户的客体的安全属性,而且进程也不能通过授予其他用户客体存取权限简单地实现客体共享。如果系统判定拥有某一安全属性的主体不能访问某个客体,那么任何人(包括客体的拥有者)也不能使它访问该客体。从这种意义上讲,是“强制”的。强制访问控制和自主访问控制强制访问控制和自主访问控制是两种不同类型的访问控制机制,它们常结合起来使用。仅当主体能够同时通过自主访问控制和强制访问控制检查时,它才能访问一个客体。用户使用自主访问控制防止其他用户非法入侵自己的文件,强制访问控制则作为更强有力的安全保护方式,使用户不能通过意外事件和有意识的误操作逃避安全控制。因此强制访问控制用于将系统中的信息分密级和类进行管理,适用于政府部门、军事和金融等领域。访问控制模型从访问控制的角度出发,描述安全系统,建立安全模型的方法。一般包括主体、客体、以及为识别和验证这些实体的子系统和控制实体间的访问的监视器。访问控制模型自主访问控制模型。(DAC)强制访问控制模型。(MAC)基于角色的访问控制模型。(RBAC)基于任务的访问控制模型。(TBAC)基于对象的访问控制模型。(OBAC)信息流模型。自主访问控制(DAC)根据自主访问控制策略建立的一种模型。允许合法用户以用户或用户组的身份访问策略规定的客体。阻止非授权用户访问客体。某些客体还可以自主的把自己所拥有的客体访问权授予其它用户。任意访问控制。自主访问控制(DAC)访问控制表(ACL)是DAC中通常采用的一种安全机制。ACL是带有访问权限的矩阵,这些访问权是授予主体访问某一客体的。安全管理员通过维护ACL控制用户访问企业数据。对每一个受保护的资源,ACL对应一个个人用户列表或由个人用户构成的组列表,表中规定了相应的访问模式。DAC的主要特征体现在主体可以自主地把自己所拥有客体的访问权限授予其它主体或者从其它主体收回所授予的权限,访问通常基于访问控制表(ACL)。访问控制的粒度是单个用户。DAC的缺点在移动过程中其访问权限关系会被改变。如用户A可将其对目标O的访问权限传递给用户B,从而使不具备对O访问权限的B可访问O。当用户数量多、管理数据量大时,由于访问控制的粒度是单个用户,ACL会很庞大。当组织内的人员发生能变化(升迁、换岗、招聘、离职)、工作职能发生变化(新增业务)时,ACL的修改变得异常困难。采用ACL机制管理授权处于一个较低级的层次,管理复杂、代价高以至易于出错。基于行的自主访问控制是在每个主体上都附加一个该主体可访问的客体的明细表。权限字(能力):主体对客体具有特定的不可伪造的标志。为防止权限字的不断扩散,可在传递权限字副本时移去其中的转移权限。基于列的访问控制指按客体附加一份可访问它的主体的明细表。保护位方式:UNIX采用;只有客体拥有者能改变客体保护位(root除外)。一个用户在某个时刻只能属于一个活动的用户组。存取控制表(ACL)自主访问控制的访问许可等级型拥有型自由型等级型将对客体存取控制表的修改能力划分成等级,控制关系构成一个树型结构。系统管理员的等级为等级树的根,根一级具有修改所有客体存取控制表的能力,并且具有向任意一个主体分配这种修改权的能力。在树中的最低级的主体不再具有访问许可,也就是说他们对相应的客体的存取控制表不再具有修改权。有访问许可的主体(即有能力修改客体的存取控制表),可以对自己授与任何访问模式的访问权。拥有型对每个客体设立一个拥有者(通常是该客体的生成者)。只有拥有者才是对客体有修改权的唯一主体。拥有者对其拥有的客体具有全部控制权。拥有者无权将其对客体的控制权分配给其它主体。客体拥有者在任何时候都可以改变其所属客体的存取控制表,并可以对其它主体授予或者撤消其对客体的任何一种访问模式。自由型一个客体的生成者可以对任何一个主体分配对它拥有的客体的访问控制权,即对客体的存取控制表有修改权,并且还可使其对它主体也具有分配这种权力的能力。在这种系统中,不存在“拥有者”概念。自主访问控制访问模式的应用Unix,WindowsNT,Linux的文件系统广泛应用,对文件设置的访问模式有以下几种:读拷贝(read-copy)写删除(write-delete)执行(execute)Null(无效)这种模式表示,主体对客体不具有任何访问权。在存取控制表中用这种模式可以排斥某个特定的主体。强制访问控制(MAC)系统对所有主体及其所控制的客体(例如:进程、文件、段、设备)实施强制访问控制。为这些主体及客体指定敏感标记,这些标记是等级分类和非等级类别的组合,它们是实施强制访问控制的依据。系统根据主体和客体的敏感标记来决定访问模式。如:绝密级,秘密级,机密级,无密级。MAC通过梯度安全标签实现单向信息流通模式。特点强制性当一进程访问一个客体(如文件)时,调用强制访问控制机制,根据进程的安全属性和访问方式,比较进程的安全属性和客体的安全属性,从而确定是否允许进程对客体的访问。代表用户的进程不能改变自身的或任何客体的安全属性,包括不能改变属于用户的客体的安全属性,而且进程也不能通过授予其他用户客体存取权限简单地实现客体共享。如果系统判定拥有某一安全属性的主体不能访问某个客体,那么任何人(包括客体的拥有者)也不能使它访问该客体。从这种意义上讲,是“强制”的。限制性在强制访问控制机制下,系统中的每个进程、每个文件、每个IPC客体(消息队列、信号量集合和共享存贮区)都被赋予了相应的安全属性,这些安全属性是不能改变的,它由管理部门(如安全管理员)或由操作系统自动地按照严格的规则来设置,不像访问控制表那样由用户或他们的程序直接或间接地修改。主体对客体的访问方式下读:用户级别大于文件级别的读操作;上写:用户级别低于文件级别的写操作;下写:用户级别大于文件级别的写操作;上读:用户级别低于文件级别的读操作;强制访问控制模型Lattice模型。Bell-LaPadula模型(BPLModel)。Biba模型。Lattice模型每个资源与用户都服从于一个安全级别。主体级别高于客体级别才可以访问。适用于需要对信息资源进行明显分类的系统。BPL模型信息保密安全模型。维护系统的保密性,有效防止信息泄露。控制原则:无上读。无下写。BPL模型缺点忽略了完整性。存在越权篡改。分布式操作。关键服务进程。Biba模型信息完整性模型。维护系统信息的完整性,有效防止信息篡改。控制原则:无上写。无下读。Biba模型缺点保密性差。基于角色访问控制(RBAC)兼有基于身份和基于规则的策略特征。可看作基于组的策略的变形,一个角色对应一个组。例:银行业务系统中用户多种角色优点:对于非专业的管理人员,容易制定安全策略;容易被映射到一个访问矩阵或基于组的策略。基于角色访问控制(RBAC)角色(Role)是指一个可以完成一定事务的命名组,不同的角色通过不同的事务来执行各自的功能。用户的集合与许可的集合。角色与组的区别在于:用户属于的组是相对固定的,而用户能被指派到那些角色则受时间、地点、事件等诸多因素影响。事务(Transaction)是指一个完成一定功能的过程,可以是一个程序或程序的一部分。RBAC的基本思想授权给用户的访问权限,通常由用户在一个组织中担当的角色来确定。ACL直接将主体和目标相联系,而RBAC在中间加入了角色,通过角色沟通主体与目标。分层的优点是当主体发生变化时,只需修改主体与角色之间的关联而不必修改角色与客体的关联。RBAC的基本思想RBAC中许可被授权给角色,角色被授权给用户,用户不直接与许可关联。RBAC对访问权限的授权由管理员统一管理,而且授权规定是强加给用户的,这是一种非自主型集中式访问控制方式。用户是一个静态的概念,会话则是一个动态的概念。一次会话是用户的一个活跃进程,它代表用户与系统交互。用户与会话是一对多关系,一个用户可同时打开多个会话。一个会话构成一个用户到多个角色的映射,即会话激活了用户授权角色集的某个子集,这个子集称为活跃角色集。活跃角色集决定了本次会话的许可集。RBAC的优点RBAC能够描述复杂的安全策略容易实现最小特权(l